代码改变世界

结构体

2017-12-24 22:16  小厮sir  阅读(314)  评论(1编辑  收藏  举报

一、PTA实验作业

题目1:7-1 计算职工工资

1. 本题PTA提交列表(要提交列表,不是结果)

2. 设计思路(伪代码或流程图)

#include <stdio.h>
struct 员工信息{
		char 姓名;
		float 基本工资;
		float 浮动工资;
		float 支出;};
int main (){
	int 人数
	float 实发工资; 
	scanf(人数);
	struct information 结构数组变量 
	for(有多少人循环多少次){
		scanf(名字);
		scanf(基本工资,浮动工资,支出);
	}
	for(有多少人循环多少次)
		实发工资=基本工资+浮动工资-支出
		printf(姓名,实发工资);
	}

}

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

本题的问题是一开始当成只有一个员工信息,后来运行时才发现没有用结构体数组,其实结构体就像一未填写的
表,里面有各种栏目要你去补充,如果有多张表就要用结构体数组啦

题目2:7-2 时间换算

1. 本题PTA提交列表(要提交列表,不是结果)

2. 设计思路(伪代码或流程图)

#include <stdio.h>
struct 时间{
	int 小时;
	int 分钟
	int 秒
};
int main (){
	struct time 结构变量 ;
	scanf(小时:分钟:秒);
	int 要改变的时间 
	int 控制变量 
	scanf(要改变的时间);
	
	for(改变多少秒就循环多少次){
		每次加一秒
		if(秒数==60){
			把秒变为00;
			然后分钟加一;
			if(分钟==60){
				把分钟变为00;
				小时加一;
				if(如果小时==24){
					小时变为00;
				}
			}
		}
	}
	
	printf(小时:分钟:秒);	 
}

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明

本体遇到的主要问题是最后输出是如何输出05而不是5,查了网上的资料后发现只要把%d改为%0d就可以啦
还有就是满60进一,开始的时候没有加一而加成变量i,调试两步就发现问题啦

题目3:计算两个复数之积

1. 本题PTA提交列表(要提交列表,不是结果)

2. 设计思路(伪代码或流程图)

struct complex multiply(struct complex x, struct complex y){
	struct complex 定义结构变量; 
        (a+bi)(c+di)=(ac-bd)+(bc+ad)i
	return 结果;

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明

前面多次的编译错误主要是return出错,返回的是结构体变量,我返回成了p.real

二、截图本周题目集的PTA最后排名。(2分)

三、本周学习总结(1分)

1.结构体,共同体,枚举

结构体和数组一样都是构造型数据类型,和数组不同的是,结构体可以处理不同类型的数据
共用体是一种多变量共享存储空间的构造类型,它允许几种不同的变量共用同一存储空间。

共用体和结构体的区别:1结构体每一位成员都用来表示一种具体事务的属性,共用体成员可
以表示多种属性(同一存储空间可以存储不同类型的数据)。结构体总空间大小,等于各成
员总长度,共用体空间等于最大成员占据的空间。共用体不能赋初值。
只要理解了共用体了结构体他们的区别应该能分清楚。

枚举类型是指变量的值可以全部列出,定义一个枚举变量后,变量的值确定在定义之中。它和
结构体、共用体的区别在于,枚举元素是常量,只能在定义阶段赋值。

2.递归函数原理

递归(recursion)就是子程序(或函数)直接调用自己或通过一系列调用语句间接调用自己,是一种描述问题和解决问题的基本方法。
递归通常用来解决结构自相似的问题。所谓结构自相似,是指构成原问题的子问题与原问题在结构上相似,可以用类似的方法解决。具体地,整个问题的解决,可以分为两部分:第一部分是一些特殊情况,有直接的解法;第二部分与原问题相似,但比原问题的规模小。实际上,递归是把一个不能或不好解决的大问题转化为一个或几个小问题,再把这些小问题进一步分解成更小的问题,直至每个小问题都可以直接解决。因此,递归有两个基本要素:(1)边界条件:确定递归到何时终止,也称为递归出口。 (2)递归模式:大问题是如何分解为小问题的,也称为递归体。递归函数只有具备了这两个要素,才能在有限次计算后得出结果.在递归函数中,调用函数和被调用函数是同一个函数,需要注意的是递归函数的调用层次,如果把调用递归函数的主函数称为第0层,进入函数后,首次递归调用自身称为第1层调用;从第i层递归调用自身称为第i+1层。反之,退出第i+1层调用应该返回第i层