输入一串字符,以“ !”结束,分别统计其中每个数字字符0,1,2,….9出现的次数。用c语言写

如题所述

#include <stdio.h>
int main(int argc, char* argv[])
{
char ch;
int counter[10];
for (int i=0;i<10;i++)
{
counter[i]=0;
}
while((ch = getchar()) != '!')
{
switch (ch)
{
case '0':
counter[0]++;
break;
case '1':
counter[1]++;
break;
case '2':
counter[2]++;
break;
case '3':
counter[3]++;
break;
case '4':
counter[4]++;
break;
case '5':
counter[5]++;
break;
case '6':
counter[6]++;
break;
case '7':
counter[7]++;
break;
case '8':
counter[8]++;
break;
case '9':
counter[9]++;
break;
default:
break;
}
}
for (i=0;i<10;i++)
{
//cout<<"数字"<<i<<"的个数是:"<<counter[i]<<endl;//如果用C++;
printf("数字");
printf("%d",i);
printf("的个数是:%d\n",counter[i]);
}
return 0;
}

注释:
VC6.0测试通过;
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-20
include <stdio.h>
main()
{int a[10]={0},n;
char ch;
while((ch=getchar())!='!')
{n=ch-'0';
a[n]=++a[n];}
for(n=0;n<10;n++)
printf("%d的个数为%d\n",n,a[n]);
}本回答被提问者和网友采纳
第2个回答  2012-12-16
#include <stdio.h>#include <stdlib.h>
int main()
{
char a;
int i,count1=0;
for (i=0; ;i++)
{
scanf ("%c",&a);
if (a=='!')
break ;
else if (a=='1')
count1++;
else if (以下省略)
}
printf ("%d %d....",count1,count2......);
return 0;
}

c语言 随机输入一个字符串,统计该串中每个数字字符(0,1,2,3,4,5,6...
思路:统计字符串中每个数字字符出现的个数可以先定义一个整数数组a大小是10,依次保存0-9字符出现个数,遍历字符串,判断该字符是否是数字字符,如果是对应的数组元素自加1。参考代码:include<stdio.h>#include<string.h>int main(){ char a[100];int i,n,num[10];gets(a);n=strlen(a);for...

c语言 随机输入一个字符串,统计该串中每个数字字符(0,1,2,3,4,5,6...
for(i=0;i<=9;i++)printf("%d出现的次数为:%d\\n",i,num[i]);}

...输入一组字符(以#结尾),对该组字符统计 字母,数字.和其他字符的个数...
int main(){ char c;int n[3]={0,0,0}; \/\/n[0]记录字母 n[1]记录数字 n[2]记录其它字符 while((c=getchar())!='#'){ if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))n[0]++;else if(c>='0'&&c<='9')n[1]++;else n[2]++;} printf("字母个数:%d...

任意输入一串字符,以"?"结束,分别统计其中字母,数字和其他字符个数...
1、写好开头#include<stdio.h>,void main()。2、输入一对大括号{},之后所有的步骤都在其中进行 ,定义整形变量n1,n2,n3,n4和字符变量c。3、通过循环控制字符串输入并判断(while循环时需加一组大括号)。4、用if语句判断字符的类型if(c>='a'&&c<='z'||c>='A'&&c<='Z');n1++;else...

C语言 输入一串字符,计算当中0~9数字的个数
main(){ char x;int a[10]={0},i;while((x=getchar())!='\\n')if(x>='0'&& x<='9')a[x-'0']+=1;for(i=0;i<10;i++)printf("%d的个数是%d \\n", i,a[i]);return 0;} 你错在了for循环里面 错把i打成了1 这种错误很难发现。 主要要你编程的时候细心 ...

...函数,统计字符串中各个0到9各数字字符出现的次数。
int*times){int i;for(i=0;str[i];i++){if(str[i]-'0'>=0&&str[i]-'0'<=9)times[str[i]-'0']++;}}int main(){ char str[100]={0};int i,j,times[10]={0};scanf("%s",str);fun(str,times);for(i=0;i<10;i++)printf("%4d",times[i]);return 0;} ...

c语言:输入一串字符,以问号结束,统计1,2,3,4,5,6,7,8,9出现的次数
int i,s[10]=0;scanf("%s",c);for(i=0;c[i]!='?';i++){ switch(c[i]){ case "1": s[1]++;break;case "2": s[2]++;break;...default: break;} } printf("统计1,2,3,4,5,6,7,8,9出现的次数分别为:\\n") ;for(i=1;i<10;i++){ printf("统计%d:%d\\n"...

...输入设备上输入一个字符串,分别统计其中每个数字,空格,字母及其他字 ...
int j = 0;char c;while((c=getchar()) !='\\n'){ stringss[j] = c;j++;} for(i=0;i<j;i++)\/\/统计字符串,遇到'\\0'结束 { if(stringss[i]>='0'&&stringss[i]<='9')\/\/统计数字个数 num[0]++;else if(stringss[i]==' ')\/\/统计空格 num[1]++;else if(stringss...

...才能输入一行字符,以回车作为结束标志,分别统计出大写字母,小写字母...
C代码和运行结果如下:统计结果正确,望采纳~附源码:include <stdio.h> int main() { char s[100];fgets(s, 100, stdin); \/\/ 输入一行字符,包括行尾的'\\n'int i = 0, upper = 0, lower = 0, space = 0, digit = 0, other = 0;while (s[i] != '\\n') { if (s[i] ...

c语言 从键盘输入一行字符,分别统计其中数字字符,字母字符和其他字符...
intmain(){ inta,b,c,ch;a=b=c=0;\/\/计数器初始化为0.while((ch=getchar())!='\\n')\/\/循环读取字符,到换行结束。{ if(ch>='0' && ch<='9')\/\/数字 a++;else if((ch>='a' && ch<='z')||(ch>='A' && ch<='Z'))\/\/字母 b++;else\/\/其它 c++;} printf("%d%d%d...

相似回答