zoukankan      html  css  js  c++  java
  • 实验3

    对结构体的练习

    1.有三个学生,每个学生的数据包括,学号、姓名和三科成绩,从键盘输入这三个学生的数据,要求输入每门课的总平均成绩及最高分学生的数据(包括学号、姓名)。(题与课本上有差别,懒得做全了,太繁琐)

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    struct student
    {
        int num;
        char name[9];
        int score[3];
    };
    int main()
    {
        struct student Stu[3];
        int i=0,j=0;
        char temp[9];
        int max[3],n=0,m=0;
        double average[3];
        for(i=0;i<3;i++)
        {
            printf("请输入%d个学生的学号:
    ",i+1);
            scanf("%d",&Stu[i].num);
            printf("请输入%d个学生的姓名:
    ",i+1);    
            fflush(stdin);
            gets(temp);
            strcpy(Stu[i].name,temp);
            for(j=0;j<3;j++)
            {
                printf("请输入%d个学生的第%d科成绩:
    ",i+1,j+1);
                scanf("%d",&Stu[i].score[j]);
            }
        }
         for(i=0;i<3;i++)
         {
             n=0;
             for(j=0;j<3;j++)
             {
                 n+=Stu[j].score[i];
             }
             average[i]=n/3.0;
         }
         for(i=0;i<3;i++)
         {
             printf("第%d课的平均成绩为%lf。
    ",i+1,average[i]);
         }
         for(i=0;i<3;i++)
         {
             m=0;
             for(j=0;j<3;j++)
             {
                 if(Stu[j].score[i]>Stu[m].score[i])
                 {
                     m=j;
                 }
             }
             max[i]=m;
         }
         for(i=0;i<3;i++)
         {
             printf("第%d课成绩,最高分为%d:
    ",i+1,Stu[i].score[max[i]]);
             printf("学生的学号是%d
    ",Stu[i].num );
             printf("学生姓名是:%s
    ",Stu[i].name );
         }
         return 0;
    }

    2.对候选人得票的统计程序。设有三个候选人,每次输入一个得票的候选人的姓名,要求最后输出各人得票结果。

    #include<stdio.h>
    #include<string.h> 
    #include<stdlib.h>
    struct num
    {
        char name[9];
        int n;
     } ;
     int main()
     {
         struct num cd[3];
         char a[9],b[]={"0"};
         int i=0;
         for(i=0;i<3;i++)
         {
             printf("请输入第%d个候选人的名字:",i+1);
             gets(a);
             strcpy(cd[i].name ,a);
         }
         while(1)
         {
             printf("请输入你要投候选人的姓名,输入0结束:
    ");
             gets(a);
             if(strcmp(a,b)==0)
             {
                 break;
             }
            for(i=0;i<3;i++)
            {
                if(strcmp(a,cd[i].name)==0)
                {
                    cd[i].n++;
                    break;
                }
            }
         }
         for(i=0;i<3;i++)
         {
             printf("第%d名候选人的票数是%d
    ",i+1,cd[i].n);
         }
         return 0;
     }

    总结:不能对结构体整体进行==或!=的判断,对结构体可以进行整体赋值,但两个结构体必须类型相同。

       结构体只声明时,不分配内存。

       对结构体,以多种类型从键盘输入时,容易出先问题,最好采用:1.转换函数。2.接触简单变量,间接赋值。

  • 相关阅读:
    玩转TypeScript(2) --简单TypeScript类型
    玩转TypeScript(1) --定义简单的类
    在WisOne平台上学习TypeScript
    为juggle添加了一个js扩展
    和大家分享一个abelkhan的demo
    全服排行榜算法思路
    abelkhan中的rpc框架
    abelkhan编译文档
    abelkhan服务器框架
    一起学习c++11——c++11中的新增的容器
  • 原文地址:https://www.cnblogs.com/TX980502/p/6594752.html
Copyright © 2011-2022 走看看