C语言,提示输入20个整数,统计相同的数字出现的次数,并打印出来,按数字从小到大的顺序显示,如数字5
C语言,提示输入20个整数,统计相同的数字出现的次数,并打印出来,按数字从小到大的顺序显示,如数字5,出现了3次数字12,出现2次数字50,出现10次...
C语言,提示输入20个整数,统计相同的数字出现的次数,并打印出来,按数字从小到大的顺序显示,如数字5,出现了3次
数字12,出现2次
数字50,出现10次 展开
数字12,出现2次
数字50,出现10次 展开
2个回答
展开全部
用结构体存储数值,及个数。
插入排序,相同则累加。
#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;
}
展开全部
#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;
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询