[ create a new paste ] login | about

Link: http://codepad.org/b57428tx    [ raw code | output | fork ]

C, pasted on Jan 4:
#include <stdio.h>

/*
5.文字列を引数としてその文字列の長さを返す関数mystlen()を作成せよ。
*/
int mystlen(const char* s)
{
    int n = 0;
    while (*s != '\0')  n++, s++;
    return n;
}

/*
6.外部変数を利用して自分が呼ばれた回数を数えて返す関数times()を作成せよ。
*/
int times_counter = 0;
int times(void)
{
    return ++times_counter;
}    

/*
7.問題6の外部変数の変わりに静的なローカル変数を利用して同様のプログラムを作成せよ。
*/
int times_static(void)
{
    static int times_counter = 0;
    return ++times_counter;
}    

int main(void)
{
    const char* str = "qwerty";
    int str_len;
    int i;

    printf("%s is %d length\n", str, mystlen(str));

    for (i=0; i<30; i++){
        if (i % 2 == 0)  printf("step%2d  ver.6 called %d\n", i, times());
        if (i % 3 == 0)  printf("step%2d  ver.7 called %d\n", i, times_static());
    }

    return 0;
}


Output:
qwerty is 6 length
step 0  ver.6 called 1
step 0  ver.7 called 1
step 2  ver.6 called 2
step 3  ver.7 called 2
step 4  ver.6 called 3
step 6  ver.6 called 4
step 6  ver.7 called 3
step 8  ver.6 called 5
step 9  ver.7 called 4
step10  ver.6 called 6
step12  ver.6 called 7
step12  ver.7 called 5
step14  ver.6 called 8
step15  ver.7 called 6
step16  ver.6 called 9
step18  ver.6 called 10
step18  ver.7 called 7
step20  ver.6 called 11
step21  ver.7 called 8
step22  ver.6 called 12
step24  ver.6 called 13
step24  ver.7 called 9
step26  ver.6 called 14
step27  ver.7 called 10
step28  ver.6 called 15


Create a new paste based on this one


Comments: