[英]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.