一、PTA实验作业

题目1:6-4 结构体数组按总分排序

1. 本题PTA提交列表

2. 设计思路

定义cala函数,定义ifor  i=0  to   n  遍历数组计算每一个学生的三门课成绩的和,存放在sum中
定义sort函数,定义结构体变量temp,定义i,jfor  i=0  to   n  外循环for  j=i   to  n    内循环如果p[i].sum<p[j].sum,交换位置

3.代码截图

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

第一次编译错误是我只把cala函数贴在了里面,提示编译错误

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

1. 本题PTA提交列表

2. 设计思路

struct stuff
{char name[11];float jbpay;float fdpay;float pay;float sfpay;
};
定义结构体stuff包含姓名,基本工资,浮动工资,支出,实发工资;定义N;定义结构体数组s[N];定义i;输入Nfor  i=0   to   N输入职工的数据,即姓名, 基本工资,浮动工资,支出计算实发工资,实发工资=基本工资+浮动工资-支出for  i=0   to   N输出职工的姓名和实发工资

3.代码截图

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

第一次答案错误,我把实发工资定义成结构体外的一个双精度浮点型数据,答案错误

题目3:7-6 通讯录的录入与显示

1. 本题PTA提交列表

2. 设计思路

struct  maillist
{char name[11];char birthday[11];char sex;      char tel[17];     char mobile[17];
};
定义结构体maillist包含姓名,出生日期,性别,固定电话号码,移动电话号码;定义N;定义结构体数组mail[N];定义i,k,n[10];输入Nfor  i=0   to   N输入通讯录中的数据,即姓名,出生日期,性别,固定电话号码,移动电话号码输入查询编号的次数kfor  i=0   to   k输入的编号存放在数组n中如果n[i]>=0&&n[i]<N即输入的编号在0到N范围内,即找到了,输出姓名 固话 手机 性别 生日否则 没找到,输出Not Found

3.代码截图

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

误明显问题

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

三、阅读代码

四、本周学习总结

1.自己总结本周学习内容。

  • 1.结构是C语言中一种新的构造数据类型,它能够将不同数据的类型汇聚成一个整体;同时,结构又是一个变量的聚合,可以按照对基本数据类型的操作方法单独使用其成员变量,c语言中,结构体的定义是一条语句,所以要用分号结尾
  • 2.定义嵌套循环的结构类型时,必须先定义其成员的结构类型,再定义主结构类型
  • 3.结构体指针可传递多个数据的地址,参数传递的形式简单,但效率低
  • 4.结构变量的定义和初始化
    (1)单独定义、混合定义、无类型名定义
    (2)结构变量的初始化采用初始化表的方法,大括号内各数据间用逗号隔开,将大括号内的数据按顺序赋给结构变量内每个成员,数据类型要求一致
  • 5.结构变量成员的引用。
结构变量名.结构体中数据名
结构指针->结构体中数据名

结构体、共用体、枚举这种构造数据类型特点。

  • 结构体和数组一样都是构造型数据类型,和数组不同的是,结构体可以处理不同类型的数据。结构体里还可以有结构体类型、共用体的类型的数据。结构体每一位成员都用来表示一种具体事务的属性。结构体总空间大小,等于各成员总长度
  • 共用体是一种多变量共享存储空间的构造类型,它允许几种不同的变量共用同一存储空间。共用体成员可以表示多种属性(同一存储空间可以存储不同类型的数据)。共用体空间等于最大成员占据的空间。共用体不能赋初值。共用体定义union 共用体名称{ 数据1,数据2......}结构体名称;struct 结构体名称{ 数据1,数据2......};
  • 当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型。枚举类型是指变量的值可以全部列出,定义一个枚举变量后,变量的值确定在定义之中。枚举元素是常量,只能在定义阶段赋值。枚举定义enum 枚举名称 {数据1,数据2,...};枚举变量定义1.先定义枚举类型,再定义枚举变量2.定义枚举类型的同时定义枚举变量3.省略枚举名称,直接定义枚举变量

    递归函数原理

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

    2.罗列本周一些错题。

    线性表用顺序实现。请填空写一个求线性表L 中所有奇数之和的算法。
    例如:
    L=(1,2,3,4,5) 其和为 9

#include<stdio.h>
#define N 10
typedef struct sqlist{int data[N];int last;}LIST;int Total(List list){return sum;  }void Show(LIST list){int i;for(i=0;i<=list.last;i++)printf("%3d", list.data[i]);printf("\n");}
int main(){LIST list;int i,sum;for(i=0;i<=5;i++)list.data[i]=i;list.last=5;Show(list);sum=Total(list);printf("sum=%3d\n",sum);return 0;
}

答案

int sum=0;
for(int i=0;i<=list.last;i++)if(list.data[i]%2)sum+=list.data[i];

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。
函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。
例如:a所指变量s中的学号、姓名、和三门课的成绩依次是:
10001、" ZhangSan "、95、80、88,
修改后输出t中的数据应为:10002、"LiSi "、96、81、89。

#include<stdio.h>
#include<string.h>
struct student {long  sno;char  name[10];float  score[3];
};______2__________ Modif(struct student  *p)
{int  i;p->sno = 10002;strcpy(p->name, "LiSi");for (i=0; i<3; i++)______3_______++;return _____4________;
}
void main()
{struct student  s={10001,"ZhangSan", 95, 80, 88},  *t;int  i;printf("\n\nThe original data :\n");printf("\nNo: %ld  Name: %s\nScores:  ",s.sno, s.name);for (i=0; i<3; i++)printf("%6.2f ", ___1____);printf("\n");t = Modif(&s);printf("\nThe data after modified :\n");printf("\nNo: %ld  Name: %s\nScores:  ",t->sno, t->name);for (i=0; i<3; i++)printf("%6.2f ", t->score[i]);return 0;
}

答案

s.score[i]
struct student *
p->score[i]
p

程序改错题:
输入一个正整数n(3<=n<=10),再输入n个雇员的信息(如下表所示),输出每人的姓名和实发工资(基本工资+浮动工资-支出)。
格式:

#include<stdio.h>
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;
}

答案

#include<stdio.h>
int main()
{  struct {  char name[10];float jbg;float fdg;float zc;}emp[10];  //1int i,n;printf("n=");scanf("%d",&n);getchar();  //2for(i=0;i<n;i++){scanf("%s%f%f%f",emp[i].name,&emp[i].jbg,&emp[i].fdg,&emp[i].zc);   //3getchar();} //4for(i=0;i<n;i++)printf("%5s实发工资:%7.2f\n", emp[i].name,emp[i]. jbg+emp[i]. fdg-emp[i].zc);//5return 0;
}

以下程序的运行结果是 :

# include <string.h>
typedef struct student{char name[10];long sno;float score;}STU;
main( )
{  STU
a={“zhangsan”,2001,95},b={“Shangxian”,2002,90},c={“Anhua”,2003,95},d,*p=&d;d=a;if(strcmp(a.name,b.name)>0)   d=b;if(strcmp(c.name,d.name)>0)   d=c;printf(“%ld%s\n”,d.sno,p->name); }

答案

2002Shangxian

转载于:https://www.cnblogs.com/lbhd/p/8099151.html

C语言博客作业--结构体相关推荐

  1. C语言博客作业--函数

    C语言博客作业--函数 一,PTA实验作业 6-2 简单实现x的n次方 1.本题PTA提交列表 2.设计思路 double mypow( double x, int n )函数 (1)定义y=1,i用 ...

  2. C语言|博客作业06

    这个作业属于哪个课程 https://bbs.csdn.net/forums/csuft_swxy_C?typeId=17321 这个作业要求在哪里 https://bbs.csdn.net/topi ...

  3. C语言|博客作业05

    C语言|博客作业05 这个作业属于哪个课程 https://bbs.csdn.net/forums/csuft_swxy_C?typeId=17321 这个作业要求在哪里 https://bbs.cs ...

  4. C语言|博客作业04

    C语言|博客作业04 1. 完成云班课的知识点总结作业,并给出截图. 2. 学习总结 这个作业属于哪个课程 https://bbs.csdn.net/forums/csuft_swxy_C?typeI ...

  5. 【C语言博客作业06】

    这个作业属于哪个课程 https://bbs.csdn.net/forums/csuft_swxy_C?category=0&typeId=17328 这个作业要求在哪里 https://bb ...

  6. C语言博客作业06--结构体文件

    1.本章学习总结 1.1 思维导图 1.2 本章学习体会 最近学习了结构体.链表和文件的运用,结构体那一部分大体上都能掌握,但是文件那一部分,函数.知识点比较多,掌握得还不够熟练,一些比较复杂和难的部 ...

  7. c语言中11 3等于多少,C语言|博客作业11

    一.本周教学内容&目标 第5章 函数 要求学生掌握各种类型函数的定义.调用和申明,熟悉变量的作用域.生存周期和存储类型. 二.本周作业头 三.本周作业 1.PTA实验作业 请再此处列出自己的排 ...

  8. C语言|博客作业09

    这个作业属于哪个课程 https://bbs.csdn.net/forums/csuft_swxy_C?category=0&typeId=17321 这个作业要求在哪里 https://bb ...

  9. C语言|博客作业10

    这个作业属于哪个课程 https://bbs.csdn.net/forums/csuft_swxy_C?category=0&typeId=17321 这个作业要求在哪里 https://bb ...

最新文章

  1. python邮件发送哪个好_最全总结!聊聊 Python 发送邮件的几种方式
  2. 一句话总结卷积神经网络
  3. Docker构建Spark镜像手动执行命令示例
  4. bzoj4278[ONTAK2015]Tasowanie bzoj1692[USACO 2007Dec]队列变换(Best Cow Line) 贪心正确性证明...
  5. java 压缩gz_如何在Java中将.zip压缩为.gz?
  6. Mr.J--蓝桥杯--明明的随机数
  7. openSUSE 跨版本升级
  8. SQL Server到底需要使用哪些端口
  9. VB2015编写的九宫格拼图游戏及暴力求解解法(主要使用datagridview和listbox控件)
  10. 数据库开源项目_开源项目贴纸库
  11. ASTC图片纹理压缩探讨
  12. 科技爱好者周刊(第 154 期):1982年的信息社会预言
  13. python求因子个数_python怎么求因数
  14. php程序员的情书,2018浪漫七夕:7款程序员必备表白源码(超炫酷)
  15. 计算机在制造业中的应用领域是什么,计算机在制造业中的应用ppt
  16. Q_D以及Q_Q指针理解
  17. 使用docker 注册runner
  18. 多路复用,讲的很明白
  19. (windows)如何删除删不掉的文件
  20. 考研英语 - word-list-1

热门文章

  1. (2) nginx信号量
  2. (2) ebj学习:hello world入门案例
  3. font-size用VW来写的方法
  4. 正确使用cookie中的domain
  5. SQL里学习通配符时LIKE和RLIKE的区别
  6. Linux内存管理初探
  7. 基础练习 字母图形 c语言
  8. 《好未来编程题》 输入n个整数,输出出现次数大于等于数组长度一半的数
  9. Matplotlib画图常用方法总结(全)
  10. 从工作实践中积累Linux常用脚本(一)