定义一个含职工姓名、工作年限、工资总额的结构体类型,从键盘输入5名职工的信息

C语言: 采用结构体数组编写程序,定义一个含职工姓名、工作年限、工资总额的结构体类型,从键盘输入5名职工的信息,最后再对工作年限超过30年的职工加1000元工资,并输出工资变化后的所有职工的信息(要求用下标法和指针法实现)

参考GPT和自己的思路:

好的,针对你的问题,我可以提供以下代码实现:

#include <stdio.h>

// 定义包含职工信息的结构体类型
struct Employee {
    char name[20]; // 职工姓名
    int year; // 工作年限
    float salary; // 工资总额
};

int main() {
    int i;
    struct Employee emp[5];
    struct Employee *p = emp;

    // 从键盘输入5名职工的信息
    for (i = 0; i < 5; i++, p++) {
        printf("请输入第%d名职工的信息:\n", i+1);
        printf("姓名:");
        scanf("%s", p->name);
        printf("工作年限:");
        scanf("%d", &p->year);
        printf("工资总额:");
        scanf("%f", &p->salary);
    }

    // 对工作年限超过30年的职工加1000元工资
    p = emp;
    for (i = 0; i < 5; i++, p++) {
        if (p->year > 30) {
            p->salary += 1000;
        }
    }

    // 输出工资变化后的所有职工的信息(用下标法)
    printf("\n用下标法输出所有职工的信息:\n");
    for (i = 0; i < 5; i++) {
        printf("第%d名职工的信息:\n", i+1);
        printf("姓名:%s\n", emp[i].name);
        printf("工作年限:%d\n", emp[i].year);
        printf("工资总额:%.2f\n", emp[i].salary);
    }

    // 输出工资变化后的所有职工的信息(用指针法)
    printf("\n用指针法输出所有职工的信息:\n");
    p = emp;
    for (i = 0; i < 5; i++, p++) {
        printf("第%d名职工的信息:\n", i+1);
        printf("姓名:%s\n", p->name);
        printf("工作年限:%d\n", p->year);
        printf("工资总额:%.2f\n", p->salary);
    }

    return 0;
}

希望我的回答能够帮到你,如果你还有什么其他的问题,欢迎再次咨询我。