输入一行数字字符存入字符数组str[80]中,用num[10]中的数组元素作为计数器来统计每个数字字符的个数。

用下标为0的元素统计字符“0”的个数,用下标为1的元素统计字符“1”出现的次数,……。输出每个奇数字符出现的次数。
C语言编程题,求解答

#include <stdio.h>

void main(void)
{
char str[80];
int i;
int num[10] = { 0 };

scanf("%s", str);

for(i=0; str[i]!='\0'; i++)
{
num[str[i] - '0']++;
}

for(i=0; i<10; i++)
{
if ((i % 2 != 0) && (num[i] != 0))
printf("%d :: %d\n", i, num[i]);
}
}

如有不懂可留言
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-05
给你思路
假设str[80]里面的数字都是0-9
先初始化num[10]都为0
循环str[80]
num[str[i]] = num[str[i]] + 1;
循环结束后 num[10]里就是统计的内容追问

我是完全不会啊,大哥,给编一下程吧

追答

我可以用java写,c大学里学过,语法都忘记了
#include
main()
{
int str[80],num[10];
int i=0,m=0;
char c;
for(i=0;i<=9;i++)
{
num[i]=0;
}

for(i=0;i<=79;i++)
{
scanf("%d",&str[i]); //输入0-9的数字
if(str[i]==99)break; // 输入99则跳出输入
m=str[i];
num[m]=num[m]+1; // 统计
}

for(i=0;i<=9;i++)
printf("%d",num[i]); //打印统计
getch();
}