• C++程序设计(第2版)课后习题答案第8章


    1.使用结构体变量来表示学生数据:姓名、学号和3门课程的成绩。从键盘输入个学生的数据,要求打印出每个学生的姓名和3门课程的平均成绩,此外要求按学生的平均成绩降序输出,按学生姓名搜索。

    View Code
     1 #include <fstream>
     2 #include <iostream>
     3 using namespace std;
     4 struct student
     5 {
     6     int num;
     7     char name[20];
     8     float score[3];
     9 };
    10 
    11 //从键盘输入数据
    12 void input(student* std,int n)
    13 {
    14     for(int i=0;i<n;i++)
    15     {
    16         cin>>std[i].name;
    17         cin>>std[i].num;
    18         cin>>std[i].score[0]>>std[i].score[1]>>std[i].score[2];
    19     }
    20 }
    21 //输出学生信息
    22 void print(student* std,int n)
    23 {
    24     int i;
    25     for(i=0;i<n;i++)
    26     {
    27         cout<<std[i].name<<"\t"<<
    28             std[i].num<<'\t'<<
    29             std[i].score[0]<<'\t'<<
    30             std[i].score[1]<<'\t'<<
    31             std[i].score[2]<<'\t'<<
    32             (std[i].score[0]+std[i].score[1]+std[i].score[2])/3<<'\t'<<endl;
    33     }
    34 }
    35 //按成绩排序
    36 void sort(student* std,int n)
    37 {
    38     int i,j,L;
    39     student tmp;
    40     for(i=0;i<n-1;i++)
    41     {
    42         L=i;
    43         for(j=i+1;j<n;j++)
    44         {
    45             if(std[j].score[0]+std[j].score[1]+std[j].score[2]>
    46                 std[L].score[0]+std[L].score[1]+std[L].score[2])
    47                 L=j;
    48         }
    49         tmp=std[i];
    50         std[i]=std[L];
    51         std[L]=tmp;
    52     }
    53 }
    54 //按姓名搜索
    55 int search(student* std,int n,char* name)
    56 {
    57     int i;
    58     for(i=0;i<n;i++)
    59     {
    60         if(strcmp(std[i].name,name)==0)
    61             return i;
    62     }
    63     return -1;
    64 }
    65 
    66 void main()
    67 {
    68     student std[10];
    69     input(std,10);
    70     print(std,10);
    71     sort(std,10);
    72     int i=search(std,10,"wangwu1");
    73     if(i!=-1)
    74         cout<<"Found"<<endl;
    75     else
    76         cout<<"No Found"<<endl;
    77 
    78 }
  • 相关阅读:
    实现multibandblend
    如何获得物体的主要方向?
    基于PI+QT实现OpenCV图像处理操作(基本环境搭建)
    Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
    Docker 容器的 health 健康状态检查
    prometheus processexport进程监控
    k8s精髓之 ListWatch
    Linux nohup后台运行命令
    kubescheduler源码阅读
    用 Wireshark 分析 TCP 吞吐瓶颈
  • 原文地址:https://www.cnblogs.com/shajianheng/p/2825300.html
Copyright © 2020-2023  润新知