简单问题(一个警告错误),可马上给分

cglee 2002-09-06 02:23:15
下面的小程序,编译时有一个警告错误:
warning C4715: 'fun' : not all control paths return a value
请帮忙看看,怎么修改?

#include <stdio.h>

int fun(int t, int num[10])
{
int i;
if(t>=num[9]) return 100;
else {
for(i=0;i<10;i++)
if (t<num[i]) return num[i];
}
}

void main()
{
int num[10]={2,5,8,13,17,22,35,67,86,95};
int t,v;
scanf("%d", &t);
v=fun(t,num);
printf("%d\n", v);
}
...全文
21 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tlping 2002-09-06
  • 打赏
  • 举报
回复
to:bonoji
我的疑问
他本人的意思在这里是要返回一个它需要的值,d但是return *是不能达到这个要求的
blh 2002-09-06
  • 打赏
  • 举报
回复
你的fun函数定义的返回值,但是你没有写必要的返回值语句,你的那个return只有条件成立时才可以,条件不成立时,你没处理,在fun 的最后一行加上return -1;
bobob 2002-09-06
  • 打赏
  • 举报
回复
修改如下:
#include <stdio.h>

int fun(int t, int num[10])
{ int i;
if(t>=num[9])
return 100;
else
{
for(i=0;i<10;i++)
{
if(t<num[i])
return num[i];
else return null;//加上这一句,null为返回值
}
}
}

void main()
{
int num[10]={2,5,8,13,17,22,35,67,86,95};
int t,v;
scanf("%d", &t);
v=fun(t,num);
printf("%d\n", v);
}

编译一定能通过!
记得给分哦!!!
bonoji 2002-09-06
  • 打赏
  • 举报
回复
还有if (t<num[i]) return num[i];不是错误的根本原因,如你加了
return *//*是任意直,它代表异常,它有没有ELSE都一样,你的函数设为INT型,你就要确定任何时候都要有个INT型可返回.
liubear 2002-09-06
  • 打赏
  • 举报
回复
并不是所有的分支,其返回都有值
bonoji 2002-09-06
  • 打赏
  • 举报
回复
不是每条语路都有返回直,如IF和ELSE都没执行,返回什么?
你也许说不是IF就是ELSE,没别的可能,可编译器不知道啊,所以这样:
int fun(int t, int num[10])
{
int i;
if(t>=num[9]) return 100;
else {
for(i=0;i<10;i++)
if (t<num[i]) return num[i];
}
return *//*是任意直,它代表异常
}
cglee 2002-09-06
  • 打赏
  • 举报
回复
if 为假时,就继续循环,怎么会有问题呢?
liushmh 2002-09-06
  • 打赏
  • 举报
回复
int fun(int t, int num[10])
{
int i;
if(t>=num[9]) return 100;
else {
for(i=0;i<10;i++)
if (t<num[i]) return num[i];
}
return value;//value为任意值。
}
maomaoxt 2002-09-06
  • 打赏
  • 举报
回复
fun函数定义要加入return 0;
tlping 2002-09-06
  • 打赏
  • 举报
回复
可以在第2个if的return 语句后再加一个else语句并给条件为假时的返回结果
zeroweb 2002-09-06
  • 打赏
  • 举报
回复
楼上说得对
tlping 2002-09-06
  • 打赏
  • 举报
回复
第2个if 如果条件为假则没有返回值
所以。。。/

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧