1 /*采用动态分配方法设计一个学生处理程序,要求输入任意数量学生的学号、姓名和四门课的成绩,并按平均成绩高低输出每个学生的姓名和成绩*/ 2 #include<iostream> 3 using namespace std; 4 int main() 5 { 6 int size=0; 7 cout<<"请输入学生数目:"; 8 cin>>size; 9 int *no=new int[size]; 10 char *na=new char[size]; 11 float *ave=new float[size]; 12 float a,b,c,d; 13 for(int i=0;i<size;i++) 14 { 15 cout<<"学生"<<i+1<<"的信息:"; 16 cin>>*(no+i)>>*(na+i)>>a>>b>>c>>d; 17 *(ave+i)=(a+b+c+d)/4.0; 18 } 19 for(int i=0;i<size;i++){ //冒泡排序 20 21 for(int j=0;j<size-i-1;j++) 22 { 23 if(*(ave+j)<*(ave+j+1)) 24 { 25 float temp1; 26 char temp2; 27 temp1=*(ave+j); 28 *(ave+j)=*(ave+j+1); 29 *(ave+j+1)=temp1; 30 temp2=*(na+j); 31 *(na+j)=*(na+j+1); 32 *(na+j+1)=temp2; 33 } 34 } 35 } 36 for(int i=0;i<size;i++) 37 { 38 cout<<"第"<<i+1<<"名是:"<<*(na+i)<<" "<<*(ave+i)<<endl; 39 } 40 delete []no; 41 delete []na; 42 delete []ave; 43 return 0; 44 }