作业
一、实现对数组的排序
在自定义函数lnput中实现循环输入2.在Bubble函数中实现冒泡
在Output函数中输出
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void Input(int a[],int n);
void Bubble(int a[],int n);
void Output(int a[],int n);
int main(int argc, const char *argv[])
{
int n=0;
printf("请输入数组的长度:");
scanf("%d",&n);
int a[n];
Input(a,n);
Bubble(a,n);
Output(a,n);
return 0;
}
void Input(int a[],int n)
{
for(int i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
}
void Bubble(int a[],int n)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
if(a[j]>a[j+1])
{
int t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
}
}
void Output(int a[],int n)
{
for(int i=0;i<n;i++)
{
printf("%d\n",a[i]);
}
}
结果:

二、实现单词的逆置,在自定义函数中输出逆置后的字符串
在主函数输入字符串
定义有参函数void my_strrev(char str] ,int start,int end ), start表示起始下标end表示终止下标
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void my_strrev(char str[],int start,int end);
int main(int argc, const char *argv[])
{
char s[100]="";
printf("请输入一串字符串:");
gets(s);
int i=0,end=0,start=0;
while(s[i])
{
i++;
}
end=i-1;
my_strrev(s,start,end);
return 0;
}
void my_strrev(char str[],int start,int end)
{
while(start<end)
{
char t=str[start];str[start]=str[end];str[end]=t;
start++;
end--;
}
puts(str);
}
结果:

三、自定义函数实现字符串比较【使用非函数】
在主函数输入字符串
定义有参有返函数int my_strcmp(char s1[],char s2[)
返回字符串之间比较的差值
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int My_strcmp(char s1[],char s2[]);
int main(int argc, const char *argv[])
{
char s1[100]="";
char s2[100]="";
printf("请输入第一段字符串:");
gets(s1);
printf("请输入第二段字符串:");
gets(s2);
int n=My_strcmp(s1,s2);
if(n>0)
{
printf("s1>s2\n");
}else if(n<0)
{
printf("s1<s2\n");
}
else
{
printf("s1=s2\n");
}
return 0;
}
int My_strcmp(char s1[],char s2[])
{
int i=0;
while(s1[i]==s2[i])
{
if(s1[i]=='\0')
{
break;
}
i++;
}
int dev=s1[i]-s2[i];
return dev;
}
结果:

四、自定义函数实现字符串拷贝【使用非函数】,在自定义函数中输出拷贝后的字符串
在主函数输入字符串
定义有参无返函数实现拷贝void my_strcpy(char dest[],char src[])
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void My_strcpy(char s1[],char s2[]);
int main(int argc, const char *argv[])
{
char s1[100]="";
char s2[100]="";
printf("请输入第一段字符串:");
gets(s1);
printf("请输入第二段字符串:");
gets(s2);
My_strcpy(s1,s2);
return 0;
}
void My_strcpy(char s1[],char s2[])
{
int i=0;
while(s2[i])
{
s1[i]=s2[i];
i++;
}
s1[i]=s2[i];
puts(s1);
}
结果:

五、自定义函数实现字符串连接【使用非函数】,在自定义函数中输出连接后的字符串
在主函数输入字符串
定义有参无返函数实现void my_strcat()char dest[, char src[])
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void My_strcat(char s1[],char s2[]);
int main(int argc, const char *argv[])
{
char s1[100]="";
char s2[100]="";
printf("请输入第一段字符串:");
gets(s1);
printf("请输入第二段字符串:");
gets(s2);
My_strcat(s1,s2);
return 0;
}
void My_strcat(char s1[],char s2[])
{
int i=0,j=0;
while(s1[i])
{
i++;
}
while(s2[j])
{
s1[i]=s2[j];
i++;
j++;
}
puts(s1);
}
结果:
