请问这个程序怎么改啊?报错说func没有返回值


#include<stdio.h>
int func(int x){
    x--;
    printf("x=%d\n", x);
}

    int main(){
        int num;
        printf("Input a number:");
        scanf("%d", &num);


    func(num);
    printf("num=%d\n", num);
    return 0;
}

供参考:

#include<stdio.h>
int func(int x){
    x--;
    printf("x=%d\n", x);
    return x;            //修改 增加返回语句
}

int main(){
    int num;
    printf("Input a number:");
    scanf("%d", &num);

    func(num);
    printf("func(num):num=%d\n", num);

    num = func(num);   //修改
    printf("num = func(num):num=%d\n", num);

    return 0;
}

修改如下:


#include<stdio.h>
void func(int& x) {
    x--;
    printf("x=%d\n", x);
}

int main() {
    int num;
    printf("Input a number:");
    scanf_s("%d", &num);
    func(num);
    printf("num=%d\n", num);
    return 0;
}

你func中都没写return哪来的返回值?
func结尾处加return int类型的变量;

解决方案大致两种:
1.在func函数中添加return 返回值 返回函数执行的结果。
2.借助指针引用 址传递的方式 去改变 此时不加返回值,也可以影响到主函数中的变量内容。