实验六

2021/6/9 18:51:10

本文主要是介绍实验六,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1 #include<stdio.h>
  2 #include<stdlib.h>    
  3 #include<string.h>
  4 #define N 3
  5 
  6 typedef struct student{
  7     int id;
  8     char name[20];
  9     char subject[20];
 10     float perf;
 11     float mid;
 12     float total;
 13     float final;
 14     char level[10];
 15 }STU;
 16 
 17 void input(STU[],int );
 18 void calc(STU[],int);
 19 int fail(STU[],STU [],int);
 20 void sort(STU[],int); 
 21 void print(STU[], int);
 22 
 23 int main(){
 24     STU st[N],fst[N];
 25     int k;
 26     
 27     printf("录入学生成绩信息:\n");
 28     input(st,N);
 29 
 30     printf("\n成绩处理...\n");
 31     calc(st,N);
 32     
 33     k = fail(st,fst,N);
 34     sort(st, N);
 35     printf("\n学生成绩排名情况:\n");
 36     print(st, N);
 37     
 38     printf("\n不及格学生信息:\n");
 39     
 40     print(fst, k);
 41     return 0;
 42 }
 43 
 44 void input(STU s[],int n){
 45     int i;
 46     for(i=0;i<n;i++)
 47     scanf("%d %s %s %f %f %f",
 48     &s[i].id,s[i].name,s[i].subject,&s[i].perf,&s[i].mid,&s[i].final);
 49 }
 50 
 51 void calc(STU s[],int n){
 52     int i;
 53     for(i=0;i<n;i++){
 54     s[i].total=s[i].perf*0.2+s[i].mid*0.2+s[i].final*0.6;
 55 
 56     if(s[i].total>=90)
 57         strcpy(s[i].level,"优");
 58     else if(s[i].total>=80)
 59         strcpy(s[i].level,"良");
 60     else if(s[i].total>=70)
 61         strcpy(s[i].level,"中");
 62     else if(s[i].total>=60)
 63         strcpy(s[i].level,"及格");
 64     else
 65         strcpy(s[i].level,"不及格");
 66     }
 67 }
 68 
 69 int fail(STU s[],STU t[],int n) {
 70     int i,k=0;
 71     
 72     for(i=0;i<n;i++)
 73         if(s[i].total<60)
 74             t[k++]=s[i];
 75     
 76     return k;
 77 }
 78 
 79 void sort(STU s[],int n) {
 80     int i,j;
 81     STU temp;
 82     
 83     for(i=0;i<n-1;i++)
 84         for(j=0;j<n-i-1;j++)
 85             if(s[j].total<s[j+1].total){
 86                 temp = s[j];
 87                 s[j] = s[j+1];
 88                 s[j+1] = temp;
 89             }
 90 }
 91 
 92 void print(STU s[], int n) {
 93     int i;
 94     printf("-----------------\n");
 95     printf("学号 姓名 考试科目 平时成绩 期中成绩 期末成绩 总评成绩 成绩等级\n");
 96     
 97     for(i=0;i<n;i++)
 98     printf("%4d %4s   %4s   %5.1f    %5.1f     %5.1f     %5.1f  %6s\n",
 99     s[i].id,s[i].name,s[i].subject,s[i].perf,s[i].mid,s[i].final,s[i].total,s[i].level);
100 }

#include <stdio.h>

const int N=5;

// 定义结构体类型struct student,并定义STU为其别名 
typedef struct student {
    long no;
    char name[20];
    int score;     
}STU;

// 函数声明 
void input(STU s[], int n);
int findMinlist(STU s[], STU t[], int n);
void output(STU s[], int n);

int main() {
    STU stu[N], minlist[N];
    int count;
    
    printf("录入%d个学生信息\n", N);
    input(stu, N);
    
    printf("\n统计最低分人数和学生信息...\n");
    count = findMinlist(stu, minlist, N);
    
    printf("\n一共有%d个最低分,信息如下:\n", count);
    output(minlist, count);
     
    return 0;
} 

// 输入n个学生信息,存放在结构体数组s中 
void input(STU s[], int n) {
    int i;
    for(i=0; i<n; i++) 
        scanf("%ld %s %d", &s[i].no, s[i].name, &s[i].score);
} 

// 输出结构体s中n个元素信息
void output(STU s[], int n) {
    int i;
    for(i=0; i<n; i++)
        printf("%ld %s %d\n", s[i].no, s[i].name, s[i].score); 
} 


int findMinlist(STU s[], STU t[], int n)
{
    int i, j=0, min;
    min=s[0].score;
    for(i=0;i<n;i++)
    {
    
        if(s[i].score<min)
        min = s[i].score;
    }
    
    for(i=0;i<n;i++)
    {
        if(s[i].score==min)
        t[j++]=s[i];
    }
    return j;
} 

1 #include<stdio.h>
 2 #include<string.h>
 3 const int N = 10;
 4 
 5 typedef struct student{
 6     long int id;
 7     char name[20];
 8     float obj;
 9     float sub;
10     float sum;
11     char level[10];
12 }STU;
13 
14 void input(STU s[],int n);
15 void output(STU s[],int n);
16 void process(STU s[],int n);
17 
18 int main(){
19     STU stu[N];
20     
21     printf("录入%d个考生信息: 准考证号,姓名,客观题得分(<=40),操作题得分(<=60)\n", N);
22     input(stu, N);
23     
24     printf("\n对考生信息进行处理: 计算总分,确定等级\n");
25     process(stu, N);
26 
27     printf("\n打印考生完整信息: 准考证号,姓名,客观题得分,操作题得分,总分,等级\n\n");
28     output(stu, N);
29     
30     return 0;
31 }
32 
33 void input(STU s[],int n){
34     int i;
35     for(i=0;i<n;i++)
36         scanf("%d%s%f%f", &s[i].id, s[i].name, &s[i].obj, &s[i].sub);
37 }
38 
39 void output(STU s[],int n){
40     int i;
41     printf("准考证号  姓名   客观题得分   操作题得分   总分      等级\n");
42     printf("------------------------------------------------------------\n");
43     for(i=0;i<n;i++)
44         printf("%4ld    %6s     %5.2f        %.2f     %6.2f     %4s\n", s[i].id, s[i].name, s[i].obj, s[i].sub, s[i].sum, s[i].level);
45     printf("------------------------------------------------------------\n");
46 }
47 
48 void process(STU s[],int n){
49     int i,j,k; 
50     STU temp;
51     for(i=0;i<n;i++){
52         s[i].sum = s[i].sub + s[i].obj;
53 }
54 
55     for(i=0;i<n-1;i++)
56         for(j=0;j<n-i-1;j++)
57             if(s[j].sum < s[j+1].sum){
58                 temp=s[j];
59                 s[j]=s[j+1];
60                 s[j+1]=temp;    
61         }    
62     
63     for(i=0;i<n;i++){
64         k=i+1;
65     
66         if((float(k)/n)<0.2) strcpy(s[i].level,"优秀");
67         else if((float(k)/n)<0.6) strcpy(s[i].level,"合格");
68         else strcpy(s[i].level,"不合格"); 
69 }
70 }



这篇关于实验六的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程