第三次作业
作业要求一
2 p->str++ 中的++ 加向地址str
作业要求二
题目1查找书籍中最高价及最低价
1 设计思路
(1)主要描述题目算法
第一步:设定所需要的变量,创建名为book的结构;
第二步:输入书籍数量,定义数组结构;
第三步:输入每个书籍的名字,价格;
第四步:判断最高价格和最低价格的书籍并输出
(2)流程图
2.实验代码
#include<stdio.h> struct book{ float price; char name[30]; }; int main(){ int n,i,max=0,min=0; scanf("%d",&n); struct book s[n]; for(i=0;i<n;i++){ scanf("\n"); gets(s[i].name); scanf("%f",&s[i].price); } for(i=0;i<n;i++){ if(s[max].price<s[i].price){ max=i; } if(s[min].price>s[i].price){ min=i; } } printf("%.2f, %s\n",s[max].price,s[max].name); printf("%.2f, %s\n",s[min].price,s[min].name); return 0; }
3.本题调试过程碰到问题及解决办法
错误信息:遇到了输入出现错误的问题,导致结果出现错误;
改正方法:在字符串的前面加上换行符,防止字符串读取之前的回车
题目2 计算平均成绩
1 设计思路
(1)主要描述题目算法
第一步:创建学生结构体
第二步:输入结构数组的数量
第三步:输入结构所需数据
第四步:通过循环遍历数组并找出成绩最高和最低者的成绩和名字,输出;
2.实验代码
#include<stdio.h> struct student{ char num[5]; int gard; char name[10]; }; int main(){ int n,i; float aver; scanf("%d",&n); struct student s[n]; for(i=0;i<n;i++){ scanf("%s %s %d",&s[i].num,&s[i].name,&s[i].gard); aver+=s[i].gard; } aver/=n; printf("%.2f\n",aver); for(i=0;i<n;i++){ if(s[i].gard<(int)(aver+0.5)){ printf("%s %s\n",s[i].name,s[i].num); } } return 0; }
3.本题调试过程碰到问题及解决办法
错误原因:出现了指针指向异常的问题;
改正方法:重新检查数组并改正;
要求三、学习总结和进度
1、指针与结构作业中题目所使用的知识点
结构体的正确使用和输出定义的变量
2、将PTA作业的源代码使用git提交到托管平台上,要求给出上传成功截图和你的git地址。请注意git地址应是类似“git”这样的字符串且是可被访问者直接点击进行访问的链接
https://git.coding.net/z1203239793/test.git