C语言调整数组元素位置的实现代码

[复制链接]
17|2
手机看帖
扫描二维码
随时随地手机跟帖
甘木|  楼主 | 2022-1-1 21:41 | 显示全部楼层 |阅读模式
问题如下:
165910u7o75uk7hsx1tgh9.jpg

实现代码
  • #include<stdio.h>
  • #include <stdlib.h>
  • void printArray(int array[],int arrayNum)
  • {
  •     for (int i = 0; i < arrayNum; i++)
  •     {
  •         printf("%d ", array);
  •     }
  •     printf("\n");
  • }
  • void adjustArray(int array[], int begin, int end)
  • {
  •     int left = begin;
  •     int right = end;
  •     while (begin <= end)
  •     {
  •         if (array[begin] % 2 == 0)
  •         {
  •             begin++;
  •         }
  •         else
  •         {
  •             while (array[end] % 2 != 0)
  •             {
  •                 end--;
  •             }
  •             if (end <= begin)
  •                 break;
  •             int temp = array[begin];
  •             array[begin] = array[end];
  •             array[end] = temp;
  •             end--;
  •         }
  •         if (array[end] % 2 != 0)
  •         {
  •             end--;
  •         }
  •     }
  • }
  • int main()
  • {
  •     int array[] = {12, 31,17,45,68,40,57,43,25,78 };
  •     int begin = 0;
  •     int end = 9;
  •     adjustArray(array, 0, 9);
  •     printArray(array, 10);
  •     return 0;
  • }




使用特权

评论回复

相关帖子

甘木|  楼主 | 2022-1-1 21:41 | 显示全部楼层
int left = begin;
    int right = end;
    while (begin <= end)
    {
        if (array[begin] % 2 == 0)
        {
            begin++;
        }
        else
        {
            while (array[end] % 2 != 0)
            {
                end--;
            }
            if (end <= begin)
                break;
            int temp = array[begin];
            array[begin] = array[end];
            array[end] = temp;
            end--;
        }

使用特权

评论回复
qbwww| | 2022-1-1 21:42 | 显示全部楼层
void printArray(int array[],int arrayNum)
{
    for (int i = 0; i < arrayNum; i++)
    {
        printf("%d ", array);
    }
    printf("\n");
}
void adjustArray(int array[], int begin, int end)
{
    int left = begin;
    int right = end;
    while (begin <= end)

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则