gpt4 book ai didi

c - c中的结构来存储员工的详细信息并打印那些超过10000的员工

转载 作者:行者123 更新时间:2023-11-30 15:18:10 25 4
gpt4 key购买 nike

我应该获取 4 名员工的详细信息,并打印工资超过 10000 的员工的详细信息。我不应该更改程序的结构。当我编译此代码时,我没有收到任何错误,但输出只是

0  0.00
0 0.00
0 0.00

我找不到我错在哪里。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct employee
{ int id;
char name[10];
float sal;
} EMP;

void init_emp_rec(EMP out_rec[]);
void print_emp_rec(EMP out_rec[]);

void emp_recordMain(EMP emp_rec[], EMP out_rec[])
{
for(int i=0; i<3; i++)
{
if(emp_rec[i].sal>10000)
{
out_rec[i].id=emp_rec[i].id;
strcpy(out_rec[i].name,emp_rec[i].name);
out_rec[i].sal=emp_rec[i].sal;
}
}
}

void init_emp_rec(EMP out_rec[])
{
memset(out_rec, 0, sizeof(EMP)*4);
}

void print_emp_rec(EMP out_rec[])
{
for(int i=0; i<3; i++)
{
printf("%d %s %.2f", out_rec[i].id, out_rec[i].name, out_rec[i].sal);
if(i!=2){printf("\n");}
}
}

main(int argc, const char** argv)
{
int i;
EMP emp_rec[4];
EMP out_rec[4];
init_emp_rec(out_rec);
init_emp_rec(emp_rec);
for(int i=0; i<4; i++)
{
scanf("%d",&emp_rec[i].id);
scanf("%s",&emp_rec[i].name);
scanf("%0.2f",&emp_rec[i].sal);
}
emp_recordMain(emp_rec, out_rec);
print_emp_rec(out_rec);
}

最佳答案

看起来您需要稍微更改一下代码:

scanf("%f",&emp_rec[i].sal);

“%0.2f”会将 20000 视为 0。

关于c - c中的结构来存储员工的详细信息并打印那些超过10000的员工,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31639831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com