C 在线编译器中的代码显示分段故障程序已完成,退出代码为139
我试图在联机编译器中编写代码,但它显示分段错误程序已完成,退出代码为139 这是我一直在研究的代码C 在线编译器中的代码显示分段故障程序已完成,退出代码为139,c,C,我试图在联机编译器中编写代码,但它显示分段错误程序已完成,退出代码为139 这是我一直在研究的代码 #包括 void main(){ 整数数组长度,数组[20],和,数组_和=0,j; printf(“输入数组中的元素数”); 扫描频率(“%d”和排列长度); printf(“输入数组”); 对于(int i=0;i您试图在不初始化j的情况下寻址array[j],并且必须小心不要输入大于20的数组,即使没有调试器,这也很有帮助。您的输入/输出和期望的结果是什么?还有,您的代码的逻辑是什么(即,它
#包括
void main(){
整数数组长度,数组[20],和,数组_和=0,j;
printf(“输入数组中的元素数”);
扫描频率(“%d”和排列长度);
printf(“输入数组”);
对于(int i=0;i您试图在不初始化j
的情况下寻址array[j]
,并且必须小心不要输入大于20
的数组,即使没有调试器,这也很有帮助。您的输入/输出和期望的结果是什么?还有,您的代码的逻辑是什么(即,它做什么)?变量j
从未初始化或设置为任何值,因此在array[j]
点,j
可能是一些垃圾值,如-1037927,或任何可能的值,这将导致segfault。
#include<stdio.h>
void main(){
int arrayLength ,array[20] ,sum , array_sum=0 ,j;
printf("enter the no of elements in your array");
scanf("%d" , &arrayLength);
printf("enter your array");
for (int i=0 ; i<arrayLength; i++){
scanf("%d", &array[i]);
}
printf("your array is");
for (int i=0; i < arrayLength; i++){
printf("%d",array[i]);
}
printf("enter the sum");
scanf("%d" ,&sum);
for (int i = 0; i < arrayLength; i++) {
if(array_sum<sum){
array_sum=array_sum+array[i];
continue;
}
else if(array_sum>sum && i<arrayLength){
array_sum = array_sum - array[j];
continue;
}
else if ( array_sum=sum){
printf("your sum can be found between array elements %d and %d ", j ,i);
continue;
}
else{
printf("not in this array");
}
}
}