2024.1.22 作业

1.代码优化

代码:

#include <stdio.h>
#include <string.h>
int fn(int num);
int main(int argc, const char *argv[])
{
    int num = 0;
    scanf("%d",&num);//5
    int sum =fn(num);
    if(sum==-1)
    {
        return 0;
    }
    printf("sum = %d\n",sum);
    return 0;
}

int fn(int num)//5
{
    if(num==1)
    {
        return 1;
    }
    else if(num>1)
    {
        return  fn(num-1)*(num);
    }
    else
    {
        printf("错误\n");
    return -1;
    }
}

2.三个函数族封装(除strlen)

strcmp(比较):

#include<stdio.h>
#include<string.h>
int mystrcmp(char *s1,char *s2)
{
    for(;*s1!='\0'||*s2!='\0';s1++,s2++)
    {
        if(*s1==*s2)
        {
            continue;
        }
        else
        {
            return *s1-*s2;
        }
    }
}
int main(int argc,const char *argv[])
{
    char arr[30]="",brr[30]="";
    printf("请输入字符串arr>>");
    gets(arr);
    printf("请输入字符串brr>>");
    gets(brr);
    printf("%d\n",mystrcmp(arr,brr));
    printf("%d\n",strcmp(arr,brr));    
    return 0;
}

strcpy(复制):

#include<stdio.h>
#include<string.h>
void mystrcpy(char *s1,char *s2)
{
    for(;*s2!='\0';s1++,s2++)
    {
        *s1=*s2;
    }
    *s1='\0';
}
int main(int argc,const char *argv[])
{
    char arr[30]="",brr[30]="";
    printf("请输入字符串arr>>");
    gets(arr);
    printf("请输入字符串brr>>");
    gets(brr);
    mystrcpy(arr,brr);
    puts(arr);
    printf("%s\n",strcpy(arr,brr));    
    return 0;
}

strcat(拼接):

#include<stdio.h>
#include<string.h>
void mystrcat(char *s1,char *s2)
{
    for(;*s1!='\0';s1++);
    for(;*s2!='\0';s1++,s2++)
    {
        *s1=*s2;
    }
    *s1='\0';
}
int main(int argc,const char *argv[])
{
    char arr[30]="",brr[30]="";
    printf("请输入字符串arr>>");
    gets(arr);
    printf("请输入字符串brr>>");
    gets(brr);
    mystrcat(arr,brr);
    puts(arr);
    return 0;
}

3.斐波那契数列

代码:

#include<stdio.h>
#include<string.h>
int dg(int x)
{
    if(x>=3)
    {
        return dg(x-1)+dg(x-2);
    }
    else 
    {
        return 1;
    }
}
int main(int argc,const char *argv[])
{
    int num;
    printf("想计算第几项斐波那契数列的值>>");
    scanf("%d",&num);
    getchar();
    printf("%d\n",dg(num));
    return 0;
}

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值