第三次作业

一、作业要求一:
1、结构成员的引用方法与数组类似在[]运算符中标明要提取的结构体成员放在结构体数组名的后面点运算符的前面,即可提取相应的成员。
2、p->str++中的++加向p中的字符指针str。
3、struct { int len; char str; } p;是个指针定义,p->str++必须加在之后的语句上,这一句不能加,属于语法错误。
二、作业要求二:
1、计算平均成绩:
(1)代码:

#include<stdio.h>
#include<stdlib.h>
struct score
{
  char num[20];
  char name[20];
  double s;
};
int main()
{
   struct score s[100];
   int i,n;
   double average=0;
   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++)
   {
     average=average+s[i].s;
   }
   average=average/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;
}

(2)设计思路:
第一步:构建程序基本框架,定义结构体数组,定义需要的变量。
第二步:向结构体数组中输入数据。
第三步:输出平均数,输出分数低于平均数的同学的学号和姓名。
(3)流程图:
1238904-20180422125437078-1253542055.png
(4)本题遇到的问题:
本题在整体思路上没有出现大问题,在一些小符号上出现了一点小错误。
2、查找书籍
(1)代码:

#include <stdio.h>
#include<stdio.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;  
} 

(2)设计思路:
第一步:在程序中建立所需的结构体类型。
第二步:先要输入要比较的书籍本书,然后依次输入书名和价格,利用for循环。
第三步:在同一个for循环中进行价格高低的比较。找到最高及最低的价格后按要求输出。
(3)流程图:
1238904-20180422172729475-170691406.png
(4)本题遇到的问题:
程序输出结果与题目要求的相反。
解决方法:将定义中的max与min给弄混了,将两个变量的循环放反了。将两个变量的循环变量位置进行交换。
三、
(1)学习总结和进度
这周学习了指针的结构体类型数据的定义方法和引用方法。
(2)学习进度表
1238904-20180422182804779-662580358.png
1238904-20180422182949178-1570175276.png
(3)上传coding截图:
1238904-20180422183021483-1331505664.png
git地址:https://coding.net/u/c289716425/p/123/git?public=true

转载于:https://www.cnblogs.com/1999-cyc/p/8908688.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值