阿巴阿巴,为什么??

P1001 A+B Problem

JIAOBO226016 @ 2024-05-19 21:00:23

我也不知道为什么就编译失败了??

#include<iostream>
using namespace std;
int plus1(unsigned long long &a,unsigned long long &b)
{
    unsigned long long t=0;
    t=a+b;
}
int main()
{
    unsigned long long c,d;
    scanf("%llu%llu",&c,&d);
    plus1(c,d);
    printf("%llu",t);
    return 0;
}

by Ice_rnfmabj @ 2024-05-19 21:01:54

@JIAOBO226016 t是函数plus1里的变量,你开成全局的就行了


by silent_ST @ 2024-05-19 21:05:24

void 类型函数需要返回值。而且函数内定义的变量属于局部变量,函数外是不能使用的。

#include<iostream>
using namespace std;
unsigned long long plus1(unsigned long long &a,unsigned long long &b)
{
    unsigned long long t=0;
    t=a+b;
    return t;
}
int main()
{
    unsigned long long c,d;
    scanf("%llu%llu",&c,&d);
    printf("%llu",plus1(c,d));
    return 0;
}

by silent_ST @ 2024-05-19 21:07:03

或者也可以改成这样:

#include<iostream>
using namespace std;
unsigned long long t=0; // 开全局

//int->void
void plus1(unsigned long long &a,unsigned long long &b)
{
    t=a+b;
}
int main()
{
    unsigned long long c,d;
    scanf("%llu%llu",&c,&d);
    plus1(c,d);
    printf("%llu",t);
    return 0;
}

by yanguo12138 @ 2024-05-22 20:42:16

@JIAOBO226016 你的t是局部变量,出了函数就没了哦,忘记return了


by JLsherryFX @ 2024-05-22 21:57:19

去DEVc++里编译一下就行了


by syy7788 @ 2024-06-09 21:06:32

有负数,删掉unsigned


by mcturtle @ 2024-06-23 22:20:58

又是一个没判断负数的蒟蒻


|