という問題でプログラムを以下のように書いたのですが、うまく動作しません。
どうやら配列にうまく数字が入っていないようなのですが・・・・・・
ご教授よろしくお願いいたします。
(なお、桁数は5桁までとしています。)
#include <stdio.h>
int bekijou(int *p,int n){ //桁数を計算し、配列に数値を格納する関数
int counter=1; //桁数
int number_10=1; //10の巾乗
while(1){
n=n/10;
if(n==0)
break;
counter++;
}
for(int i=counter;i>0;i--){
for(int j=0;j<counter-1;j++){
number_10 *=10;
}
*(p+i)=n/number_10;
number_10=1;
}
return counter;
}
int main(void){
int input_number; //最初に入力する数値
int keta; //桁数
int num[5]={0}; //それぞれの桁の数値を格納
int i; //for文用
printf("5桁までの数字を入力してください\n");
scanf("%d",&input_number);
keta=bekijou(num,input_number); //桁数を計算
for(i=0;i<keta;i++){
switch(num[i]){
case 1:
printf("one ");
break;
case 2:
printf("two ");
break;
case 3:
printf("three ");
break;
case 4:
printf("four ");
break;
case 5:
printf("five ");
break;
case 6:
printf("six ");
break;
case 7:
printf("seven ");
break;
case 8:
printf("eight ");
break;
case 9:
printf("nine ");
break;
default:
;
}
}
printf("\n");
return 0;
}