当前位置: 代码迷 >> C语言 >> 哪儿错了
  详细解决方案

哪儿错了

热度:165   发布时间:2008-05-06 16:08:16.0
哪儿错了
统计个类型的字符个数
#include<stdio.h>
#include<ctype.h>
void main()
{
char str[3][80];
int i,j,a=0,b=0,c=0,d=0,e=0;
for(i=0;i<3;i++)
gets(str[i]);
for(i=0,j=0;i<3;i++)
{
if(isdigit(str[i][j])==1) a++;
if(islower(str[i][j])==1) b++;
if(isupper(str[i][j])==1) c++;
if(ispunct(str[i][j])==1) d++;
if(str[i][j]==' ')  e++;
if(j<80)
j++;}
printf("ying wen da xie zi mu ge shu wei %d.\n",c);
printf("xiao xie zi mu ge shu wei %d.\n",b);
printf("shu zi ge shu wei %d.\n",a);
printf("kong ge ge shu wei %d.\n",e);
printf("qi ta zi fu ge shu wei%d.\n",d);
}
搜索更多相关的解决方案: str  quot  printf  shu  wei  

----------------解决方案--------------------------------------------------------
第二个for循环并不能历遍所有输入字符
----------------解决方案--------------------------------------------------------
2维 循环 不是这样弄的哦.你这样只到 str[2][2]
----------------解决方案--------------------------------------------------------
还是不行
#include<stdio.h>
#include<ctype.h>
#include<string.h>
void main()
{
char str[3][80];
int i,j,a=0,b=0,c=0,d=0,e=0;
for(i=0;i<3;i++)
gets(str[i]);
for(i=0;i<3;i++)
for(j=0;j<80;j++)
{
if(isdigit(str[i][j])) a++;
if(islower(str[i][j])) b++;
if(isupper(str[i][j])) c++;
if(ispunct(str[i][j])) d++;
if(str[i][j]==' ')  e++;
}
printf("ying wen da xie zi mu ge shu wei %d.\n",c);
printf("xiao xie zi mu ge shu wei %d.\n",b);
printf("shu zi ge shu wei %d.\n",a);
printf("kong ge ge shu wei %d.\n",e);
printf("qi ta zi fu ge shu wei %d.\n",d);
}
----------------解决方案--------------------------------------------------------
明白了
在输入是出了问题,程序对了
----------------解决方案--------------------------------------------------------
  相关解决方案