###前提・実現したいこと
C言語です。数字3つを配列に代入して、For分によって最小値を求めるプログラムを作っているのですが、うまくいきません。原因は何でしょうか。よろしくお願いします。
###発生している問題・エラーメッセージ
For文による比較代入を行った後に最小値が毎回”2”になり、配列最後の値がなぜか”3”になるという意味不明な事態に陥っています。
For文の直前で変数の中身をすべて表示させてみたところ、num[2]も含み全て正常値が代入されていました。
なのでFor文に原因があるとは思うのですが…。
非常に初歩的なことをお聞きして申し訳ないのですが、当方全く見当がつきません。
###ソースコード
C
1#include<stdio.h> 2 3int main(void){ 4 5 int num[2]; 6 int mini=0; 7 int i; 8 9 printf("Input First number.\n"); 10 fflush(0); 11 scanf("%d",&num[0]); 12 printf("Input First number.\n"); 13 fflush(0); 14 scanf("%d",&num[1]); 15 printf("Input First number.\n"); 16 fflush(0); 17 scanf("%d",&num[2]); 18 19 mini=num[0]; 20 for(i=0;i<=2;i++){ 21 if(mini>num[i]){ 22 mini=num[i]; 23 } 24 } 25 printf("Minimum number is %d.\n",mini); 26 printf("1st number is %d. ",num[0]); 27 printf("2nd number is %d. ",num[1]); 28 printf("3rd number is %d.\n",num[2]); 29 return 0; 30}
以下コンソール
Input First number. 43 Input First number. 52 Input First number. 43 Minimum number is 2. 1st number is 43. 2nd number is 52. 3rd number is 3.
###補足情報(言語/FW/ツール等のバージョンなど)
Eclipse Cpp Mars
MinGW
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/13 04:54 編集