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

2018C语言第三次作业的更多相关文章
- C语言第三次作业总结
		
本次作业的亮点 总体情况 大部分同学基本掌握了单层循环结构的写法,懂得了代码调试的过程 PTA通过率及作业质量都不错,希望再接再厉 推荐博客 黄毓颖 推荐理由:代码思路清晰,格式良好:调试过程相当形象 ...
 - C语言 第三次作业--函数
		
1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 学习C语言也半个学期了,前天也才刚刚进行了半期考试,emmm,成绩很差,可以反应出来我这半学期学习的效果并不 ...
 - C语言第三次作业---单层循环结构
		
一.PTA实验作业 题目一.最佳情侣身高差 1.实验代码 int N;//存放输入的人数 char sex; double hight1,hight2;//分别存放输入的身高和输出的身高 scanf( ...
 - C语言第三周作业---单层循环
		
一.PTA实验作业 题目1 1.实验代码 int N = 0,i; char sex; float a[9], height; scanf("%d\n", &N); for ...
 - C语言第三次作业--嵌套循环
		
一.PTA实验作业 题目1:硬币数 1. 本题PTA提交列表 2. 设计思路 步骤一:定义整型变量fen5,fen2,fen1,表示1分2分和5分,零钱数额x,总硬币数total,换法count 步骤 ...
 - C语言--第三周作业
		
一.PTA作业中4个题目 1.7-9 A乘以B 要求:输入的两个整数:A是你学号前两位数字,B是你学号后两位数字 a.代码 #include <stdio.h> int main () { ...
 - 2018c语言第1次作业
		
6-1 计算两数的和与差 1.设计思路 (1)主要描述题目算法 第一步:把两个数的加减法分别赋给psum和pdiff. 第二步:通过psum和pdiff的地址把值传回主函数. (2)流程图.(无) 2 ...
 - C语言——第三次作业
		
题目1.A乘以B 1.实验代码 #include <stdio.h> int main() { int A,B,C; scanf("%d %d",&A,& ...
 - c语言第三次作业。
		
---恢复内容开始--- (一)改错题 计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数. 源代码 : 第一次编译: 错误原因:if 后面有分号 改正方法:去掉分号 ...
 
随机推荐
- Linux环境下MySQL设置gbk编码
			
1 编辑mysql配置文件 vi /etc/my.cnf 2 创建数据库 CREATE DATABASE `XXX` DEFAULT CHARACTER SET gbk COLLATE gbk_chi ...
 - Dubbo -- 系统学习 笔记 -- 成熟度
			
Dubbo -- 系统学习 笔记 -- 目录 成熟度 功能成熟度 策略成熟度 啦啦啦
 - Ansible 实战:一键安装 LNMP
			
Ansible 配置文件 : [root@center /data/ansiblework]# cat ansible.cfg [defaults] remote_user = root remote ...
 - 编译Android 必须安装的库
			
要安装的库: 正在卸载 build-essential ...正在卸载 g++-multilib ...正在卸载 g++ ...正在卸载 gcc-multilib ...正在卸载 gcc ...正在卸 ...
 - drawCall_01
			
在屏幕上渲染物体,引擎需要发出一个绘制调用来访问图形API(iOS系统中为OpenGL ES).每个绘制调用需要进行大量的工作来访问图形API,从而导致了CPU方面显著的性能开销. Unity在运 ...
 - [OSX] 在 OS X 中安装 MacPorts 指南
			
什么是MacPorts? MacPorts是使用于Mac OS中第三方包管理工具. MacPorts让你可以轻松编译.安装和管理开源软件.MacPorts可以分为两个核心部分:MacPort base ...
 - centos6.4安装GCC
			
1. Last login: Mon Aug 4 11:46:15 2014 from 10.3.7.128 [jifeng@jifeng04 ~]$ ls hadoop jdk1.7.0_45 ...
 - Python入门 学习笔记
			
十六进制:0x123 布尔运算:and, or, not 空值:None 注释:# raw字符串不需要转义:r'XXX' 多行字符:'''XXX''' 多行字符+raw字符串:r'''XXX''' U ...
 - Struts在Web.xml中的配置及Struts1和Struts2的区别
			
(1)配置Struts的ActionServlet <servlet>元素来声明ActionServlet <servlet-name>元素:用来定义Servle ...
 - Javascript学习笔记--理解prototype
			
prototype和closure是js中两个不好搞懂的概念,幸好网上有很多相关的文章,在网上查了一遍以后,总是是觉得有点理解了.今天先说说prototype. 之前一直被ajax in action ...