#include <stdio.h>
#include <cs50.h>
#include <math.h>
int main(void)
{
// prompt user for "0.00" value
float dollars;
double get_change(float dollars);
// prompt user for "0.00" value
do
{
dollars = get_float("Change owed: ");
}
while(dollars <= 0);
printf("%f\n", get_change(dollars));
//calculate which coins will be used
int cents = round(dollars * 100);
int coins = 0;
int denom[] = {25, 10, 5, 1};
for (int i = 0; i < 4; i++)
{
coins += cents / denom[i];
cents = cents % denom[i];
}
return coins;
}
在CS50中进行Pset1兑现。正在获取错误消息“在函数main':
/home/ubuntu/workspace/pset1/cash/cash2.c:15: undefined reference to
get_change中”
clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
make:[cash2]错误1“非常混乱
答案 0 :(得分:0)
以下建议的代码:
float
转换为int
float
现在,建议的代码:
#include <stdio.h>
#include <cs50.h>
#include <math.h>
int get_change( float dollars );
int main(void)
{
// prompt user for "0.00" value
float dollars;
do
{
dollars = get_float("Change owed: ");
}
while(dollars <= 0.0f);
printf("%d\n", get_change(dollars));
}
// returns number coins needed, not their denominations
int get_change( float dollars )
{
//calculate which coins will be used
int cents = (int)floorf(dollars * 100.0f);
int coins = 0;
int denom[] = {25, 10, 5, 1};
for (int i = 0; i < 4; i++)
{
coins += cents / denom[i];
cents = cents % denom[i];
}
return coins;
}
答案 1 :(得分:0)
#include <stdio.h>
#include <cs50.h>
#include <math.h>
int get_change(float dollars);
int main(void)
{
float dollars;
//prompts user for 0.00 amount
do
{
dollars = get_float("change owed: ");
}
while (dollars < 0);
//
printf("%i\n", get_change(dollars));
}
int get_change(float dollars)
{
//calculate how mnay coins will be used
int cents = round(dollars * 100);
int coins = 0;
int denom[] = {25, 10, 5, 1};
for (int i = 0; i < 4; i++)
{
coins += cents / denom[i];
cents = cents % denom[i];
}
return coins;
}
我对我的问题的官方答复。