天天看點

C語言結構體函數的引用,分函數的引用問題,如何調用結構體

該樓層疑似違規已被系統折疊 隐藏此樓檢視此樓

#include

struct Stu

{

char name[20];

int Xuehao;

float Chinese;

float Math;

float English;

float all;

}student[5];

struct Stu student[];

void TolCom(student)

{

struct Stu tem;

int i,j;

float total1,total2;

for(i=0;i<5;i++)

{

for(j=i+1;j<5;j++)

{

total1=student[i].all;

total2=student[j].all;

if (total1 > total2)

{

tem = student[i];

student[i] = student[j];

student[j] = tem;

}

}

}

}

void GraDec(float i1)

{

for(;;)

{

if(i1<0||i1>100)

{

printf("illegal\n");

printf("please input it again\n");

fflush(stdin);

scanf("%f",&i1);

continue;

}

break;

}

}

void main()

{

int i;

float i1;

for(i=0;i<5;i++)

{

printf("the information of NO.%d\n",i+1);

printf("please input name\n");

scanf("%s",&student[i].name);

printf("%s\n",student[i].name);

printf("please input xuehao\n");

scanf("%d",&student[i].Xuehao);

printf("please input chinese scores\n");

scanf("%f",&i1);

GraDec( i1);

student[i].Chinese=i1;

printf("please input english scores\n");

scanf("%f",&i1);

GraDec( i1);

student[i].English=i1;

printf("please input Math scores\n");

scanf("%f",&i1);

GraDec( i1);

student[i].Math=i1;

}

printf("%f",student[2].Chinese);

printf("***********************未排序總成績如下**************\n");

for(i=0;i<5;i++)

{

printf("the TOTAL score of NO.%d\t",i);

student[i].all=student[i].Math+student[i].Chinese+student[i].English;

printf("%f\n",student[i].all);

}

TolCom(student);

printf("*******************排序結果如下***********************\n");

for(i=0;i<5;i++)

{

printf("%d\t %f\n",i,student[i].all);

}

}