第16周 oj Problem B: 结构体---职工信息结构体

问题及代码:

/*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;
}

运行结果:

知识点总结:

通过学习,进一步掌握了结构体的用法,并复习了字符串相关知识。

学习心得:

熟悉了结构体语法后,题目并不难。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值