09/07/07 21:15:24
>>706
/*Q3*/
#include <stdio.h>
#include <stdlib.h>
void itoa_r(int n, char *str);
enum {MAX = 100};
main() {
int n;
char str[MAX];
while (1) {
int i;
for (i = 0; i < MAX; i++) str[i] = '\0'; // 追加
printf("\n整数を入力して下さい(終了 = 0):");
scanf("%d", &n);
if (n == 0) break;
itoa_r(n, str);
printf("文字列に変換すると %s です\n", str);
}
}
void itoa_r(int n, char *str)
{
if (n < 0) {
*str = '-';
itoa_r(-n, str + 1);
} else if (n != 0) {
int m = n, d = 1;
while (m /= 10) d++;
*(str + d - 1) = '0' + (n % 10);
itoa_r(n / 10, str);
}
}