这种题目挺简单的,就是写起来比较繁琐
#include <iostream>
#include <cstring>
using namespace std;
int main(){
void average(float *);
void fail(float *);
void good(float *);
int i,j;
float stu[4][5];
float *p;
//输入成绩
cout<<"输入学生成绩:";
for(i=0;i<4;i++)
for(j=0;j<5;j++)
cin>>stu[i][j];
p=&stu[0][0];
//显示成绩
for(i=0;i<4;i++){
cout<<"第"<<i+1<<"个学生的成绩为:";
for(j=0;j<5;j++){
cout<<stu[i][j]<<" ";
}
cout<<endl;
}
//调用函数
average(p);
fail(p);
good(p);
return 0;
}
void average(float *p){
float avg1;
avg1 = (*(p)+*(p+5*1+0)+*(p+5*2+0)+*(p+5*3+0))/4;
cout<<"第一门课的平均成绩为:"<<avg1<<endl;
}
void fail(float *p){
int count=0;
int i,j;
//求平均成绩
float avg[4];
for(i=0;i<4;i++)
avg[i]=(*(p+5*i+0)+*(p+5*i+1)+*(p+5*i+2)+*(p+5*i+3)+*(p+5*i+4))/5;
for(i=0;i<4;i++){
for(j=0;j<5;j++){
if(*(p+5*i+j)<60)
count++;
if(count>=2){
cout<<"第"<<i+1<<"个学生有问题。"<<endl;
cout<<"此学生所有成绩为:";
for(j=0;j<5;j++){
cout<<*(p+5*i+j)<<" ";
}
cout<<endl;
cout<<"此学生平均成绩为:"<<avg[i]<<endl;
}
}
cout<<endl;
}
}
void good(float *p){
float avg[4];
int i,j;
for(i=0;i<4;i++)
avg[i]=(*(p+5*i+0)+*(p+5*i+1)+*(p+5*i+2)+*(p+5*i+3)+*(p+5*i+4))/5;
for(i=0;i<4;i++){
if( avg[i]>90 || ( *(p+5*i+0)>85 && *(p+5*i+1)>85 && *(p+5*i+2)>85 && *(p+5*i+3)>85 && *(p+5*i+4)>85)){
cout<<"成绩比较优秀的学生为第"<<i+1<<"个学生"<<endl;
}
}
cout<<"没有这种优秀的学生"<<endl;
}