1 #include <stdio.h> 2 #include <string.h> 3 #define N 3 4 typedef struct student 5 { 6 int id; 7 char name[20]; 8 char subject[20]; 9 double perf; 10 double mid; 11 double final; 12 double total; 13 char level[10]; 14 }STU;//定义STU表示student的结构体类型,然后可用STU来说明结构体变量 15 void input(STU[], int); 16 void output(STU[], int); 17 void calc(STU[], int); 18 int fail(STU[], STU[], int); 19 void sort(STU[], int); 20 int main() 21 { 22 STU st[N], fst[N]; // 数组st记录学生信息,fst记录不及格学生信息 23 int k; // 用于记录不及格学生个数 24 printf("录入学生成绩信息:\n"); 25 input(st, N);// 录入学生信息 26 printf("\n成绩处理...\n"); 27 calc(st, N);// 计算总评和等级 28 k = fail(st, fst, N);// 返回不及格学生个数 29 sort(st, N); 30 printf("\n学生成绩排名情况:\n"); 31 output(st, N); // 输出学生信息 32 printf("\n不及格学生信息:\n"); 33 output(fst, k); 34 return 0; 35 36 } 37 void input(STU s[], int n) 38 { 39 int i; 40 for(i=0;i<n;i++) 41 scanf("%d %s %s %lf %lf %lf", &s[i].id, s[i].name, s[i].subject,&s[i].perf, &s[i].mid, &s[i].final); 42 } 43 void output(STU s[], int n) 44 { 45 int i; 46 printf("-----------------\n"); 47 printf("学号 姓名 科目 平时 期中 期末 总评 等级\n"); 48 for (i = 0; i < n; i++) 49 printf("%d %-6s %-4s %-4.0f %-4.0f %-4.0f %-4.1f % s\n",s[i].id,s[i].name,s[i].subject,s[i].perf,s[i].mid,s[i].final,s[i].total, s[i].level); 50 } 51 void calc(STU s[], int n) 52 { 53 int i; 54 for (i = 0; i < n; i++) 55 { 56 s[i].total = s[i].perf * 0.2 +s[i].mid * 0.2 +s[i].final * 0.6; 57 if (s[i].total >= 90) 58 strcpy(s[i].level, "优"); 59 else if (s[i].total >= 80 && s[i].total < 90) 60 strcpy(s[i].level, "良"); 61 else if (s[i].total >= 70 && s[i].total < 80) 62 strcpy(s[i].level, "中"); 63 else if (s[i].total >= 60 && s[i].total < 70) 64 strcpy(s[i].level, "及格"); 65 else 66 strcpy(s[i].level, "不及格"); 67 } 68 } 69 int fail(STU s[], STU t[], int n) 70 { 71 int i, k = 0; 72 for (i = 0; i < n; i++) 73 if (s[i].total < 60) 74 t[k++] = s[i]; 75 return k; 76 } 77 void sort(STU s[], int n) 78 { 79 int i, j; 80 STU t; 81 for (i = 0; i < n - 1; i++) 82 for (j = 0; j < n - 1 - i; j++) 83 if (s[j].total < s[j + 1].total) 84 { 85 t = s[j]; 86 s[j] = s[j + 1]; 87 s[j + 1] = t; 88 } 89 }
1 #include <stdio.h> 2 #include <string.h> 3 #define N 10 4 #define M 80 5 typedef struct 6 { 7 char name[M]; // 书名 8 char author[M]; // 作者 9 }book; 10 int main() { 11 book x[N] = { {"《一九八四》", "乔治.奥威尔"}, 12 {"《美丽新世界》", "赫胥黎"}, 13 {"《昨日的世界》", "斯蒂芬.茨威格"}, 14 {"《万历十五年》", "黄仁宇"}, 15 {"《一只特立独行的猪》", "王小波"}, 16 {"《百年孤独》", "马尔克斯"}, 17 {"《情人》", "玛格丽特.杜拉斯"}, 18 {"《只是孩子》", "帕蒂.史密斯"}, 19 {"《刀锋》", "毛姆"}, 20 {"《沉默的大多数》", "王小波"} }; 21 book* ptr; 22 int i; 23 char author[M]; 24 // 使用指针遍历结构体数组 25 printf("所有图书信息: \n"); 26 for (ptr = x; ptr < x + N; ++ptr) 27 printf("%-30s%-30s\n", ptr->name, ptr->author); 28 // 查找指定作者的图书 29 printf("\n输入作者名: "); 30 gets_s(author); 31 for (ptr = x; ptr < x + N; ++ptr) 32 if (strcmp(ptr->author, author) == 0) 33 { 34 printf("%-30s%-30s\n", ptr->name, ptr->author); 35 } 36 return 0; 37 }
1 #include <stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #define N 100 5 typedef struct 6 { 7 char num[10]; 8 int s1; 9 int s2; 10 double sum; 11 char level[10]; 12 }STU; 13 int fun(STU a[], int n, STU h[]); 14 int main() { 15 STU s[N] = { 16 {"GA05", 85, 76}, 17 {"GA03", 76, 90}, 18 {"GA02", 69, 90}, 19 {"GA04", 85, 56}, 20 {"GA01", 91, 95}, 21 {"GA07", 72, 80}, 22 {"GA08", 64, 45}, 23 {"GA06", 87, 98}, 24 {"GA015", 85, 86}, 25 {"GA013", 91, 97} }; // 原始学生成绩记录 26 STU h[N]; // 保存均分以上学生记录 27 int i, k, n = 10; 28 // 调用fun对学生成绩记录进行处理 29 k = fun(s, n, h); 30 // 输出均分以上学生记录 31 printf("There are :\n"); 32 for (i = 0; i < k; i++) 33 printf("%s %d %d %.2f %s\n", h[i].num, h[i].s1, h[i].s2, h[i].sum,h[i].level); 34 return 0; 35 } 36 int fun(STU a[], int n, STU h[]) 37 { 38 int i,k=0; 39 double m = 0.0; 40 for (i = 0; i < n; i++) 41 { 42 a[i].sum= a[i].s1 * 0.7 + a[i].s2 * 0.3; 43 m = m + a[i].sum; 44 } 45 m = m / n; 46 for (i = 0; i < n; i++) 47 { 48 if (a[i].sum > m) 49 { 50 strcpy(h[k].num, a[i].num); 51 h[k].s1 = a[i].s1; 52 h[k].s2 = a[i].s2; 53 h[k].sum = a[i].sum; 54 strcpy(h[k].level, "均分以上"); 55 k++; 56 } 57 } 58 return k; 59 }
1 #include <stdio.h> 2 #include <string.h> 3 #define N 5 4 typedef struct student 5 { 6 char name[10]; 7 int num; 8 int maths; 9 int computer; 10 int english; 11 int sum; 12 char level[10]; 13 } STU; 14 void fun(STU a[], int n); 15 int main() { 16 STU s[6 * N] = { {"A001", 1, 34, 67, 80}, 17 {"B003", 3, 78, 87, 90}, 18 {"A002", 2, 90, 98, 99}, 19 {"B002", 4, 56, 78, 98}, 20 {"A005", 5, 35, 67, 79} }; 21 int i; 22 fun(s, N); 23 for (i = 0; i < N; i++) 24 printf("%s %d %d %d %d %d %s\n", s[i].name, s[i].num, s[i].maths, 25 s[i].computer, s[i].english, s[i].sum, s[i].level); 26 return 0; 27 } 28 void fun(STU a[], int n) 29 { 30 int i,max=0,min=500; 31 for (i = 0; i < n; i++) 32 { 33 a[i].sum = a[i].maths + a[i].computer + a[i].english; 34 if (a[i].sum > max) 35 max = a[i].sum; 36 if (a[i].sum < min) 37 min = a[i].sum; 38 } 39 for (i = 0; i < n; i++) 40 { 41 if (a[i].sum == max) 42 strcpy(a[i].level, "优秀"); 43 else if (a[i].sum == min) 44 strcpy(a[i].level, "不及格"); 45 else 46 strcpy(a[i].level, "合格"); 47 } 48 }
1 #include <stdio.h> 2 #include <string.h> 3 #define N 5 4 typedef struct student { 5 long no; 6 char name[20]; 7 int score; 8 } STU; 9 // 定义结构体类型struct student, 并定义STU为其别名 10 void input(STU s[], int n); 11 int find_min_list(STU s[], STU t[], int n); 12 void output(STU s[], int n); 13 int main() 14 { 15 STU stu[N], min_list[N]; 16 int count; 17 printf("录入%d个学生信息\n", N); 18 input(stu, N); 19 printf("\n统计最低分人数和学生信息...\n"); 20 count = find_min_list(stu, min_list, N); 21 printf("\n一共有%d个最低分,信息如下:\n", count); 22 output(min_list, count); 23 return 0; 24 } 25 void input(STU s[], int n) 26 { 27 int i; 28 for (i = 0; i < n; i++) 29 scanf("%ld %s %d", &s[i].no, s[i].name, &s[i].score); 30 } 31 32 void output(STU s[], int n) 33 { 34 int i; 35 for (i = 0; i < n; i++) 36 printf("%ld %s %d\n",s[i].no, s[i].name,s[i].score); 37 } 38 int find_min_list(STU s[], STU t[], int n) 39 { 40 int i,count=0; 41 int min = 100; 42 for (i = 0; i < n; i++) 43 { 44 if (s[i].score < min) 45 { 46 min = s[i].score; 47 } 48 } 49 for (i = 0; i < n; i++) 50 { 51 if (s[i].score == min) 52 { 53 t[count].no = s[i].no; 54 strcpy(t[count].name,s[i].name); 55 t[count].score = s[i].score; 56 count++; 57 } 58 } 59 return count; 60 }
标签:level,int,sum,++,STU,实验,printf From: https://www.cnblogs.com/wr236/p/17003376.html