C编程: Finding max in a file string

标签 c string file

我有一个我无法弄清楚的作业。

我们有一个格式如下的文件:

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;
}

最佳答案

这些是您的代码中的问题。

  1. bidmax 未初始化使用。解决方法是在声明时将它们设置为 0。
  2. if (bid > max) 检查位置错误。它只检查每次拍卖的最后出价。解决方法是将该检查移动到 fscanf 之后的内部 for 循环中。
  3. max 需要在每次拍卖后清除。解决方法是在外部 for 循环的顶部将 max 设置为 0。

关于C编程: Finding max in a file string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40031811/

相关文章:

c - 为变量赋值的更好方法

c++ - 我如何映射内存中的_特定_区域?

string - 如何在 PowerShell 中将 ResourceId 变量转换为字符串?

python - 用于浮点转换的自定义语言环境配置

java - 如何将 SOAPBody 转换为字符串

java - 从 jar 中读取资源文件

android - 如何在android中的文件中追加数据

c++ - 提取文件重复信息

c - 指向另一个结构中的结构的双指针

c - Excel 无法识别我的 xll 文件