任何人都可以在这里发现错误

时间:2011-07-19 08:22:41

标签: c

这是我目前正在处理的代码。它与结构数组有关。该计划目前正常运作。但是,如果我将结构员工中的薪水变量的数据类型替换为浮动,则会出现逻辑错误。我无法在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();
}

2 个答案:

答案 0 :(得分:2)

http://c-faq.com/fp/fpnotlinked.html

您的编译器正在优化输出二进制大小,而不是使用浮点格式进行链接。检查编译器/链接器设置。

答案 1 :(得分:1)

只需在主要功能之后包含此功能:

static void force_fpf(){

float x,*y;

y=&x;

x=*y;

}

这将成功运行您的程序