実践型研修

今日はこんなプログラム。
/*入力した値(正の整数)を、文字加工して出力する*/
/*プログラム作成者:*/

#include
#include

#define YOUSO 6

main(){
int ch09( int input_i, char change );
int input_i, n;
char change[YOUSO] = { '\0' };

//正の整数入力
for( ; ; ){
printf( "正の整数を入力して下さい。\n" );
printf( "入力値==>" );
scanf( "%d", &input_i );

//入力されたものが正の整数であるかの判断
if( input_i < 0 ){
;
}

else{
break;
}

}

n = ch09( input_i, change );

//戻り値による処理
if( n == 0 ){
printf( "正常終了。\n" );
}
else{
printf( "入力された値が桁越えたため正常に処理されませんでした。\n" );
}
}

int
ch09( int input_i, char change ){

int mod, count;
int i, j, n;
char hanger[YOUSO] = { '\0' };

//input_iに0が入力されたときの処理
if( input_i == 0 ){
mod = input_i % 10 + 48;
hanger[0] = (char)mod;
}

//input_iに正の整数が入力されたときの処理
i = 0;
while( input_i ){

mod = input_i % 10 + 48; //
hanger[i] = (char)mod; //整数を文字列に直す処理
input_i = input_i / 10; //
i++;
}

//hangerの文字列の長さを求める
n = strlen( hanger );

//文字の長さが5より大きければ-1を返す
if( n > YOUSO - 1 ){
return -1;
}

//文字の長さが5以下のときは0を返す
else{
count = 0;
j = YOUSO - 1;

//配列hangerにあるものを配列changeへ(4桁目にカンマを入れる)
for( i = 0; hanger[i] != '\0'; i++, j-- ){
change[j] = hanger[i];
count++;
if( count == 4 ){
change[j] = ',';
count = 0;
i--;
}
}

//ヌル文字のところに'*'を入れる処理
for( i = 0; i < YOUSO; i++ ){
if( change[i] == '\0' ){
change[i] = '*';
}
}

//出力処理
for( i = 0; i < YOUSO; i++ ){
printf( "%c", change[i] );
}
printf( "\n" );

return 0;
}
}