• 第三次作业


    题目1 查找书籍中最高价及最低价
    1 设计思路
    (1)主要描述题目算法。可以用文字描述(不允许使用伪代码),如:
    第一步:定义结构体book,并且对成员分量名字name价格price进行定义。
    第二步:定义结构体组a[10],指针p,max,min。

    第三步:输入n表示有n本书,利用循环输入书名和价格。

    第四步:在循环体中将每本书的价格与最大价格max.price和最小价格min.price比较,如果价格大于max.price就将p.price传给max.price,如果价格小于min就将p.price传给min.price。

    第五步:输出最高价格的书名和价格,输出最小价格的书名和价格。
    (2)流程图


    2.实验代码

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    struct book
    {
        char name[31];
        double price;
    }a[10],*p,max,min;
    int main()
    {
        int n,i;
        scanf("%d",&n);
        p=&a[0];
        for(i=0;i<n;i++,p++)
        {
            getchar();
            gets(p->name);
            scanf("%lf",&p->price);
        }
        max.price=0;
        min.price=999999999;
        p=&a[0];
        for(i=0;i<n;i++,p++)
        {
            if(p->price>max.price)
            {
                max.price=p->price;
                strcpy(max.name,p->name);
            }
            if(p->price<min.price)
            {
                min.price=p->price;
                strcpy(min.name,p->name);
            }
        }
        printf("%.2lf, %s
    %.2lf, %s",max.price,max.name 
    
    ,min.price,min.name 
    
    );
        return 0;
    }


    3.本题调试过程碰到问题及解决办法:

    本题没有遇到问题。

    题目2 计算平均成绩
    1 设计思路
    (1)主要描述题目算法。可以用文字描述(不允许使用伪代码),如:
    第一步:定义结构体,并且将学号、姓名、成绩定义在结构体中。
    第二步:利用for循环都学生信息进行输入,然后再次利用循环对学生成绩进行判断。

    第三步:输出平均分以及低于平均分的同学的学号、姓名、。
    (2)流程图


    2.实验代码

    #include<stdio.h>
    struct student{
        char num[6];
        char name[10];
        int score;
    }s[10];
    main(){
        int n,i,sum=0;
        float ave;
        scanf("%d
    ",&n);
        for(i=0;i<n;i++){
            scanf("%s %s %d",s[i].num,s[i].name,&s[i].score);
            sum=sum+s[i].score;
        }
        ave=sum*1.00/n*1.00;
        printf("%.2f
    ",ave);
        for(i=0;i<n;i++){
            if(s[i].score<ave){
                printf("%s %s
    ",s[i].name,s[i].num);
            }
        }
        
    
    return 0;
    }

    3.本题调试过程碰到问题及解决办法
    错误信息采用以下格式
       错误原因:使用结构体失败。
       改正方法:在使用结构之前先定义结构体。

    要求三、学习总结和进度
    1、指针与结构作业中题目所使用的知识点。

    结构体在c中和C++不同
    在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数。C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体和类体现了数据结构和算法的结合。
    2、将PTA作业的源代码使用git提交到托管平台上。

    上传成功截图:

    git地址:https://git.coding.net/liuzehua123/lzhjisuanji.git

  • 相关阅读:
    ext2文件系统
    可变宏
    SPI—读写串行 FLASH
    使用命令
    FreeRtos——任务删除,改变任务优先级
    FreeRTOSConfig 配置文件详解
    FreeRtos——空闲任务与空闲任务钩子函数
    Elasticsearch从入门到精通-Elasticsearch是什么
    kibana从入门到精通-Kibana安装
    kibana从入门到精通-Kibana配置详解
  • 原文地址:https://www.cnblogs.com/liuzehua123/p/8885507.html
Copyright © 2020-2023  润新知