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

C语言,提示输入20个整数,统计相同的数字出现的次数,并打印出来,按数字从小到大的顺序显示,如数字5,出现了3次数字12,出现2次数字50,出现10次... C语言,提示输入20个整数,统计相同的数字出现的次数,并打印出来,按数字从小到大的顺序显示,如数字5,出现了3次
数字12,出现2次
数字50,出现10次
展开
 我来答
风若远去何人留
2017-03-15 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部

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

插入排序,相同则累加。 

#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;
}
ywy少年郎
2019-03-10
知道答主
回答量:1
采纳率:0%
帮助的人:768
展开全部
#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;
}
}
}
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式