#include<stdio.h>
typedef enum//宣告列舉型別
{
men,women
}Sex;
typedef struct//宣告結構體
{
char id[10];
char name[10];
Sex sex;
float score[3];
float xfj;
}student;
typedef struct
{
char id[10];
char name[10];
float credit;
}course;
void xuefenji(student *pstu,int m,course *pcr,int n)//求學分績
{
void paixu(student *pstu,int m);
int i,j;
float fjh,xfh;//學分成績和,學分和
for(i=0;i<m;i++)
{
fjh=0;
xfh=0;
for(j=0;j<n;j++)
{
fjh+=(pstu+i)->score[j]*(pcr+j)->credit;
xfh+=(pcr+j)->credit;
}
(pstu+i)->xfj=fjh/xfh;
}
}
void paixu(student *pstu,int m)
{
void shuchu(student *pstu,int m);
int i,j;
student t_stu;
for(i=0;i<m;i++)
{
for(j=i++;j<m;j++)
{
if((pstu+i)->xfj<(pstu+j)->xfj)
{
t_stu=*(pstu+i);
*(pstu+i)=*(pstu+j);
*(pstu+j)=t_stu;
}
}
}
shuchu(pstu,m);
}
void shuchu(student *pstu,int m)
{
int i;
for(i=0;i<m;i++)
{
printf("%-8s%-8s%-5.1s",pstu->id,pstu->name,pstu->sex==men?'m':'w');
//printf("%-4.1f%-4.1f%-4.1f",pstu->score[0],pstu->[1],pstu->[2]);
printf("%-4.1f\n",pstu->xfj);
pstu++;
}
}
main()
{
student stu[2]={{"17104265","csc","men",95,85,90},{"17101314","hyn","women",90,85,100}};
course cr[3]={{"001","C語言",4},{"002","高數",3},{"003","大學英語",3}};
student *pstu=stu;
printf("---------------------------------------------\n");
printf("學生學習情況");
printf("\n---------------------------------------------\n");
xuefenji(stu,5,cr,3);
paixu(stu,5);
//shuchu(stu,5);
/*for(;pstu<pstu+5;pstu++)
{
printf("%-8s%-8s%-5.1s",pstu->id,pstu->name,pstu->sex==men?'m':'w');
//printf("%-4.1f%-4.1f%-4.1f",pstu->score[0],pstu->[1],pstu->[2]);
printf("%-4.1f\n",pstu->xfj);
pstu++;
}*/
printf("---------------------------------------------\n");
}
uj5u.com熱心網友回復:
單步執行、設定斷點,試試。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/130867.html
標籤:C語言
上一篇:csdn提示非法詞組
