前提・実現したいこと
配列の要素から最小値、最大値を取得したいです。
最小値も最大値も同様の方法で取得しているにも関わらず、最小値は意図したものが、
最大値のみ誤ったものが出力されます。
発生している問題・エラーメッセージ
最小値は16 最大値は42
該当のソースコード
C
1#include <stdio.h> 2int main(void){ 3 int array[10]={50,38,21,54,83,23,94,67,16,42}; 4 int min = array[0];//仮の最小値 5 int max = array[0];//仮の最大値 6 7 for(int i=0;i<=9;i++){//最小値を求める 8 if(array[i]>array[i+1]){ 9 min = array[i+1]; 10 } 11 } 12 13 for(int j=0;j<=9;j++){//最大値を求める 14 if(array[j]<array[j+1]){ 15 max = array[j+1]; 16 } 17 } 18 19 printf("最小値は%d\n",min); 20 printf("最大値は%d",max); 21}
試したこと
サンプルの値を下記のようの代入した場合は最小値、最大値ともに正しい実行結果が得られました。
int array[10]={80,70,31,24,88,90,4,63,116,12};
最小値は12
最大値は116
補足情報(FW/ツールのバージョンなど)
本来、サンプルの値に関わらず最小値と最大値を求められることを想定しています。
実行環境はpaiza.ioです。
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/08 10:33