有哪位高手帮我解决一下两个C++问题,万分感谢!

2025-01-10 23:45:35
推荐回答(1个)
回答1:

1.修改后

#include

using namespace std;

void pcave(double *t);
void psave(double *t);
void main()
{
double s[30][3]={{88,71,90},{94,93,79},{81,75,67},{72,69,83},{81,78,77},{89,69,71},{85,89,83},{78,67,69},{90,98,89},{83,77,79},{66,80,65},{77,79,85},{92,95,99},{99,75,78},{98,96,85},{87,68,69},{63,89,78},{95,94,91},{95,96,92},{93,98,82},{86,97,83},{84,78,72},{86,84,72},{76,96,81},{95,86,72},{73,86,87},{87,84,82},{91,68,69},{96,67,82},{83,84,99}};
double *p;
p=&s[0][0];
cout<<"全体学生三门课的成绩"< for(int i=0;i<90;i++)
{ cout<<*p ++<<" ";
if((i+1)%3==0) cout<}
p=&s[0][0];
cout<<"每门课的平均成绩为:"< pcave(p);
p=&s[0][0];
cout<<"每个学生的平均成绩为:"< psave(p);

}
void pcave(double *t)
{
double sum[3];
double *p;
sum[0] = sum[1] = sum[2] = 0.;

for(int i=0;i<3;i++)
{
p = t + i;
for(int j=0;j<30;j++) {
sum[i]+=*p;
p+=3;
}

}

for(i=0;i<3;i++)
{ cout< cout<}
}
void psave(double *t)
{
double sum[30];
for( int k=0; k<30; k++ )
sum[k] = 0;

for(int i=0;i<30;i++)
{
for(int j=0;j<3;j++ )
sum[i]+=*t;
t++;
}
for(i=0;i<30;i++)
{ cout< cout<}
}

2. 修改化后,指修改了语法错误. 剩下的自己做
#include

using namespace std;

struct student
{
int num;
char name[10];
double score_chinese;
double score_english;
double score_math;
};

void ave(struct student stu[6]);
void arrange(struct student stu[6],double scroe[6]);

void main()
{
student stu[6]={
{001,"zhang",88,95,83},
{002,"wang",98,95,77},
{003,"li",76,84,97},
{004,"zhao",85,95,87},
{005,"sun",98,88,86},
{006,"qian",74,82,90}
};
cout<<"学生数据如下:"< for(int i=0;i<6;i++)
cout< ave( stu );
double score[6];

arrange( stu,score );
cout<<"学生成绩排序如下:"< for(i=0;i<6;i++)
cout<}

void ave(struct student stu[6])
{
double ave[6] ;
for(int i=0;i<6;i++)
ave[i]=(stu[i]. score_chinese+ stu[i]. score_english+ stu[i]. score_math)/3;
cout<< "每个学生的平均成绩是:"< for(i=0 ;i<6;i++)
cout<}

void arrange(struct student stu[6],double score[6])
{
struct student temp,*p ;
for(int i=0;i<5;i++)
for(int j=1;j>i;j++)
{if(score[i] {temp=stu[i]; stu[i]=stu[j]; stu[j]=temp;
}
}
}