第三次作业
要求一
课上疑点:讨论查阅分析 struct sk{int a; char str)}p; p->str++ 中的++ 加向________?
答:加向str字符串的字符++
要求二
题目1查找书籍中最高价及最低价
1 设计思路
(1)描述题目算法
第一步:先写出结构体,结构体成员包括:书名和价格。
第二步:输入n,使用for循环输入所要查找书籍的相关信息,包括书籍数量,名字,价格。
第三步:定义两个变量,再利用for循环在其中找出书籍中的最高价和最低价,然后赋值给这两个变量,最后分别分别输出他们的名字和价格的相关信息。
(2)流程图
2.实验代码
#include<stdio.h> #include<string.h> #include<stdlib.h> struct book { char name[31]; double cost; } s[10]; main() { int i,n; scanf("%d",&n); for(i=0;i<n;i++) { scanf("\n"); gets(s[i].name); scanf("%lf",&s[i].cost); } int max=0,min=0; for(i=1;i<n;i++){ if(s[i].cost>s[max].cost){max=i;} if(s[i].cost<s[min].cost){min=i;} } printf("%.2f, %s\n",s[max].cost,s[max].name); printf("%.2f, %s",s[min].cost,s[min].name); system("pause"); }
3.本题调试过程
题目2 计算平均成绩
1 设计思路
(1)描述题目算法
第一步:先写好以struct student的结构体,然后定义学生信息。
第二步:定义n个人以及分数总和sum,然后用for循环输入n个学生的基本信息和累加n个学生的成绩,最后计算出平均成绩值。
第三步:利用for循环找出成绩低于平均分的同学。
第四步:计算平均值,判断输入的成绩与平均值的比较,输出低于平均值成绩的姓名以及成绩信息。
(2)流程图
2.实验代码
#include <stdio.h> #include <stdlib.h> #include <string.h> struct score { char num[10]; char name[10]; int score; }; int main() { int i,n,count=0; float average=0; scanf("%d",&n); struct score s[n]; for(i=0;i<n;i++) scanf("%s %s %d",&s[i].num,s[i].name,&s[i].score); for(i=0;i<n;i++) { count+= s[i].score; } average = count / n; printf("%.2f\n",average); for(i = 0; i < n; i++) { if(s[i].score < average) { printf("%s %s\n",s[i].name,s[i].num); } } system("pause"); }
3.本题调试过程
要求三、学习总结和进度
1、指针与结构作业中题目所使用的知识点
结构体数据类型的定义及其引用,其中使用指针进行。
2、源代码使用git提交
截图:
链接:https://coding.net/u/linmeng123/p/moshi000/git