c语言 输入10个整数,将它们从大到小排序,并查找输出最小数出现的次数。怎样查找最小数输出的次数

输入10个整数,将它们从大到小排序,并查找输出最小数出现的次数。怎样查找最小数输出的次数


#include <stdio.h>
#define N 81
int main()
{
    int i,count=0,a[N],temp,j;

    for(i=0;i<10;i++)
        scanf("%d",&a[i]);

    for(i=0;i<10;i++)
        for(j=i+1;j<10;j++)
            if(a[i]<a[j])
            {
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
    for(i=9,j=8;1;i--,j--)
    if(a[i]==a[j])
        count++;
    else
        break;

    for(i=0;i<10;i++)
        printf("%4d",a[i]);
    printf("\ncount=%d",count+1);
}

int find_count_of_min_val(const int* a, int n) {
    if (a == NULL || n <= 0)
        return 0;
    int min_val = a[0];
    int count = 1;
    for (int i = 1; i < n; ++i) {
        if (a[i] < min_val) {
            min_val = a[i];
            count = 1;
        } else if (a[i] == min_val) {
            ++count;
        }
    }
    return count;
}

仅做查找,没有做排序

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int min, count, a;
    for (int i = 0; i < 10; i++)
    {
        scanf("%d", &a);
        if (i == 0)
        {
            min = a;
            count = 1;
        }
        else
        {
            if (min > a)
            {
                min = a;
                count = 1;
            }
            else if(min == a)
                count += 1;
        }
    }
    printf("%d %d",min,count);

    return 0;
}