输入一行字符,分别统计其中10个数字字符,0到9出现的次数。永c语言怎么写

如题所述

第1个回答  2013-11-25
#include"stdio.h"
#include "string.h"
int main()
{

int a[10]={0};
char ca[100];
gets(ca);
int i;
for (i=0;ca[i]!='\0';++i)
{
if(ca[i]>='0'&&ca[i]<='9')
a[ca[i] - '0']++;
}
printf("数字0到9分别出现的次数如下\n");
for (i=0;i<10;i++)
{
printf("%d:%d\t",i,a[i]);
}
printf("\n");

return 0;
}追问

谢谢啦!你回答了我很多问题。

第2个回答  2013-11-26
#include <stdio.h>

//--------------------------------------------
// 统计0-9出次数的函数
//--------------------------------------------
int Count(char* str)
{
int i = 0, number = 0;
while(str[i] != '\0')
{
//通过ASC码比较法判断该字符是不是数字
if (str[i] >= '0' && str[i] <= '9')
{
number++;
}
i++;
}
return number;
}

//--------------------------------------------
// main()函数中测试一下
//--------------------------------------------
void main()
{
char str[128];
printf("please input a sentence:\n");
scanf("%s", str);
int iRet = Count(str);
printf("0-9出现的次数为:%d \n", iRet);
}
第3个回答  2013-11-26
将字符串赋给字符数组,然后挨个比较是否数字,是则给相应计数器++;直至字符串结尾'\0'
第4个回答  2013-11-25
#include"stdio.h"
#include"time.h"
#include "stdlib.h"
int main()
{
int cnt[10]={0};
char s[1000];
gets(s);
int i;
for (i=0;s[i]!='\0';i++)
{
if(s[i]>='0'&&s[i]<='9')
cnt[s[i]-'0']++;
}
for (i=0;i<10;i++)
{
printf("%d ",cnt[i]);
}
printf("\n");
return 0;
}
第5个回答  2013-11-25
# include<stdio.h>
void fun(char*s);
void main()
{
char ch[100];
scanf("%s",ch);
fun(ch);
//printf("%s\n",t);
}
void fun(char*s)
{
int num[10]={0};
int i;
while (*s)
{
char c;
for(c='0';c<='9';c++)
{
if (*s==c)num[c-'0']++;
}
s++;
}
printf("result:\n");
for(i=0;i<10;i++)printf("%d geshu %d\n",i,num[i]);
}本回答被提问者采纳
相似回答