|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- int main()
- {
- int i,a[50];
- printf("请输入十个元素:\n");
- for(i=0;i<10;i++)
- {
- scanf("%d",&a[i]);
- }
- int *p,*q,temp;
- p=a;
- q=a;
- for(i=0;i<9;i++)
- q++;
- while(p<q)
- {
- if(*p%2==0)
- {
- if(*q%2!=0)
- {
- if(p<q)
- {
- temp=*p;
- *p=*q;
- *q=temp;
- p++;
- q--;
- }
- }
- else
- {
- q--;
- }
- }
- else
- p++;
- }
- for(i=0;i<10;i++)
- {
- printf("%d",a[i]);
- }
- return 0;
- }
复制代码
本帖最后由 风过无痕1989 于 2020-12-29 09:19 编辑
- #include<stdio.h>
- int main()
- {
- int i, k = 0, a[50];
- int *p, *q, *m, temp;
- printf("请输入十个元素:\n");
- for (i = 0;i<10;i++)
- {
- scanf("%d", &a[i]);
- k++;
- }
- p = a;
- q = &a[k - 1];
- while (p < q)
- {
- if (*p % 2 == 0 || *q % 2 != 0) // 此句重点在后面,只要 q 指向的是奇数,就交换,即使 p 指向的也是奇数,因为 p 在交换后就换成了下一个字符,而 q 却没变
- {
- temp = *p;
- *p = *q;
- *q = temp;
- p++;
- }
- else
- {
- q--; // 若 q 指向的是一个偶数,则退一个,直到找到奇数为止
- }
- }
- for (i = 0;i<10;i++)
- {
- printf("%d ", a[i]);
- }
- return 0;
- }
复制代码
|
|