题目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\n%.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",&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\n",ave);
    for(i=0;i<n;i++){
        if(s[i].score<ave){
            printf("%s %s\n",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