利用一维数组求最大值和位置

求一组数中的最大值及其位置。例如:数据为:2 7 34 4 23 56 10 45。最大值应为:56,位置应为:

不需要输入数组个数吗?下面的代码不需要输入数组元素个数,运行结果如下:

img

代码:

#include <stdio.h>
int main()
{
    int a[100], n=0;
    int max, index = 0;
    char ch;
    while (1)
    {
        scanf("%d", &a[n]);
        if (n == 0)
        {
            max = a[0];
            index = 0;
        }
        else if (a[n] > max)
        {
            max = a[n];
            index = n;
        }
        n++; 
        ch = getchar();
        if (ch == '\n')//输入回车符结束
            break;
    }
    printf("最大值:%d,位置:%d\n", max, index); //位置输出下标,下标从0开始
    return 0;
}

先定义一个一维数组,在输入的过程中寻找,最后输出


#include <bits/stdc++.h>
using namespace std;
int main()
{
    int a[100]={},maxx=0,p;//maxx存储最大值 
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        if(a[i]>maxx)
            maxx=a[i],p=i;//在输入过程中判断 
    }
    cout<<maxx<<endl<<p;//输出 
    return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

定义一维数组存储数据,并定义两个临时变量记录最大值和其索引位置。循环遍历判断,最后输出。

#include <stdio.h>
#define n 10
int main(){
  int max=0,a[n],i=0; 
  int p1=0;
  for(i=0;i<n;i++){
    scanf("%d",&a[i]);
  }
  max=a[0];
  for(i=0;i<n;i++){
    if(a[i]>max){
    max=a[i];
    p1=i;
    }
  }
  printf("最大值应为:%d,位置应为:%d\n",max,p1+1);
  return 0;
}