首页 > 其他分享 >实验5

实验5

时间:2022-12-22 19:00:10浏览次数:44  
标签:level int sum min STU 实验 ptr

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

 1 #include <stdio.h>
 2 #include <string.h>
 3 #define N 5
 4 
 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 
15 void fun(STU a[], int n);  // 函数声明
16 
17 int main() {
18     STU s[6*N]={ {"A001", 1, 34, 67, 80},
19                  {"B003", 3, 78, 87, 90},
20                  {"A002", 2, 90, 98, 99},
21                  {"B002", 4, 56, 78, 98},
22                  {"A005", 5, 35, 67, 79} };
23     int i;
24 
25     fun(s, N);
26     for(i = 0; i < N; i++)
27       printf("%s %d %d %d %d %d %s\n", s[i].name, s[i].num, s[i].maths, s[i].computer, s[i].english, s[i].sum, s[i].level);
28     
29     return 0;
30 }
31 
32 // 函数定义
33 // 功能:对包含n条学生成绩记录的数组a进行处理:
34 // 计算三门课程总分、总分最大值、总分最小值,并设置等级:
35 // 总分与总分最大值相等的同学的等级设置为优秀
36 // 总分与总分最小值相等的同学的等级设置为不及格
37 // 其余同学的等级设置为合格
38 void fun(STU a[], int n) {
39     int i,max,min;
40     STU *ptr;
41     
42     for(ptr = a;ptr<a+n;ptr++)
43         ptr->sum = ptr->computer + ptr->english + ptr->maths;
44         
45     ptr = a;
46     max = min = ptr->sum;
47     for(ptr = a+1;ptr<a+n;ptr++)
48     {
49         if(ptr->sum>max)
50             max = ptr->sum;
51         if(ptr->sum<min)
52             min = ptr->sum;
53        }
54         
55     
56     for(ptr = a;ptr<a+n;ptr++)
57     {
58         if(ptr->sum==max)
59             strcpy(ptr->level,"优秀");
60         else if(ptr->sum==min)
61             strcpy(ptr->level,"不及格");
62         else 
63             strcpy(ptr->level,"及格");
64              
65     }
66     
67 }

 1 #include <stdio.h>
 2 
 3 #define N 5
 4 
 5 // 定义结构体类型struct student, 并定义STU为其别名
 6 typedef struct student {
 7     long no;
 8     char name[20];
 9     int score;
10 } STU;
11 
12 // 函数声明
13 void input(STU s[], int n);
14 int find_min_list(STU s[], STU t[], int n);
15 void output(STU s[], int n);
16 
17 int main() {
18     STU stu[N], min_list[N];
19     int count;
20 
21     printf("录入%d个学生信息\n", N);
22     input(stu, N);
23 
24     printf("\n统计最低分人数和学生信息...\n");
25     count = find_min_list(stu, min_list, N);
26 
27     printf("\n一共有%d个最低分,信息如下:\n", count);
28     output(min_list, count);
29 
30     return 0;
31 }
32 
33 // 输入n个学生信息,存放在结构体数组s中
34 void input(STU s[], int n) {
35     int i;
36     for(i=0;i<n;i++)
37         scanf("%ld%s%d",&s[i].no,s[i].name,&s[i].score);
38     
39 }
40 
41 // 输出结构体s中n个元素信息
42 void output(STU s[], int n) {
43     int i;
44     for(i=0;i<n;i++)
45         printf("%-6ld%-8s%-4d\n",s[i].no,s[i].name,s[i].score);
46 }
47 
48 // 在结构体数组s中,查找最低分学生的记录,将其存入结构体数组t中
49 // 形参n是结构体数组s中元素个数
50 // 函数返回最低分的学生人数
51 int find_min_list(STU s[], STU t[], int n) {
52     int i;
53     int min = s[0].score;
54     STU *ptr;
55     
56     for(ptr = s+1;ptr<s+n;++ptr)
57         if(ptr->score < min)
58             min = ptr->score;
59             
60     for(ptr = s,i = 0;ptr<s+n;++ptr)
61         if(ptr->score==min)
62         {
63             t[i] = *ptr;
64             i++;
65         }
66         
67     return i;
68 }

 

标签:level,int,sum,min,STU,实验,ptr
From: https://www.cnblogs.com/lyk946/p/16999406.html

相关文章

  • 实验八-Web部署
    实验步骤在华为云openEuler安装后,没有配置yum源,我们通过重新配置。输入命令以切换到rpos目录下cd/etc/yum.repos.d输入命令更换yum源viopenEuler_x86_64.repo增......
  • 实验5 结构体应用编程
    1#define_CRT_SECURE_NO_WARNINGS2#include<stdio.h>3#include<string.h>4#defineN10056typedefstruct{7charnum[10];//学号8......
  • 实验八-Web部署
    配置openEuler在华为云openEuler安装后,没有配置yum源,我们通过重新配置。cd/etc/yum.repos.dviopenEuler_x86_64.repo增加下面内容:[OS]name=OSbaseurl=http:/......
  • 图像处理的云实验
    一直以来,我都在思考,如何将图像处理和手机等移动终端结合起来。结合起来的方法,大体应该说是两类,一类就是直接在android手机上写native的程序,但是由于工具链的搭建比较复杂,再......
  • 实验五
    实验任务3:#include<stdio.h>#include<string.h>#defineN100typedefstruct{charnum[10];//学号ints1;//期末成绩int......
  • 《DFZU2EG_4EV MPSoc之FPGA开发指南》第二十七章 MDIO接口读写测试实验​
    MDIO接口读写测试实验​在以太网通信中,设备之间的物理层链路均由PHY芯片(物理层芯片,本文指YT8521)建立。PHY芯片有一个配置接口,即MDIO接口,可以配置PHY芯片的工作模式以及获取P......
  • 《DFZU2EG_4EV MPSoc之FPGA开发指南》 第二十六章 IO扩展模块实验​
    IO扩展模块实验​随着时间的推进,正点原子的FPGA开发板款式越来越多,外设也越来越丰富,从简单的按键流水灯到复杂的光口网口,基本上可以说是满足了广大FPGA工程师的学习和项目开......
  • 实验5
    3#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h>#defineN100typedefstruct{charnum[10];ints1;......
  • 实验5
    task3.c#include<stdio.h>#include<string.h>#include<stdlib.h>#defineN100typedefstruct{charnum[10];//学号ints1;//期末成绩ints2;/......
  • 实验五
    #include<stdio.h>#include<string.h>#defineN10#defineM80typedefstruct{charname[M];//书名charauthor[M];//作者}Book;i......