ex3
是;是;是;是
ex4
(1)是;是;否
(2)
#include<stdio.h>
#include <stdlib.h>
#define N 10
// 定义一个结构体类型STU
typedef struct student {
int num;
char name[20];
int score;
}STU;
int main(){
FILE *fin, *fout; // 定义文件类型指针
STU st[N];
int i;
fin = fopen("file4.dat", "rb"); // 以只读文本方式打开文件file4.dat
if(!fin){
printf("Failed to open the file\n");
exit(0);
}
// 从fin指向的数据文件file4.dat中读取数据到结构体数组st
fread(st,sizeof(STU),N,fin);
fclose(fin);
for(i=0; i<N; i++)
fprintf(stdout,"%-6d%-10s%3d\n", st[i].num, st[i].name, st[i].score);
fclose(fout);
return 0;
}
ex5
//task5 #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 10 typedef struct student{ int num; char name[20]; float kg; float zg; float sum; char level[10]; }STU; int main(){ FILE *fin, *fout; int i,j, perfect, pass,min; STU s[N]; fin = fopen("6.txt","r"); if(fin == NULL){ printf("fail to open 6.txt\n"); exit(0); } for(i = 0 ; i < N; i++){ fscanf(fin,"%d %s %f %f",&s[i].num ,s[i].name, &s[i].kg ,&s[i].zg ); s[i].sum = s[i].kg + s[i].zg; } fclose(fin); STU temp; for(i = N - 1 ;i > 0 ; i--){ j = i - 1; min = s[i].sum; for( ; j >= 0;j--){ if( s[j].sum < min){ min = s[j].sum; temp = s[i]; s[i] = s[j]; s[j] = temp; } } } perfect = N * 0.1; pass = N * 0.5; for(i = 0 ; i < N ;i++){ if(i < perfect ){ strcpy(s[i].level , "优"); } else if(i < pass){ strcpy(s[i].level , "合格"); } else{ strcpy(s[i].level , "不合格"); } } fout = fopen("7.txt","w"); if(fout == NULL){ printf("fail to open 7.txt\n"); exit(0); } for( i = 0 ; i < N; i++){ fprintf(fout, "%-6d%-15s%-8.2f%-8.2f%-8.2f%-10s\n",s[i].num,s[i].name,s[i].kg,s[i].zg,s[i].sum,s[i].level); printf("%-6d%-15s%-8.2f%-8.2f%-8.2f%-10s\n",s[i].num,s[i].name,s[i].kg,s[i].zg,s[i].sum,s[i].level); } fclose(fout); return 0; }

浙公网安备 33010602011771号