• ベストアンサー

forの考え方(初級)

kupottiの回答

  • ベストアンサー
  • kupotti
  • ベストアンサー率16% (1/6)
回答No.3

for (初期化式; 継続条件式; 再初期化式) なので、 for(int i = 0; i < 100; i++) であれば、 ・iに1を設定(初期化) ・iが100より小さい間ループ(継続条件) ・ループのたびに1加算(再初期化) ですし、 for(i=100; i < 1; i--) であれば、 ・iに100を設定(初期化) ・iが1より小さい間ループ(継続条件) ・ループのたびに1減算(再初期化) なので、最初のループに入る条件のところで、iは1より小さくないので、ぬけます。

参考URL:
http://www9.plala.or.jp/sgwr-t/c/sec06-2.html
yukemuri2
質問者

補足

回答頂いた方々にお詫び。 そもそも、 for(int i = 0; i > 100; i++)を for(int i = 0; i < 100; i++)と 記述してしまいました…。 よく確認してませんでした。申し訳ない…。

関連するQ&A

  • forループ

    #include<stdio.h> int main(int argc, char** argv) { int i; printf("正の整数を入力してください。\n"); scanf("%d",&i); for(;i;i--) { printf("%d\n",i); } return 0; } このプログラムの判定部がiだけなのがわかりません。どうしてこれで1までのカウントダウンがとまるのでしょうか。

  • 二次元配列に関する質問です。

    一次元配列はわかるのですが二次元配列になると、わからない時があります。 <ソース> #include<stdio.h> int main() { int dat[2][5]={1,2,3,4,5,6,7,8,9,10}; int i; int j; for(i=0;i<2;i++){ for(j=0;j<5;j++){ printf("dat[%d][%d] %d\n",i,j,dat[i][j]); } } return 0; } このプログラムでわからないのは、 int dat[2][5]={1,2,3,4,5,6,7,8,9,10};の部分です。 普段は、int dat[2][5]={{1,2,3,4,5}, {6,7,8,9,10}, }; という使い方をしているのですが・・・。 どうちがうのでしょうか?

  • for文

    整数を読み込んで、その値を0までカウントダウンしながら表示するプログラム作りたいのですが、 while文ではできたのですが、for文ではうまくいきません。 どこが間違っているのでしょうか? OS:Windows XP C++Builder X パーソナル #include <stdio.h> int main(void) { int i; int num; printf("整数を入力してください:"); scanf("%d", &num); for(i = num; i <= 0; --i) { printf("%d", i); } return 0; } 宜しくお願いします。

  • for 3ループについて教えて

    for 3ループについて教えて * ** *** **** * ** *** **** * ** *** **** と表示させたいのですが、 #include<stdio.h> int main(void) { int i,j,k; for(i=1; i<=4; i++) { for(j=1; j<=i; j++){ // for(k=1; k<=3; k+=i){ } printf("*"); } printf("\n"); } return 0; } * ** *** **** このように表示されてしまいます。//の所が違うなと思います。が、分かりそうで分かりません。 もし、分かるかたがいましたら、教えてください。 よろしくおねがいします。

  • C言語で困っています

    C言語で 100:1 99:2 98:3 .......ループ 1:100とやりたいんですが このやりかたがわかりません goto文などを使うのでしょうか? 一応コードは #include <stdio.h> int main(void) { int i,a; for(i=100; i>=1; i--){ for(a=1; a<=100; a++){ printf("%d:\n",i); break; printf("%d",a); } } return 0; } です まったくこれだと右側が出力されなくてだめみたいです どなたかお知恵をください お願いします

  • for文

    #include <stdio.h> int main(void) { int i; int sum=0; int num, tmp; printf("整数は何個かな:"); scanf("%d",&num); for(i=0; i<num; i++){ printf("No.%d:",i+1); scanf("%d",&tmp); sum+=tmp; } printf("合計値は:%d\n",sum); printf("平均値は:%.2f\n", (double)sum/num); return(0); } 上の文のforの箇所を for(i=1; i<=num; i++){ printf("No.%d:",i); scanf("%d",&tmp); sum+=tmp;   } としても結果的に同じですよね? どっちでもいいかどうか迷ってます。教えて下さい。

  • pow

    「1~10までの数、 その2乗、 その3乗」を10行出力するものです。 なぜか5^2 = 24 なってしまいました。なぜですか。お願いします。 #include <stdio.h> #include <math.h> int main(void) { int i, j; for (i = 0; i < 10; i++) { for (j = 0; j < 3; j++) { printf("%4d ", (int)pow(i+1, j+1)); } printf("\n"); } return 0; }

  • for文の継続条件について

    ----------------------------------------- #include<stdio.h> int main(void) { int i; printf("正の整数を入力してください: "); scanf("%d",&i); for( ; i ; i- -){ printf("%d ",i); } printf("\n"); return 0; } ----------------------------------------- 以上のプログラムで、継続条件の部分を入力した整数にし、例えば「5」を入力すると、 5 4 3 2 1 と表示されます。 例えば、「0<i」といった継続条件ならば、以上のような実行結果になるのはわかるのですが、何故「for( ; i ; i- -)」の「i」という継続条件だけで0より大きい値までを表示してくれるのか分かりません。 何故このようになるのか教えていただけると嬉しいです。

  • for文~break

    break文に達した時、for文から抜けますか?それとも、if { }から抜けるんですか? for文はどこまで影響下にありますか? if ( i==5 ) printf ("サーバーが見つかりません"); まででしょうか? また  if ( i == 5 ) で5なら、実行としていますが、 6,や,8など5 以外でも、サーバーが見つかりません と if文が実行される見たいですが、なぜですか? 教えてください。 #include<stdio.h> int main(void) { int array[5][2]={ {1,14}, {2,28}, {3,19}, {4,8}, {5,15}, }; int sever; int i; printf("番号を入力してください"); scanf("%d",&sever); for( i=0 ; i<5 ; i++ ) if ( sever == array[i][0] ){ printf ( "%d 番には, %d 人います。\n",sever,array[i][1]); break; } if (i==5) printf("サーバーが見つかりません"); return 0; }

  • FORの基礎

    下記を実行すると"*"が3個表示されますが iが真(1から9)の間(1)~(4)の順序でループ するんですよね? そこで質問なんですが、 1回目の処理: 1+3は4になる為(真)で"*"表示 2回目の処理: 4+3は7(真)で"*"表示 3回目の処理: 7+3は10(偽)なのでスコープから外れ return 0;終了。 真が2つなのに、"*"が3つ表示されるのは何故なんでしょうか。 #include <stdio.h> int main() { int i; for((1)i=1; (2)i<=9;(4)i++){ (3)i=i+3; printf("*", i); } return 0; }