gpt4 book ai didi

c++ - 运行时错误 - 非零异常

转载 作者:行者123 更新时间:2023-11-30 18:56:43 25 4
gpt4 key购买 nike

我的编程老师给了我这个问题,让我用 c 编写它:给定一个由 N 个整数 A 和一个数字 K 组成的数组。在一轮中,所有的最大值 Ai被选中,我们称之为 MAX。那么艾= MAX - Ai为每个 1 <= i <= N 完成。帮助 Roman 找出 K 之后数组会是什么样子轮流。

输入

数字 N 和 K 在输入的第一行中给出。然后第二行给出N个整数,表示数组A。

输出

在一行中输出 N 个数字。应该是K圈后的数组A。

约束

* 1 <= N <= 10^5
* 0 <= K <= 10^9
* Ai does not exceed 2 * 10^9 by it's absolute value.

示例

Input:
4 1
5 -1 7 0

Output:
2 8 0 7

我解决这个问题的代码是:

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


long int Max(long int *arr, int low, int high)
{
long int max,i;

max = arr[low];
for(i=0;i<=high;i++)
{
if(max<=arr[i])
max = arr[i];
}

return max;
}

/* Driver program to test above function */
int main()
{
long int max,*arr;
long int n,k,c1,c2,c3,i,j;

c1 = (long int)pow(10,5);
c2 = (long int)pow(10,9);
c3 = 2*c2;
scanf("%ld %ld",&n,&k);

if(n<1||n>c1)
exit(1);
else if(k<0||k>c2)
exit(1);
else
{
arr = (long int *)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{
scanf("%ld",&arr[i]);
if(abs(arr[i])>c3)
exit(1);
}
if(k%2 == 0)
{
for(i=0;i<2;i++)
{
max = Max(arr, 0, n-1);
for(j=0;j<n;j++)
{
arr[j] = max-arr[j];
if(abs(arr[j])>c3)
exit(1);
}
}
}
else if(k%2 != 0)
{
max = Max(arr, 0, n-1);
for(j=0;j<n;j++)
{
arr[j] = max-arr[j];
/*if(abs(arr[j])>c3)
exit(1);*/
}
}
/* for(m=0;m<n;m++)
printf("%ld ",arr[m]);
printf("\n");*/

for(i=0;i<n;i++)
printf("%ld ",arr[i]);

printf("\n");
}
return 0;
}

我在 gcc 上执行了这段代码ubuntu 中的编译器,它在满足所有约束的情况下完美工作,但是当我将这段代码上传到我的老师的门户上时,该门户有一个编译器并执行了代码,它说 Runtime错误 -

nzec which means a non-zero exception which is used to signify that main() does not have "return 0;" statement or exception thrown by c++ compiler .

请谁能帮我看看我的代码有什么问题,因为 return 0;我的代码中的声明。请帮忙。

每个人都指出了退出的多种用途...我可以使用任何其他方式代替 exit() 来减少它们吗?

最佳答案

我的猜测是,这与您针对错误情况使用的各种 exit(1) 语句有关。

关于c++ - 运行时错误 - 非零异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23567377/

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