• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:初心者です。)

ループで表示したい値が表示されない理由

このQ&Aのポイント
  • 初心者の方がループで表示したい値が表示されない理由を教えてください。
  • 以下のC言語のソースコードでは、指定した整数値の個数に応じて、0から10までの値を表示するループを作成していますが、表示がされません。
  • 質問者が表示したいのは、以下のように連続して0から10までの数字が表示されることです。 12345678901234567890 しかし、現在のコードでは、ループ内で変数iが10以下の場合に0にリセットされてしまっています。

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

  • ベストアンサー
  • cigue
  • ベストアンサー率32% (25/77)
回答No.1

問題点は、 f ( i <= 10 ){ i = 0; } で、i=1のときに必ずi=0になってしまいfor文から抜けられません。 #include <stdio.h> int main(void) { int i = 0; int num; printf("整数を入力してください。:"); scanf("%d",&num); for (i = 0; i < num; i++){ printf("%d", (i+1)%10); } return(0); } でいいと思います。

hatenan114
質問者

お礼

回答していただき有難うございます。 ・・・・(i+1)%10); とは凄い。いまの私には、全く思いつきません。 すごく勉強になりました。 またよろしくお願いします。

その他の回答 (2)

  • aris-wiz
  • ベストアンサー率38% (96/252)
回答No.3

>現在のソースコードでは10以上の入力があった場合、 >無限ループに陥っているようです。 見間違えですね。。。 入力は2以上で無限ループのようです。

  • aris-wiz
  • ベストアンサー率38% (96/252)
回答No.2

>表示されません。 表示されないとは、全くでないということでしょうか? 症状は詳しく書くようにしてください。 >1234567890123456789012345 としたいとの事ですが、全部半角数字で良いでしょうか? 全角と半角では少し違ってきます。 ここからは半角の前提で書きます。 現在のソースコードでは10以上の入力があった場合、 無限ループに陥っているようです。 今回は表示する数字と、表示する回数は違っているので 別に表示する用の変数を用意しましょう。 そして表示は1からなので、一応1で初期化しておきます。 (後からやってもかまいません。) int output = 1; そして、出力する数字は0-9までですので、 outputが10以上ならoutputを0に戻します。 if( output>=10 ){  output=0; } そしてこれを、num回数分1加算しながら、 表示していきます。 printf("%d", output++ ); 貼り付けたソースコードと 合せて参考にしてみてください。

hatenan114
質問者

お礼

回答していただき有難うございます。 質問の内容がもっと細かくすることができず、すみませんでした。 とても参考になりました。またよろしくお願いします。

関連するQ&A