第16周 oj Problem B: 结构体---职工信息结构体
2016-12-16 16:41
232 查看
问题及代码:
运行结果:
知识点总结:
通过学习,进一步掌握了结构体的用法,并复习了字符串相关知识。
学习心得:
熟悉了结构体语法后,题目并不难。
/*Copyright(c)2016,烟台大学计算机学院 all rights reserved. 作者:曹欣宇 指导教师:贺利坚 完成日期:2016年12月16日 题目描述 编写程序,定义一个存放职工信息的结构体类型,职工信息包括职工姓名、工作年限、工资总额。初始化5名职工的信息,对工作年限超过30年 的职工每人加100元工资,要求分别输出工资变化之前和之后的所有职工的信息。 输入 输入5个员工的职工姓名、工作年限、工资总额 输出 输出两部分,第一部分输出工资变化之前所有职工的信息,第二部分输出工资变化之后的所有职工的信息 样例输入 zhang1 5 1000 zhang2 10 2000 zhang3 20 3000 zhang4 40 4000 zhang5 50 5000 样例输出 原始工资 姓名 年限 工资 zhang1 5 1000 zhang2 10 2000 zhang3 20 3000 zhang4 40 4000 zhang5 50 5000 加薪后工资 姓名 年限 工资 zhang1 5 1000 zhang2 10 2000 zhang3 20 3000 zhang4 40 4100 zhang5 50 5100 */ #include<stdio.h> #include<string.h> int main() { struct worker { char name[8]; int age; int salary; }; struct worker w1[5]; struct worker w2[5]; int i,j; for(i=0; i<5; i++) scanf("%s %d %d",w1[i].name,&w1[i].age,&w1[i].salary); for(i=0; i<5; i++) { for(j=0;j<=strlen(w1[i].name);j++) { w2[i].name[j]=w1[i].name[j]; } w2[i].age=w1[i].age; w2[i].salary=w1[i].salary; } for(i=0; i<5; i++) { if(w1[i].age>30) w1[i].salary+=100 ; } printf("原始工资\n"); printf("姓名 年限 工资\n"); for(i=0; i<5; i++) printf("%s %d %d\n",w2[i].name,w2[i].age,w2[i].salary); printf("加薪后工资\n"); printf("姓名 年限 工资\n"); for(i=0; i<5; i++) printf("%s %d %d\n",w1[i].name,w1[i].age,w1[i].salary); return 0; }
运行结果:
知识点总结:
通过学习,进一步掌握了结构体的用法,并复习了字符串相关知识。
学习心得:
熟悉了结构体语法后,题目并不难。
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- 使用 Libki 来管理公共用户访问计算机
- 微型计算机的始祖:Altair 8800
- 通过手机、电脑远程开关机,Windows和linux机手机,电脑相互控制
- Lua和C语言的交互详解
- 编程界主流脚本编程语言的比较和选择
- 什么是Perl?编程语言Perl详细介绍
- C#语言基础――结构体和枚举类型全面解析
- C#中结构体和字节数组转换实现
- 编程语言里的静态、动态、强类型、弱类型等概念介绍
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- 浅谈C语言转义字符和格式控制符
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C 语言简单加减乘除运算