第三次作业

作业要求二

题目一:计算平均成绩
1 设计思路
(1)主要描述题目算法
第一步:看到N个学生的多种信息 想到使用结构体和数组,所以在结构体中定义学号,姓名和成绩。
第二步:多个学生依次输入成绩要使用for循环并注意输入格式。
第三步:要求输出平均成绩线以下的学生名单,所以算出平均成绩后要把每个学生的成绩与平均成绩相比较,使用if,else。
(2)流程图

 

2.实验代码

 

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

3.本题调试过程碰到问题及解决办法
   错误原因:结构体大括号后面忘记分号。

   改正方法:和老师上课的代码进行比较。

题目二:查找书籍
1 设计思路
(1)主要描述题目算法
第一步:给出相应结构体,定义最高价和最低价。
第二步:进行多次比较,使用for循环。
第三步:按格式输出。
(2)流程图

 


2.实验代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

int main()
{
    struct book
    {
        char name[300];
        double price; 
    }now,max,min;

    max.price=0;
    min.price=999999999999999999;
    int n,i;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        getchar();
        gets(now.name);
        scanf("%lf",&now.price);
        if(now.price>max.price)
        {
            strcpy(max.name,now.name);
            max.price=now.price;
        }
        if(now.price<min.price)
        {
            strcpy(min.name,now.name);
            min.price=now.price;
        }
    }
    printf("%.2lf, %s\n%.2lf, %s",max.price,max.name,min.price,min.name);

    return 0;
}

3.本题调试过程碰到问题及解决办法
   错误原因:定义价格的时候使用了整型。
   改正方法:警告我而且输出的东西乱七八糟然后仔细看了一下题目。

要求三、学习总结和进度
1、总结两周来所有PTA作业中每个题目所使用的知识点。

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

https://git.coding.net/wangjiale0616/diyizhouzuoye.git

 

 

posted @ 2018-04-22 11:19  三水儿  阅读(191)  评论(0编辑  收藏  举报