C语言,提示输入20个整数,统计相同的数字出现的次数,并打印出来,按数字从小到大的顺序显示,如数字5

C语言,提示输入20个整数,统计相同的数字出现的次数,并打印出来,按数字从小到大的顺序显示,如数字5,出现了3次
数字12,出现2次
数字50,出现10次

用结构体存储数值,及个数。 

插入排序,相同则累加。 

#include <stdio.h>
typedef struct 
{
    int v;
    int t;
}number;
int main()
{
    number n[20];
    int cnt=0;
    int i,j,k,a;
    for(i = 0; i <20; i ++)
    {
        scanf("%d",&a);
        for(j = cnt-1; j>=0; j --)
            if(n[j].v<=a) break;
        if(j>=0 && n[j].v==a)
        {
            n[j].t++;
            continue;
        }
        for(k = cnt; k>j+1; k--)
            n[k]=n[k-1];
        n[j+1].v=a;
        n[j+1].t=1;
        cnt++;
    }
    for(i = 0; i < cnt; i ++)
        printf("数字%d,出现了%d次\n", n[i].v, n[i].t);
    return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-10
#include <stdio.h>
#define N 20
void Bubble_sort(int a[],int n);
int main()
{
int i,j;
int a[N];
for( i = 0; i < N; i ++)
{
scanf("%d",&a[i]);
}
Bubble_sort(a,N);
for( j = 0; j < N; j ++)
{
if(a[j] != a[j+1])
{
printf("%d:%d\n",a[j],1);
}
else{
int cnt = 1;
while(a[j] == a[j+1])
{
j ++;
cnt ++;
}
printf("%d:%d\n",a[j],cnt);
}
}
return 0;

void Bubble_sort(int a[],int n)
{
int i,j,temp;
int flag = 1;
for( i = 0; i < n-1 && flag; i ++)
{
flag = 0;
for( j = 0; j < n-i-1; j ++)
{
if( a[j] > a[j+1] )
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
flag = 1;
}
}
}
}


相关了解……

你可能感兴趣的内容

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