やりたいこと
下記のコードを書いています。
やりたいことについては
入力された中の0~100の数字の中で最大値と最小値を表示させるというものです。
もし-1が入力されるとプログラムを終了されています。
質問
質問1
hypo_maxとhypo_minを初期化するとプログラムが機能しなくなるため初期化したくないので初期化していないのですが、黄色の警告が表示されてしまいます。これを解決するためにはどうしたらよろしいでしょうか?
質問2
-1を入力したときにプログラムを終了させているのですが、デバックエリアで-1を入力して次の数字を入力しないとプログラムが終了しません。何が原因で-1を入力した瞬間にプログラムが終了しないのでしょうか?また、解決方法を教えていただければ嬉しいです!
#include <stdio.h> int max_create(int data[], int *max_ans); int min_create(int data[], int *min_ans); int main(void) { int array[10], max, min, i; printf("0~100の10個の数値を入力してください。もし0~100以外の数値が入力された場合、それらの数値は表示できません。\nもし-1を入力するとプログラムが終了いたします。\n"); for (i = 0; i < 10; i++) { scanf("%d\n", &array[i]); if (array[i] == -1) { printf("プログラムを終了\n"); return 0; } } max_create(array, &max); min_create(array, &min); printf("max:%d\n", max); printf("min:%d\n", min); return 0; } int max_create(int data[], int *max_ans) { int i, hypo_max; for (i = 0; i < 10; i++) { if (data[i] > hypo_max) { if (data[i] <= 100) { hypo_max = data[i]; } } } *max_ans = hypo_max; return 0; } int min_create(int data[], int *min_ans) { int i, hypo_min; for (i = 0; i < 10; i++) { if (data[i] < hypo_min) { if (data[i] >= 0) { hypo_min = data[i]; } } } *min_ans = hypo_min; return 0; }
回答1件
あなたの回答
tips
プレビュー