我试图学习C但是我在操作给定代码时遇到了困难。用户在Squaring a number和Shrinking(除以2)之间选择。如果输入和输出保持整数,我可以获得函数Shrink以成功返回结果。但是,我需要输出作为float或double返回,我无法让它工作。我此刻难过。任何意见都将不胜感激。
Feralix
#include <stdio.h>
int main ()
{
/* variable definition: */
int intValue, menuSelect, Results;
intValue = 1;
// While a positive number
while (intValue > 0)
{
printf ("Enter a positive Integer\n: ");
scanf("%d", &intValue);
if (intValue > 0)
{
printf ("Enter 1 to calculate Square, 2 to Calculate Shrink \n: ");
scanf("%d", &menuSelect);
if (menuSelect == 1)
{
// Call the Square Function
Results = Square(intValue);
printf("Square of %d is %d\n",intValue,Results);
}
else if (menuSelect == 2)
{
// Call the Shrink function
Results = Shrink(intValue);
printf("Shrink of %d is %f\n",intValue,Results);
}
else
printf("Invalid menu item, only 1 or 2 is accepted\n");
}
}
return 0;
}
/* function returning the Square of a number */
int Square(int value)
{
return value*value;
}
/* function returning the Shrink of a number */
float Shrink(int value)
{
return value/2.0;
}
答案 0 :(得分:0)
Results
是一个int
,因此当您指定Shrink
返回的Shrink
时,您将丢失由Results
计算的任何小数位数。一种可能的解决方案是将float
声明为NSLayoutContraints
。
答案 1 :(得分:0)
该函数确实返回一个浮点数, 您只需将结果变量声明为浮点而不是int ..
float Results;
答案 2 :(得分:0)
与其他人一样,结果被声明为整数类型。您必须更改结果类型。
还抬头: 您必须在(menuSelect == 1)中更改printf的结果格式说明符。 如果你选择一个负数,你的其他人也不会运行,所以用户不会知道他们不能选择负数。