在C语言编程的世界里,数据处理是基础也是关键。而水果,作为一种常见的数据元素,可以用来帮助我们理解和实践数据处理的多种技巧。本文将带您走进C语言编程中的“水果乐园”,通过一系列实例,让您轻松学会水果数...
在C语言编程的世界里,数据处理是基础也是关键。而水果,作为一种常见的数据元素,可以用来帮助我们理解和实践数据处理的多种技巧。本文将带您走进C语言编程中的“水果乐园”,通过一系列实例,让您轻松学会水果数据处理技巧。
在处理水果数据之前,我们需要定义一个合适的数据结构来存储水果的信息。以下是一个简单的结构体定义,用于存储水果的名称、价格和库存数量:
#include
typedef struct { char name[50]; float price; int stock;
} Fruit; 我们可以使用scanf函数从用户那里获取水果信息。以下是一个示例代码,用于输入水果的名称、价格和库存数量:
void inputFruit(Fruit *fruit) { printf("Enter fruit name: "); scanf("%49s", fruit->name); // 限制输入长度,防止溢出 printf("Enter fruit price: "); scanf("%f", &fruit->price); printf("Enter fruit stock: "); scanf("%d", &fruit->stock);
}使用printf函数可以输出水果信息。以下是一个示例代码,用于显示水果的详细信息:
void printFruit(const Fruit *fruit) { printf("Fruit Name: %s\n", fruit->name); printf("Price: %.2f\n", fruit->price); printf("Stock: %d\n", fruit->stock);
}假设我们有一系列的水果数据,我们可以使用冒泡排序算法对它们按价格进行排序。以下是一个示例代码:
void sortFruits(Fruit fruits[], int size) { for (int i = 0; i < size - 1; i++) { for (int j = 0; j < size - i - 1; j++) { if (fruits[j].price > fruits[j + 1].price) { Fruit temp = fruits[j]; fruits[j] = fruits[j + 1]; fruits[j + 1] = temp; } } }
}如果我们需要查找某个特定价格的水果,可以使用线性搜索算法。以下是一个示例代码:
int searchFruit(Fruit fruits[], int size, float price) { for (int i = 0; i < size; i++) { if (fruits[i].price == price) { return i; } } return -1; // 如果未找到,返回-1
}现在,让我们将这些技巧结合起来,编写一个简单的程序,用于管理一个水果商店的数据。程序将包括以下功能:
#include
#include
typedef struct { char name[50]; float price; int stock;
} Fruit;
void inputFruit(Fruit *fruit) { printf("Enter fruit name: "); scanf("%49s", fruit->name); printf("Enter fruit price: "); scanf("%f", &fruit->price); printf("Enter fruit stock: "); scanf("%d", &fruit->stock);
}
void printFruit(const Fruit *fruit) { printf("Fruit Name: %s\n", fruit->name); printf("Price: %.2f\n", fruit->price); printf("Stock: %d\n", fruit->stock);
}
void sortFruits(Fruit fruits[], int size) { for (int i = 0; i < size - 1; i++) { for (int j = 0; j < size - i - 1; j++) { if (fruits[j].price > fruits[j + 1].price) { Fruit temp = fruits[j]; fruits[j] = fruits[j + 1]; fruits[j + 1] = temp; } } }
}
int searchFruit(Fruit fruits[], int size, float price) { for (int i = 0; i < size; i++) { if (fruits[i].price == price) { return i; } } return -1;
}
int main() { Fruit fruits[100]; int numFruits = 0; int choice; while (1) { printf("\n1. Input Fruit\n"); printf("2. Display All Fruits\n"); printf("3. Sort Fruits by Price\n"); printf("4. Search Fruit by Price\n"); printf("5. Exit\n"); printf("Enter your choice: "); scanf("%d", &choice); switch (choice) { case 1: if (numFruits < 100) { inputFruit(&fruits[numFruits]); numFruits++; } else { printf("Fruit list is full!\n"); } break; case 2: for (int i = 0; i < numFruits; i++) { printFruit(&fruits[i]); } break; case 3: sortFruits(fruits, numFruits); printf("Fruits sorted by price.\n"); break; case 4: float searchPrice; printf("Enter fruit price to search: "); scanf("%f", &searchPrice); int index = searchFruit(fruits, numFruits, searchPrice); if (index != -1) { printFruit(&fruits[index]); } else { printf("Fruit not found!\n"); } break; case 5: exit(0); default: printf("Invalid choice!\n"); } } return 0;
} 通过这个简单的程序,我们可以管理水果商店的数据,并掌握C语言编程中的数据处理技巧。希望这个“水果乐园”之旅能够帮助您在C语言编程的世界中更加得心应手。