为啥第一个数组输入不进去
为什么第一个数组输入不进去
#include<stdio.h>
#include<string.h>
int main()
{
int m,i=0,t,s[100],a[100]={0},sum=0;
scanf("%d",&m);
char b[100][100];
while(i<m+1)
{
gets(b[i]);
i++;
}
for(i=1;i<m+1;i++)
{
s[i]=strlen(b[i]);
for(t=1;t<s[i]+1;t++)
{
if(b[i][t]!=' ')
a[i]++;
}
printf("Line %d:%d\n",i,a[i]);
}
for(i=1;i<m+1;i++)
sum+=a[i];
printf("Total %d",sum);
}
每次b[0]都输入不进去,显示都是0;
------解决思路----------------------
scanf之后没有清除输入流。
------解决思路----------------------
#include<stdio.h>
#include<string.h>
int main()
{
int m,i=0,t,s[100],a[100]={0},sum=0;
scanf("%d",&m);
char b[100][100];
while(i<m+1)
{
gets(b[i]);
i++;
}
for(i=1;i<m+1;i++)
{
s[i]=strlen(b[i]);
for(t=1;t<s[i]+1;t++)
{
if(b[i][t]!=' ')
a[i]++;
}
printf("Line %d:%d\n",i,a[i]);
}
for(i=1;i<m+1;i++)
sum+=a[i];
printf("Total %d",sum);
}
每次b[0]都输入不进去,显示都是0;
------解决思路----------------------
scanf之后没有清除输入流。
------解决思路----------------------
#include<stdio.h>
#include<string.h>
int main()
{
int m,i=0,t,s[100],a[100]={0},sum=0;
scanf("%d",&m);
getchar();////接收换行符号
char b[100][100];
while(i<m+1)
{
gets(b[i]);
i++;
}
for(i=1;i<m+1;i++)
{
s[i]=strlen(b[i]);
for(t=1;t<s[i]+1;t++)
{
if(b[i][t]!=' ')
a[i]++;
}
printf("Line %d:%d\n",i,a[i]);
}
for(i=1;i<m+1;i++)
sum+=a[i];
printf("Total %d",sum);
}