zoukankan      html  css  js  c++  java
  • 第三次作业

    作业要求一
    2 课上疑点:讨论查阅分析 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("
    "); 
         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
    ",s[max].cost,s[max].name);
       printf("%.2f, %s",s[min].cost,s[min].name);
       system ("pause");
    }
    

    3.本题调试过程碰到问题及解决办法
    答:在第一次完成之后就显示答案错误,然后找了许久才发现原因。因为定义名字的时候(char name[31])没有算上‘’的位置,经过改正就对了。

    计算平均成绩
    1 设计思路
    (1)主要描述题目算法。
    第一步:写好基本框架,然后定义学生信息的结构体。
    第二步:定义个n人和分数总和sum,然后用for循环输入n个学生的基本信息和累加n个学生的成绩。之后计算出平均成绩值。
    第三步:利用for循环找出成绩低于平均分的同学,然后输出相关信息。

    2.实验代码

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    struct student
    {
      char name[10];
      char num[5];
      int score;
    }s[10];
    main()
    {
      int i,n;
      float sum=0,ave;
      scanf("%d",&n);
      for(i=0;i<n;i++)
      {
        scanf("%s %s %d",s[i].num,s[i].name,&s[i].score);
        sum=s[i].score+sum;
      }
      ave=sum/(n*1.0);
      printf("%.2f
    ",ave);
      for(i=0;i<n;i++)
      {
        if(s[i].score<ave)
        {
          printf("%s %s
    ",s[i].name,s[i].num);
        }
      }
      system("pause");
    }
    

    3.本题调试过程碰到问题及解决办法
    答:这题比较简单,没有问题。

    题目1查找书籍中最高价及最低价
    1 设计思路
    (1)主要描述题目算法。
    第一步:编写函数,利用for循环再用if,else if来找出不同的年龄段。并且计数分数在六十分以下的人数sum。
    第二步:返回sum的值。
    2.实验代码

    int set_grade( struct student *p, int n )
    {
      int i,sum=0;
      for(i = 0; i < n; i++,p++)
      {
        if(p->score>=85){p->grade='A';}
        else if(p->score>=70){p->grade='B';}
        else if(p->score>=60){p->grade='C';}
        else {p->grade='D';sum++;}
      }
      return sum;
    }
    

    3.本题调试过程碰到问题及解决办法
    要求三、学习总结和进度
    1>:指针与结构作业中题目所使用的知识点:
    对于结构体的函数调用则跟普通函数调用一样,将类型说明换成结构体类型。

    1.指针中代表取地址符,即一个指针变量加上相当于一个变量

    2.指针表达式可以加或减一个整型数据,使指针指向下一个存储单元。

    3.一般定义指针时都会先把指针定义为空指针NULL。

    4.字符型指针可以直接赋值字符串,不过指针存储的是字符串的第一个字符的地址。

    5.所以不能使用strcpy将字符串直接复制到另一数组中,

    6.链表一般是结构体指针,注意插入链表和拆分链表。

    2>,将PTA作业的源代码使用git提交到托管平台上,
    我的git代码为:
    https://git.coding.net/AI1452349541/H.K.2.2.git

    热爱每一天
  • 相关阅读:
    通过socket,实现简易版的通讯
    控制台报错[WDS] Disconnected!
    js里面可以提升性能的有哪些方法
    构造函数与普通函数的区别
    事件循环(event loop)
    二维数组的创建以及简单举例
    es5数组的api(了解)
    字符串的api (基础)
    git常用命令
    连接MongoDB失败,处理办法
  • 原文地址:https://www.cnblogs.com/blueblog6/p/8909089.html
Copyright © 2011-2022 走看看