展开全部
#include <stdio.h>
int main()
{
int i,n,s;
while(scanf("%d",&n)!=EOF)
{
s=0;
for(i=1;i<=n;i++)
s+=i;
printf("%d\n",s);
/*或者去掉前面的,只用这一句。
printf("%d\n",(n+1)*n/2);等差数列*/
}
return 0;
}
输出也在循环体内 ,就可以多次输出了
scanf 是有返回值的,返回读到的数据的个数,所以while(scanf("%d",&n)!=EOF)就等价于while(scanf("%d",&n)==1),!=EOF 就是还有读到数据,继续处理的意思
还有一点要注意,有些题目处理玩一组数据后某些变量值会发生变化,所以循环体内要记得初始化 ,比如程序那个s=0,要放在循环体内
int main()
{
int i,n,s;
while(scanf("%d",&n)!=EOF)
{
s=0;
for(i=1;i<=n;i++)
s+=i;
printf("%d\n",s);
/*或者去掉前面的,只用这一句。
printf("%d\n",(n+1)*n/2);等差数列*/
}
return 0;
}
输出也在循环体内 ,就可以多次输出了
scanf 是有返回值的,返回读到的数据的个数,所以while(scanf("%d",&n)!=EOF)就等价于while(scanf("%d",&n)==1),!=EOF 就是还有读到数据,继续处理的意思
还有一点要注意,有些题目处理玩一组数据后某些变量值会发生变化,所以循环体内要记得初始化 ,比如程序那个s=0,要放在循环体内
展开全部
int n,sum=0;
while(scanf("%d",&n)!=EOF)
{
sum+=n;
}
EOF 处理到文件的结束就可以了。
根据题目的要求在合适的位置输出就可以了,如果每组数据都要输出,则写在循环里面,如果所有数据加完了在输出,那么就在循环外边。
只要你知道是要处理到文件结束就根据题目的要求做就可以了。
如果sum是求所有的输入的和,就是放在外边的!请楼上的兄弟认真思考后再发言。
while(scanf("%d",&n)!=EOF)
{
sum+=n;
}
EOF 处理到文件的结束就可以了。
根据题目的要求在合适的位置输出就可以了,如果每组数据都要输出,则写在循环里面,如果所有数据加完了在输出,那么就在循环外边。
只要你知道是要处理到文件结束就根据题目的要求做就可以了。
如果sum是求所有的输入的和,就是放在外边的!请楼上的兄弟认真思考后再发言。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-05-09
展开全部
如何处理多组数据的输入?
在C和C++里,我们可以使用 scanf 的返回值,如果返回值为EOF,则说明已无下一组数据,也可以使用cin的返回值,如果cin返回0,则说明无更多数据。
在java中,可以使用Scanner的 hasNext() 函数判断是否还有数据,hasNext() 返回 true,说明还有后续数据,若返回false,说明无更多数据。
Here is a sample solution for problem 1002 using C++:
#include <iostream>
using namespace std;
int main()
{
int a,b;
while(cin >> a >> b)
cout << a+b << endl;
}
Here is a sample solution for problem 1002 using C:
#include <stdio.h>
int main()
{
int a,b;
while(scanf("%d %d",&a, &b) != EOF)
printf("%d\n",a+b);
return 0;
}
Here is a sample solution for problem 1002 using PASCAL:
program p1002(Input,Output);
var
a,b:Integer;
begin
while not eof(Input) do
begin
Readln(a,b);
Writeln(a+b);
end;
end.
Here is a sample solution for problem 1002 using Java:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int a = in.nextInt();
int b = in.nextInt();
System.out.println(a + b);
}
}
}
在C和C++里,我们可以使用 scanf 的返回值,如果返回值为EOF,则说明已无下一组数据,也可以使用cin的返回值,如果cin返回0,则说明无更多数据。
在java中,可以使用Scanner的 hasNext() 函数判断是否还有数据,hasNext() 返回 true,说明还有后续数据,若返回false,说明无更多数据。
Here is a sample solution for problem 1002 using C++:
#include <iostream>
using namespace std;
int main()
{
int a,b;
while(cin >> a >> b)
cout << a+b << endl;
}
Here is a sample solution for problem 1002 using C:
#include <stdio.h>
int main()
{
int a,b;
while(scanf("%d %d",&a, &b) != EOF)
printf("%d\n",a+b);
return 0;
}
Here is a sample solution for problem 1002 using PASCAL:
program p1002(Input,Output);
var
a,b:Integer;
begin
while not eof(Input) do
begin
Readln(a,b);
Writeln(a+b);
end;
end.
Here is a sample solution for problem 1002 using Java:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int a = in.nextInt();
int b = in.nextInt();
System.out.println(a + b);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询