这是我目前正在处理的代码。它与结构数组有关。该计划目前正常运作。但是,如果我将结构员工中的薪水变量的数据类型替换为浮动,则会出现逻辑错误。我无法在scanf.Even中输入工资值。如果我更改格式说明符,问题仍然存在。
任何人都可以找到错误以及如何解决?
#include<stdio.h>
#include<conio.h>
struct employee
{
int emp_no;
char emp_name[25];
int salary;
};
void main()
{
struct employee emp[2];
int i;
clrscr();
for(i=0;i<2;i++)
{
printf("enter details for employee #%d:\n",(i+1));
printf("code:");
scanf("%d",&emp[i].emp_no);
printf("name:");
scanf("%s",emp[i].emp_name);
printf("salary:");
scanf("%d",&emp[i].salary);
}
printf("\n");
for(i=0;i<2;i++)
{
printf("details of employee #%d are:\n", (i+1));
printf("code: %d\n", emp[i].emp_no);
printf("name: %s\n", emp[i].emp_name);
printf("salary: %d\n", emp[i].salary);
}
getch();
}
答案 0 :(得分:2)
http://c-faq.com/fp/fpnotlinked.html
您的编译器正在优化输出二进制大小,而不是使用浮点格式进行链接。检查编译器/链接器设置。
答案 1 :(得分:1)
只需在主要功能之后包含此功能:
static void force_fpf(){
float x,*y;
y=&x;
x=*y;
}
这将成功运行您的程序