第三次 结构部分

作业要求一 
1 完成PTA
2 struct { int len; char str; } p;是个指针定义,p->str++必须加在之后的语句上

作业要求二

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

1.设计思路

(1)主要描述题目算法

第一步:建立结构体,包括书名和价格

第二步:在主函数中定义变量,找到书籍价格的最高价及最低价,先输入要比较的书籍本书,然后依次输入书名和价格,利用for循环

第三步:找出书籍中的最高价和最低价,分别输出他们的名字和价格

(2)流程图

2.实验代码

#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;  
}  

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

 

在DEV C++上运行多次,正确了之后提交到PTA,发现还是编译错误,查找后发现是符号的问题,而在C++上出现的问题是循环结构使用出错

题目2 计算平均成绩

1.设计思路

(1)主要描述题目算法

第一步:建立结构体,包括学生的学号,姓名,成绩

第二步:在主函数中,定义变量,然后输入学生人数,利用for循环依次输入学生学号,姓名,成绩

第三步:求出所有同学的成绩总和,然后求出平均值

第四步:输出平均分以下学生的成绩,与平均值进行比较,低于平均成绩进行输出

(2)流程图

2.实验代码

#include <stdio.h>
#define MAXN 10

struct student{
    int num;
    char name[20];
    int score;
    char grade;
};

int set_grade( struct student *p, int n );

int main()
{   struct student stu[MAXN], *ptr;
    int n, i, count;

    ptr = stu;
    scanf("%d\n", &n);
    for(i = 0; i < n; i++){
       scanf("%d%s%d", &stu[i].num, stu[i].name, &stu[i].score);
    } 
   count = set_grade(ptr, n);
   printf("The count for failed (<60): %d\n", count);
   printf("The grades:\n"); 
   for(i = 0; i < n; i++)
       printf("%d %s %c\n", stu[i].num, stu[i].name, stu[i].grade);
    return 0;
}

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

在C++中调试后输入到PTA中,在C++中出现了问题,在struct那里用的不太顺利

要求三、学习总结和进度

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

作业中使用了结构体的定义与引用

2、将PTA作业的源代码使用git提交到托管平台上,要求给出上传成功截图和你的git地址

 

posted @ 2018-04-21 21:45  孙美玲  阅读(166)  评论(0编辑  收藏  举报