【发布时间】:2022-11-05 01:05:53
【问题描述】:
基本上我的程序中的每个项目都有库存余额。此功能应询问您有关项目编号的信息,然后询问您要增加该项目的库存余额多少。我在不同的程序中使用了类似的功能并且它有效但这次它不起作用。我不想发布整个程序,因为它是针对学校的并且会被标记,你能看到这个功能有什么错误吗?谢谢!
void change(Goods a[], int nr){
int inv,itemNumber;
printf("Item to change: ");
scanf("%d%*c",&itemNumber);
printf("Increase with: ");
scanf("%d%*c", &inv);
a[itemNumber].inventory=a[itemNumber].inventory+inv;
}
【问题讨论】:
-
定义“不起作用”。
-
我看到的唯一错误是没有检查 A. 没有检查
scanf的返回值和 B. 没有检查itemNumber是否大于或等于 0 且小于nr大概是 @987654325 的大小@。哦,在您第二次致电scanf时,%*c在做什么? -
我有一个 if 语句检查 ItemNumber 是否大于 0,但我删除了它,我想发布尽可能少的代码。
-
我希望
Goods a[]是Goods *a并将其作为指针运行——看不到函数是如何被调用的也无济于事。编译时没有标记警告吗? -
不工作是指:我有一个函数可以打印数组中的所有项目。调用此函数并更改库存余额后,我返回并打印数组中的所有项目,余额仍与更改前相同。