c语言问题 无限输入
答案:4 悬赏:10
解决时间 2021-01-23 11:53
- 提问者网友:一抹荒凉废墟
- 2021-01-22 22:09
c语言问题 无限输入
最佳答案
- 二级知识专家网友:鱼忧
- 2021-01-22 23:47
觉得你写的这个有点问题,输入的格式不是这样滴。while(scanf("%s",&a));while(1);是死循环,永远跳不出,除非break
全部回答
- 1楼网友:鱼忧
- 2021-01-23 02:56
好像错了...应该是while(scanf(“%d%d”&a,&b)!=EOF)
意思是 只要有输入,就执行后面的语句,但它不会去管输入是否改变了a b 的值,而且如果一次输入的值不是两个,程序极有可能崩溃.....
通常
while(scanf("%d", &a) == 1)
{
-----------
)
就可以了....
- 2楼网友:蓝房子
- 2021-01-23 02:03
EOF 是End of file 的简写,也就是文件末尾的意思
在读文件时,一直读到文件末尾才结束
而在输入时,就变成无限输入了,直到读到终止符
所以纠正一下不是无限输入,而是多次输入,多次输入一般都是上面这种结构
追问:那为什么有时无法输出
追答:无法输出?你没写输出,或者死循环了
如果你是写上面这种eof结构,那么,你的输出肯定在while之外,所以死循环了,你必须输入终止符,终止输入,
终止符,windows下是在一个新行的开头输入ctrl + z就行了
在读文件时,一直读到文件末尾才结束
而在输入时,就变成无限输入了,直到读到终止符
所以纠正一下不是无限输入,而是多次输入,多次输入一般都是上面这种结构
追问:那为什么有时无法输出
追答:无法输出?你没写输出,或者死循环了
如果你是写上面这种eof结构,那么,你的输出肯定在while之外,所以死循环了,你必须输入终止符,终止输入,
终止符,windows下是在一个新行的开头输入ctrl + z就行了
- 3楼网友:孤独入客枕
- 2021-01-23 00:51
输入 -9999 结束,否则继续输入。
程序如下:
int a[9000]; //开个大的数组,或用动态分配
int n=0; // 计数器
while(1){
if ( scanf("%d",&a[n])==1) {
if (a[n]== -9999) break; //输入终止条件
n++;
}
};
}
程序如下:
int a[9000]; //开个大的数组,或用动态分配
int n=0; // 计数器
while(1){
if ( scanf("%d",&a[n])==1) {
if (a[n]== -9999) break; //输入终止条件
n++;
}
};
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯