簡體   English   中英

在 C++ 中給出錯誤返回類型的錯誤

[英]Giving error for wrong return type in C++

#include<iostream>
using namespace std;

void factor(int n)
{
    if(n<=1)
    return;
    for(int i=2;i*i<=n;i++){
        while(n%i==0){
            printf(i);
            n=n/i;
        }
    }
    if(n>1)
    {
    return n;
    }
}

int main(){
    factor(10);
}

錯誤:帶有值的返回語句,在 function 返回 'void' [-fpermissive] 16 | 返回 n; | ^

返回類型不應該是 void 而是 int。

問題是您的 function factor的返回類型為void ,但它實際上返回一個int object。

為了解決這個問題,您應該將 function factor的返回類型與您實際從 function 內部返回的類型相匹配,如下所示。

其次,您還應該通過添加適當的返回語句來處理不滿足任何條件(如if )的情況,如下所示:

int factor(int n) //VOID CHANGED TO INT HERE
{
    if(n<=1)
    return 0; //CHANGED RETURN TO RETURN 0 HERE
    for(int i=2;i*i<=n;i++){
        while(n%i==0){
            //printf(i);
            n=n/i;
        }
    }
    if(n>1)
    {
    return n;
    }
    return 0;//ADDED RETURN HERE for the case if none of the if are satisfied and control flow reaches here
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM