• ベストアンサー
※ 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のようになってしまいます。左詰めにする方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

breakしないとすべてk=100になります。 switch (dig) { case 1 : k = 1; break; case 2 : k = 10; break; case 3 : k = 100; break; } sprintfは使ったらだめなのでしょうか?

その他の回答 (1)

回答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() も不要と。