代码改变世界

第三次作业

2018-04-22 21:46  孙佳钰  阅读(243)  评论(0编辑  收藏  举报

作业要求一

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("\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.本题调试过程碰到问题及解决办法

 

问题:可编译,但是不能正常运行

解决:发现在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\n",average);
   for(i=0;i<n;i++){
     if(s[i].s<average){
       printf("%s %s\n",s[i].name,s[i].num);
       }
   }
   return 0;
}

3.本题调试过程碰到问题及解决办法


在本体的编程中,是按照老师上课的思路来进行的编程,所以没有严重错误

要求三、学习总结和进度

1.指针与结构作业中题目所使用的知识点
结构体类型数据的定义方法和引用方法。

2.git截图:

git地址:  https://git.coding.net/Iams/homework.git