user-0 提问: 杭电ACM1001,关于EOF与换

回复:
user: user-1
content: #include <stdio.h>  int main(void) {     int n,i,sum,flag;     flag = 0;     while(scanf("%d",&n) != EOF)     {         sum = 0;         for(i = 1; i <= n; i++)             sum += i;         if(flag)             printf("\n");         printf("%d\n",sum);         flag = 1;     } 	return 0; }

user: user-0
content: 引用 14 楼 Cerman 的回复:[quote=引用 12 楼 sinat_34674745 的回复:] [quote=引用 11 楼 Cerman 的回复:] 或者这么做： # include <stdio.h> #define count 10  int main() {     int n, i,j=0; 	int sum[count]; 	for(i=0;i<count;i++) 		sum[i]=0; 	     while(scanf("%d", &n)!=EOF&&j<count) {         for(i=1; i<=n; ++i)             sum[j]= sum[j] + i; 		j++;             } 	for(i=0;i<j;i++) 	printf("%d\n\n", sum[i]);     return 0;  } 运行结果： 在杭电OJ上编译提示Wrong Answer。[/quote] 我用的VC6.0，按理说没有问题的[/quote]题目要求的是‘‘’换行符’’输出结果？那如何实现输入完几行整数，判断后面一行没有整数，然后输出结果？

user: user-2
content: 引用 12 楼 sinat_34674745 的回复:[quote=引用 11 楼 Cerman 的回复:] 或者这么做： # include <stdio.h> #define count 10  int main() {     int n, i,j=0; 	int sum[count]; 	for(i=0;i<count;i++) 		sum[i]=0; 	     while(scanf("%d", &n)!=EOF&&j<count) {         for(i=1; i<=n; ++i)             sum[j]= sum[j] + i; 		j++;             } 	for(i=0;i<j;i++) 	printf("%d\n\n", sum[i]);     return 0;  } 运行结果： 在杭电OJ上编译提示Wrong Answer。[/quote] 我用的VC6.0，按理说没有问题的

user: user-2
content: 引用 15 楼 sinat_34674745 的回复:[quote=引用 14 楼 Cerman 的回复:] [quote=引用 12 楼 sinat_34674745 的回复:] [quote=引用 11 楼 Cerman 的回复:] 或者这么做： # include <stdio.h> #define count 10  int main() {     int n, i,j=0; 	int sum[count]; 	for(i=0;i<count;i++) 		sum[i]=0; 	     while(scanf("%d", &n)!=EOF&&j<count) {         for(i=1; i<=n; ++i)             sum[j]= sum[j] + i; 		j++;             } 	for(i=0;i<j;i++) 	printf("%d\n\n", sum[i]);     return 0;  } 运行结果： 在杭电OJ上编译提示Wrong Answer。[/quote] 我用的VC6.0，按理说没有问题的[/quote]题目要求的是‘‘’换行符’’输出结果？那如何实现输入完几行整数，判断后面一行没有整数，然后输出结果？[/quote] 把输入的数写到txt里面，才会检测到结束标志eof

user: user-2
content: 引用 15 楼 sinat_34674745 的回复:[quote=引用 14 楼 Cerman 的回复:] [quote=引用 12 楼 sinat_34674745 的回复:] [quote=引用 11 楼 Cerman 的回复:] 或者这么做： # include <stdio.h> #define count 10  int main() {     int n, i,j=0; 	int sum[count]; 	for(i=0;i<count;i++) 		sum[i]=0; 	     while(scanf("%d", &n)!=EOF&&j<count) {         for(i=1; i<=n; ++i)             sum[j]= sum[j] + i; 		j++;             } 	for(i=0;i<j;i++) 	printf("%d\n\n", sum[i]);     return 0;  } 运行结果： 在杭电OJ上编译提示Wrong Answer。[/quote] 我用的VC6.0，按理说没有问题的[/quote]题目要求的是‘‘’换行符’’输出结果？那如何实现输入完几行整数，判断后面一行没有整数，然后输出结果？[/quote] 你的意思是键入两个换行之后显示结果吗？

user: user-0
content: 引用 6 楼 sinat_34674745 的回复:引用 3 楼 butters10 的回复:lz如果开始一直输入，然后用一个'\n'触发计算能不能提交通过？可以，比如输入1 100然后回车，输出结果和样例输出相同。不可以，我理解错你的意思了。如果while ！='\n'，肯定是不行的

user: user-0
content: 引用 11 楼 Cerman 的回复:或者这么做： # include <stdio.h> #define count 10  int main() {     int n, i,j=0; 	int sum[count]; 	for(i=0;i<count;i++) 		sum[i]=0; 	     while(scanf("%d", &n)!=EOF&&j<count) {         for(i=1; i<=n; ++i)             sum[j]= sum[j] + i; 		j++;             } 	for(i=0;i<j;i++) 	printf("%d\n\n", sum[i]);     return 0;  } 运行结果： 在杭电OJ上编译提示Wrong Answer。

user: user-2
content: 或者这么做： # include <stdio.h> #define count 10  int main() {     int n, i,j=0; 	int sum[count]; 	for(i=0;i<count;i++) 		sum[i]=0; 	     while(scanf("%d", &n)!=EOF&&j<count) {         for(i=1; i<=n; ++i)             sum[j]= sum[j] + i; 		j++;             } 	for(i=0;i<j;i++) 	printf("%d\n\n", sum[i]);     return 0;  } 运行结果：

user: user-0
content: 引用 8 楼 Cerman 的回复:用动态内存分配给数组sum。等到键入eof时停止输入，输出每个运算结果。能写个代码吗，谢谢

user: user-0
content: 引用 4 楼 qq423399099 的回复:输入一个空行的时候说明输入完了？ 之前每行输入的数先保存下来，之后再一起输出结果？不是的，EOF触发的条件并不是遇到EOF，还包括遇到"\n",遇到换行符直接输出结果了。如下图。

user: user-2
content: 用动态内存分配给数组sum。等到键入eof时停止输入，输出每个运算结果。

user: user-0
content: 引用 5 楼 Cerman 的回复:我知道这是EOF，但是我现在纠结的是，不能像sample input那样输入，也就是说，我输入1然后换行，直接输出结果了。但是如果输入1空格100换行，输出结果和SAMPLE OUTPUT一样。

user: user-0
content: 引用 3 楼 butters10 的回复:lz如果开始一直输入，然后用一个'\n'触发计算能不能提交通过？可以，比如输入1 100然后回车，输出结果和样例输出相同。

user: user-2

user: user-3
content: 输入一个空行的时候说明输入完了？ 之前每行输入的数先保存下来，之后再一起输出结果？

user: user-4
content: lz如果开始一直输入，然后用一个'\n'触发计算能不能提交通过？

user: user-0
content: 引用 1 楼 qq423399099 的回复:EOF遇换行符跳出？ 楼主这个程序应该没问题，windows下用ctrl+z可以结束输入Input 举例是1然后换行100，但是我在终端输入1换行，直接就输出结果了

user: user-3
content: EOF遇换行符跳出？ 楼主这个程序应该没问题，windows下用ctrl+z可以结束输入