1> 实现对数组的排序
1.在自定义函数Input中实现循环输入
2.在Bubble函数中实现冒泡
3.在Output函数中输出
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void Intput(int m,int a[])
{
for(int i=0;i<m;i++)
{
printf("请输入数字:");
scanf("%d",&a[i]);
}
}
void Bubble(int m,int a[])
{
for(int i=1;i<m;i++)
{ for(int j=0;j<m-i;j++)
{
if(a[j]>a[j+1])
{
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
void Output(int m,int a[])
{
printf("升序结果为:");
for(int i=0;i<m;i++)
{
printf("%d ",a[i]);
}
}
int main(int argc, const char *argv[])
{
int m;
int a[20];
printf("请输入数组成员的个数:");
scanf("%d",&m);
Intput(m,a);
Bubble(m,a);
Output(m,a);
return 0;
}
2> 实现单词的逆置,在自定义函数中输出逆置后的字符串
1.在主函数输入字符串
2.定义有参函数void my_strrev(char str[] ,int start,int end ), start表示起始下标 end表示终止下标
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
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--;
}
start=0;
end=0;
while(str[start]!=0)
{
while(str[end]!=' '&&str[end]!=0)
{
end++;
}
int k=end-1;
while(start<k)
{
char p=str[start];
str[start]=str[k];
str[k]=p;
start++;
k--;
}
while(str[end]==' ')
{
end++;
}
start=end;
}
puts(str);
}
int main(int argc, const char *argv[])
{
char str[100]="";
gets(str);
my_strrev(str,0,strlen(str)-1);
return 0;
}
3> 自定义函数实现字符串比较【使用非函数】
1.在主函数输入字符串
2.定义有参有返函数 int my_strcmp(char s1[],char s2[] )
返回字符串之间比较的差值
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int my_strcmp(char s1[],char s2[])
{
int i=0,j=0;
while(s1[i]==s2[j])
{
if(s1[i]=='0')
break;
i++;
j++;
}
int dev=s1[i]-s2[j];
return dev;
}
int main(int argc, const char *argv[])
{
char s1[20]="";
char s2[20]="";
gets(s1);
gets(s2);
int a=my_strcmp(s1,s2);
if(a==0)
printf("s1==s2\n");
else if(a>0)
printf("s1>s2\n");
else
printf("s1<s2\n");
return 0;
}
4> 自定义函数实现字符串拷贝【使用非函数】,在自定义函数中输出拷贝后的字符串
1.在主函数输入字符串
2.定义有参无返函数实现拷贝 void my_strcpy(char dest[],char src[])
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void my_strcpy(char dest[],char src[])
{
int i;
for(i=0;src[i]!=0;i++)
{
dest[i]=src[i];
}
dest[i]=0;
puts(dest);
}
int main(int argc, const char *argv[])
{
char dest[20]="";
char src[20]="";
printf("输入第一个字符串:");
gets(dest);
printf("输入第二个字符串:");
gets(src);
printf("拷贝后的结果为:");
my_strcpy(dest,src);
return 0;
}
5> 自定义函数实现字符串连接【使用非函数】,在自定义函数中输出连接后的字符串
1.在主函数输入字符串
2,定义有参无返函数实现void my_strcat()char dest[], char src[])
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void my_strcat(char dest[],char src[])
{ int i,j;
for(i=0;dest[i]!='\0';i++);
for(j=0;src[j]!='\0';j++)
{
dest[i]=src[j];
i++;
}
dest[i]='\0';
printf("%s\n",dest);
}
int main(int argc, const char *argv[])
{
char dest[20]="";
char src[20]="";
scanf("%s%s",dest,src);
my_strcat(dest,src);
return 0;
}