#include<stdio.h>
int max_pairwise(int *array,int n) {
int result=0;
int i,j;
for(i=0; i<n; i++)
for(j=i+1; j<n; i++) {
if(array[i]*array[j]>result)
result=array[i]*array[j];
}
return result;
}
int main(void) {
int n;
scanf("%d",&n);
int array[n];
int i;
for(i=0; i<n; i++)
scanf("%d",&array[i]);
int result=max_pairwise(array,n);
printf("%d",result);
return 0;
}
答案 0 :(得分:3)
你在内循环中递增了错误的变量:
// here------v
for(j=i+1;j<n;i++)
结果,i
不断增加。这导致读取数组的末尾,导致undefined behavior,其中一个可能的症状是段错误。
你想要这个:
for(j=i+1;j<n;j++)
答案 1 :(得分:1)
在函数max_pairwise()中,在第二个for循环中你输入了i +,而不是j ++