QQ网名大全

设计一个C语言函数

可以使用2个指针,分别指向开头和结尾,头指针指向偶数,尾指针指向奇数,然后交换。直到2个指针挨着。

程序如下:

#include<stdio.h>
void swap(int *p1, int *p2)
{
    int p;
    p = *p1;
    *p1 = *p2;
    *p2 = p;
}
int main()
(
    int arr[10];
    int N = 0;
    printf("Please input the length of array : \n");
    scanf("%d", &N);
    int *z = (int *)malloc(N*sizeof(int));
    for (int i = 0; i < N; i++)
    {
        scanf("%d", &z[i]);
    }
    int *pHead = z;
    int *pTail = &z[N-1];
    while (pHead < pTail)
    {
        while (pHead < pTail && *pHead%2==1)
        {
            pHead++;
        }
        while (pHead < pTail && *pTail%2==0)
        {
            pTail--;
        }
        if (pHead < pTail)
        {
            swap(pHead, pTail);
        }
    }
    for (int i = 0; i < N; i++)
    {
        printf("%d ", z[i]);
    }
    printf("\n");
    return 0;
)

结果如下:

佚名
2024-06-01 03:28:37
最佳回答
类似问题(10)
  • 佚名
    2024-06-01 05:38:33

    c语言--函数

    你的函数声明写错了 应该是 double f(int n);for(i=0;i<m;i++) int i; double s=1....

  • 佚名
    2024-06-01 15:55:51

    C语言函数部分

    #include <stdio.h>int fun(char a[]){    //开始答题    int dec = 0, i;    for (i =...

  • 佚名
    2024-06-01 10:41:43

    c语言函数

    C语言中,参数传递是单向按值传递,相当于将a和b的值赋值给x,y,虽然fun函数中,x和y的值交换了,但是main函数中,a和b的值没有发生变化。如果想在自定义...

  • 佚名
    2024-06-01 06:25:28

    C语言函数

    B B A D B B A D A A

  • 佚名
    2024-06-01 10:27:32

    C语言的函数.

    #include<process.h>或是#include<stdlib.h>#include<stdio.h>#include<pro...

  • 佚名
    2024-06-01 11:13:43

    c语言的函数

    fflush(stdin) ; 清空输入缓冲区,通常是为了确保不影响后面的数据读取(例如在读完一个字符串后紧接着又要读取一个字符,此时应该先执行fflush(...

  • 佚名
    2024-06-01 14:10:58

    c语言 关于函数

    void main() { int num; char a[N][15],b[N]; /*改成char a[N][15];int b[N];*/ nameand...

  • 佚名
    2024-06-01 13:27:12

    c语言 函数一个问题

    当然有,虽然你是static变量在函数结束后不会释放,但是你没有返回值你主函数的s = fun()这句话就没有意义,因为s得不到任何值,而且这个函数应该必须提供...

  • 佚名
    2024-06-01 07:55:49

    c语言求函数

    这其实就是一个解三元二次次方程组。设三个点为(x1,y1),(x2,y2),(x3,y3)用x1,y1,x2,y2,x3,y3这六个数把a,b,c表示出来,这样...

  • 佚名
    2024-06-01 09:54:13

    c语言函数

    1l绝对错了 2l我借鉴了一下你的code 不过既然人家要函数调用那就写函数的吧 double f(double n){ return ((int)n %2 ...