输入数组例如 Array[10] = {12,23,0,-7,138,22,7,99,10,-2}
我想打印出一端为偶数,另一端为奇数的数组,如下所示:Array[10] = {12,0,-2,10,22,138,-7,99,7 ,23}
int main()
{
int N = 0, i = 0, j = N-1, index = 0;
printf("Enter N (0>N<10): ");
scanf("%d", &N);
int Array[N];
for(i=0;i<N;i++){
printf("Enter the value number %d :", i+1);
scanf("%d", &Array[i]);
}
printf("Array[%d] ={",N);
for(i=0;i<N;i++){
printf("%d\t", Array[i]);
}
printf("}");
// swaping odd and even numbers
int Array2[N];
while (i < j){
if(Array[i]%2 == 0){
Array2[i] = Array[index];
i++;
}
else{
Array2[j] = Array[index];
j++;
}
index++;
}
// view the new array
printf("\n Array[%d] ={",N);
for(i=0;i<N;i++){
printf("%d\t", Array2[i]);
}
printf("}");
return 0;
}
这似乎不起作用。任何帮助将不胜感激。
注意:我知道 Array[N] 部分不是应该如何完成的,它只是为了简化事情。
最佳答案
在您的 else 语句中:
else{
Array2[j] = Array[index];
j++;
}
您需要j--;
而不是j++
。
关于c - 在C中交换数组内的奇数和偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33947947/