用C++写:
[C++] 纯文本查看 复制代码 #include <iostream>
using namespace std;
int a,b;
while(cin>>a>>b)
{
cout<<a+b<<endl;
}
用C写:
[C] 纯文本查看 复制代码 #include <stdio.h>
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
printf("%d\n",a+b);
}
计数法
在有些题目中,先给一个正整数,告诉数据输入的组数,然后根据这个数组进行读取。
例题:给定两个整数a,b,求这两个数之和
【输入】
输入数据中的第一行是一个正整数T(0<=T<=100)。接下来有T行数据。每行数据中含有两个整数a、b(-103<=a,b<=103)
【输出】
对每行数据,输出对应的a+b的值。
【样例输入】
2
123 500
60 80
【样例输出】
623
140
【代码实现】
[C++] 纯文本查看 复制代码 #include <stdio.h>
int main()
{
int T;
scanf("%d",&T);
for(int i=1;i<=T;i++)
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
}
return 0;
}
哨兵法
有些问题中不告诉循环次数,而是给定一个特殊值,表示输入的结束。这个特殊值被称为哨兵,因此这个输入方法称为哨兵法。
例题:给定两个整数a,b,求这两个数之和
【输入】
输入数据有多行。每行数据中含有两个整数a,b(0<=a,b<=109)。最后一行数据是0 0,标志输入结束。0 0一行本身不需要计算输出。
【输出】
对每行数据,输出对应的a+b的值。
【样例输入】
123 500
60 80
0 0
【样例输出】
623
140
【代码实现】
[C++] 纯文本查看 复制代码 #include <stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
while(a!=0||b!=0)
{
printf("%d\n",a+b);
scanf("%d%d",&a,&b);
}
return 0;
}
1.EOF法常用于不知道几组数据,用while循环,利用scanf()的返回值结束时为EOF。
2.计数法用于知道几组数据,用for循环。
3.哨兵法用于不知道几组数据,用while循环。利用当遇到特殊值哨兵(最后输入的数据)时结束。
|