寒假作业——2/5

作业1

编写strlen函数

#include
#include
int my_streln(char *s) 
{
    int len=0;
    while(*s!='\0')
    {
        len++;
        s++;
    }
    return len;
}
int main(int argc, const char *argv[])
{
    char arr[30]="";
    gets(arr);
    int len=my_streln(arr);
    printf("len=%d\n",len);
    return 0;
}
寒假作业——2/5_第1张图片

作业2

编写strcpy函数

#include
#include
char *mystrcpy(char *dest,const char *src)
{
    char *p=dest;
    while(*src!='\0')
    {
        *p=*src;
        p++;
        src++;
    }
    *p=*src;
    return dest;
}
int main(int argc, const char *argv[])
{
    char arr[30]="";
    char brr[30]="";
    printf("请输入要复制的一串字符>>");
    gets(brr);
    char *p=NULL;
    p=mystrcpy(arr,brr);
    //puts(arr);
    printf("%s\n",p);
    return 0;
}
寒假作业——2/5_第2张图片

作业3

测试卷

1-5        AACBA

6-10        DABDD

11-15        DACBC

16-20        DBDCC

21-25        ABBDD

1.#include
#include
int main(int argc, const char *argv[])
{
    int arr[10]={0};
    int *p=arr;
    int i=0;
    int j=0;
    for(i=0;i<10;i++,p++)
    {
        printf("请输入一个数>>");
        scanf("%d",p);
    }
    for(i=0,p=arr;i<9;i++)
    {
        for(j=0;j<10-i-1;j++)
        {
            if(*(p+j)>*(p+j+1))
            {
                *(p+j)=*(p+j)^*(p+j+1);
                *(p+j+1)=*(p+j)^*(p+j+1);
                *(p+j)=*(p+j)^*(p+j+1);    
            }
        }
    }
    for(i=0;i<10;i++)
    {
        printf("%d\t",*(p+i));
    }
    printf("\n");
    return 0;
}

寒假作业——2/5_第3张图片

2.

#include
#include
char *mystrcpy(char *dest,const char *src)
{
    char *p=dest;
    while(*src!='\0')
    {
        *p=*src;
        p++;
        src++;
    }
    *p=*src;
    return dest;
}
int main(int argc, const char *argv[])
{
    char arr[30]="";
    char brr[30]="";
    printf("请输入要复制的一串字符>>");
    gets(brr);
    char *p=NULL;
    p=mystrcpy(arr,brr);
    //puts(arr);
    printf("%s\n",p);
    return 0;
}
 

3.

#include
#include
int main(int argc, const char *argv[])
{
    int a[3][4]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}};
    int row=0,column=0;
    int i=0,j=0;
    int (*p)[4]=a;
    int max=*p;
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        {
            if(*(*(p+i)+j)>max)
            {
                max=*(*(p+i)+j);
                row=i;
                column=j;
            }
        }
    }
    printf("最大值为%d\n",max);
    printf("行号为%d\t列号为%d\n",row,column);
    return 0;
}

4.

#include
#include
#include
int main(int argc, const char *argv[])
{
    unsigned int a=0;
    int count=0;
    int i=0;
    printf("请输入一个数>>");
    scanf("%d",&a);
    for(i=31;i>=0;i--)
    {
        if((int)(a/pow(2,i))>0)
        {
            count++;
            a-=pow(2,i);
        }
    }
    printf("count_1=%d\n",count);
    return 0;
}
寒假作业——2/5_第4张图片

5.

#include
#include
int main(int argc, const char *argv[])
{
    char arr[30]="";
    printf("请输入一串字符>>");
    gets(arr);
    char *pa=arr;
    int len=strlen(arr);
    int i=0;
    int j=len-1;
    char temp=0;
    while(i     {
        temp=*(pa+i);
        *(pa+i)=*(pa+j);
        *(pa+j)=temp;
        i++;
        j--;
    }
//    printf("第一次逆置:\n");
//    puts(arr);

    i=0;
    pa=arr;
    int start_index=0;
    while(*(pa+i)==' ')
    {
        start_index++;
        i++;
    }
    while(*(pa+i)!='\0')
    {
        if(*(pa+i)==' ')
        {
            j=i;
            while(start_index             {
                temp=*(pa+start_index);
                *(pa+start_index)=*(pa+i-1);
                *(pa+i-1)=temp;
                start_index++;
                i--;
            }
            while(*(pa+j)==' ')
            {
                j++;
            }
            i=j;
            start_index=j;
        }
        else
        {
            i++;
        }
    }
    while(start_index     {
        temp=*(pa+start_index);
        *(pa+start_index)=*(pa+i-1);
        *(pa+i-1)=temp;
        start_index++;
        i--;
    }
//    printf("第二次逆置:\n");
    puts(arr);

    return 0;
}
寒假作业——2/5_第5张图片

你可能感兴趣的:(算法,数据结构)