小费计算——把一个数字变成十进制表示
Tip calculation - change a number into a decimal represntation
除函数 "tipConvert(tip)" 外,这里的一切都按照我希望的方式工作。
我希望它将一个数字(例如 15)更改为 .15,它是百分比的十进制表示形式。
#include <stdio.h>
float tipConvert(int tip);
int main()
{
char value;
int intValue tip;
float bill, result;
intValue = 1;
while(intValue == 1)
{
printf("Would you like to calculate a tip: y or n?\n");
scanf("%s", &value);
if(value == 'y')
{
printf("Enter the bill amount:\n");
scanf("%f", &bill);
printf("Enter the tip amount as an integer:\n");
scanf("%i", &tip);
result = tipConvert(tip)*bill;
printf("Tip for %.2f is %.2f\n", bill,result);
}
else if(value == 'n')
{
printf("Thank you for using Tip Calculator.");
break;
}
else
printf("Please select y or n.\n");
}
return 0;
}
float tipConvert(int tip)
{
return tip / 100;
}
问题是,int 不能存储任何十进制数,调用 tip/100 时,编译器将其视为整数除法,returns 将其视为 int(在您的示例中为 0)和之后将其转换为浮动。
告诉编译器使用 float 除法的最简单方法是使用 100.0f 除以 float 文字而不是 int 文字。这应该修复该部门。
或者,您可以先将小费投掷到浮动。
除函数 "tipConvert(tip)" 外,这里的一切都按照我希望的方式工作。
我希望它将一个数字(例如 15)更改为 .15,它是百分比的十进制表示形式。
#include <stdio.h>
float tipConvert(int tip);
int main()
{
char value;
int intValue tip;
float bill, result;
intValue = 1;
while(intValue == 1)
{
printf("Would you like to calculate a tip: y or n?\n");
scanf("%s", &value);
if(value == 'y')
{
printf("Enter the bill amount:\n");
scanf("%f", &bill);
printf("Enter the tip amount as an integer:\n");
scanf("%i", &tip);
result = tipConvert(tip)*bill;
printf("Tip for %.2f is %.2f\n", bill,result);
}
else if(value == 'n')
{
printf("Thank you for using Tip Calculator.");
break;
}
else
printf("Please select y or n.\n");
}
return 0;
}
float tipConvert(int tip)
{
return tip / 100;
}
问题是,int 不能存储任何十进制数,调用 tip/100 时,编译器将其视为整数除法,returns 将其视为 int(在您的示例中为 0)和之后将其转换为浮动。
告诉编译器使用 float 除法的最简单方法是使用 100.0f 除以 float 文字而不是 int 文字。这应该修复该部门。
或者,您可以先将小费投掷到浮动。