首页 > 解决方案 > C++ 中的 Max & Min 1 函数

问题描述

# include<iostream>
using namespace std;

int ma_mi(int a[],int n)
{
    int i, max = a[0], min = a[0]; // problem with max and min
    for(i = 0; i < n; i++)
    {
        cin>>*(a+i);
        if (*(a+i)>max) *(a+i)=max;
        if (*(a+i)<min) *(a+i)=min;
    }
    cout<<"max is"<<' '<<max<<' '<<"min is"<<' '<<min;
}
int main()
{
    int i, n, a[n];
    cin>> n;
    ma_mi(a,n);
}

源代码结束

输入

6
-80 800 -8000 -800 80 8000 

输出

max is 4253776 min is 4253776

标签: c++functionc++17

解决方案


  • 您正在使用n( 在它们被初始化之前int i,n,a[n];和之前。a[0]
  • *(a+i)=max;and*(a+i)=min;应该是max=*(a+i);andmin=*(a+i);来更新maxand min.
  • 可变长度数组不在标准 C++ 中。
# include<iostream>
using namespace std;
int ma_mi(int a[],int n)
{
    int i,max,min; // problem with max and min
    for(i=0;i<n;i++)
    {
        cin>>*(a+i);
        if(i==0)
        {
            max = min = a[0];
        }
        else
        {
            if (*(a+i)>max) max=*(a+i);
            if (*(a+i)<min) min=*(a+i);
        }
    }
    cout<<"max is"<<' '<<max<<' '<<"min is"<<' '<<min;
}
int main()
{
    int i,n;
    cin>>n;
    int* a = new int[n];
    ma_mi(a,n);
    delete[] a;
}

推荐阅读