C语言 输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数.

C语言输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数.用下标为0元素统计字符"0"的个数,下标为1的元素统计字符"1"的个数,...请问怎么做我还没学到... C语言 输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数.用下标为0元素统计字符"0"的个数,下标为1的元素统计字符"1"的个数,... 请问怎么做
我还没学到字符串,能否不用这个做一个
展开
 我来答
shy2850
推荐于2017-12-16 · TA获得超过6774个赞
知道大有可为答主
回答量:2505
采纳率:55%
帮助的人:1586万
展开全部
#include<stdio.h>

main(){
char c,*str;
int i,a[10];
for(i=0;i<10;i++)a[i]=0;//静态数组初始化
printf("input a string please:");//提示语句
scanf("%s",str);//输入动态数组定义的字符串
while(*str){//字符串*str不为空,循环继续;
c=*str;//把从*str数组中提出的元素赋值给c,用于操作
for(i=0;i<10;i++)
if(i==(int)c-48)//把字符c转化为int数据与i比较'0'的ASCII编码为48,'1','2'……依次为49,50……
a[i]++;//数到某个字符,表示该字符的数组元素加1;
*str++;//原字符串数组元素向后一位;
}

for(i=0;i<10;i++)
printf("\n\t%d\t%d",i,a[i]);//打印
getch();
}

字符串就是字符数组,只是表达方式不太一样而已,给你改写一下:

#include<stdio.h>
#define N 100 //字符数组最长为100
main(){
char c,str[N];
int i,j,a[10];
for(i=0;i<10;i++)a[i]=0;//静态数组初始化
printf("input a string please:");//提示语句
scanf("%s",str);//输入动态数组定义的字符串
j=0;
while(str[i]&&j<N){//字符数组元素str[i]不为空,循环继续;
c=str[i];//把从str[]数组中提出的元素赋值给c,用于操作
for(i=0;i<10;i++)
if(i==(int)c-48)//把字符c转化为int数据与i比较'0'的ASCII编码为48,'1','2'……依次为49,50……
a[i]++;//数到某个字符,表示该字符的数组元素加1;
j++;//原字符串数组元素向后一位;
}

for(i=0;i<10;i++)
printf("\n\t%d\t%d",i,a[i]);//打印
getch();
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式