未成年不准谈恋爱

简介: 未成年不准谈恋爱

🧿 前言:

还有一个学期就高考了,最近王老师总是能在操场上发现班里的男女同学成双成对的出现,于是准备给班里的座位来一次大调整。让男同胞们集体往后坐,女同胞集体往前坐。当然一些男同胞和男同胞之间的关系,王老师只能束手无策了,望同学们自爱…


/***********************************************************************

目的:有一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。

分析:从数组的前面和后面往中间找:若前面找到偶数,后面找到奇数则交换两个数的位置

平台:Visual studio 2017 && windows

*************************************************************************/

📝 实现代码1

#include<stdio.h>
void Swap_MW(int arr[], int sz)
{
  int left = 0;
  int right = sz - 1;
  while(left < right)
  {
    //找偶数
    while(arr[left] % 2 == 1)
    {
      left++;
    }
    //找奇数
    while(arr[right] % 2 == 0)
    {
      right--;
    }
    //交换一对
    if(left < right)
    {
      int temp = arr[left];
      arr[left] = arr[right];
      arr[right] = temp;
    }
  }
}
void Print(int arr[], int sz)
{
  int i = 0;
  for(i = 0; i < sz; i++)
  {
    printf("%d ", arr[i]);
  }
  printf("\n");
}
int main()
{
  int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
  int sz = sizeof(arr) / sizeof(arr[0]);
  //交换
  Swap_MW(arr, sz);
  //输出
  Print(arr, sz);
  return 0;
}

⭕ 输出结果:

❓❔ 当你觉得你又行了的时候,现实总会给你迎头痛击

▶ 当这个数组里的内容全是偶数或奇数时,将会越界,所以这个代码是有bug的


/***********************************************************************

目的:改bug

分析:无

平台:Visual studio 2017 && windows

*************************************************************************/

📝 修改代码1

#include<stdio.h>
void Swap_MW(int arr[], int sz)
{
  int left = 0;
  int right = sz - 1;
  while(left < right)
  {
    //找偶数
    while((left < right) && (arr[left] % 2 == 1))//修改1
    {
      left++;
    }
    //找奇数
    while((left < right) && (arr[right] % 2 == 0))//修改2
    {
      right--;
    }
    //交换一对
    if(left < right)
    {
      int temp = arr[left];
      arr[left] = arr[right];
      arr[right] = temp;
    }
  }
}
void Print(int arr[], int sz)
{
  int i = 0;
  for(i = 0; i < sz; i++)
  {
    printf("%d ", arr[i]);
  }
  printf("\n");
}
int main()
{
  int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
  int sz = sizeof(arr) / sizeof(arr[0]);
  //交换
  Swap_MW(arr, sz);
  //输出
  Print(arr, sz);
  return 0;
}



相关文章
|
C语言
用C语言解决实际问题之买汽水、猜凶手(名次)
用C语言解决实际问题之买汽水、猜凶手(名次)
87 0
|
5G 知识图谱
根据体重计算可以喝汽水的罐数
根据体重计算可以喝汽水的罐数
106 1
|
定位技术
猜猜我在哪
猜猜我在哪
(拯救选择困难症)随机选择今天中午吃啥
(拯救选择困难症)随机选择今天中午吃啥
(拯救选择困难症)随机选择今天中午吃啥
|
存储
妈,旧电脑连加法都算错了,我要换新的
妈,旧电脑连加法都算错了,我要换新的
|
存储 缓存 小程序
对不起,学会这些知识后我飘了(一)
我们每个程序员或许都有一个梦,那就是成为大牛,我们或许都沉浸在各种框架中,以为框架就是一切,以为应用层才是最重要的,你错了。在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远,而计算机基础知识又是重中之重。下面,跟随我的脚步,为你介绍一下计算机底层知识。
78 0
对不起,学会这些知识后我飘了(一)
|
存储 缓存 程序员
对不起,学会这些知识后我飘了(二)
我们每个程序员或许都有一个梦,那就是成为大牛,我们或许都沉浸在各种框架中,以为框架就是一切,以为应用层才是最重要的,你错了。在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远,而计算机基础知识又是重中之重。下面,跟随我的脚步,为你介绍一下计算机底层知识。
126 0
对不起,学会这些知识后我飘了(二)
|
监控 中间件 Unix
对不起,学会这些知识后我飘了(四)
我们每个程序员或许都有一个梦,那就是成为大牛,我们或许都沉浸在各种框架中,以为框架就是一切,以为应用层才是最重要的,你错了。在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远,而计算机基础知识又是重中之重。下面,跟随我的脚步,为你介绍一下计算机底层知识。
89 0
对不起,学会这些知识后我飘了(四)
|
存储 算法 安全
对不起,学会这些知识后我飘了(五)
我们每个程序员或许都有一个梦,那就是成为大牛,我们或许都沉浸在各种框架中,以为框架就是一切,以为应用层才是最重要的,你错了。在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远,而计算机基础知识又是重中之重。下面,跟随我的脚步,为你介绍一下计算机底层知识。
80 0
对不起,学会这些知识后我飘了(五)
|
存储 编解码 算法
对不起,学会这些知识后我飘了(三)
我们每个程序员或许都有一个梦,那就是成为大牛,我们或许都沉浸在各种框架中,以为框架就是一切,以为应用层才是最重要的,你错了。在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远,而计算机基础知识又是重中之重。下面,跟随我的脚步,为你介绍一下计算机底层知识。
119 0
对不起,学会这些知识后我飘了(三)