@ya 发表于 2022-2-7 16:06:19

输入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,但这样出来的答案确实不对

傻眼貓咪 发表于 2022-2-7 16:52:24


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]
查看完整版本: 输入10个整数,将它们从大到小排序,并查找输出最小数出现的次数。