此代码的目的是请求所需的找零,然后输出可用于提供找零的最小数量的硬币。
不确定为什么我的代码没有输出任何内容?
#include <cs50.h>
#include <stdio.h>
#include <math.h>
float get_defined_float(string prompt);
int main(void)
{
float f = get_defined_float("Required Change: ");
}
float get_defined_float(string prompt)
{
float n;
do
{
n = get_float("Required Change: ");
}
while (n<=0);
return n;
int input = round(n * 100);
int quarters = input / 25;
int dimes = (input % 25) / 10;
int nickles = (input % 25 % 10) / 5;
int pennies = (input % 5) / 1;
int total = quarters + dimes + nickles + pennies;
printf("%d", total);
}
最佳答案
您的return
语句位于输出 printf
上方在你的程序中声明。这意味着 get_defined_float
的后半部分是死代码 - 它永远不会运行。
看来您可能想将死代码移至您的 main
中常规,替代f
对于 n
在 int input = round(n * 100);
声明。
您可能还需要在该输出语句中添加换行符 ( \n
),以便刷新输出缓冲区(通常为 TTY 进行行缓冲)。
打开一些编译器警告!
关于c - Do-While 循环正在工作,但没有得到最终输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58946058/