【发布时间】:2017-06-20 10:04:52
【问题描述】:
我正在解决cs50课程中的贪心算法,而不使用cs50头文件。我写了一些代码。它可以很好地使用数字作为输入,但是当我给它一个字符串或字符作为输入时,它不会提示我回来。我不知道如何解决这个问题。
#include <stdio.h>
int main()
{
float c;
int C, nQ, rem1, nD, rem2, nN, rem3;
do
{
printf("O hai! How much change is owed? ");
scanf("%f", &c);
}
while(c<0);
C = c * 100;
nQ = C / 25;
rem1 = C % 25;
nD = rem1 / 10;
rem2 = rem1 % 10;
nN = rem2 / 5;
rem3 = rem2 % 5;
printf("%d\n", nQ+nD+nN+rem3);
}
【问题讨论】:
-
为什么要在同一个函数中使用名为
C和c的变量? -
需要查看
scanf("%f", &c);的返回值才能知道是否读取了1个数字。 -
我使用了两个变量将浮点数转换为整数。我检查了这些值。当我输入数字时它工作正常。但即使我输入字母,我也想得到提示。
-
c=-1;if(scanf("%f", &c) != 1) while(getchar()!='\n'); -
你期望什么样的输入有什么样的输出?给我们举个例子。