题目
某超市有若干种商品,每种商品的信息包括“编号”“商品名”“单价”“产地”请将这些信息存放在结构体数组中,并使用结构体指针变量编程:根据给定的商品名查找显示商品信息,根据给定的产地查找显示商品信息,计算所有商品的单价之和。
代码展示
#include <stdio.h>
#include <string.h>
// 定义商品结构体
struct Product {
int id;
char name[20];
float abc;
char place[20];
};
// 定义商品数组和指针变量
struct Product products[100];
struct Product* p = products;
// 输入商品信息
void input() {
int i = 0;
while (i < 3) {
printf("请输入商品编号(输入0结束):");
scanf("%d", &p->id);
if (p->id == 0) {
break;
}
printf("请输入商品名:");
scanf("%s", p->name);
printf("请输入商品单价:");
scanf("%f", &p->abc);
printf("请输入商品产地:");
scanf("%s", p->place);
p++;
i++;
}
}
// 根据商品名查找并显示商品信息
void findname() {
char name[20];
printf("请输入要查找的商品名:");
scanf("%s", name);
while (p->id != 0) {
if (strcmp(name, p->name) == 0) {
printf("商品编号:%d\n", p->id);
printf("商品名:%s\n", p->name);
printf("商品单价:% .2f\n",p->abc);
printf("商品产地:%s\n", p->place);
return;
}
p++;
}
printf("未找到该商品!\n");
}
// 根据产地查找并显示商品信息
void findplace() {
char a[20];
printf("请输入要查找的产地:");
scanf("%s", a);
while (p->id != 0) {
if (strcmp(a, p->place) == 0) {
printf("商品编号:%d\n商品名:%s\n商品单价:%.2f\n商品产地:%s\n", p->id, p->name, p->abc, p->place);
return;
}
p++;
}
printf("未找到该产地!\n");
}
// 计算所有商品的单价之和并显示结果
void sum() {
float sum = 0;
printf("所有商品的单价之和为:");
while (p->id != 0) {
sum += p->abc;
p++;
}
printf("%.2f\n", sum);
}
int main() {
input(); // 输入商品信息
findname(); // 根据商品名查找并显示商品信息
findplace(); // 根据产地查找并显示商品信息
sum(); // 计算所有商品的单价之和并显示结果
return 0;
}
Comments NOTHING