首页 新闻 搜索 专区 学院

请问这个为什么会陷入死循环

0
悬赏园豆:30 [已解决问题] 解决于 2021-12-18 22:32

include<stdio.h>

int main()
{
char s[101],c;
int i;

while(~scanf("%s %c",s,&c));

{
   
	for(i=0;s[i]!='\0';i++)
{
	if(s[i]==c)
{
		s[i]='\n';
}
}
puts(s);

}

return 0;

}

c
解忧~的主页 解忧~ | 初学一级 | 园豆:175
提问于:2021-12-18 17:03
< >
分享
最佳答案
1

我就问问你这个代码是干啥的:

while(~scanf("%s %c",s,&c));

你这代码不死循环才怪,判断用按位取反我也不知道是干啥,while后面又紧跟分号,还后面跟着代码块,建议回去重学。
提问是用md的,请学习markdown重新整一整模板。

收获园豆:15
寂静的羽夏 | 小虾三级 |园豆:1539 | 2021-12-18 17:53

多谢

解忧~ | 园豆:175 (初学一级) | 2021-12-18 22:28
其他回答(3)
1

代码排版先整整吧

收获园豆:5
wang_yb | 园豆:4573 (老鸟四级) | 2021-12-18 17:29

多谢

支持(0) 反对(0) 解忧~ | 园豆:175 (初学一级) | 2021-12-18 22:29
1

把while后面的分号去掉就行了

收获园豆:5
中华鲟3670 | 园豆:647 (小虾三级) | 2021-12-18 18:20

多谢,仔细看了一眼才明白,有时候确实会因为一些小问题纠结很久,自己还发现不了

支持(0) 反对(0) 解忧~ | 园豆:175 (初学一级) | 2021-12-18 22:31
1

while(~scanf("%s %c",s,&c));
while后面分号去掉,否则后面大括号的代码就不在循环体中,循环体内没东西了,因此死循环

收获园豆:5
计算机知识杂谈 | 园豆:470 (菜鸟二级) | 2021-12-18 18:42

多谢

支持(0) 反对(0) 解忧~ | 园豆:175 (初学一级) | 2021-12-18 22:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册