第三次 结构部分
作业要求一
1 完成PTA
2 struct { int len; char str; } p;是个指针定义,p->str++必须加在之后的语句上
作业要求二
题目1查找书籍中最高价及最低价
1.设计思路
(1)主要描述题目算法
第一步:建立结构体,包括书名和价格
第二步:在主函数中定义变量,找到书籍价格的最高价及最低价,先输入要比较的书籍本书,然后依次输入书名和价格,利用for循环
第三步:找出书籍中的最高价和最低价,分别输出他们的名字和价格
(2)流程图
2.实验代码
#include <stdio.h> #include<stdio.h> struct book { char name[50]; double price; }b[10]; int main() { int n,i,min=0,max=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("\n"); gets(b[i].name); scanf("%lf",&b[i].price); if(b[i].price>b[max].price) { max=i; } if(b[i].price<b[min].price) { min=i; } } printf("%.2lf, %s\n",b[max].price,b[max].name); printf("%.2lf, %s\n",b[min].price,b[min].name); return 0; }
3.本题调试过程碰到问题及解决办法
在DEV C++上运行多次,正确了之后提交到PTA,发现还是编译错误,查找后发现是符号的问题,而在C++上出现的问题是循环结构使用出错
题目2 计算平均成绩
1.设计思路
(1)主要描述题目算法
第一步:建立结构体,包括学生的学号,姓名,成绩
第二步:在主函数中,定义变量,然后输入学生人数,利用for循环依次输入学生学号,姓名,成绩
第三步:求出所有同学的成绩总和,然后求出平均值
第四步:输出平均分以下学生的成绩,与平均值进行比较,低于平均成绩进行输出
(2)流程图
2.实验代码
#include <stdio.h> #define MAXN 10 struct student{ int num; char name[20]; int score; char grade; }; int set_grade( struct student *p, int n ); int main() { struct student stu[MAXN], *ptr; int n, i, count; ptr = stu; scanf("%d\n", &n); for(i = 0; i < n; i++){ scanf("%d%s%d", &stu[i].num, stu[i].name, &stu[i].score); } count = set_grade(ptr, n); printf("The count for failed (<60): %d\n", count); printf("The grades:\n"); for(i = 0; i < n; i++) printf("%d %s %c\n", stu[i].num, stu[i].name, stu[i].grade); return 0; }
3.本题调试过程碰到问题及解决办法
在C++中调试后输入到PTA中,在C++中出现了问题,在struct那里用的不太顺利
要求三、学习总结和进度
1、指针与结构作业中题目所使用的知识点
作业中使用了结构体的定义与引用
2、将PTA作业的源代码使用git提交到托管平台上,要求给出上传成功截图和你的git地址