gpt4 book ai didi

c - 查找满足 i < j 且 A[i]**A[j] > A[j]**A[i] 的对 (A[i], A[j]) 的数量

转载 作者:行者123 更新时间:2023-11-30 21:40:37 27 4
gpt4 key购买 nike

我为以下问题编写了以下代码:

给定一个由 N 个正整数组成的序列 A,编写一个程序来查找满足 i < j 且 A[i]A[j]< 的对 (A[i], A[j]) 的数量/sup>> A[j]A[i](A[i] 的 A[j] 次方 > A[j] 的 A[i] 次方)。

我的代码通过了除此之外的所有测试用例:

15 
0 5 2 3 0 8 7 8 0 7 1 2 4 5 3

输出应该是 35,但我的程序给出输出 0。我的程序如下:

#include<stdio.h>

int power(int x, int y);

int main()
{
int N,A[N],count=0;
scanf("%d",&N);
for(int i=0;i<N;i++)
{
scanf("%d",&A[i]);
}
for(int i=0;i<N;i++)
{
for(int j=i+1;j<N;j++)
{
if(i<j)
{
if(power(A[i],A[j])>power(A[j],A[i]))
count++;
}
}
}
printf("%d",count);

return 0;
}


int power(int x, int y)
{
int result = x;

if(y == 0) return 1;
if(x < 0 || y < 0) return 0;

for (int i = 1; i < y; ++i)
result *= x;

return result;
}

请仅对 C 语言代码提出更正建议。

最佳答案

声明

int N,A[N],count=0;

没有意义。在这一行中,当您分配数组 A 时,您不知道 N 的值。在知道 N 的值之后,尝试为 A 分配空间。

关于c - 查找满足 i < j 且 A[i]**A[j] > A[j]**A[i] 的对 (A[i], A[j]) 的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22742811/

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