c学习第1天

2、自己实现strcpy函数//自己实现复制函数


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

//3、自己实现strlen函数

int strlen_arr(char str[])//3、自己实现strlen函数
{
    
//    int count=0;
//    while(*str!='\0') {
//        count++;
//        str++;
//    }
//    return count;
    //方法二
//    int len=0;
//    for (int i=0; str[i]!='\0'; i++) {
//        len++;
//    }
//    return len;
    int i=0;
    while(str[i]!='\0')
    {
        i++;
    }
    return i;
    
}

//4、写一个函数将 tom is cat 反向打印成 cat is tom

void reverse(char result[3][100],char arr[])
{
    int j=0 ,s=0;
    for (int i=0; i<5; i++) {
        while (arr[j]!=' '&&arr[j]!='\0') {
            result[i][s++]=arr[j++];
           
        }
        j++;
     result[4][s]='\0';s=0;
    }printf("\n");
}

//6题 789然后789输出

//6题 789输入然后789输出
void print_zhengxu(int num)
{
        if (num == 0)
        {
            return;
        }
        print_zhengxu(num/10);
        printf("%d\t", num%10);
}

 

 //11、题目:打印出如下图案

     /*

   

    ***

    *****

    *******

    *****

    ***

   

    */

在做这道题的时候,我们想想怎么打印

******

******

******

肯定是

for(int i=0;i<3;i++)

  {

    for  (int j=0;j<6;j++)

    {

      printf("*");

     }

    printf("\n");

  }

由此可以联想,那么打印

*

**

***

****的代码为:

 for(int i=0;i<4;i++)
        
        {
            for (int j=0; j<=i; j++) {
                printf("*");
            }
            printf("\n");
        }

到这里,我们可以想到,如果想每一行之间的打印都差两个,就要想到改变i自增的值了。

int main ()
{ 
for (int i=0; i<7; i+=2)
    {
        for (int j=0; j<=i; j++)
        {
            printf("* ");
        }
        printf("\n");
    }
    for (int i=5; i>=0;i-=2) {
        for (int j=0; j<i; j++) {
            printf("* ");
        }
        printf("\n");
    }
return 0;
}

 

posted @ 2013-10-23 21:54  lanacon  Views(110)  Comments(0Edit  收藏  举报