输入10个整数,将它们从大到小排序,并查找输出最小数出现的次数。
4.1.6 输入10个整数,将它们从大到小排序,并查找输出最小数出现的次数。排序整数按照%4d格式输出。输出数列结束后换行。
输入输出样例为:
5 3 6 1 3 2 1 5 7 1
7 6 5 5 3 3 2 1 1 1
count=3
“=”等号两边无空格,输出结束无换行符。
错误解法如下:
#define N 10
#include<stdio.h>
int main()
{
int i,j,a,tmp,count=0,min;
for(i=0;i<N;i++)
scanf("%d",&a);
for(i=0;i<N;i++)
for(j=0;j<N-i;j++)
if(a<a)
{
tmp=a;
a=a;
a=tmp;
}
for(i=0;i<N;i++)
printf("%4d",a);
printf("\n");
for(i=0;i<N;i++)
{min=a;
if(a==min)
count++;
}
printf("count=%d",count);
return 0;
}
我的疑惑;这个最小值为什么还要通过比较才能得到,已经排过序了,a一定是最小值啊?为什么不能直接让min=a,但这样出来的答案确实不对
int x = 13; // 这是整数
int arr = {6, 17, 23, 9, 0}; // 这是整数数组
请问你的 a 是整数还是数组?
scanf("%d",&a); 还是 scanf("%d",&a); ?
printf("%4d",a); 还是 printf("%4d",a); ?
if(a==min) 还是 if(a==min) ?
页:
[1]