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

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

时间:2017-12-25 00:39:58      阅读:464      评论:0      收藏:0      [点我收藏+]

标签:sql   exp   ati   seed   +=   size   image   strstr   []   

一、PTA实验作业

题目1:6-3查找指定人员

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

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

while(std++)
        如果 std->num==num
        返回 *std

3.代码截图

技术分享图片

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

技术分享图片

(1)只会输出第一个人的信息

技术分享图片
因为大意,在if语句后多了分号

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

1. 本题PTA提交列表

技术分享图片

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

struct worker   //结构体               
{
char name[10];//姓名 
float basic;//基本工资 
float floating;//浮动工资
float expend;//支出
float sum;//求和 
};该结构体表示职员的姓名,职员的基本工资,职员的浮动工资,职员的支出,职员的最后工资
定义整型变量N表示职员数量,定义循环变量i
输入 N
定义结构体类型work[N]储存职员信息
for i=0 to i=N
    输入 name,basic,floating,expend 
  sum 等于 basic 加 floating 减 支出
end
for i=0 to i=N
     输出 name ,sum;
end

3.代码截图

技术分享图片

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

技术分享图片

错误一:work[i]不是指针,我用work[i]->name的方式表示;

题目2:7-2 时间换算

1. 本题PTA提交列表

技术分享图片

2. 设计思路

struct time{
    int hour;
    int minute;
    int second;
};该结构体表示时间中的小时,分钟,秒

定义结构类型 time1
整型 second2表示增加的秒数
输入时间
输入增加的秒数
将增加的秒数加到原来的秒time1->second上
如果 second 大于等于 60
second 减 60
minute 加 1
end
如果 minute 大于等于 60
minute 减 60
hour 加 1
end
如果 hour 大于等于 24
hour 减 24
end

按 输出两位十进制整数,不足往左边补零的格式 输出

3.代码截图

技术分享图片

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

技术分享图片

错误一:运用指针的方法使用结构体导致程序崩溃

错误二:没有定义结构体变量,直接用结构体类型进行

错误三:关于输出格式,%02d,输出两位十进制整数,左边补零

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

技术分享图片

三、阅读代码

  • 军霖同学关于删除子串的代码
#include<stdio.h>
#include<string.h>
void del(char s[],char sub[]){
    char *p;
    if(  ( p=strstr(s,sub) )!=NULL  ){
            
        char *mark=p+strlen(sub);
            
        while(  (*p++=*mark++)  );
            
        del(s,sub);
    }       
}

int main(){
    char s[81],sub[81];
    gets(s);
    gets(sub);
    
    del(s,sub);
    
    puts(s);
    return 0;
}
  • (2)军霖同学tokenizor
#include<stdio.h>
#include<string.h>
int main(){
    char s[44];
    gets(s);
    for(int i=0;s[i];i++){
        if(s[i]==‘-‘||s[i]==‘+‘) {
            if(!i) printf("%c",s[0]);
            else {
                if(s[i-1]>=‘0‘&&s[i-1]<=‘9‘) printf("\n%c\n",s[i]);
                else if(s[i-1]==‘(‘) printf("%c",s[i]);
                else printf("%c\n",s[i]);
            }
        }

        
        else if(s[i]>=‘0‘&&s[i]<=‘9‘||s[i]==‘.‘) printf("%c",s[i]);
        
        else{
            if(s[i-1]>=‘0‘&&s[i-1]<=‘9‘) printf("\n%c\n",s[i]);
            else printf("%c\n",s[i]);
        }
        
    }
    
    
    
    return 0;
    
    
    
    
}

四、本周学习总结

12.18,周一

一,课堂派

(1)预习作业--结构体

  • 1,关于取名
    可以通过下划线来表示相关变量
    例如
struct book{
int book_number;
};

中用下划线表示number与book的关系,但注意变量名的长度

  • 3.关于结构体赋值

不可以直接赋值,错误赋值代码:

*(p+2)={102030,“数据结构”,40}
  • 正确赋值方法一:
(*(p+2))=(struct book){102030,“数据结构”,40};
  • 正确的赋值方法二:(一个个赋值)
p=p+2;
p->book_number=102030;
strcpy(p->book_name,"数据类型");
  • 正确的赋值方法三:
p=&book_num[2]
然后一一赋值

注意:技术分享图片

(2)C语言复习作业--结构体

  • 4,输入要有&号
    技术分享图片

  • 5.改错

(1)结构体的定义
技术分享图片
技术分享图片

(2)字符数据的读取
技术分享图片
技术分享图片

(3),(4)字符的读取及输入格式

技术分享图片
技术分享图片

(5)注意输出格式%7.2f;
技术分享图片

  • 7,读结构体
    技术分享图片

二。课堂笔记

1.总结本周学习内容。

(1)验证各类指针分配空间大小的方式

sizeof(int*);

(2)常见的数值转换函数

#include<stdlib.h>
  • 1.字符串s转换为双精度浮点型
double atof(char *s)
  • 2.字符串s转换为整型数

int atoi(char *s)
  • 3.字符串s转换为长整型数
long atol(char*s)
  • 4.以seed为种子(初始值)计算产生一个无符号的随机整数
srand(unsigned int seed)

(3)给固定数或者结构变量取名

  • 1.给固定数名称
#define MAXN 20
  • 2.给结构体名称
typedef struct sqlist
 {
   int data[N];
   int last;
   }LIST;

及后来结构体类型变量的定义

int main()
 {
    LIST list;
}

(4)共用体

(5)枚举类型

2.罗列本周一些错题。

这周事有点多。。还未完成

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

标签:sql   exp   ati   seed   +=   size   image   strstr   []   

原文地址:http://www.cnblogs.com/Zeng99/p/8065698.html

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