Я написал программу с большим количеством if
разделов. Он написан с Visual Studio 2013 (scanf_s). Он пропускает некоторые разделы if
, хотя они выполнены. Не могли бы вы рассказать мне, почему? Мое подозрение: первая команда scanf
выполняется чисто. Другие команды scanf
не работают. Я ничего не могу ввести. Программа идет строго. Когда я ввожу fflush(stdin)
между командами scanf
, он работает. Я слышал плохие вещи о fflsuh
, потому что я хочу спросить: как я могу решить это по-другому?Программа пропускает если утверждения
Вот мой код:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
char versand='n', stammkunde='t';
double warenwert=1;
printf("Wieviel kostet die Ware?");
scanf_s("%lf", &warenwert);
fflush(stdin);
printf("Wird die Ware abgeholt?(y,n)");
scanf_s("%c", &versand);
if (versand == 'n')
{
if (warenwert < 100)
{
warenwert = warenwert + 7;
}
printf("Expressversand?(y,n");
scanf_s("%c", &versand);
//fflush(stdin);
if (versand == 'y')
{
warenwert = warenwert + 10;
}
}
printf("Stammkunde?(y,n)");
scanf_s("%c", &stammkunde);
if (stammkunde = 'y')
{
warenwert = warenwert * 0, 97;
}
printf("Endpreis inkl. Versandkosten:%lf", warenwert);
getchar();
return 0;
}
PS: скриншот программы вывода здесь: http://i.gyazo.com/01471ce3d563837f526fbcab8363e1f2.png
можно добавить выходные данные вашей программы? – CollioTV
try 'scanf_s ("% c ", & versand, 1);' – BLUEPIXY
Если область действия оператора if не выполняется, условия не выполняются. Вы пытались повторить то, что получили? – bzeaman