作业要求一
1.结构数组的定义可以放在结构体声明的后面,也可以放在函数中。但是放入函数中的时候要带关键字struct和结构体名以及结构数组名
2.p->str++中的++加向p中的字符指针str
3.C中对于结构体成员的两种引用方式:
1)结构体变量.成员;
2)结构体变量->成员;
struct { int len; char str; } p;是个指针定义,p->str++必须加在之后的语句上,这一句不能加,属于语法错误。
作业要求二
题目1查找书籍中最高价及最低价
1 设计思路
(1)主要描述题目算法
第一步:本题涉及到书名和价格,先在程序中建立所需的结构体类型。
第二步:本题要找到书籍价格的最高价及最低价,首先要输入要比较的书籍本书,然后依次输入书名和价格,利用for循环。注意:单行输出要换行。
第三步:实现数据输入后,在同一个for循环中进行价格高低的比较。找到最高及最低的价格后按要求输出。
(2)流程图
2.实验代码
#include<stdio.h>
#include<string.h>
#include<stdlib.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(" "); 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 ",b[max].price,b[max].name); printf("%.2lf, %s ",b[min].price,b[min].name); return 0; }
3.本题调试过程碰到问题及解决办法
问题:可编译,但是不能正常运行
解决:发现在if(b[i].price>b[max].price)处误打成了if(b[i].price>max),在同学的帮助下,进行了改正
题目2 计算平均成绩
1 设计思路
(1)主要描述题目算法
第一步:建立结构体类型,学号,姓名以及成绩。
第二步:先定义所需的变量,然后按要求输入所需的数据
第三步:利用for循环输入所有学生的学号,姓名,成绩。
第四步:for循环求出所有同学的成绩总和,然后求出平均值。
第五步:要求输出平均分以下学生的成绩,与平均值进行比较,低于平均成绩的进行输出。
(2)流程图
2.实验代码
#include<stdio.h> struct score{ char num[20]; char name[20]; double s; }; int main(){ struct score s[100]; int i,n; double sum=0,average; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%s%s%lf",&s[i].num,&s[i].name,&s[i].s); } for(i=0;i<n;i++){ sum=sum+s[i].s; } average=sum/n; printf("%.2f ",average); for(i=0;i<n;i++){ if(s[i].s<average){ printf("%s %s ",s[i].name,s[i].num); } } return 0; }
3.本题调试过程碰到问题及解决办法
在本体的编程中,是按照老师上课的思路来进行的编程,所以没有严重错误
要求三、学习总结和进度
1.指针与结构作业中题目所使用的知识点
结构体类型数据的定义方法和引用方法。
2.git截图:
git地址: https://git.coding.net/Iams/homework.git