找出一个数组中的最大值,但是最大值只能有一个,怎么判断它的最大值只有一个呀

 

#include<stdio.h>

int main()
{
    int i,j,n,a[100],max=-10000,t;
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
        if(a[i]>max){
            max=a[i];
            j=i;

        }
        else if(a[i]==max){
            t=i;
        }
        else
            continue;
    }
    if(max==a[t])
        printf("-1");
    else
        printf("%d",j);

    return 0;
}

很简单啊 统计次数啊

思路 先求出最大值,然后循环数组一一比较最大值,有几个相等那么最大值就有几个

void main()
{
    int a[100] = {0};
    int i,n;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    int max = 0;
    bool bOnly = true;
    for(i=0;i<n;i++)
    {
        if(i==0)
            max = 0;
        else
        {
            if(a[max] < a[i])
            {
                max = i;
                bOnly = true;
            }
            else if(a[max] == a[i])
                bOnly = false;
        }
    }
    if(bOnly)
        printf("找到的最大值是第%d个数\n",max);
    else
        printf("没有最大值\n");
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m