鱼C论坛

 找回密码
 立即注册
查看: 3705|回复: 4

编译器报警

[复制链接]
发表于 2013-5-18 16:35:51 | 显示全部楼层 |阅读模式
3鱼币
本帖最后由 dt3tc 于 2013-5-18 17:09 编辑

一共两个函数都写了return语句.
codeblocks 12.11提示|38|warning: control reaches end of non-void function [-Wreturn-type]|
VS2012提示"(38): warning C4715: “a”: 不是所有的控件路径都返回值"

Windows 7 旗舰版
  1. #include <iostream>

  2. float a(float b,float c);

  3. int main(){
  4.    
  5.     using std::cin;
  6.     using std::cout;
  7.     using std::endl;
  8.    
  9.     float x,y,z;
  10.    
  11.     cout<<"赋值给底:";
  12.     cin>>x;
  13.    
  14.     cout<<"赋值给指数";
  15.     cin>>y;
  16.    
  17.     z=a(x,y);//求幂值
  18.            cout<<z;//输出幂值
  19.            
  20.            cout<<endl<<"press enter to continue";//输出提示
  21.         cin.clear();
  22.         cin.sync();
  23.         cin.get();
  24.         return 0;
  25. }
  26. float a(float b,float c)
  27. {
  28.     if((b!=0)&&(c==0))
  29.         return 1;
  30.    
  31.     else if((b!=0)&&(c>=1))
  32.         return (a(b,c-1)*b);
  33.         
  34.         else if((b==0)&&(c!=0))
  35.                 return 0;
  36. }
复制代码





最佳答案

查看完整内容

float a(float b,float c) { if((b!=0)&&(c==0)) return 1; else if((b!=0)&&(c>=1)) return (a(b,c-1)*b); else if((b==0)&&(c!=0)) return 0; return 0; } 末尾加个return语句
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-18 16:35:52 | 显示全部楼层
float a(float b,float c)
{
        if((b!=0)&&(c==0))
                return 1;

        else if((b!=0)&&(c>=1))
                return (a(b,c-1)*b);

        else if((b==0)&&(c!=0))
                return 0;


        return 0;
}

末尾加个return语句
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-5-18 16:48:08 | 显示全部楼层
楼主float函数中的if语句中应该是逻辑判断吧,逻辑判断应该是两个“&”符号呀。
  1. float a(float b,float c)

  2. {

  3.     if((b!=0)&(c==0))

  4.         return 1;

  5.    

  6.     else if((b!=0)&(c>=1))

  7.         return (a(b,c-1)*b);

  8.         

  9.         else if((b==0)&(c!=0))

  10.                 return 0;

  11. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-18 17:03:49 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-5-18 18:57:07 | 显示全部楼层
因为你其他的return语句都是在if语句中调用的 ,对于整个函数而言,如果所有的if语句都不执行的话,那岂不是没有返回值了?虽然你自己本人知道,肯定会执行其中一个if语句,但是编译器可不会知道,所以必须要在非判断语句中加个return返回值。这样就不会报警告了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-28 05:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表