为什么出现莫名奇妙的bug
这是我写出来的第20课第二题的答案,用dev写的,会有莫名奇妙的字符,换个编译器又不一样,希望各位帮助解释一下,谢谢!就是我输入的只是q,却会输出q\nc,以此类推,你们可以自己试一试,我现在一脸懵#include <stdio.h>int main()
{
char sloagn;
char ch;
int i,n1=0,n2=100,s=0,a=0,b=0; //s为small,b为big
for(i=0;i<5;i++)
{
printf("请输入第%d句话:",i+1);
while(ch!='\n')
{
scanf("%c",&ch);
sloagn = ch;
a++;
}
ch ='\0';
sloagn == ch;
if(a>n1)
{
n1 = a;
s = i;
}
if(a<n2)
{
n2 = a;
b = i;
}
a = 0;
}
printf("你输入了下边5句话:\n");
for(i=0;i<5;i++)
{
printf("%s",sloagn);
}
printf("其中最长的是:%s\n",sloagn);
printf("其中最短的是:%s\n",sloagn);
return 0;
}
sloagn == ch;//多打了= #include <stdio.h>
int main()
{
char sloagn;
char ch;
int i,n1=0,n2=100,s=0,a=0,b=0; //s为small,b为big
for(i=0;i<5;i++)
{
printf("请输入第%d句话:",i+1);
while(ch!='\n')
{
scanf("%c",&ch);
sloagn = ch;
a++;
}
ch ='\0';
sloagn = ch; // 修改
if(a>n1)
{
n1 = a;
s = i;
}
if(a<n2)
{
n2 = a;
b = i;
}
a = 0;
}
printf("你输入了下边5句话:\n");
for(i=0;i<5;i++)
{
printf("%s",sloagn);
}
printf("其中最长的是:%s\n",sloagn);
printf("其中最短的是:%s\n",sloagn);
return 0;
} sloagn = ch 问题不在于=,这个bug还是在
bug如图
你能告诉我,执行到11行的时候,ch中保存的是什么吗?
sloagn = ch;
改成这样就好了!
页:
[1]