[英]Outputing 64bit integers in c++
我写了以下代码-
#include <iostream>
#include <tuple>
int sumarr(int64_t arr[], int length)
{
long long int sum= 0;
for(int i=0; i<length; i++)
{
sum += arr[i];
}
return sum;
}
void minimaxval(int64_t arr[], int length,int64_t *x,int64_t *y)
{
long long int c=0;
long long int d=10e9;
for(int j=0; j<5; j++)
{
if(arr[j] >= c)
{
c = arr[j];
}
if (arr[j] <= d)
{
d= arr[j];
}
}
*x=c;
*y=d;
}
int main()
{
int64_t arr[5];
int64_t p, q;
int64_t sum;
for(int k=0; k<5; k++){
std::cin>> arr[k];
if (arr[k]<1 || arr[k]>10e9){return 0;}
}
sum= sumarr(arr, 5);
minimaxval (arr, 5, &p, &q);
std::cout << sum-p << " " << (sum-q);
return 0;
}
这是我关于stackoverflow的第一个问题。 所以我对格式不太了解。
查询的输入。 将是 5 个空格分隔的整数。 Output 应该是我们通过从列表中仅删除一个 integer 可以获得的最小和最大和。
它没有显示任何编译器问题。
它适用于较小的整数,但对于较大的整数输出负值。
我在哪里 go 错了。
在“摘要”中,您的返回类型错误。 如果您将其更改为 int64_t 一切都会好起来的。 PS,是的,这也是我的第一个答案)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.