五 PTA结构体实验
Posted 风月子觞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了五 PTA结构体实验相关的知识,希望对你有一定的参考价值。
#一、PTA结构体实验作业。
##题目1:
##1. 本题PTA提交列表:
##2. 设计思路:
1,先定义三个结构体变量,两个用于计算存储数据,一个存储输入数据。
2,进行逐个比较,把最大的赋值给max,把最小的赋值给min。
3,输出最大最小的价格。
流程图:
主要描述题目算法:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> int main() { struct bookandprice { char name[60]; double price; //必须是double }now,max,min; max.price=0; min.price=999999; //起码要这么大才行 int n,i; scanf("%d",&n); for(i=1;i<=n;i++) { getchar(); gets(now.name); scanf("%lf",&now.price); if(now.price>max.price) { strcpy(max.name,now.name); max.price=now.price; } if(now.price<min.price) { strcpy(min.name,now.name); min.price=now.price; } } printf("%.2lf, %s\\n%.2lf, %s",max.price,max.name,min.price,min.name); return 0; }
##3.本题调试过程碰到问题及PTA提交列表情况说明。
注意最大n和最长字符串的最大界限。
##题目2:
##1. 本题PTA提交列表:
##2. 设计思路:1,先定义数组,再输入数据;
2,求和三个成绩,然后再求最大值,最后输出。
流程图:
主要描述题目算法:
#include <stdio.h> struct _student { char id[6]; char name[10]; int class1; int class2; int class3; }; int main(int argc, char const *argv[]) { int n; int i = 0; scanf("%d",&n); struct _student stu[n]; int class_res = 0; int max_flag = 0; for (i = 0; i < n; ++i) { scanf("%s %s %d %d %d",stu[i].id,stu[i].name,&stu[i].class1,&stu[i].class2,&stu[i].class3); } class_res = stu[0].class1 + stu[0].class2 + stu[0].class3; for (i = 0; i < n; ++i) { if(class_res < stu[i].class1 + stu[i].class2 + stu[i].class3){ class_res = stu[i].class1 + stu[i].class2 + stu[i].class3; max_flag = i; } } printf("%s %s %d\\n",stu[max_flag].name,stu[max_flag].id,class_res); return 0; }
##3.本题调试过程碰到问题及PTA提交列表情况说明。
##题目3:
##1. 本题PTA提交列表:
##2. 设计思路:1,先定义数组用以存储要输入的数据,再输入数据进行存储;
2,根据输入的整数来输出存储的数组数据。
流程图:
主要描述题目算法:
#include<stdio.h> #include<stdlib.h> #include<string.h> struct list{ char name[11]; char num[17]; char phone[17]; char sex[2];//数组! char birthday[11]; }; struct list p[100]; int main() { int i=0;int j=0,N,K; scanf("%d",&N); for(i=0;i<N;i++) { scanf("%s %s %c %s %s\\n",&p[i].name,&p[i].birthday,&p[i].sex,&p[i].num,&p[i].phone); } scanf ("%d", &K); int number; for (i=0; i<K; i++) { scanf ("%d", &number); if (number < N && number>=0) { printf("%s %s %s %s %s\\n",p[number].name,p[number].num,p[number].phone,p[number].sex,p[number].birthday); } else { printf ("Not Found\\n"); } } return 0; }
##3.本题调试过程碰到问题及PTA提交列表情况说明。
#二、同学代码结对互评。
我的代码和周朝阳同学的代码
7-3 找出总分最高的同学
##1.同学互评照片
##2.我的代码、互评同学代码截图(此处截图核心代码就好,不一定截图全部代码,图上指明是谁的代码。)
我的代码:
同学的代码(周朝阳):
##3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
我的代码用了指针数组,并且添加引用的变量较多。
周朝阳同学的直接用往数组中存入数据,变量较少。
求最高成绩并输出的部分差别不大,他的代码比我的简洁,我应该向他学习。
#三、截图本周题目集的PTA最后排名
#四、本周学习总结。
正如老师课上而言,机构体不是什么新的内容,很容易和前面的数组,指针,和函数一起用于编程。
结构体里面的变量也可以为结构体,结构体也可以套用。
不过实际操作也总是出现各种问题,就比如我pta的7-9,就很是纠结,反正就很气。
以上是关于五 PTA结构体实验的主要内容,如果未能解决你的问题,请参考以下文章