Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 字符5:错误:控件可能到达非无效函数的末尾_C++_While Loop_Add - Fatal编程技术网

C++ 字符5:错误:控件可能到达非无效函数的末尾

C++ 字符5:错误:控件可能到达非无效函数的末尾,c++,while-loop,add,C++,While Loop,Add,我是编程新手,我试图在LeetCode上解决这个问题,其中: 给定一个非负整数num,重复添加其所有数字,直到结果只有一个数字。 投入:38 产出:2 说明:该过程类似于:3+8=11,1+1=2。 因为2只有一个数字,所以返回它 我的解决方案: class Solution { public: int addDigits(int num) { int sum =0,a =0; while(num!=0){ a =

我是编程新手,我试图在LeetCode上解决这个问题,其中:

给定一个非负整数num,重复添加其所有数字,直到结果只有一个数字。 投入:38 产出:2 说明:该过程类似于:3+8=11,1+1=2。 因为2只有一个数字,所以返回它

我的解决方案:

class Solution {
public:
    int addDigits(int num) {
        int sum =0,a =0;
        
        while(num!=0){
            a = num%10;
            sum = sum + a;
            num = num/10;          
        }
        
        if(sum>9){
            addDigits(sum);
        }else{
            return sum;
        }
        
    }
};
这段代码可以与其他编译器配合使用,但当我尝试在LeetCode提供的IDE上运行它时会出现错误

错误:

Line 18: Char 5: error: control may reach end of non-void function [-Werror,-Wreturn-type]
    }
    ^
1 error generated.
请在此行中建议克服此错误的方法

加法; 您正在调用函数,但没有对其返回值执行任何操作。您必须实际返回值:

返回addDigitsum; 在这方面:

加法; 您正在调用函数,但没有对其返回值执行任何操作。您必须实际返回值:

返回addDigitsum; 在代码中:

int addDigits(int num) {
        int sum =0,a =0;
        
        while(num!=0){
            a = num%10;
            sum = sum + a;
            num = num/10;          
        }
        
        if(sum>9){
            addDigits(sum);
        }else{
            return sum;
        }
        
    }
你还有一个额外的任务,改为这样做:

int addDigits(int num) {
        int sum =0,a =0;
        
        while(num!=0){
            a = num%10;
            sum = sum + a;
            num = num/10;          
        }
        
        if(sum>9){
            return addDigits(sum);
        }
        return sum;
        
    }
在代码中:

int addDigits(int num) {
        int sum =0,a =0;
        
        while(num!=0){
            a = num%10;
            sum = sum + a;
            num = num/10;          
        }
        
        if(sum>9){
            addDigits(sum);
        }else{
            return sum;
        }
        
    }
你还有一个额外的任务,改为这样做:

int addDigits(int num) {
        int sum =0,a =0;
        
        while(num!=0){
            a = num%10;
            sum = sum + a;
            num = num/10;          
        }
        
        if(sum>9){
            return addDigits(sum);
        }
        return sum;
        
    }