【发布时间】:2016-10-13 22:06:00
【问题描述】:
我有这个我想不通的任务。
我们有一个格式如下的文件:
5
4
100 500 250 300
1
700
3
300 150 175
2
920 680
8
20 10 15 25 50 30 19 23
第一行是拍卖的总数。
之后,每两行代表一次拍卖。
第一行是出价数。下一行是实际出价。
例如,数字 4 表示有 4 个出价 (100,500,250,300) 的拍卖。
我的任务是确定每次拍卖的最高出价。这就是我到目前为止所得到的。任何帮助将不胜感激。
#include <stdio.h>
int main() {
FILE * ifp;
char filename[100];
printf("File name\n");
scanf("%s", &filename);
ifp = fopen (filename, "r");
if (ifp == NULL) {
printf("Error, File could not be opened.\n");
return 1;
}
int i, num_auctions, auction, j, bid, max;
fscanf(ifp, "%d", &num_auctions);
for(i=0; i<num_auctions; i++) {
fscanf(ifp, "%d", &auction);
if (bid > max)
max = bid;
for(j=0; j<auction; j++){
fscanf(ifp, "%d", &bid);
printf("%d\n", bid);
}
printf("%d\n", max);
}
fclose(ifp);
return 0;
}
【问题讨论】:
-
将该图像发布为文本。没有充分的理由让我们点击此链接。
-
第一次执行
if (bid > max)时bid的值是多少? -
请说明您的程序当前的行为是什么以及为什么您无法弄清楚。
-
一点补充,因为你需要找到每个的最高值,你应该在内循环完成后清除
max。打印最大值然后清除它。 -
我是否可以建议您找到编译器选项,该选项会告诉您何时使用变量而不进行初始化? (或者,不要忽略您正在使用未初始化变量的警告)