error: control may reach end of non-void function [-Werror,-Wreturn-type] 报错解决

翻译:错误:控件可能达到非空函数的结束[-Werror,-Wreturn-type]

即没有考虑所以可能的返回值情况。有可能某些输入得不到返回值。

错误代码

//穷举法求最大公约数
int mcd2(int a,int b)
{
	int tmp;
	if(a<b)
		tmp=a;
	else
		tmp=b;
	for(;tmp>0;tmp--)
	{
		if(a%tmp==0&&b%tmp==0)
			return tmp;
	 } 
}

修改成功后

//穷举法求最大公约数
void mcd2(int a,int b,int& c)
{
	int tmp;
	if(a<b)
		tmp=a;
	else
		tmp=b;
	for(;tmp>0;tmp--)
	{
		if(a%tmp==0&&b%tmp==0)
		{
			c= tmp;
			break;
		}
	 } 
}

解决办法:1.用c++的引用来得到返回值。如上

                   2.给if语句加上一个 else if return 0。使无论在什么判断条件下都可以满足函数的返回值要求。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值