//----------------------调整数组使奇数全部都位于偶数前面--------------------voidprint(int arr[],int sz){int i =0;for(i =0; i < sz; i++){printf("%d ", arr[i]);}printf("\n");}voidmove(int arr[],int sz){int left =0;int right = sz -1;while(left<right){//从左边找偶数while((left<right)&& arr[left]%2==1){
left++;}//从右边找奇数while((left<right)&& arr[right]%2==0){
right--;}if(left < right){int tmp = arr[left];
arr[left]= arr[right];
arr[right]= tmp;}}}intmain(){int arr[]={1,2,3,4,5,6,7,8,9,10};int sz =sizeof(arr)/sizeof(arr[0]);move(arr,sz);//1.从左边找一个偶数//2.从右边找一个奇数//3.相互交换print(arr,sz);return0;}
5.5位运动员参加了10米跳水比赛,有人让他们预测比赛结果
//---------------------------------------5位运动员参加了10米跳水比赛,有人让他们预测比赛结果//A选手说:B第二,我第三//B选手说:我第二,E第四//C选手说:我第一,D第二//D选手说:C最后,我第三//E选手说:我第四,A第一//比赛结束后,每位选手都说对了一半intmain(){int a =0;int b =0;int c =0;int d =0;int e =0;for(a =1; a <=5; a++)//a的5种情况{for(b =1; b <=5; b++)//b的5种情况{for(c =1; c <=5; c++){for(d =1; d <=5; d++){for(e =1; e <=5; e++){if(((b==2)+(a==3)==1)&&//判断A说的两句话是否为真((b==2)+(e==4)==1)&&((c==1)+(d==2)==1)&&((c==5)+(d==3)==1)&&((e==4)+(a==1)==1))//5个人说的话{if(a*b*c*d*e==120)//确保abcd不同printf("a=% b=%d c=%d d=%d e=%d\n", a, b, c, d, e);}}}}}}return0;}