需求:实现将数组中所有元素调整为左右两部分,左边为奇数,右边为偶数。(c语言)
int main(){
int size;
printf("enter the size of arr:");
scanf("%d",&size);
int arr[size];
for(int i;i<size;i++){
scanf("%d",&arr[i]);
}
printf("that is old one:\n");
for(int j=0;j<size;j++){
printf("%d",arr[j]);
}
printf("\n");
printf("that is the new:\n");
for(int i=0;i<size;i++){
if(arr[i]%2!=0){
printf("%d",arr[i]);
}
for(int j=0;j<size;j++){
if(arr[j]%2==0){
printf("%d",arr[j]);
}
}
printf("\n");
printf("03dengsimin");
return 0;
}
中这段代码:
for(int i=0;i<size;i++){
if(arr[i]%2!=0){
printf("%d",arr[i]);
}
for(int j=0;j<size;j++){
if(arr[j]%2==0){
printf("%d",arr[j]);
}
}
能不能换成一下这个?
for(int i=0;i<size;i++){
if(arr[i]%2!=0){
printf("%d",arr[i]);
}else{
printf("%d",arr[i]);
}
}
想问问为什么可换/为什么不能换?
谢谢指导,菜鸟万分感激。
false
时,什么都不会做,但在后者中,会导致另一种输出出现。举几个测试例子:
可以看出来,除非数组本身已经达成了一种顺序(奇数在一端,偶数在一端),否则这种修改就会导致程序表现「不对劲」。