gpt4 book ai didi

c - 如何从 2 个输入文件中按升序将整数排序到新文件中?

转载 作者:行者123 更新时间:2023-12-04 20:01:02 26 4
gpt4 key购买 nike

我正在尝试创建一个从两个文件中获取整数输入的程序。我有两个文件,其中整数按升序排列,输出文件应将这两个文件合并为一个文件,并按升序排列。

while((fscanf(inputFile1, "%d", &temp1) == 1) && (fscanf(inputFile2, "%d", &temp2) == 1))
{
printf("temp1: %d\n", temp1);
printf("temp2: %d\n", temp2);

if (temp1 > temp2)
{
fprintf(outputFile, "%d\n", temp2);
fprintf(outputFile, "%d\n", temp1);
}
else if (temp1 < temp2)
{
fprintf(outputFile, "%d\n", temp1);
fprintf(outputFile, "%d\n", temp2);
}
else if (temp1 == temp2)
{
fprintf(outputFile, "%d\n", temp1);
fprintf(outputFile, "%d\n", temp2);
}
}

File 1 File 2
5 1
10 43
30 55
50 98
345 500

Output
1
5
10
43
30
55
50
98
345
500

它几乎完成了,但是当其中一个文件的数字小于/大于另一个文件中的前一行(例如 30 > 43)时,就会出现问题。我该如何解决这个问题,使输出完全排序?

最佳答案

您正在从每个文件中读取一个数字,当您必须从同一个文件中读取两个连续的数字时,这将失败。

相反,您应该从文件 #1 和 #2 中读取数字,并继续从文件中读取较小的数字,直到它大于从另一个文件中读取的最后一个数字。

关于c - 如何从 2 个输入文件中按升序将整数排序到新文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46134896/

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