C基础日常练习2024-7-18

第一题:

        将strlen,strcmp,strcpy,strcat改写并打包成函数。

#include <stdio.h>

int my_strlen(char str[])
{
    int i = 0;
    for(i=0;str[i] != '\0';i++);
    return i;
}

void my_strcmp(char str3[],char str4[])
{
    int i = 0;
    for(i = 0;str3[i] == str4[i] && str3[i] != '\0';i++);
    if(str3[i]-str4[i]==0)
    {
        printf("str3相等于str4\n");
    }
    else if(str3[i]-str4[i]>0)
    {
        printf("str3大于str4\n");
    }
    else
    {
        printf("str3小于str4\n");
    }
}

void my_strcpy(char str1[],char str2[])
{
    for(int i = 0;str2[i] != '\0';i++)
    {
        str1[i]=str2[i];
    }
}                                                                                    

void my_strcat(char str1[],char str2[])
{
    int i = 0;
     int len1 = my_strlen(str1);
     for(i = 0;str2[i] != '\0';i++)
     {
         str1[len1+i]=str2[i];                                       
     }
     str1[i+len1] = '\0';
 }
 
 int main(int argc, const char *argv[])
 {
     //strlen
 
     char str[20]="hello world";
     int len = my_strlen(str);
     printf("%s数组的长度为%d\n",str,len);
 
     ///strcpy
 
     char str1[10] = "adcdse";
     char str2[20] = "123456789";
     my_strcpy(str1,str2);
     printf("%s\n",str1);
 
 
     strcmp/
 
     char str3[20] = "145892";
     char str4[10] = "145892";
     my_strcmp(str3,str4);
 
     strcat///
 
     my_strcat(str3,str4);
     printf("%s\n",str3);
    return 0;
}
                                   

第二题:

        输出一个十行的杨辉三角。规则:当前数据 = 上一行的当前列 + 上一行的当前列的前一列。

 #include <stdio.h>
 
 int main(int argc, const char *argv[])
 {
     int arr[10][10]={0};
     for(int i=1;i<10;i++)
     {
         arr[i-1][0] = 1;
         for(int j=1;j<=i;j++)
         {
             arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
         }
     }
     arr[9][0] = 1;
     for(int i=0;i<10;i++)                                   
     {
         for(int j=0;j<=i;j++)
         {
             printf("%d\t",arr[i][j]);
         }
         putchar(10);
     }
     return 0;
 }

第三题:

        求斐波那契数列的第n项。…,第一项和第二项 时候都是输出1、1、2、3、5、8、13、21、34、
        公式:f(n)=f(n-1)+f(n-2); 例如第20项,6765

 #include <stdio.h>
 
 int series(int n)
 {
     if(n < 3)
     {
         return 1;
     }
 
     //printf("%d  ",series(n-1)+series(n-2));
     return series(n-1) + series(n-2);
 }
 
 int main(int argc, const char *argv[])
 {
     printf("你想要输出多少项斐波那契数列:\n");
     int nums;
     scanf("%d",&nums);
     for(int i=1;i<nums+1;i++)
     {                                                                       
         printf("%d ",series(i));
     }
     putchar(10);
 
     return 0;
 }
                                                                             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值