图论第五次作业

*作业:short arr[] = {};

1:    1 2 3 4 5 6  7 8   把奇数放在偶数前面

       1  3  5  7  2  4  6*/

#include<stdio.h>

int Sum_J(int *arr,int len)

{

    for(int i=0;i<len;i++)    //对于每一个偶数,找到他后面的第一个奇数进行换位。

       {

           if(arr[i]%2==0)    //arr[i]是偶数的时候,进入j循环

   {

   for(int j=i+1;j<len;j++)     

扫描二维码关注公众号,回复: 2206117 查看本文章

   {

   if(arr[j]%2==1)   //arr[j]是奇数的时候,与arr[i]互换。

   {

                      int tmp=arr[j];

                      arr[j]=arr[i];

                      arr[i]=tmp;

  break;  //跳出j循环,继续i循环。

   }

   }

   }

  }

return 0;

}

 

void  Sum_P(int *arr,int len)   //分段排序

{  

int i;  

for(i=0;arr[i]%2==1;i++)   //奇数排序

{

for(int j=1;arr[j]%2==1;j++)

{

      if(arr[j-1]>arr[j])

{

    int tmp=arr[j-1];

    arr[j-1]=arr[j];

    arr[j]=tmp;

     }

}

}

int n=i;     //用n记奇偶数交换位置,偶数排序位置是第一个偶数位置

for(i;i<len-1;i++)   //偶数排序

{   

for(int j=n;j-n<len-1-i;j++)  //j始终从第一个偶数开始排序

{

if(arr[j]>arr[j+1])

{

    int tmp=arr[j];

    arr[j]=arr[j+1];

    arr[j+1]=tmp;

     }

}

}

}

 

void Show(int *arr,int len)

{

for(int i = 0;i < len;i++)

{

printf("%d ",arr[i]);

}

printf("\n");

}

 

int main()

{

int arr[]={1,2,3,4,5,6,7,8,9};

int len=sizeof (arr)/sizeof(arr[0]);

 Sum_J(arr,len);

 Show(arr,len);

 Sum_P(arr,len);

 Show(arr,len);

 return 0;

}

 



/*自己实现

char *My_strcpy(char *dest,char *src)*/

#include<stdio.h>

#include<assert.h>

char *My_strcpy(char *dest,char *src)

{

int count = 0;

//断言

 assert (src!= NULL);

while(*src != '\0')

{

*dest++=*src++;

count++;

}

return dest;

}

 

int main()

{

char dest[50] = "";

char src[] = "hello world!";

My_strcpy(dest,src);

printf("%s\n",dest);

return 0;

}

猜你喜欢

转载自blog.csdn.net/qq_39385247/article/details/80778430