gpt4 book ai didi

c - 正整数之和 - 打印垃圾值

转载 作者:太空宇宙 更新时间:2023-11-04 05:49:57 26 4
gpt4 key购买 nike

程序必须接受 N 个整数,并打印所有正整数的和 S,偶数正整数取反。

Example Input/Output 1:

Input: 4 39 -8 57 24

Output: 138

Explanation: The sum = 39+57+42 = 138 (The even number 24 is reversed)

Example Input/Output 2:
Input: 3 -23 -11 -445

Output: 0

#include<stdio.h>
#include <stdlib.h>

int main()
{
int n,i,arr[100000],count=0,rem,rev=0;

scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d ",&arr[i]);
}

for(i=0;i<n;i++)
{
if(arr[i]>0)
{
if(arr[i]%2==0)
{
while(arr[i]!=0)
{
rem=arr[i]%10;
rev=rev*10+rem;
arr[i]=arr[i]/10;
}
count=count+rev;
}
else
{
count=count+arr[i];
}

}
}
printf("%d",count);

}

对于上述两个指定的示例i/o,程序运行完美。但是对于

Input: 32

-89 90 -13 27 63 72 -17 33 58 73 -55 -46 -64 -65 87 62 -76 -13 -50 6 22 70 87 -39 -24 98 -31 -6 39 -80 46 -54

Output: -878418008

向我解释问题发生的原因以及如何纠正它。

最佳答案

您没有为每个新的偶数重置 rev = 0,因此反转的值对于偶数是错误的。

if(arr[i]>0)
{ rev = 0;
if(arr[i]%2==0)

关于c - 正整数之和 - 打印垃圾值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44717502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com