|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目是编写一个用来统计输入的各个数字,空白符(空格,制表符,换行符)以及所有其他字符出现的次数的程序。
分别存储在变量num[10],blank,others里边并打印出来...
我只做了记录数字跟字母,但统计字母那里出了问题,比如输入2个字母会统计到4个,每次统计字母也是一倍的。查不出什么原因,求解答。还有谁有这道题的标准答案可参考下,想了很久也没有想到比较好的方法实现。
代码如下:
#include <stdio.h>
void main()
{
char c;
int x(int a);
int num(int n);
int i[10]={0},blank=0;
int j=0;
while((c=getchar())!='\n')
{
i[num(c)]+=1;
blank+=x(c);
}
for(j=0;j<10;j++)
{
printf("数字%d=%d\n",j,i[j]);
}
printf("字母=%d!\n",blank);
}
int num(int n)
{
if(n>=48&&n<=57)
{
n=n-48;
return n;
}
return -1;
}
int x(int a)
{
if((a>=97 && a<=122) || (a>=65 && a<=90) )
{
return 1;
}
else
{
return 0;
}
} |
|