2018C语言第三次作业

  • 要求一

2.struct sk{int a; char *str)}*p;   p->str++ 中的++ 加向?

++加向srt的地址。

  • 要求二

题目1-计算平均成绩

1.设计思路

(1)主要描述题目算法

第一步:定义整数型变量n(学生数量)、i(循环变量)和浮点型变量average(平均成绩);

第二步:按照题目要求定义结构体student以及结构体变量s[10]和地址变量p;

第三步:使用地址和循环输入所有学生信息并在循环体内累加学生成绩;

第四步:将学生成绩和除以人数得到平均成绩输入;

第五步:使用地址和循环遍历结构体数组s筛选出平均成绩以下的学生信息。

(2)流程图

2.实验代码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student
{
	char num[6];
	char name[10];
	int score;
}s[10],*p;
int main()
{
	int n,i;
	double average=0;
	scanf("%d",&n);
	p=&s[0];
	for(i=0;i<n;i++,p++)
	{
		scanf("%s%s%d",p->num,p->name,&p->score);
		average+=p->score;
	}
	average/=n;
	printf("%.2lf",average);
	p=&s[0];
	for(i=0;i<n;i++,p++)
	{
		if(p->score<average)
		{
			printf("\n%s %s",p->name,p->num);
		}
	}
	return 0;
}

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

本题课堂进行了类似的练习所以没有错误,需要注意的应该就是输出格式,这次编程中使用了不同于课堂练习的地址变量指向结构体成员的方式。

题目2-查找书籍

1.设计思路

(1)主要描述题目算法

第一步:定义整数型变量n(书本数量)、i(循环变量);

第二步:按照题目要求定义结构体book以及结构体变量a[10]、max、min和地址变量p;

第三步:使用地址和循环输入所有书本生信息;

第四步:初始化book max和book min结构体中价格成员的值;

第五步:使用地址和循环在循环体内通过if条件句判断将所有书本中价格最高和最低的书本信息录入book max和book min结构体中;

第六步:按照题目要求格式输出信息即可。

(2)流程图

2.实验代码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct book
{
	char name[31];
	double price;
}a[10],*p,max,min;
int main()
{
	int n,i;
	scanf("%d",&n);
	p=&a[0];
	for(i=0;i<n;i++,p++)
	{
		getchar();
		gets(p->name);
		scanf("%lf",&p->price);
	}
	max.price=0;
	min.price=999999999;
	p=&a[0];
	for(i=0;i<n;i++,p++)
	{
		if(p->price>max.price)
		{
			max.price=p->price;
			strcpy(max.name,p->name);
		}
		if(p->price<min.price)
		{
			min.price=p->price;
			strcpy(min.name,p->name);
		}
	}
	printf("%.2lf, %s\n%.2lf, %s",max.price,max.name,min.price,min.name);
	return 0;
}

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

首次编译运行发现输入的信息无法正确读入进变量,经研究发现是源于程序中输入的语句结构和实际输入的内容存在换行符号的误差,所以通过在第一个循环体内加入一个getchar()来解决。

题目3-按等级统计学生成绩

1.设计思路

(1)主要描述题目算法

第一步:根据题目中所给主函数信息读入结构体地址p和整数型变量n(数组元素个数),并定义整数型变量count(不及格人数);

第二步:通过循环遍历结构体数组并通过if条件判断每一位学生的成绩等级然后读入进对应结构体之中;

第三步:当判断产生D等成绩时对count进行累加;

第四步:返回count的值。

(2)流程图

2.实验代码

int set_grade(struct student *p,int n)
{
	int count=0;
	while(n--)
	{
		if(p->score<=100&&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‘;
			count++;
		}
		p++;
	}
	return count;
}

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

课堂练习题目,没有错误。

  • 要求三

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

①结构体的声名方式,及其内部成员的定义;

②结构体的指针变量应用和函数应用。

2.Git地址:https://coding.net/u/cyq1076926262/p/test/git/tree/master/?public=true

原文地址:https://www.cnblogs.com/cyq66992152/p/8869921.html

时间: 2024-10-24 05:50:48

2018C语言第三次作业的相关文章

C语言——第三次作业

作业要求一 题目6-1 输出月份英文名 题目6-2 查找星期 题目6-3 计算最长的字符串长度 题目6-4 指定位置输出字符串 作业:C高级第三次作业(2)没有思路,知识点也没有明白,未完成. 作业要求二 题目6-1 输出月份英文名 1.设计思路 (1)主要描述题目算法 第一步:题目要求设计getmonth函数来返回输入的n相应月份的英文单词. 第二步:定义变量i,定义字符串数组,含有各个月份的英文单词. 第三步:使用for循环遍历数组,通过if判断来返回n相应的月份.因为输入的n为月份所以要大

c语言第三次作业

上节课我们学习了文件型指针的运用.这节课我们则学习了变量型指针和链表的学习的使用.还了解了free函数.malloc函数的应用 指向结构体变量的指针变量的定义形式与一般指针变量的定义形式相同,只是将其指向类型定义为结构体类型即可.例如:        struct person            { charname[20];             char sex;             int age;             float height;            }; 

关于C语言的问卷调查(作业三)

1.你对自己的未来有什么规划?做了哪些准备? 答:我对我未来的规划就是希望能够学有所用,将来可以从事有关IT方面的,跟自己的专业对口.为此现在我需要多看一些和这个专业有关的书籍,自学一些知识,多些一些代码. 2.你认为什么是学习?学习有什么用?现在学习动力如何?为什么?          答:我认为学习不仅仅是学会书本上的知识,如果只埋头于书本,那与书呆子又有何异?学习更重要的是向身边的人学习,学习做事,学习技能,学习更多书本上学不到的东西.学习不仅可以丰富我们的学识,还可以修养我们的品格,让我

C语言第六次作业

作业A: 1.编写函数int OddSum(int n)计算n个整数中所有奇数的和.其中n个数的值由用户从键盘上输入. #include <stdio.h> int main() { int n,i,a,sum=0; printf("你需要输入几个数:"); scanf("%d",&n); for(i=1;i<=n;i++) { printf("请输入你所输入的数:"); scanf("%d",&am

第三次作业问卷

看到一个问卷不错,拟作为第三次作业的部分内容. 你对自己的未来有什么规划?做了哪些准备? 答:未来走一步算一步,计划赶不上变化,充实自己的知识,多增加一点自己经验,比起知识,更重要的是社交. 你认为什么是学习?学习有什么用?现在学习动力如何?为什么? 答:学习,就是知道一些以前不知道的事.厉害的人有两点:观察力和文化底蕴,学习就是为了增加知识储备,尽量不出现书到用时方恨少的情况.目前的学习动力很缺乏,因为一到大学开始想着混. 你感觉自己什么事情做的比较成功?有什么经验? 答:并不知道,似乎没有什

第三次作业——结对编程

备注:蔡潇_031302601.叶志宇_031302628 功能分析: 这次作业第一个要求就是能够实现将Excel文件内容导入数据库,由于上学期进行数据库实践时使用的是Java语言,并且这次作业与数据库也有关系,于是乎我们就想通过Java来实现这个功能.在学习如何将Excel文件导入数据库的过程中我们发现JExcel这个API,这使得我们的Java编程更加轻松,相比与其他的语言. 第二个要求是要实现显示数据库中的数据,我们组的项目是Web端的,我们想,既然第一个要求都已经用Java实现了,第二个

魏昊卿——《Linux内核分析》第三周作业:Linux系统启动过程

魏昊卿——<Linux内核分析>第三周作业:Linux系统启动过程 一.实验部分 实验指导 使用实验楼的虚拟机打开shell 1 cd LinuxKernel/ 2 qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img 内核启动完成后进入menu程序(<软件工程C编码实践篇>的课程项目),支持三个命令help.version和quit,您也可以添加更多的命令,对选修过<软件工程C编码实践篇>

职业规划第三次作业

看到一个问卷不错,拟作为第三次作业的部分内容. 你对自己的未来有什么规划?做了哪些准备? 答: 学好大学四年的课程,并积极参加各种活动来锻炼自己的能力.在实习期间认真学习工作经验,学习经验然后争取能自己创业 好好交友,多读书, 你认为什么是学习?学习有什么用?现在学习动力如何?为什么? 答:学习是通过他人的言传身教了解知识,将他人的认识转化为自己的知识.学习能够取他人之长补己之短,丰富自己的认知,还避免了闭门造车和坐井观天的错误.现在的学习动力一般,因为新学知识对我来说比较陌生. 你感觉自己什么

第三次作业(毛涛和徐明艳)

第三次作业 题目: 请编写一个能自动生成小学四则运算题目的“软件”.让程序能接受用户输入答案,并判定对错.最后给出总共对/错的数量. 需求分析:      1. 该软件是针对学生有限的计算能力,计算效率,计算精确度而制作的软件: 2. 该软件可以进行简单的四则运算并进行判断: 扩展功能: 1. 程序可以出带括号的正整数四则运算,支持分数,除法保留两位小数. 2. 可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号. 设计:  根据四则运算法则本