C基础--day6作业

1. 判断最大值:定义一个无符号的整型数组,求数组中的最大值。 思路:int a1=10, a2=20, a3=5;  两两相比,求最大值

#include <stdio.h>

int comparenum(unsigned int s[],int n);
int main(int argc,const char* argv[])
{
    unsigned int s[] = {1,3,7,4,8};

    int max = comparenum(s,sizeof(s)/sizeof(int));
    printf("最大值为:%d\n",max);
    return 0;
}

int comparenum(unsigned int s[],int n){
    int max = 0 ;
    for(int i=0;i<n;i++){
        if(max <= s[i])
        {                                          
            max = s[i];
        }
    }
    return max;

}

2. 从终端获取字符串,将整个字符串倒置存储。(提示:可以使用辅助数组)

#include <stdio.h>
#include <string.h>
int main(int argc,const char* argv[])
{
    char str[30],temp;
    scanf("%s",str);

    int len = strlen(str);
    for(int i = 0;i < len;i++)
    {
        if(i == len/2)
            break;
        temp = str[len-i-1];
        str[len-i-1] = str[i];
        str[i] = temp;

    }
    printf("%s\n",str);
    return 0;                         
}


3. string函数族的改写。至少strlen  strcpy 。

        3.1 strlen

        

#include <stdio.h>

int strlen(char str[]);
int main(int argc,const char* argv[])
{
    char s1[] = "he is a good boy";
    int len = strlen(s1);
    printf("length is :%d\n",len);
    
      return 0;
}     

int strlen(char str[])
{
    int i =0;
    while(1)
    {
        if(str[i] == '\0')
            break;
        i++;
    }
    return i;                            

}   

        3.2 strcpy

        

#include <stdio.h>
#include <string.h>

char * strcpy1(char * dst,char * str);
int main(int argc, const char *argv[])
{
    char str[] = "he is boy";
    char dst[20];

    strcpy1(dst,str);
    printf("%s\n",dst);
    return 0;
}

char * strcpy1(char * dst,char * str){
    char * t = dst; 
    
    while(1){
        if(*str == '\0')
            break; 
        *t++ = *str++;                     
    }
    *t = '\0';
    return dst;
}   

        3.3 strcmp
#include <stdio.h>

int strcmp(char s1[],char s2[]);
int main(int argc,const char* argv[])
{
    char s1[] = "hello";
    char s2[] = "hellold";

    int res = strcmp(s1,s2);
    printf("%d\n",res);
    return 0;
}

int strcmp(char s1[],char s2[])
{
    int i=0,res;
    while(1)
    {
        if(s1[i] == s2[i])
            i++;
        else
        {
            res = s1[i] - s2[i];
            break;
        }                              
    }
    return res;
}

3.4 strcat
#include <stdio.h>

char * strcat(char * s1,char * s2);
int main(int argc,const char* argv[])
{
    char s1[] = "abcdf";
    char s2[] = "123456";

    strcat(s1,s2);
    printf("%s\n",s1);

      return 0;
}
char * strcat(char * s1,char * s2)                   
{
    char * p = s1;
    while(1)
    {
        if(*p == '\0')
            break;              // 将指针指向\0,
        p++;
    }
    while(*s2 != '\0')
    {
        *p++ = *s2++;
    }
    *p = '\0';  
    return s1;
}   

4. 10层杨辉三角

#include <stdio.h>

int main(int argc,const char* argv[])
{
    int yang[10][10];
    
    for(int i = 0;i<10;i++)
        for(int j=0;j<=i;j++)
        {   
            if(i==j || j==0)      //将第一行列以及行列相等的数初始化为1
                yang[i][j] = 1;   
            else
                yang[i][j] = yang[i-1][j]+yang[i-1][j-1];
        }

    for(int i=0;i<10;i++)
    {
        for(int j=0;j<=i;j++)
            printf("%d ",yang[i][j]);
        printf("\n");
    }
      return 0;
}                                                                       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值