gpt4 book ai didi

c - 输入负浮点值时提示用户

转载 作者:行者123 更新时间:2023-11-30 16:21:26 25 4
gpt4 key购买 nike

所以我是 C 语言的新手,并且在这门语言上遇到了困难。我需要编写一个程序,如果用户输入负数,则重新提示用户输入数字,直到产生正数。到目前为止,我有以下内容,没有显示错误消息,但是当我输入负浮点值时,它不会重新提示我,它只是显示数字。有任何想法吗?

#include <cs50.h>
#include <stdio.h>
#include <math.h>

float get_positive_float(string prompt);

int main(void)
{
float f = get_float("Cash: ");
printf("%f\n", f);
}

float get_positive_float(string prompt)
{
float n;
do {
n = get_float("%s", prompt);
} while (n < 0);
return n;
}

最佳答案

float get_positive_float(char const *prompt)
{
float result;
while (prompt && printf(prompt), scanf(" %f", &result) != 1 || result < 0.f) {
fputs("Please only enter positive values!\n\n", stderr);
for (int ch; (ch = getchar()) != '\n' && ch != EOF;); // clear the rest of the line
}
return result;
}

使用 <cs50.h> 中的东西的版本可能看起来像这样:

float get_positive_float(string prompt)
{
float result;
while ((result = get_float(prompt)), result < 0.f) {
fputs("Please only enter positive values!\n\n", stderr);
}
return result;
}

问题是, float 不适合金额。使用整数类型并以分计算。对于输出除以 100。

关于c - 输入负浮点值时提示用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54865467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com