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

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

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、最后得到最后结果。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-28

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

#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;
}

试运行结果如下图:

第2个回答  2014-05-22
#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]);
}
}追答

这很符合要求吧,输入的是数字字符,用数组计数

本回答被提问者采纳
第3个回答  2020-06-11
#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]);
}
第4个回答  2014-05-22
#include<stdio.h>
int main()
{
int i,num[10];//按实际情况
for(i=0;i<10;i++)
{
scanf("%d\n",&sum[i]);
}
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网