ysl唇釉的涂抹正确方式:c语言程序(数字统计程序)

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/26 20:27:34
如果我输入一串随机数字,我想知道每个数字出现的次数
怎么样编写这个程序,谢谢各位了
程序正确我会给高分的
楼下:您的程序不很符合我要求的,可能是我没表达清楚,并不是测0-9出现次数,而是而是任何可能出现的字符、数字等的次数

靓靓星 - 见习魔法师 三级
的程序有明显的漏洞。连续运行2次或2次以上就可以发现。
以下是本人的程序:
#include <stdio.h>
#include <string.h>
#define N 50
int test(char *p,char c)
{
int j=0;
while(*p!='\0')
if((*p++)==c)
j++;
return j;
}
main()
{
char str[N];
int i=0,k,m,flag;
printf("Please input strings:");
do
str[i++]=getchar();
while(str[i-1]!='\n');
str[i-1]='\0';
m=strlen(str);
for(i=0;i<m;i++)
{
flag=1;
for(k=0;k<i;k++)
if(str[i]==str[k])
{
flag=0;
break;
}
if(flag)
printf("The symbol %c occur %d times\n",str[i],test(str,str[i]));
}
getch();
}经过运行是正确的。

程序要自己写的才可以让你长进。我可以给你描述一下开发思路:
设一个string用于存放你输入的数字串 一个char用于临时存放string的某个字符, 一个一维数组用于0——9的个数。从string 中取出一个字符,让它和数字比较,与那个相同对应的数组的那个元素就+1,直到string的长度为-1。

桶排序`````

#include <stdio.h>
#define N 80

main()
{
char str[N],c;
int sn[N];
int i;

for (i=0;i<N;i++)
{
str[N]='\0';sn[i]=0;
}

printf("Please input:");
while ((c=getchar())!='\n')
{
for (i=0; i<N && str[i]!='\0' && str[i]!=c; i++);
str[i]=c; sn[i]++;
}

printf("The Results\n");
for (i=0;i<N && str[i]!='\0';i++)
{
printf("char %c appears %3d times.\n",str[i],sn[i]);
}

getchar();

}

当然了,你可以把两个数组换成一个结构数组来做