*作业: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++)
{
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;
}