[ create a new paste ] login | about

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

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

/* 必要であれば,関数を定義してよい */
char *quatstr_malloc(int n){
    char *pt;
    int i,tmp;
    
    /* サイズ判定 */
    i=2;/* 最低サイズ(1ケタ+'\0') */
    tmp = n;
    while((tmp/=4) != 0)i++;

    /* メモリ確保 */
    if( ( pt = (char*)malloc(sizeof(char)*i) ) == NULL){
        fprintf(stderr,"malloc error\n");
        exit(1);
    }
    
    /* 文字列格納 */
    pt[--i] = '\0';
    while(n != 0){
        pt[--i] = '0'+n%4;
        n /= 4;
    }
    
    return pt;
}

int main()
{
	int a, b;
	char *p1,*p2,*p3;

	/*ここを書く*/

    /* 入力 */
    printf("変数a:");
    scanf("%d",&a);
    printf("変数b:");
    scanf("%d",&b);
    printf("\n");
    
    /* 表示 */
    p1 = quatstr_malloc(a);
    p2 = quatstr_malloc(b);
    p3 = quatstr_malloc(a+b);
    printf("変数a:%s\n",p1);
    printf("変数b:%s\n",p2);
    printf("a+b=%s\n",p3);

	free(p1); free(p2); free(p3);
	return 0;
}


Output:
1
2
3
4
変数a:変数b:
変数a:20001020133100
変数b:20001020111132
a+b=100002100310232


Create a new paste based on this one


Comments: