第16周OJ实践2 结构体---职工信息结构体
2016-12-16 21:35
316 查看
问题及代码:
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 1140 Solved: 646
[Submit][Status][Web
Board]
编写程序,定义一个存放职工信息的结构体类型,职工信息包括职工姓名、工作年限、工资总额。初始化5名职工的信息,对工作年限超过30年的职工每人加100元工资,要求分别输出工资变化之前和之后的所有职工的信息。
输入5个员工的职工姓名、工作年限、工资总额
输出两部分,第一部分输出工资变化之前所有职工的信息,第二部分输出工资变化之后的所有职工的信息
/*烟台大学计算机学院
作者:景怡乐
完成时间:2016年12月16日
*/
#include <stdio.h>
#include <stdlib.h>
#define n 5//n在函数里一直等于5,是常量.以后n可以换位任何值,程序更全面
struct staff
{
char name[10];
int year;
int salary;
};
int main()
{
int i;
struct staff a
;
for(i=0;i<n;i++)
scanf("%s%d%d",a[i].name,&a[i].year,&a[i].salary);
printf("原始工资\n");
printf("姓名 年限 工资\n");
for(i=0;i<n;i++)
printf("%s %d %d\n",a[i].name,a[i].year,a[i].salary);
printf("加薪后工资\n");
printf("姓名 年限 工资\n");
for(i=0;i<n;i++)
{
if(a[i].year>=30)
a[i].salary=a[i].salary+100;
printf("%s %d %d\n",a[i].name,a[i].year,a[i].salary);
}
return 0;
}
运行结果:
知识点总结:
#define是宏定义的意思
宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的代换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查。如有错误,只能在编译已被宏展开后的源程序时发现。
宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换。
宏定义其作用域为宏定义命令起到源程序结束。如要终止其作用域可使用#undef命令
学习心得:数组第一位从0开始,这点要注意一下。
Problem B: 结构体---职工信息结构体
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1140 Solved: 646
[Submit][Status][Web
Board]
Description
编写程序,定义一个存放职工信息的结构体类型,职工信息包括职工姓名、工作年限、工资总额。初始化5名职工的信息,对工作年限超过30年的职工每人加100元工资,要求分别输出工资变化之前和之后的所有职工的信息。
Input
输入5个员工的职工姓名、工作年限、工资总额
Output
输出两部分,第一部分输出工资变化之前所有职工的信息,第二部分输出工资变化之后的所有职工的信息
Sample Input
zhang1 5 1000 zhang2 10 2000 zhang3 20 3000 zhang4 40 4000 zhang5 50 5000
Sample Output
原始工资 姓名 年限 工资 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
/*烟台大学计算机学院
作者:景怡乐
完成时间:2016年12月16日
*/
#include <stdio.h>
#include <stdlib.h>
#define n 5//n在函数里一直等于5,是常量.以后n可以换位任何值,程序更全面
struct staff
{
char name[10];
int year;
int salary;
};
int main()
{
int i;
struct staff a
;
for(i=0;i<n;i++)
scanf("%s%d%d",a[i].name,&a[i].year,&a[i].salary);
printf("原始工资\n");
printf("姓名 年限 工资\n");
for(i=0;i<n;i++)
printf("%s %d %d\n",a[i].name,a[i].year,a[i].salary);
printf("加薪后工资\n");
printf("姓名 年限 工资\n");
for(i=0;i<n;i++)
{
if(a[i].year>=30)
a[i].salary=a[i].salary+100;
printf("%s %d %d\n",a[i].name,a[i].year,a[i].salary);
}
return 0;
}
运行结果:
知识点总结:
#define是宏定义的意思
宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的代换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查。如有错误,只能在编译已被宏展开后的源程序时发现。
宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换。
宏定义其作用域为宏定义命令起到源程序结束。如要终止其作用域可使用#undef命令
学习心得:数组第一位从0开始,这点要注意一下。
相关文章推荐
- 第16周OJ实践3 结构体--学生信息排序
- 第16周 oj Problem B: 结构体---职工信息结构体
- 第十六周oj题目职工信息结构体
- 结构体---职工信息结构体(oj)
- oj问题二-结构体-职工信息结构体
- 第十六周OJ(2)职工信息结构体
- 第十六周 OJ 职工信息结构体
- 第十六周 OJ<2>---结构体---职工信息结构体
- 第16周 oj Problem C: 结构体--学生信息排序
- 第十六周 OJ<3>---结构体--学生信息排序
- 结构体---职工信息结构体
- 第十六周-职工信息结构体
- 第十六周oj实践复数结构体
- C/C++复习:职工信息(结构体)
- 结构体---职工信息结构体
- 第16周实践——复数结构体
- 第16周实践1 复数结构体
- 问题 B: 结构体---职工信息结构体
- [YTU]_2877(结构体---职工信息结构体)
- C语言程序设计实践(OJ)-结构体