gpt4 book ai didi

C:使用输入和数组时出现数学结果问题。

转载 作者:太空宇宙 更新时间:2023-11-04 06:40:04 24 4
gpt4 key购买 nike

我正在为 C 类的介绍做一些家庭作业,其中我们必须编写一个程序,从包含来自酒厂的订单信息的文本文件中读取输入。我已经把所有的东西都写出来了,但是当我运行它时,订单总成本的数学计算不对了。昨晚我从一些用户那里得到了修复这个程序中的数组的一些帮助,但现在我不太确定是什么导致了数学错误。这是我的代码:

int main () {

//Creates the file pointer and variables
FILE *ifp;
int index, index2, index3, index4;
int wineries, num_bottles, prices, orders, sum_order, total_orders;

//Opens the file to be read from.
ifp = fopen ("wine.txt", "r");

//Scans the first line of the file to find out how many wineries there are,
//thus finding out how many times the loop must be repeated.
fscanf(ifp, "%d", &wineries);

//Begins the main loop which will have repititions equal to the number of wineries.
for (index = 0; index < wineries; index ++) {

//Prints the winery number
printf("Winery #%d:\n", index + 1);

//Scans the number of bottles at the aforementioned winery and
//creates the array "prices" which is size "num_bottles."
fscanf(ifp,"%d", &num_bottles );
int prices[num_bottles];

//Scans the bottle prices into the array
for (index2 = 0; index2 < num_bottles; index2++)
fscanf(ifp, "%d", &prices[num_bottles]);

//Creates variable orders to scan line 4 into.
fscanf(ifp, "%d", &orders);


for(index3 = 0; index3 < orders; index3++){
int sum_order = 0;

for(index4 = 0; index4 < num_bottles; index4++)
fscanf(ifp, "%d", &total_orders);

sum_order += (prices[num_bottles] * total_orders);


printf("Order #%d: $%d\n", index3+1, sum_order);
}
printf("\n");

}
//printf("%d", prices[index2]);
fclose(ifp);


return 0;
}

当我运行程序时,打印出以下内容:

Winery #1

Order #1: $150

Order #2: $60

Order #3: $60

Order #4: $0

Winery #2

Order #1: $0

什么时候应该打印出来:

Winery #1

Order #1: $160

Order #2: $200

Order #3: $120

Order #4: $40

Winery #2

Order #1: $40

这是来自输入文件“wine.txt”的数据:

2
3
10 20 30
4
1 0 5
8 3 2
2 2 2
4 0 0
5
17 27 44 54 75
1
1 2 0 0 0

如果有必要(我认为完全有可能仅通过代码指出我的数学错误,但为了清楚起见,我想将其包括在内),这是我的教授对输入文件中每个整数的解释代表:

The first line of each test case will contain a single positive integer, k (k ≤ 10), representing the number of different possible bottles of wine from that winery. The second line of each test case will contain k positive integers representing the cost of each type of bottle of wine at that winery, separated by spaces. The third line of each test case will contain a single positive integer, c (c < 10), representing the number of orders from that winery to process. The following c lines will contain k integers each, representing the number of bottles of each type for that order.

对于问题的长度,我深表歉意,我只是想确保我提供了所有必要的信息,以便清楚。与往常一样,我非常感谢您的帮助,因为 stackoverflow 的所有人继续让我的工作变得更加轻松。

最佳答案

检查循环中大括号 ({, }) 的位置——如果循环体周围没有大括号,则只执行下一条语句.您的缩进表明您希望执行以下几个语句,但与 python 不同,缩进在 C 中并不重要

关于C:使用输入和数组时出现数学结果问题。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9898472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com