码迷,mamicode.com
首页 > 编程语言 > 详细

C语言博客作业--结构体

时间:2017-12-25 00:40:27      阅读:468      评论:0      收藏:0      [点我收藏+]

标签:学习   放弃   存储空间   共享   处理   情况   ber   效率   gpo   

一、PTA实验作业

题目1:6-3 结构体数组中查找指定编号人员

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

技术分享图片

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

 传入结构体数组str 和要查找的人员num
      struct student *pos;
      for  pos=std to std+7
          if(strcmp(pos->num,num)==0)
         退出循环
         end for
          返回  *pos

3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

技术分享图片

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

  • 运行输出非常奇怪,都输不出数字。
    技术分享图片
  • 解决办法:我本来以为是我的结构体不熟悉指针指向错了,所以就把->改成 . 但是还是不对。我本来是判断他们地址相同,后来以为是这里错了,就改成用值来判断,结果连运行都过不去。最后是去请教了同学才知道这个题目确实就和我一开始写的那样,但是在判断时要用库函数,所以后来我就用了库函数strcmp来判断两个字符串是否相等,后来就正确了。

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

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

技术分享图片

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

  struct worker{
    char name[10];
    float jiben, fudong,zhichu,shifa;
};//该结构体表示职工姓名、基本工资、浮动工资、支出和实发工资
    struct worker workers[1000]; 循环变量i,员工个数number
     输入员工个数
      for  i=0  to number
      输入职工姓名、基本工资、浮动工资、支出
      计算实发工资=基本工资+浮动工资-支出
      end for
       for  i=0  to number
       输出 姓名 实发工资
      end for

##3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)
![](http://images2017.cnblogs.com/blog/1233587/201712/1233587-20171224172208928-1725723329.png)


##4.本题调试过程碰到问题及PTA提交列表情况说明。
- 1.一直编译错误,可是又找不出来错在哪里,devc上错误语句提示在输入员工信息那一句,可是我反复检查也没发现有语法错误。
- 解决办法:实在是找不到错在了哪里,所以我后来就再回去看了一遍课本,看看他们的程序都是怎么编写的。最后我发现每个程序都是在主函数之前有定义一个结构体,然后主函数中又再定义了一个结构体,所以我就回去在我的程序中再定义一个结构体,之后果然就可以运行了。
- 2.可以运行之后,运行出来的答案不对,无法计算出正确结果,一直输出0.00
- 解决办法:反复检查后发现数据类型定义不对,我将员工的工资都定义成了int
- 3.输出和pta一模一样,就是不正确
- 解决办法:一开始以为是格式不对,所以就让输出数据对齐,可是也不对,最后检查了好久才知道我定义的是float型数据,可是输入输出都是用%lf,后来改回%f就正确了,也不用控制格式。

#题目3:7-2 时间换算
##1. 本题PTA提交列表(要提交列表,不是结果)

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


##3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

##4.本题调试过程碰到问题及PTA提交列表情况说明。
- 这题刚开始没想到那么多,就是调出来示例就提交了pta,结果基本都是错的。
- 解决办法:这个题目其实也不难,但是就有点麻烦,有很多种情况需要考虑进去,我一开始是将小时分钟和秒一起输出,后来发现这样要讨论的情况非常多,就果断放弃,换成小时、分钟、秒一个一个输出,这样可以减少许多步骤,后来在按照pta上的测试点一个一个的调,最后就可以调出来了。

#二、截图本周题目集的PTA最后排名。

#三、阅读代码

#四、本周学习总结
##1.总结本周学习内容。

###1.结构体、共用体、枚举这种构造数据类型特点。
####1.结构体和数组一样都是构造型数据类型,和数组不同的是,结构体可以处理不同类型的数据。结构体里还可以有结构体类型、共用体的类型的数据。
####2.共用体是一种多变量共享存储空间的构造类型,它允许几种不同的变量共用同一存储空间。共用体和结构体的区别:
- 1.结构体每一位成员都用来表示一种具体事务的属性,共用体成员可以表示多种属性(同一存储空间可以存储不同类型的数据)。
- 2.结构体总空间大小,等于各成员总长度,共用体空间等于最大成员占据的空间。
- 3.共用体不能赋初值
####枚举类型是指变量的值可以全部列出,定义一个枚举变量后,变量的值确定在定义之中。它和结构体、共用体的区别在于,枚举元素是常量,只能在定义阶段赋值。
##2.递归函数原理
- 递归的原理,其实就是一个栈(stack), 比如求5的阶乘,要知道5的阶乘,就要知道4的阶乘,4又要是到3的,以此类推,所以递归式就先把5的阶乘表示入栈, 在把4的入栈,直到最后一个,之后呢在从1开始出栈, 看起来很麻烦,确实很麻烦,他的好处就是写起代码来,十分的快,而且代码简洁,其他就没什么好处了,运行效率出奇的慢.
###以上皆来源于百度百科
##2.罗列本周一些错题。
###课堂派结构体程序改错题
-   输入一个正整数n(3<=n<=10),再输入n个雇员的信息(如下表所示),输出每人的姓名和实发工资(基本工资+浮动工资-支出)。

include

int main()

{
struct emp
{
char name[10];
float jbg;
float fdg;
float zc;

 };
int i,n;
printf(“n=”);
scanf(“%d”,&n);
for(i=0;i<n;i++)
     scanf(“%s%d%d%d”,emp[i].name,emp[i].&jbg,emp[i].&fdg,emp[i],&zc);
for(i=0;i<n;i++)
     printf(“%5s实发工资:%d\n”, emp[i].name,emp[i].zc);
return 0;

}
```

  • 当时老师已经上过结构体的课了,但是我对结构体的许多知识都还是一知半解,感觉懂了一点,但当写起题目来就发现自己还有太多东西不会。

C语言博客作业--结构体

标签:学习   放弃   存储空间   共享   处理   情况   ber   效率   gpo   

原文地址:http://www.cnblogs.com/1795759388-/p/8094707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!