【发布时间】:2020-04-23 11:09:29
【问题描述】:
我想编写一个程序,在单独的行中获取输入(每行 2 个整数)并计算每行这 2 个整数的总和 这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *numbers;
int i, j;
numbers = malloc(100 * sizeof(int));
for (i = 1; i <= 100; i++)
{
for (j = 1; j <= 2; j++)
{
scanf("%d", &numbers[j]);
}
printf("%d\n", numbers[1]+numbers[2]);
}
return 0;
}
我的问题是这个程序在写入 2 个数字后立即给出 sum 并且直到达到 100 行才停止。但我想要这样:
example input:
10 5
6 8
67 2
example output:
15
14
69
100 只是用户可以输入的最大行数。我该怎么做?
【问题讨论】:
-
您希望程序如何知道输入何时结束?在我们建议如何编码之前,您需要定义该结束条件。例如有负数时结束,有
'q'时结束,开头有一个数字表示行数,等等。 -
这正是我的问题!我不知道程序应该如何知道停止!指令没有说明这一点
-
查看
scanf文档。您没有检查来自scanf的返回,它会告诉您是否到达文件末尾(在这种情况下是用户输入的结尾)。也就是说,如果您按 ctrl-D(在 Linux 中)或 ctrl-Z(在 Windows 命令行中)结束。 -
好吧,如果这真的是给出的全部,那么这是一个措辞糟糕的问题描述。你应该和给你的人澄清一下。如果你不明白,最好的办法是按照@lurker 已经说过的去做。
-
@OrangeBike 如果输入来自文件,您可以检查 endOfFile。也许让你编写程序的人想要从文本文件中输入
标签: c