已知二维数组{{90,78},{88,80},{79,76}}存储了3名学生在2门课程上的成绩,进行以下操作:1.使用指向行的指针操作该二维数组,计算每名学生的课程平均成绩;2.使用一级指针操作该二维数组,计算每门课程的学生平均成绩。
望采纳
首先,在 C++ 中,二维数组可以表示为如下形式:
int a[3][2] = {{90,78},{88,80},{79,76}};
使用指向行的指针操作该二维数组,计算每名学生的课程平均成绩可以使用以下方法:
#include
using namespace std;
int main() {
int a[3][2] = {{90,78},{88,80},{79,76}};
int (*p)[2] = a;
for (int i = 0; i < 3; i++) {
int sum = 0;
for (int j = 0; j < 2; j++) {
sum += p[i][j];
}
cout << "学生" << i + 1 << "的平均成绩为:" << sum / 2 << endl;
}
return 0;
}
输出结果为:
学生1的平均成绩为:84
学生2的平均成绩为:84
学生3的平均成绩为:77.5
使用一级指针操作该二维数组,计算每门课程的学生平均成绩可以使用以下方法:
#include
using namespace std;
int main() {
int a[3][2] = {{90,78},{88,80},{79,76}};
int *p = a;
for (int i = 0; i < 2; i++) {
int sum = 0;
for (int j = 0; j < 3; j++) {
sum += p[j * 2 + i];
}
cout << "课程" << i + 1 << "的平均成绩为:" << sum / 3 << endl;
}
return 0;
}
输出结果为:
课程1的平均成绩为:83.66667
课程2的平均成绩为:78.66667
用行指针:
#include <iostream>
using namespace std;
int main()
{
int a[3][2] = {{90,78},{88,80},{79,76}};
int (*p)[2] = a;
for(int i=0;i<3;i++)
{
int sum = 0;
for(int j=0;j<2;j++)
sum += *(*(p+i)+j);
cout<<"第"<<i+1<<"名学生平均成绩为:"<<sum/2.0<<endl;
}
return 0;
}
用一级指针:
#include <iostream>
using namespace std;
int main()
{
int a[3][2] = {{90,78},{88,80},{79,76}};
int *p = (int*)a;
for(int i=0;i<3;i++)
{
int sum = 0;
for(int j=0;j<2;j++)
sum += *(p+i*2+j);
cout<<"第"<<i+1<<"名学生平均成绩为:"<<sum/2.0<<endl;
}
return 0;
}