#include
using namespace std;
int main()
{
int (*a)[3] = new int[3][3];
int i, j,sum=0,max,min;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
cin >> *(a+i)[j];
sum += *(a + i)[j];
}
}
max = *a[0];
min = *a[0];
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
if (*(a + i)[j] > max)
{
max = *(a + i)[j];
}
}
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
if (*(a + i)[j] < min)
{
min = *(a + i)[j];
}
}
}
cout << "和为" << sum << endl;
cout << "最大值为" << max << endl;
cout << "最小值为" << min << endl;
delete[]a;
}
没有你想象的那么麻烦,可以换换思路:
#include<iostream>
using namespace std;
int main()
{
int a[9];
int max=-1e9,min=1e9,sum=0;
for(int i=0;i<9;i++){
cin >> a[i];
sum+=a[i];
if(max<a[i]) max=a[i];
if(min>a[i]) min=a[i];
}
cout << "和为" << sum << endl;
cout << "最大值为" << max << endl;
cout << "最小值为" << min;
}
试下换成这样去new 与delete
int **a;
a=new int*[3];
for(int i=0;i<3;i++)
a[i]=new int[3];
for(int i=0;i<3;i++)
delete[]a[i];
delete[]a;
或者将你第6行换成:
int(*a)[3] = nullptr;
a = new int[3][3];