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

2024-11-19 05:28:06
推荐回答(5个)
回答(1):

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

2、定义变量:#includemain(){ 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、最后得到最后结果。

回答(2):

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

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

试运行结果如下图:

回答(3):

#include

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]);
}
}

回答(4):

#include
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]);
}

回答(5):

#include
int main()
{
int i,num[10];//按实际情况
for(i=0;i<10;i++)
{
scanf("%d\n",&sum[i]);
}
}