请问我这代码哪里出了问题,单独算max和min时答案是对的,但两个循环一起用max值就有问题了

img

img

img

请添加正文描述,长度需大于30个字符!
请添加正文描述,长度需大于30个字符!
请添加正文描述,长度需大于30个字符!


#include<iostream>
using namespace std;
 
int main()
{
    int a[10];
    int* p = &a[10];
    for (int i = 0; i < 10; i++)
    {
        cin >> a[i];
    }
    
    cout << "数组首地址为" << (int)p << endl;
    int max = a[0];
    for (int i = 1; i < 10; i++)
    {
        if (a[i] > max)
        {
             max = a[i];

        }
    }
    
    int min = a[0];
    for (int i = 1; i < 10; i++)
    {
        if (a[i] < min)
        {
            min = a[i];
        }
    }
    
    
   cout << "最大数地址为" << &max << "最大数为"<<max<<endl;
    cout << "最小数地址为" <<&min << "最小数为" << min << endl;
 
    system("pause");
    return 0;


#include<iostream>
using namespace std;

int main()
{
    int a[10];
    int* p = &a[10];
    for (int i = 0; i < 10; i++)
    {
        cin >> a[i];
    }
    
    cout << "数组首地址为" << (int)p << endl;
    int *max = &a[0];
    for (int i = 1; i < 10; i++)
    {
        if (a[i] > *max)
        {
             *max = a[i];
        }
    }
    
    int* min = &a[0];
    for (int i = 1; i < 10; i++)
    {
        if (a[i] < *min)
        {
            *min = a[i];
        }
    }
    
    
    cout << "最大数地址为" << (int)max << "最大数为"<<*max<<endl;
    cout << "最小数地址为" << (int)min << "最小数为" << *min << endl;

    system("pause");
    return 0;
}