首页 > 编程语言 >实验5 结构体应用编程

实验5 结构体应用编程

时间:2022-12-21 09:46:04浏览次数:40  
标签:count min int sum 编程 ++ STU 实验 应用

实验任务三

程序源码

 1 #define _CRT_SECURE_NO_WARNINGS 1
 2 #include <stdio.h>
 3 #include<string.h>
 4 #include<stdlib.h>
 5 #define N 100
 6 typedef struct {
 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] = { {"GA05", 85, 76},
16          {"GA03", 76, 90},
17          {"GA02", 69, 90},
18          {"GA04", 85, 56},
19          {"GA01", 91, 95},
20    {"GA07", 72, 80},
21          {"GA08", 64, 45},
22          {"GA06", 87, 98},
23          {"GA015", 85, 86},
24          {"GA013", 91, 97} }; 
25     STU h[N];
26     int i, k;
27     // 调用fun对学生成绩记录进行处理
28     k = fun(s, N, h);
29     // 输出均分以上学生记录
30     printf("There are :\n");
31     for (i = 0; i < k; i++)
32         printf("%s %d %d %.2f %s\n", h[i].num, h[i].s1, h[i].s2, h[i].sum,
33             h[i].level);
34 
35     return 0;
36 }
37 // 函数定义
38 // 功能:对包含n条学生成绩记录的数组a进行处理:
39 // 计算总评成绩,统计等级为"均分以上"的学生记录保存到数组h中,并返回其人数
40 int fun(STU a[], int n, STU h[]) {
41     double average = 0;
42     for (int i = 0; i < n; i++) {
43         a[i].sum = a[i].s1 * 0.7 + a[i].s2 * 0.3;
44         average += a[i].sum;
45     }
46     average /= n;
47     int count = 0;
48     for (int i = 0; i < n; i++) {
49         if (a[i].sum > average) {
50             strcpy(a[i].level, "均分以上");
51             h[count++] = a[i];
52         }
53     
54     }
55     return count;
56 }

程序运行截图

 

 

实验任务四

程序源码

 1 #define _CRT_SECURE_NO_WARNINGS 1
 2 #include <stdio.h>
 3 #include <string.h>
 4 #define N 5
 5 typedef struct student {
 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 // 函数定义
29 // 功能:对包含n条学生成绩记录的数组a进行处理:
30 // 计算三门课程总分、总分最大值、总分最小值,并设置等级:
31 // 总分与总分最大值相等的同学的等级设置为优秀
32 // 总分与总分最小值相等的同学的等级设置为不及格
33 // 其余同学的等级设置为合格
34 void fun(STU a[], int n) {
35     int max = 0, min = 300;
36     for (int i = 0; i < n; i++) {
37         a[i].sum = a[i].computer + a[i].english + a[i].maths;
38         if (a[i].sum > max)
39             max = a[i].sum;
40         if (a[i].sum < min)
41             min = a[i].sum;
42     }
43     for (int i = 0; i < n; i++) {
44         if (a[i].sum == max)
45             strcpy(a[i].level, "优秀");
46         else if (a[i].sum == min)
47             strcpy(a[i].level, "不及格");
48         else
49             strcpy(a[i].level, "合格");
50     }
51 
52 }

程序运行截图

 

实验任务5

程序源码

 1 #define _CRT_SECURE_NO_WARNINGS 1
 2 #include <stdio.h>
 3 #define N 5
 4 // 定义结构体类型struct student, 并定义STU为其别名
 5 typedef struct student {
 6     long no;
 7     char name[20];
 8     int score;
 9 } STU;
10 // 函数声明
11 void input(STU s[], int n);
12 int find_min_list(STU s[], STU t[], int n);
13 void output(STU s[], int n);
14 int main() {
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 // 输入n个学生信息,存放在结构体数组s中
26 void input(STU s[], int n) {
27     for (int i = 0; i < n; i++) {
28         scanf("%ld %s %d", &s[i].no, s[i].name, &s[i].score);
29     }
30 }
31 // 输出结构体s中n个元素信息
32 void output(STU s[], int n) {
33     for (int i = 0; i < n; i++) {
34         printf("%ld %s %d\n", s[i].no, s[i].name, s[i].score);
35     }
36 }
37 // 在结构体数组s中,查找最低分学生的记录,将其存入结构体数组t中
38 // 形参n是结构体数组s中元素个数
39 // 函数返回最低分的学生人数
40 int find_min_list(STU s[], STU t[], int n) {
41     int min = s[0].score;
42     for (int i = 0; i < n; i++) {
43         if (s[i].score < min)
44             min = s[i].score;
45     }
46     int count = 0;
47     for (int i = 0; i < n; i++) {
48         if (s[i].score == min)
49             t[count++] = s[i];
50     }
51     return count;
52 

程序运行截图

 

标签:count,min,int,sum,编程,++,STU,实验,应用
From: https://www.cnblogs.com/abcdefg-gaoyuan/p/16995534.html

相关文章

  • 实验5
    task1#include<stdio.h>#include<string.h>#defineN3typedefstructstudent{intid;charname[20];charsubject[20];doubleperf;......
  • 实验五
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#defineN100typedefstruct{charnum[10];//学号ints1;......
  • 实验五
    //task1#include<stdio.h>#include<string.h>#defineN3//运行程序输入测试时,可以把这个数组改小一些输入测试typedefstructstudent{intid;......
  • 实验5
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h>#defineN100typedefstruct{charnum[10];//学号ints1;......
  • 实验5
    task3#include<stdio.h>#include<string.h>#defineN100typedefstruct{charnum[10];//学号ints1;//期末成绩ints2;......
  • 实验5
    #include<stdio.h>#include<string.h>#defineN100typedefstruct{charnum[10];//学号ints1;//期末成绩ints2;......
  • 实验8:基于LAMP部署的wordpress
    针对连接时候需要输入的密码“Enterpassword:”其实一般情况下是空密码在我输入“cd/etc/init.d”之前需要先输入“pwd”与"servicemysqldrestart"以上是我遇到的问......
  • 直播预约通道开启!解锁音视频应用快速上线的秘诀
    音视频时代,如何一站式解决SDK兼容、联调、授权管理等问题?如何快速上线音视频应用?7月7日19:00-20:30,多位腾讯云音视频技术专家现身「新知·音视频技术公开课」直播间,分享......
  • 实验八-Web部署
    进入华为云中购置的虚拟机配置openEulercd/etc/yum.repos.dviopenEuler_x86_64.repo安装LAMP在shell中通过下面命令安装Apache:通过下面命令开启Apache服务:sys......
  • 第八次实验--Web部署
    第八次实验--Web部署实验相关配置实验前置知识LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:Linux,操作系统,openEuler就是一种Linux发......