#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int data[10];
int length;
}Sqlist;
void CreateList(Sqlist *&L)
{
int i = 0;
int len = 0;
int a[5];
L = (Sqlist*)malloc(sizeof(Sqlist));
while( i < 5)
{
scanf("%d",&a[i]);
L->data[i] = a[i];
i++;
len++;
}
L->length = len;
}
void move(Sqlist *&L)
{
int i=-1,j;
int tmp;
for( j=0; j<L->length-1;j++)
{
if(L->data[j]%2==1)
{
i++;
if(i!=j)
{
tmp = L->data[i];
L->data[i] = L->data[j];
L->data[j] = tmp;
}
}
}
}
void Display(Sqlist *L)
{
int i;
for( i = 0; i < L->length; i++)
{
printf("%d ",L->data[i]);
}
printf("\n");
}
int main()
{
int i;
Sqlist *L;
CreateList(L);
printf("L: ");
Display(L);
move(L);
printf("L: ");
Display(L);
return 0;
}
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int data[10];
int length;
}Sqlist;
void CreateList(Sqlist *&L)
{
int i = 0;
int len = 0;
int a[5];
L = (Sqlist*)malloc(sizeof(Sqlist));
while( i < 5)
{
scanf("%d",&a[i]);
L->data[i] = a[i];
i++;
len++;
}
L->length = len;
}
void move(Sqlist *&L)
{
int a,i,j;
int temp;
i = 1;
j = L->length-1;
a = L->data[0];
while(i < j)
{
while( i < j && L->data[j]%2==0) //必须是从后边开始找
j--;
while( i < j && L->data[i]%2!=0)
i++;
if( i < j)
{
temp = L->data[i];
L->data[i] = L->data[j];
L->data[j] = temp;
}
}
temp = L->data[0];
L->data[0] = L->data[j];
L->data[j] = temp;
}
void Display(Sqlist *L)
{
int i;
for( i = 0; i < L->length; i++)
{
printf("%d ",L->data[i]);
}
printf("\n");
}
int main()
{
int i;
Sqlist *L;
CreateList(L);
printf("L: ");
Display(L);
move(L);
printf("L: ");
Display(L);
return 0;
}