求答案ww,是要c++的

小明有很多张写着数字的卡片,每张卡片上有一个 1−10 之间的整数,现在需要你帮忙找出哪种数字的卡片数量最少,并输出这张卡片的数字。如果出现相等的情况,则输出数字较小的那个。
输入格式
第一行,一个整数 n ,表示卡片数量

第二行,为 n 张卡片上的整数,数字之间用一个空格隔开

输出格式
一行,一个整数

输入样例
6
1 1 2 5 6 9
输出样例
2

定义一个10个元素的数组,遍历输入的数字,写入对应数组值加1,最后比较大小

#include  <iostream>
using namespace std;
int main()
{
    int a[10] = {0};
    int n,m;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>m;
        a[m-1]++;
    }
    int min = -1;
    for(int i=1;i<10;i++)
    {
        if(a[i] > 0 && min == -1)
           min = i;
        else if(a[i] != 0 && a[i] < a[min])
            min = i;
    }
    cout<<min+1;
    return 0;
}

数字1-10,所有用a[10]记录每个数字出现的次数即可,然后找出数组a中不为0的最小数,其所在的下标+1即为所求数字。

img

代码:


#include <iostream>
using namespace std;

int main()
{
    int n, index;
    int a[10] = { 0 };
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        cin >> index;
        a[index - 1]++;
    }
    int minIndex = -1;
    for (int i = 0; i < 10; i++)
    {
        if (a[i] != 0)
        {
            if (minIndex == -1 || a[i] < a[minIndex])
                minIndex = i;
        }
    }
    cout << minIndex + 1;
    return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632