极限情况,空语句的时候,如果不对len做判断,会导致访问数组,答案错误
#include <stdio.h>
#include<stdlib.h>
int main()
{
char ch;
scanf("%c",&ch);
int sum=0;
int a[1000];
int len=0;
while(ch!='.')
{
if(ch!=' ')
sum++;
else{
if(sum!=0)//加了这个可以避免出现连续空格时候输出0
{
//printf("%d ",sum);
a[len++]=sum;
sum=0;
}
}
scanf("%c",&ch);
}
if(sum!=0)//避免后面连续空格
a[len++]=sum;
//如果不加下面这个if判断语句,“空语句”这个测试点过不去,
//会输出没有初始化的数组的内容,系统返回答案错误
if(len!=0)
{
for(int i=0;i<len-1;i++)
printf("%d ",a[i]);
if(a[len-1]!=0)
printf("%d",a[len-1]);
}
return 0;
}
本文解释了一个C语言程序中的问题,即在输入含有空格或连续空格时,如何通过添加len判断避免访问未初始化的数组导致错误。作者强调了对len进行检查的重要性,确保正确处理极端情况。
1968

被折叠的 条评论
为什么被折叠?



