2016-01-27 4 views
-5
#include <stdio.h> 
long double main() 
{ 
long double sal,tax; 
printf ("Enter the salary"); 
scanf ("%ld",&sal); 
if (sal>=1000000) 
    tax=sal*0.3;  
else if (sal<1000000&&sal>=500000) 
    tax=sal*0.2; 
else if (sal<500000&&sal>=200000) 
    tax=sal*0.1; 
else 
    tax=0; 

printf ("The tax is %ld",tax); 
return 0; 
} 

Ожидаемый результат этой программы - отображать налог, но всякий раз, когда программа выполняется, она дает значение налога как 0 для любого значения заработной платы. Я попытался изменить типы данных на int, void, long, double, float, long double и по-прежнему не может получить желаемый результат.Как получить правильный результат в программе?

+0

Вы действительно пробовали 'void' ???? : O –

+2

@Bathsheba 'Введите зарплату1000 Налог равен 140220720556528' Вы уверены, что хотите этого? – Flikk

+0

Вы даже попробовали сделать базовую отладку своей программы? –

ответ

2

Ваше поведение программы не определено :

"%Lf" является правильным спецификатором формата для long double.

Также возвратный тип mainдолжен быть int. Все остальное реализация определена. Пока вы не знаете, что делаете, используйте int.

+0

То есть, используйте спецификатор формата 'int' и'% d' вместе. – Lundin

Смежные вопросы