第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
#include
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;
}

运行结果:

第16周 oj Problem B: 结构体---职工信息结构体_第1张图片

知识点总结:

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

学习心得:

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

你可能感兴趣的:(YTU_OJ)