嵌入式工程师学习Day8

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值