#include <cstdio>
#include <stdlib.h>
#include <iostream>
#define SIZE 6
using namespace std;
int sum ( int x, int y, int z );
int average (int x, int y, int z );
int main2( void );
int main3( void );
int main4( void );
int main41( void );
int main42( void );
int main43( void );
int nop; //輸入人數
typedef struct Student
{
char *name,na;
char *id,nu;
int Cscore;
int Escore;
int Mscore;
int Sscore;
int Ascore;
};
int main( void )
{
Student data[SIZE];
int i;
for( i = 0 ; i < SIZE ; i++ )
{
data[i].name = &data[i].na ;
data[i].id = &data[i].nu ;
data[i].Cscore = 0 ;
data[i].Escore = 0 ;
data[i].Mscore = 0 ;
cout << "第" << i+1 << "個學生\n" ;
cout << "請輸入姓名:" ;
scanf( "%s", &data[i].na );
cout << "請輸入學號:" ;
scanf( "%s", &data[i].nu );
cout << "請輸入國文分數:" ;
scanf( "%d", &data[i].Cscore );
cout << "請輸入英文分數:" ;
scanf( "%d", &data[i].Escore );
cout << "請輸入數學分數:" ;
scanf( "%d", &data[i].Mscore );
data[i].Sscore = sum( data[i].Cscore, data[i].Escore, data[i].Mscore );
data[i].Ascore = average( data[i].Cscore, data[i].Escore, data[i].Mscore );
cout << "總成績:" << data[i].Sscore << '\n';
cout << "平均分數:" << data[i].Ascore << '\n';
nop = i + 1;
}
cout << "請輸入數字選擇要執行的功能:\n" ;
cout << "( 1 )依照名次排序\n" ;
cout << "( 2 )依照學號排序\n" ;
cout << "( 3 )依各科成績號排序\n" ;
cout << "( 4 )結束\n" ;
int ch;
cin >> ch ;
if( ch == 1 ){ main2(); }
else if( ch == 2 ) { main3(); }
else if( ch == 3 ) { main4(); }
else if( ch == 4 ) { return 0; }
else { cout << "輸入錯誤"; }
}
int main2( void ) //排名
{
printf( "姓名\t學號\t國文\t英文\t數學\t總分\t平均\n" );
Student data[SIZE];
int i, k ;
for ( i = 0 ; i < SIZE ; i++ ){
for( ;data[k].Ascore != i+1;k++ );{
printf( "%4d\t%4d\t%4d\t%4d\t%4d\t%4d\t%4d\n" , data[k].name , data[k].id , data[k].Cscore , data[k].Escore , data[k].Mscore , data[k].Sscore , data[k].Ascore );
k = 0;
}}
system( "pause" );
return 0;
}
int main3( void ) //學號
{
printf( "姓名\t學號\t國文\t英文\t數學\t總分\t平均\n" );
Student data[SIZE];
int i, k ;
for ( i = 0 ; i < SIZE ; i++ ){
for( ;data[k].nu != i+1;k++ );{
printf( "%4d\t%4d\t%4d\t%4d\t%4d\t%4d\t%4d\n" , data[k].name , data[k].id , data[k].Cscore , data[k].Escore , data[k].Mscore , data[k].Sscore , data[k].Ascore );
k = 0;
}}
system( "pause" );
return 0;
}
int main4( void ) //各科成績
{
cout << "請輸入數字選擇要排序的科目:\n" ;
cout << "( 1 )依照國文成績排序\n" ;
cout << "( 2 )依照英文成績排序\n" ;
cout << "( 3 )依照數學成績排序\n" ;
cout << "( 4 )結束\n" ;
int ch;
cin >> ch;
if( ch == 1 ){ main41(); }
else if( ch == 2 ) { main42(); }
else if( ch == 3 ) { main43(); }
else if( ch == 4 ) { return 0; }
else { cout << "輸入錯誤"; }
return 0;
}
int main41( void ) //國文
{
printf( "姓名\t學號\t國文\t英文\t數學\t總分\t平均\n" );
Student data[SIZE];
int i, k ;
for ( i = 0 ; i < SIZE ; i++ ){
for( ;data[k].Cscore != i+1;k++ );{
printf( "%4d\t%4d\t%4d\t%4d\t%4d\t%4d\t%4d\n" , data[k].name , data[k].id , data[k].Cscore , data[k].Escore , data[k].Mscore , data[k].Sscore , data[k].Ascore );
k = 0;
}}
system( "pause" );
return 0;
}
int main42( void ) //英文
{
printf( "姓名\t學號\t國文\t英文\t數學\t總分\t平均\n" );
Student data[SIZE];
int i, k ;
for ( i = 0 ; i < SIZE ; i++ ){
for( ;data[k].Escore != i+1;k++ );{
printf( "%4d\t%4d\t%4d\t%4d\t%4d\t%4d\t%4d\n" , data[k].name , data[k].id , data[k].Cscore , data[k].Escore , data[k].Mscore , data[k].Sscore , data[k].Ascore );
k = 0;
}}
system( "pause" );
return 0;
}
int main43( void ) //數學
{
printf( "姓名\t學號\t國文\t英文\t數學\t總分\t平均\n" );
Student data[SIZE];
int i, k ;
for ( i = 0 ; i < SIZE ; i++ ){
for( ;data[k].Mscore != i+1;k++ );{
printf( "%4d\t%4d\t%4d\t%4d\t%4d\t%4d\t%4d\n" , data[k].name , data[k].id , data[k].Cscore , data[k].Escore , data[k].Mscore , data[k].Sscore , data[k].Ascore );
k = 0;
}}
system( "pause" );
return 0;
}
int sum ( int x, int y, int z ){ return x + y + z ; }
int average (int x, int y, int z ){ return ( x + y + z ) / 3; }
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8aW9zdHJlYW0+CgojZGVmaW5lIFNJWkUgNgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBzdW0gKCBpbnQgeCwgaW50IHksIGludCB6ICk7CmludCBhdmVyYWdlIChpbnQgeCwgaW50IHksIGludCB6ICk7CgppbnQgbWFpbjIoIHZvaWQgKTsKaW50IG1haW4zKCB2b2lkICk7CmludCBtYWluNCggdm9pZCApOwppbnQgbWFpbjQxKCB2b2lkICk7CmludCBtYWluNDIoIHZvaWQgKTsKaW50IG1haW40Myggdm9pZCApOwoKaW50IG5vcDsgICAgLy/ovLjlhaXkurrmlbgKCnR5cGVkZWYgc3RydWN0IFN0dWRlbnQKewoJY2hhciAqbmFtZSxuYTsKCWNoYXIgKmlkLG51OwoJaW50IENzY29yZTsKCWludCBFc2NvcmU7CglpbnQgTXNjb3JlOwoJaW50IFNzY29yZTsKCWludCBBc2NvcmU7Cgp9OwoKaW50IG1haW4oIHZvaWQgKQp7CglTdHVkZW50IGRhdGFbU0laRV07CglpbnQgaTsKCglmb3IoIGkgPSAwIDsgaSA8IFNJWkUgOyBpKysgKQoJewoJCWRhdGFbaV0ubmFtZSA9ICZkYXRhW2ldLm5hIDsKCQlkYXRhW2ldLmlkID0gJmRhdGFbaV0ubnUgOwoJCWRhdGFbaV0uQ3Njb3JlID0gMCA7CgkJZGF0YVtpXS5Fc2NvcmUgPSAwIDsKCQlkYXRhW2ldLk1zY29yZSA9IDAgOwoKCQljb3V0IDw8ICLnrKwiIDw8IGkrMSA8PCAi5YCL5a2455SfXG4iIDsKCQljb3V0IDw8ICLoq4vovLjlhaXlp5PlkI3vvJoiIDsKCQlzY2FuZiggIiVzIiwgJmRhdGFbaV0ubmEgKTsKCQljb3V0IDw8ICLoq4vovLjlhaXlrbjomZ/vvJoiIDsKCQlzY2FuZiggIiVzIiwgJmRhdGFbaV0ubnUgKTsKCQljb3V0IDw8ICLoq4vovLjlhaXlnIvmlofliIbmlbjvvJoiIDsKCQlzY2FuZiggIiVkIiwgJmRhdGFbaV0uQ3Njb3JlICk7CgkJY291dCA8PCAi6KuL6Ly45YWl6Iux5paH5YiG5pW477yaIiA7CgkJc2NhbmYoICIlZCIsICZkYXRhW2ldLkVzY29yZSApOwoJCWNvdXQgPDwgIuiri+i8uOWFpeaVuOWtuOWIhuaVuO+8miIgOwoJCXNjYW5mKCAiJWQiLCAmZGF0YVtpXS5Nc2NvcmUgKTsKCgkJZGF0YVtpXS5Tc2NvcmUgPSBzdW0oIGRhdGFbaV0uQ3Njb3JlLCBkYXRhW2ldLkVzY29yZSwgZGF0YVtpXS5Nc2NvcmUgKTsKCQlkYXRhW2ldLkFzY29yZSA9IGF2ZXJhZ2UoIGRhdGFbaV0uQ3Njb3JlLCBkYXRhW2ldLkVzY29yZSwgZGF0YVtpXS5Nc2NvcmUgKTsKCQljb3V0IDw8ICLnuL3miJDnuL7vvJoiIDw8IGRhdGFbaV0uU3Njb3JlIDw8ICdcbic7CgkJY291dCA8PCAi5bmz5Z2H5YiG5pW477yaIiA8PCBkYXRhW2ldLkFzY29yZSA8PCAnXG4nOwoJCW5vcCA9IGkgKyAxOwoJfQoKCWNvdXQgPDwgIuiri+i8uOWFpeaVuOWtl+mBuOaTh+imgeWft+ihjOeahOWKn+iDve+8mlxuIiA7Cgljb3V0IDw8ICIoIDEgKeS+neeFp+WQjeasoeaOkuW6j1xuIiA7Cgljb3V0IDw8ICIoIDIgKeS+neeFp+WtuOiZn+aOkuW6j1xuIiA7Cgljb3V0IDw8ICIoIDMgKeS+neWQhOenkeaIkOe4vuiZn+aOkuW6j1xuIiA7Cgljb3V0IDw8ICIoIDQgKee1kOadn1xuIiA7CglpbnQgY2g7CgljaW4gPj4gY2ggOwoJCglpZiggY2ggPT0gMSApewltYWluMigpOyB9CgllbHNlIGlmKCBjaCA9PSAyICkgewltYWluMygpOyB9CgllbHNlIGlmKCBjaCA9PSAzICkgewltYWluNCgpOyB9CgllbHNlIGlmKCBjaCA9PSA0ICkgeyByZXR1cm4gMDsgfQoJZWxzZSB7CWNvdXQgPDwgIui8uOWFpemMr+iqpCI7IH0KCn0KCgppbnQgbWFpbjIoIHZvaWQgKQkJLy/mjpLlkI0KewoJcHJpbnRmKCAi5aeT5ZCNXHTlrbjomZ9cdOWci+aWh1x06Iux5paHXHTmlbjlrbhcdOe4veWIhlx05bmz5Z2HXG4iICk7CglTdHVkZW50IGRhdGFbU0laRV07CglpbnQgaSwgayA7Cglmb3IgKCBpID0gMCA7IGkgPCBTSVpFIDsgaSsrICl7CgkJZm9yKCA7ZGF0YVtrXS5Bc2NvcmUgIT0gaSsxO2srKyApO3sKCQkJcHJpbnRmKCAiJTRkXHQlNGRcdCU0ZFx0JTRkXHQlNGRcdCU0ZFx0JTRkXG4iICwgZGF0YVtrXS5uYW1lICwgZGF0YVtrXS5pZCAsIGRhdGFba10uQ3Njb3JlICwgZGF0YVtrXS5Fc2NvcmUgLCBkYXRhW2tdLk1zY29yZSAsIGRhdGFba10uU3Njb3JlICwgZGF0YVtrXS5Bc2NvcmUgKTsKCQkJayA9IDA7CgkJfX0KCXN5c3RlbSggInBhdXNlIiApOwoJcmV0dXJuIDA7Cn0KaW50IG1haW4zKCB2b2lkICkJCS8v5a246JmfCnsKCXByaW50ZiggIuWnk+WQjVx05a246JmfXHTlnIvmlodcdOiLseaWh1x05pW45a24XHTnuL3liIZcdOW5s+Wdh1xuIiApOwoJU3R1ZGVudCBkYXRhW1NJWkVdOwoJaW50IGksIGsgOwoJZm9yICggaSA9IDAgOyBpIDwgU0laRSA7IGkrKyApewoJCWZvciggO2RhdGFba10ubnUgIT0gaSsxO2srKyApO3sKCQkJcHJpbnRmKCAiJTRkXHQlNGRcdCU0ZFx0JTRkXHQlNGRcdCU0ZFx0JTRkXG4iICwgZGF0YVtrXS5uYW1lICwgZGF0YVtrXS5pZCAsIGRhdGFba10uQ3Njb3JlICwgZGF0YVtrXS5Fc2NvcmUgLCBkYXRhW2tdLk1zY29yZSAsIGRhdGFba10uU3Njb3JlICwgZGF0YVtrXS5Bc2NvcmUgKTsKCQkJayA9IDA7CgkJfX0KCXN5c3RlbSggInBhdXNlIiApOwoJcmV0dXJuIDA7CgkKfQppbnQgbWFpbjQoIHZvaWQgKQkJLy/lkITnp5HmiJDnuL4KewoJY291dCA8PCAi6KuL6Ly45YWl5pW45a2X6YG45pOH6KaB5o6S5bqP55qE56eR55uu77yaXG4iIDsKCWNvdXQgPDwgIiggMSAp5L6d54Wn5ZyL5paH5oiQ57i+5o6S5bqPXG4iIDsKCWNvdXQgPDwgIiggMiAp5L6d54Wn6Iux5paH5oiQ57i+5o6S5bqPXG4iIDsKCWNvdXQgPDwgIiggMyAp5L6d54Wn5pW45a245oiQ57i+5o6S5bqPXG4iIDsKCWNvdXQgPDwgIiggNCAp57WQ5p2fXG4iIDsKCWludCBjaDsKCWNpbiA+PiBjaDsKCWlmKCBjaCA9PSAxICl7CW1haW40MSgpOyB9CgllbHNlIGlmKCBjaCA9PSAyICkgewltYWluNDIoKTsgfQoJZWxzZSBpZiggY2ggPT0gMyApIHsJbWFpbjQzKCk7IH0KCWVsc2UgaWYoIGNoID09IDQgKSB7IHJldHVybiAwOyB9CgllbHNlIHsJY291dCA8PCAi6Ly45YWl6Yyv6KqkIjsgfQoJcmV0dXJuIDA7Cn0KaW50IG1haW40MSggdm9pZCApCQkvL+Wci+aWhwp7CglwcmludGYoICLlp5PlkI1cdOWtuOiZn1x05ZyL5paHXHToi7HmlodcdOaVuOWtuFx057i95YiGXHTlubPlnYdcbiIgKTsKCVN0dWRlbnQgZGF0YVtTSVpFXTsKCWludCBpLCBrIDsKCWZvciAoIGkgPSAwIDsgaSA8IFNJWkUgOyBpKysgKXsKCQlmb3IoIDtkYXRhW2tdLkNzY29yZSAhPSBpKzE7aysrICk7ewoJCXByaW50ZiggIiU0ZFx0JTRkXHQlNGRcdCU0ZFx0JTRkXHQlNGRcdCU0ZFxuIiAsIGRhdGFba10ubmFtZSAsIGRhdGFba10uaWQgLCBkYXRhW2tdLkNzY29yZSAsIGRhdGFba10uRXNjb3JlICwgZGF0YVtrXS5Nc2NvcmUgLCBkYXRhW2tdLlNzY29yZSAsIGRhdGFba10uQXNjb3JlICk7CgkJayA9IDA7CgkJfX0KCXN5c3RlbSggInBhdXNlIiApOwoJcmV0dXJuIDA7Cn0KaW50IG1haW40Miggdm9pZCApCQkvL+iLseaWhwp7CglwcmludGYoICLlp5PlkI1cdOWtuOiZn1x05ZyL5paHXHToi7HmlodcdOaVuOWtuFx057i95YiGXHTlubPlnYdcbiIgKTsKCVN0dWRlbnQgZGF0YVtTSVpFXTsKCWludCBpLCBrIDsKCWZvciAoIGkgPSAwIDsgaSA8IFNJWkUgOyBpKysgKXsKCQlmb3IoIDtkYXRhW2tdLkVzY29yZSAhPSBpKzE7aysrICk7ewoJCXByaW50ZiggIiU0ZFx0JTRkXHQlNGRcdCU0ZFx0JTRkXHQlNGRcdCU0ZFxuIiAsIGRhdGFba10ubmFtZSAsIGRhdGFba10uaWQgLCBkYXRhW2tdLkNzY29yZSAsIGRhdGFba10uRXNjb3JlICwgZGF0YVtrXS5Nc2NvcmUgLCBkYXRhW2tdLlNzY29yZSAsIGRhdGFba10uQXNjb3JlICk7CgkJayA9IDA7CgkJfX0KCXN5c3RlbSggInBhdXNlIiApOwoJcmV0dXJuIDA7Cn0KaW50IG1haW40Myggdm9pZCApCQkvL+aVuOWtuAp7CglwcmludGYoICLlp5PlkI1cdOWtuOiZn1x05ZyL5paHXHToi7HmlodcdOaVuOWtuFx057i95YiGXHTlubPlnYdcbiIgKTsKCVN0dWRlbnQgZGF0YVtTSVpFXTsKCWludCBpLCBrIDsKCWZvciAoIGkgPSAwIDsgaSA8IFNJWkUgOyBpKysgKXsKCQlmb3IoIDtkYXRhW2tdLk1zY29yZSAhPSBpKzE7aysrICk7ewoJCXByaW50ZiggIiU0ZFx0JTRkXHQlNGRcdCU0ZFx0JTRkXHQlNGRcdCU0ZFxuIiAsIGRhdGFba10ubmFtZSAsIGRhdGFba10uaWQgLCBkYXRhW2tdLkNzY29yZSAsIGRhdGFba10uRXNjb3JlICwgZGF0YVtrXS5Nc2NvcmUgLCBkYXRhW2tdLlNzY29yZSAsIGRhdGFba10uQXNjb3JlICk7CgkJayA9IDA7CgkJfX0KCXN5c3RlbSggInBhdXNlIiApOwoJcmV0dXJuIDA7Cn0KCmludCBzdW0gKCBpbnQgeCwgaW50IHksIGludCB6ICl7CQlyZXR1cm4geCArIHkgKyB6IDsJfQppbnQgYXZlcmFnZSAoaW50IHgsIGludCB5LCBpbnQgeiApewkJcmV0dXJuICggeCArIHkgKyB6ICkgLyAzOwl9