第三次作业

作业要求一 

2    p->str++ 中的++ 加向地址str

作业要求二

题目1查找书籍中最高价及最低价

1 设计思路

(1)主要描述题目算法

第一步:设定所需要的变量,创建名为book的结构;

第二步:输入书籍数量,定义数组结构;

第三步:输入每个书籍的名字,价格;

第四步:判断最高价格和最低价格的书籍并输出

(2)流程图

2.实验代码

#include<stdio.h>
struct  book{
  float price;
  char name[30];
};
int main(){
  int n,i,max=0,min=0;
  scanf("%d",&n);
  struct book s[n];
  for(i=0;i<n;i++){
      scanf("\n");
    gets(s[i].name);
    scanf("%f",&s[i].price);
  }
  for(i=0;i<n;i++){
    if(s[max].price<s[i].price){
      max=i;
    }
    if(s[min].price>s[i].price){
      min=i;
    }
  }
  printf("%.2f, %s\n",s[max].price,s[max].name);
  printf("%.2f, %s\n",s[min].price,s[min].name);
  return 0;
}

 

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

错误信息:遇到了输入出现错误的问题,导致结果出现错误;

改正方法:在字符串的前面加上换行符,防止字符串读取之前的回车

题目2 计算平均成绩

1 设计思路
(1)主要描述题目算法

第一步:创建学生结构体

第二步:输入结构数组的数量

第三步:输入结构所需数据

第四步:通过循环遍历数组并找出成绩最高和最低者的成绩和名字,输出;

2.实验代码

#include<stdio.h>
struct student{
  char num[5];
  int gard;
  char name[10];
};
int main(){
  int n,i;
  float aver;
  scanf("%d",&n);
  struct student s[n];
  for(i=0;i<n;i++){
    scanf("%s %s %d",&s[i].num,&s[i].name,&s[i].gard);
    aver+=s[i].gard;
  }
  aver/=n;
  printf("%.2f\n",aver);
  for(i=0;i<n;i++){
    if(s[i].gard<(int)(aver+0.5)){
      printf("%s %s\n",s[i].name,s[i].num);
    }
  }
  return 0;
}

 

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

错误原因:出现了指针指向异常的问题;

改正方法:重新检查数组并改正;

要求三、学习总结和进度

1、指针与结构作业中题目所使用的知识点

结构体的正确使用和输出定义的变量

2、将PTA作业的源代码使用git提交到托管平台上,要求给出上传成功截图和你的git地址。请注意git地址应是类似“git”这样的字符串且是可被访问者直接点击进行访问的链接

https://git.coding.net/z1203239793/test.git

posted @ 2018-04-23 22:11  莫拉格尼  阅读(145)  评论(0编辑  收藏  举报