admin 管理员组

文章数量: 887021


2024年1月28日发(作者:sqlserver2008企业版)

C语言程序:某班有10名同学,建立学生结构体类型,包括学号,姓名,3门课程的成绩,编写程序

编译代码:

#include

#include"string.h"

#include

#define N 100000

struct st{

char a[15];

char b[20];

int x,y,z;

};

int fun1(int *x,int *y)

{

int t;

t=*x;

*x=*y;

*y=t;

}

int fun2(char *x,char *y)

{

char *t;

strcpy(t,x);

strcpy(x,y);

strcpy(y,t);

}

int main() {

/*_________________________________________________*/

FILE *fp,*ok;

char b[N + 1];

//判断文件是否打开

if ( (fp = fopen("D:操作文件1号.txt", "r")) ==

NULL )/*这里D:操作文件1号.txt 是路径;读取D盘下,名为(操作文件1号)的文本文件*/

{

puts("操作文件1号读取失败!");

exit(0);

}

else

{

puts("操作文件1号读取成功");

puts("开始计算");

}

/*__________________________________________*/

struct st s[111];

char t[20],str[N];

int aver[111]={0};

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

{

fscanf(fp,"%s%s%d%d%d",s[i].a,s[i].b,&s[i].x,&s[i].y,&s[i].z);

printf("%s %s %d %d %dn",s[i].a,s[i].b,s[i].x,s[i].y,s[i].z);

}

printf("按平均成绩排序n");

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

{

aver[i]=(s[i].x+s[i].y+s[i].z)*1.0/3;

}

printf("n");

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

{

for(int j=0;j<4-i;j++)

{

if(aver[j]

{

fun2(s[j].a,s[j+1].a);

fun2(s[j].b,s[j+1].b);

fun1(&aver[j],&aver[j+1]);

fun1(&s[j].x,&s[j+1].x);

fun1(&s[j].y,&s[j+1].y);

fun1(&s[j].z,&s[j+1].z);

}

}

}

if ( (ok = fopen("D:操作文件2号.txt", "w")) ==

NULL )/*D:操作文件2号.txt 是路径;写入D盘下,名为(操作文件2号)的文本文件*/

{

puts("操作文件2号写入失败!");

exit(0);

}

else

{

puts("操作文件2号写入成功");

}

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

{

fprintf(ok,"第%d名;%s %s %d %d %dn",i+1,s[i].a,s[i].b,s[i].x,s[i].y,s[i].z);

printf("第%d名;%s %s %d %d %dn",i+1,s[i].a,s[i].b,s[i].x,s[i].y,s[i].z);

}

/*___________________________________________*/

//结束关闭文件

fclose(ok);

fclose(fp);

return 0;

}


本文标签: 文件 操作 结构 成绩 课程