商店有5个货架,每个货架上包含了面包、泡面、火腿肠和瓜子等四种商品,以及他们各自的单价。现在某人因失业变得经济拮据,打算购买一种商品来充饥。要求采用结构体,输入该人员仅有的钱,判断他是否可以购买,如果
时间: 2023-04-15 13:05:04 浏览: 78
可以购买,输出他可以购买的商品名称和剩余的钱数;如果不能购买,输出“无法购买”。
这道题目需要定义一个结构体,包含商品名称和单价两个成员变量。然后定义一个二维数组,表示5个货架上的商品信息。接着,输入该人员仅有的钱,遍历每个货架上的商品,判断该人员是否可以购买。如果可以购买,输出商品名称和剩余的钱数;如果不能购买,继续遍历下一个货架。如果所有货架都遍历完了,仍然无法购买,输出“无法购买”。
以下是示例代码:
#include <stdio.h>
#include <string.h>
struct commodity {
char name[20];
float price;
};
int main() {
struct commodity goods[5][4] = {
{{"面包", 2.5}, {"泡面", 3.}, {"火腿肠", 1.5}, {"瓜子", 1.}},
{{"面包", 2.5}, {"泡面", 3.}, {"火腿肠", 1.5}, {"瓜子", 1.}},
{{"面包", 2.5}, {"泡面", 3.}, {"火腿肠", 1.5}, {"瓜子", 1.}},
{{"面包", 2.5}, {"泡面", 3.}, {"火腿肠", 1.5}, {"瓜子", 1.}},
{{"面包", 2.5}, {"泡面", 3.}, {"火腿肠", 1.5}, {"瓜子", 1.}}
};
float money;
printf("请输入您仅有的钱:");
scanf("%f", &money);
int flag = ;
for (int i = ; i < 5; i++) {
for (int j = ; j < 4; j++) {
if (goods[i][j].price <= money) {
printf("您可以购买%s,剩余%.2f元。\n", goods[i][j].name, money - goods[i][j].price);
flag = 1;
break;
}
}
if (flag) {
break;
}
}
if (!flag) {
printf("无法购买。\n");
}
return ;
}