c语言函数与结构体实验 c 结构体函数( 四 )


}
void zongfen()
{
int i;
for(i=0;ixshsh;i++)
{
ptstu[i].zpchj[0]=0.2*ptstu[i].pshchj[0]+0.8*ptstu[i].kshchj[0];
ptstu[i].zpchj[1]=0.2*ptstu[i].pshchj[1]+0.8*ptstu[i].kshchj[1];
ptstu[i].zpchj[2]=0.2*ptstu[i].pshchj[2]+0.8*ptstu[i].kshchj[2];
ptstu[i].zf=ptstu[i].zpchj[0]+ptstu[i].zpchj[1]+ptstu[i].zpchj[2];
printf("%s的%s,%s,%s的总评成绩是:",ptstu[i].xm,ptstu[i].kchm[0],ptstu[i].kchm[1],ptstu[i].kchm[2]);
printf("%.2f , %.2f,%.2f\n",ptstu[i].zpchj[0],ptstu[i].zpchj[1],ptstu[i].zpchj[2]);
printf("%s的总分是:%.2f\n",ptstu[i].xm,ptstu[i].zf);
}
printf("\n");
}
void shuchumaxmin()
{
int i,min,max;
min=max=0;
for(i=1;ixshsh;i++)
{
if(ptstu[i].zfptstu[min].zf)
{
min=i;
}
if(ptstu[i].zfptstu[max].zf)
{
max=i;
}
}
printf("总分最高的学生的信息:\n学号\t姓名\t");
printf("%s(平时)\t%s(平时)\t%s(平时)",ptstu[max].kchm[0],ptstu[max].kchm[1],ptstu[max].kchm[2]);
printf("\t%s(考试)\t%s(考试)\t%s(考试)\t总分\n",ptstu[max].kchm[0],ptstu[max].kchm[1],ptstu[max].kchm[2]);
printf("%s\t%s\t",ptstu[max].xh,ptstu[max].xm);
printf("%.2f\t%.2f\t%.2f\t",ptstu[max].pshchj[0],ptstu[max].pshchj[1],ptstu[max].pshchj[2]);
printf("%.2f\t%.2f\t%.2f\t%.2f\n\n",ptstu[max].kshchj[0],ptstu[max].kshchj[1],ptstu[max].kshchj[2],ptstu[max].zf);
printf("总分最低的学生的信息:\n学号\t姓名\t");
printf("%s(平时)\t%s(平时)\t%s(平时)",ptstu[min].kchm[0],ptstu[min].kchm[1],ptstu[min].kchm[2]);
printf("\t%s(考试)\t%s(考试)\t%s(考试)\t总分\n",ptstu[min].kchm[0],ptstu[min].kchm[1],ptstu[min].kchm[2]);
printf("%s\t%s\t",ptstu[min].xh,ptstu[min].xm);
printf("%.2f\t%.2f\t%.2f\t",ptstu[min].pshchj[0],ptstu[min].pshchj[1],ptstu[min].pshchj[2]);
printf("%.2f\t%.2f\t%.2f\t%.2f\n\n",ptstu[min].kshchj[0],ptstu[min].kshchj[1],ptstu[min].kshchj[2],ptstu[min].zf);
}
void sortbook()
{
int i,j,min;
BookInformation t;
for(i=0;ishsh-1;i++)
{
min=i;
for(j=i+1;jshsh;j++)
{
if(ptbook[j].djptbook[min].dj)
{
min=j;
}
}
t=ptbook[i];
ptbook[i]=ptbook[min];
ptbook[min]=t;
}
}
void freeall()
{
if(NULL!=ptstu)
{
free(ptstu);
}
if(NULL!=ptbook)
{
free(ptbook);
}
}
//data.txt文件
50 65 70 88 97 80
66 87 95 46 88 97
77 82 65 58 91 58
78 87 91 48 66 70
C语言gets()函数和结构体的使用请不要使用getch();,这是非标准库里的函数,通常定义在conio.h里,部分老的编译器只用stdio.h也能通过 。conio.h里包括的putch(),ungetch()等函数有时定义不同会造成许多麻烦 。你的程序无法正常运行就与getch()有关 。getch();可以吸收字符,但是有时吸收回车字符之后又把字符给了下面的输入函数 。把getch()改成getchar()就可以了,两者视觉上的区别是getch()吸收的字符不会打印在屏幕上,而getchar()吸收的字符会 。功能上的区别是只要用户输入了字符,getch就会返回用户键入字符的ASCII码,出错会返回-1 。而getchar会一直等到用户输入回车才把字符(带着回车)一块儿扔进缓冲区里 。
c语言中如何用子函数调用结构体中的变量实现数据的输入与输出 。用子函数实现结构体数据的输入与输出:对于多数子函数的输入与输出,有一定规律性可言 。
方法1:void型不传值传址调用与声明 。main中声明void date_in(),void date_pout() 。函数定义前一定在main()前先定义结构体变量(全局变量),然后定义输入或输出程序段 。此时再main()调用即可 。
如下:
struct student

推荐阅读