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

一丶PTA实验作业

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

(1).PTA提交列表

(2). 设计思路

定义函数calc
定义整型变量i,j        //用于循环
for i=0 to n-1       //求出每个学生分数的总和
   for j=0 to 2 
        执行算法(p+i)->sum=(p+i)->sum+(p+i)->score[j]
   end for 
end for
定义函数sort
定义整型变量i,j  //用于循环
定义结构体变量 max  //用于排序时进行交换的结构变量
for i=0 to 4
   for j=i to 4
         如果((p+i)->sum)<((p+j)->sum)  满足进行交换
        		 max=*(p+i);
			*(p+i)=*(p+j);
			*(p+j)=max;

    

(3).代码截图

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

在进行交换时一开始想定义一个指针进行交换,但是后来发现在定义指针指向指针不怎么会操作,舍友提醒一下明白可以自己定义一个结构体变量进行交换储存

题目2:计算职工工资

(1).PTA提交列表

(2). 设计思路

struct money{
	char name[11];
	double j;
	double l;
	double z;
	double result;
};//表示工资金额
定义变量 n,i,j;  //i,j用于循环  n为工作人员人数 
输入n
定义结构提变量  m[n]
for i=0 to n-1
	scanf("%s",m[i].name);
	scanf("%lf%lf%lf",&m[i].j,&m[i].l,&m[i].z);
  执行运算式m[i].result=(m[i].j+m[i].l-m[i].z)*1.0;
end for
for i=0 to n-1
输出姓名 实际工资(m[i].result)
 
   

(3).代码截图

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

输入数据时未考虑得到的工资可能有小数,导致程序答案一直不吻合

题目3:时间换算

(1).PTA提交列表

(2). 设计思路

 struct time{
    int hour;
    int mini;
    int second;
};//该结构体用于表示时间的小时,分钟,秒钟
定义结构体变量t,整型变量wait;
执行运算式t.second=t.second+wait;
while 
	t.second=t.second-60;
	t.mini=t.mini+1;
    while 
        	t.mini=t.mini-60;
		t.hour=t.hour+1;
             while
                        t.hour=t.hour-24;
             to hour<24 end while
    to mini<60 end
to t.second<60 end
输出小时:分钟:秒钟
    

(3).代码截图

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

知道了输出有效数字前要保留两位补充0时可用 %02d

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

三、阅读代码

strcmp函数

int __cdecl strcmp(const char *src,const char *dst)
{
    int ret=0;
    while(!(ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
        ++src,++dst;
    if(ret<0)
        ret=-1;
    else if(ret>0)
        ret=1;
    return(ret);
}

    

在while循坏判断语句中直接将字符转化为ascii码,巧妙的运用字符所对应的ascii码进行字符串之间的比较。

四、本周学习总结

1.你学会了什么?

  • 结构体
    struct 结构体类型名{
    类型1 成员1;

    类型2 成员2;
    ......

    类型n 成员n;
    };

  1. 简洁紧凑、灵活方便 ,可用于数据的整合使用
    2.数据结构丰富 ,型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等都可以包含在结构体内
  • 共用体
    定义一个共用体类型的一般形式为:
    union 共用体类型名
    {
    类型1 成员1;

    类型2 成员2;
    ......

    类型n 成员n;
    };
    通过定义多种格式的包用于对未知数据包进行处理

  • 枚举特点
    enum DAY
    {
          MON=1, TUE, WED, THU, FRI, SAT, SUN
    };
    枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开

  • 递归函数原理
    递归是程序调用自身的编程技巧
      递归满足2个条件:
        1)有反复执行的过程(调用自身)
        2)有跳出反复执行过程的条件(递归出口)

2.罗列本周一些错题。


该题是结构体与指针的结合,对它们的概念有点混淆了,p=&date,既指针指向date,而date是结构变量,而p不是结构体变量,要想引用a,只有(p).a才是正确的

posted @ 2017-12-25 19:47  three。g  阅读(263)  评论(2编辑  收藏  举报