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

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

PTA实验作业

题目1:6-1 计算两个复数之积

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

1232142-20171222085238678-553940004.png

2. 设计思路

struct complex{
    int real;
    int imag;
};//该结构体表示复数的实部和虚部
struct complex w,定义结构变量w
w的实部=x的实部*y的实部-x的虚部*y的虚部
w的虚部=x的实部*y的虚部+x的虚部*y的实部
返回 w

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

C语言博客作业--结构体_第1张图片

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

  • 本题没遇到问题

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

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

    1232142-20171222090246834-1766648505.png

    2. 设计思路

#include
struct people{
    char name[11];
    float money;
    float floating;
    float spend;
    float Realwages;
};//该结构表示员工的姓名,基本工资,浮动工资,支出和实发工资
定义N表示要统计员工的个数,i用来控制循环
输入N
定义一个结构数组struct people s[N]存放员工信息
for I=0   to  I

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

C语言博客作业--结构体_第2张图片

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

  • 本题没有遇到问题

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

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

    C语言博客作业--结构体_第3张图片

    2.设计思路

struct prople{
    char name[11];
    char birthday[11]; 
    char sex;
    char fixedline[20];
    char Mobilephone[20];
};//该结构表示朋友的姓名 生日 性别 固话 手机
定义I,j控制循环,n表示多少个朋友的记录,m表示要查询的朋友个数,k表示要查询朋友信息的编号
输入n,定义结构数组是s [n];
for I=0 to  I=0&&k

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

C语言博客作业--结构体_第4张图片

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

  • 这道题之前错的时候没有截图,之前这道题朋友的生日我用的是整形变量。但是用整形变量最后一个测试题(最大N,反复查询同一记录)一直是答案错误,也不知道怎么改,然后问同学,他叫我用字符型数组定义生日,然后我改了就对了,但是现在还不知道为什么,虽然整形变量是麻烦了点,但好像也是对的啊

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

    1232142-20171224120715975-197069284.png

    三、阅读代码。

    代码一

    线性表用顺序实现。请填空写一个求线性表L 中所有奇数之和的算法。
    例如:
    L=(1,2,3,4,5) 其和为 9(本题结构体定义很不错。)
#include 
#define N 10
typedef struct sqlist
 {
   int data[N];
   int last;
   }LIST;
 int Total(LIST list)
 {int sum=0;
for(int i=0;i<=list.last;i++)
   if(list.data[i]%2)
      sum+=list.data[i];
     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;
}
  • 结构定义真的很不错,易懂快捷,代码 list.last=5很巧妙,如果是我肯定想不到

    代码二

    6-9 求子串在母串中最后一次出现的地址(10 分)
    给定程序中函数fun的功能是:求出在字符串中最后一次出现的子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。
char *fun (char *s, char *t ){
    char *str1,*str2,*a;
    a=NULL;
    while(*s){
        str1=s;
        str2=t;
    while(*str2){
        if(*str1==*str2){
            str1++;str2++;
        }
        else
        break;
    }
    if(*str2=='\0') {
       a=s;}
      s++;
    }
return a;
}
  • 依据s的地址进行递增,来求出最后一次出现的子字符串的地址,巧妙巧妙。

    四、本周学习总结

    1.总结本周学习内容

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

结构体:1.结构体像数组和指针一样,也是一种构造结构类型,它于数组的区别是,在结构中各成员数据类型可以不同
共用体:1.共用体是一种多变量共享存储空间的构造类型,它允许几种不同的变量共用同一存储空间。共用体和结构体的区别:1.结构体每一位成员都用来表示一种具体事务的属性,共用体成员可以表示多种属性(同一存储空间可以存储不同类型的数据)。
2.结构体总空间大小,等于各成员总长度,共用体空间等于最大成员占据的空间。
3.共用体不能赋初值。
枚举法:枚举类型是指变量的值可以全部列出,定义一个枚举变量后,变量的值确定在定义之中。它和结构体、共用体的区别在于,枚举元素是常量,只能在定义阶段赋值。

递归函数原理

1.递归(recursion)就是子程序(或函数)直接调用自己或通过一系列调用语句间接调用自己,是一种描述问题和解决问题的基本方法。
2.(1)边界条件:确定递归到何时终止,也称为递归出口。
 
    (2)递归模式:大问题是如何分解为小问题的,也称为递归体。递归函数只有具备了这两个要素,才能在有限次计算后得出结果
 
在递归函数中,调用函数和被调用函数是同一个函数,需要注意的是递归函数的调用层次,如果把调用递归函数的主函数称为第0层,进入函数后,首次递归调用自身称为第1层调用;从第i层递归调用自身称为第i+1层。反之,退出第i+1层调用应该返回第i层。

2.2.罗列本周一些错题。

C语言博客作业--结构体_第5张图片
C语言博客作业--结构体_第6张图片

  • 忘记定义结构数组emp[10]了
  • 换行符也没有考虑到,
posted on 2017-12-24 22:05  Longjingrap 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/peng075078/p/8084387.html

你可能感兴趣的:(C语言博客作业--结构体)