C语言中fun()函数里用多个if用怎么返回呢?为什么用printf输出会出现错误。
代码大概是这样的
#include
/*计算应发放奖金的总数并返回给主函数。i为利润单位为元*/
int fun(int i)
{
int sum;
if(0<i<=100000) sum=0.1*i;
if(100000<i<=200000) sum=10000+(i-100000)*0.75 ;
return(sum);
}
int main( )
{
int i;
scanf("%d",&i);
printf("bonus=%d",fun(i));
NONO (i);
return 0;
}
我打了多个if,但是return只是返回最后一个的值,用怎么修改呢?
问题解决啦谢谢各位大佬们 因为评论点不了所以在这里回复了
fun不是c语言的函数,你自己定义的吧。
要看你的代码哪里写错了。
请把代码贴出来,这样才能看出你的问题
两种方法,一是在每个if语句中都有返回;二是通过在if语句中对中间变量进行赋值,然后在函数末尾返回中间变量。例如:
int func(int x)
{
if(x<0)
{
return -1;
}
if(x==0)
{
return 0;
}
if(x>0)
{
return 1;
}
}
或者
int func(int x)
{
int y;
if(x<0)y=-1;
if(x=0)y=0;
if(x>0)y=1;
return y;
}
if(100000<i<=200000)
这个写错了
应该是
if(100000<i && i<=200000)
if语句的条件写的有问题,你不能像数学一样写!除非你知道怎么回事,否则不要连着写这些逻辑运算符。你的应该这样写:
if(i>0&&i<=100000)......
if(i>100000&&i<=200000)......
条件写错,不要连着写运算符