求数组中的最小元素并输出,要求使用指针访问数组元素。我编的这个老是输出第一个元素,为什么啊

img

min函数你如果返回*p的话,就需要把最小值放在第一个位置,a[i]是局部变量,你的p才是指向数组的指针。
main函数中调用min函数的时候,用min(p,5)就可以了,p前面的星号删掉
修改如下:

#include <iostream>
using namespace std;
void input(int a[],int n)
{
    for(int i = 0;i<n;i++)
        cin >> a[i];
}

int min(int*p,int n)
{
    int i;
    int mm = p[0];
    for(i=0;i<n;i++,p++)
    {
        if(*p<mm)
            mm = *p;
    }
    return mm;
}



int main(){
    int a[5];
    int*p =a;
    input(p,5);
    cout <<min(p,5)<<endl;
    return 0;
}

调用min()时中p前面不要加*