- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語に関して)
C言語で100までの自然数を左詰め文字列に変換する方法
このQ&Aのポイント
- C言語で100までの自然数を文字列に変換するプログラムを実行すると、001,002,…010,…099,100のようになってしまいます。左詰めにする方法を教えてください。
- C言語で100までの自然数を表示するプログラムを実行すると、左詰めにならずに001,002,…010,…099,100のように表示されます。左詰めにする方法を教えてください。
- C言語で100までの自然数を文字列として表示するプログラムを実行すると、001,002,…010,…099,100のようになってしまいます。左詰めにする方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
breakしないとすべてk=100になります。 switch (dig) { case 1 : k = 1; break; case 2 : k = 10; break; case 3 : k = 100; break; } sprintfは使ったらだめなのでしょうか?
その他の回答 (1)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
回答No.2
古い形式のCなのがちょっとあれですが。 とりあえず、間違っているのは、 switch (dig) { case 1 : k = 1; case 2 : k = 10; case 3 : k = 100; } です。Cでは、break というのが必要です。 ただ、練習問題としてやっているのでなければ、単純に、 for (i = 0; i < N1; i++) { buff2[i] = i + 1; sprintf(buff3[i], "%d", buff2[i]); printf("%s\n", buff3[i]); } で、同じ事ができます。 ついでに、x も buff1 も不要です。 buff3 は、あとで使うために100個の配列がいるとしても、buff2 はおそらく不要です。 for (i = 0; i < N1; i++) { sprintf(buff3[i], "%d", i + 1); printf("%s\n", buff3[i]); } こうすれば get_ketasuu() も henkankun() も不要と。