Кто-нибудь может обнаружить ошибку здесь - PullRequest
0 голосов
/ 19 июля 2011

Вот код, над которым я сейчас работаю.Это связано с массивом структур.Эта программа в настоящее время работает нормально.Но если я заменю тип данных переменной заработной платы в структуре сотрудник на плавающее, возникает логическая ошибка.Я не могу ввести значение зарплаты во время сканирования. Даже если я изменю спецификатор формата, проблема не исчезнет.

Кто-нибудь может найти ошибку и как ее устранить?

#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 ]

2 голосов
/ 19 июля 2011

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

Ваш компилятор оптимизирует выходной двоичный размер и не связывается с форматированием с плавающей запятой. Проверьте настройки компилятора / компоновщика.

1 голос
/ 19 июля 2011

Просто включите эту функцию после основной функции:

static void force_fpf(){</p> <p>float x,*y;</p> <p>y=&x;</p> <p>x=*y;</p> <p>}

Это успешно запустит вашу программу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...