我编写了一个包含很多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