如何输入多组数据?
下面我分三种语言讲解这个问题
1. C语言
先讲解一下scanf的返回值,假设说scanf读入一个数字或者字符并成功。例如:scanf("%d, &x)
,那么返回值为1。类似的,两个字符成功后返回值为2,以此类推。假如读入不成功,则返回值为EOF。
开始我曾想利用字符串或者其他形式一行一行读入,全读完之后再输出,后来发现无法办到。于是我改变思路,试图读一个数操作一次。那么怎么知道一行读完了并且输出每行的和数呢?先卖个关子。
显而易见,如何读入多组数据输出每组的和,代码如下
#include<stdio.h>
int main(void)
{
int x, total = 0;
while(scanf("%d", &x) != EOF)
{
sum += x;
if(getchar() == '\n')
{
printf("%d\n", total);
total = 0;
}
}
return 0;
}
2. C++
再讲一些预备知识,cin不是一个操作符,而是一个对象,这也是我最近才知道的。所以while(cin << x)
的返回值是cin的值,即也是x的值。这个操作既实现了给x赋值,又实现了判断是否到了输入末尾,相较于C语言省略了EOF,简洁。
代码没有大的变动,故不附。
3. Python
我在用python写时也遇到了一个问题,这一个地方来来回回改了五回。python语言一般在input()后需要立即输入一个数,所以在实现同时输入两个数的时候需要有一个小技巧。需要将两个数作为一个字符串读入,并用函数分割,再转化为整型,代码如下:
while True:
try:
x,y=map(int,input().split())
print(x + y)
except:
break
其中,map第二个参数是被执行的元素,第一个参数是执行的函数,在这个代码中就是讲x和y同时整型化。