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

用C语言,输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数。用下标为0的元素统计字符‘0’的个数,用下标为1的元素统计字符‘1’的个数……真心连题目都看不... 用C语言,输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数。用下标为0的元素统计字符‘0’的个数,用下标为1的元素统计字符‘1’的个数…… 真心连题目都看不懂啊,求示范#(泪) 展开
 我来答
刺友互
高粉答主

2019-07-12 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:73.8万
展开全部

1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。

2、定义变量:#include<stdio.h>main(){ char c;                                     /*定义c为字符型*/ int letters = 0, space = 0, digit = 0, others = 0;    /*定义letters、space、digit、others、四个变量为基本整型*/。

3、输入字符:printf("please input some characters\n");while ((c = getchar()) != '\n')/*当输入的不是回车时执行while循环体部分*/。

4、判断是否是英文字母: if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z')letters++;                              /*当输入的是英文字母时变量letters加1*/。

5、判断是否是空格:elseif (c == ' ') space++;   /*当输入的是空格时变量space加1*/。

6、输出结果:printf("char=%d space=%d digit=%d others=%d\n",letters,space,digit,others);    /*将最终统计结果输出*/。

7、最后得到最后结果。

White_MouseYBZ
2017-06-28 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6681万
展开全部

将数字字符转换为数字作下标,就能很方便地统计出来,代码如下:

#include "stdio.h"
int main(int argc,char *argv[]){
int d[10]={0},i;
char s[300];
printf("Please enter a numeric string...\ns=");
scanf("%300[0-9]",s);//限300数字字符,遇非许字符则结束
printf("The results are as follows:\n");
for(i=0;s[i];d[s[i++]-'0']++);//将数字字符转换为数字作下标访问计数数组元素
for(i=0;i<10;printf("%d:\t%d\n",i,d[i++]));
return 0;
}

试运行结果如下图:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浮云半仙
2014-05-22 · 超过31用户采纳过TA的回答
知道答主
回答量:140
采纳率:0%
帮助的人:86万
展开全部
#include<stdio.h>

int main(void)
{
printf("请输入一些数字\n");
char input[100];
scanf("%s",input);
char *c = input;
int count[10] = {0,0,0,0,0,0,0,0,0,0};
int *p = count;
int i;
for(;*c != '\0';c++)//好吧我承认用c作为变量名就是为了看见c++
{
if(!(*c >= '0' && *c<='9'))//判断是否为数字
continue; //不是的话直接下一次循环
for(i=0;i < 10;i++)
{
if(*c == (i+'0'))
count[i] += 1;
}
}
for(i=0;i<10;i++)
{
printf("数字%d出现了%d次\n",i,count[i]);
}
}
追答
这很符合要求吧,输入的是数字字符,用数组计数
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qwertas闯天涯
2020-06-11
知道答主
回答量:15
采纳率:0%
帮助的人:3.6万
展开全部
#include<stdio.h>
main()
{int i,ch,num[10]={0};
while((ch=getchar())!='\n')
{
if(ch<='9'&&ch>='0')
num[ch-'0']+=1;
}
for(i=0;i<=9;i++)
printf("%d:%d\n",i,num[i]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
楼主那里k母鸡
2014-05-22
知道答主
回答量:1
采纳率:0%
帮助的人:1376
展开全部
#include<stdio.h>
int main()
{
int i,num[10];//按实际情况
for(i=0;i<10;i++)
{
scanf("%d\n",&sum[i]);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式