私は3日間にわたって高温と低温を入力するようにプログラムを書いています。毎日の高温は低いより高くなければならず、高いはでなければならず、は41より大きく、低くはではなく、は負の-41より小さくなければなりません。警告:ループ中のポインタと整数の比較
最初の日の入力に続いてwhile
という文が書き込まれましたが、ポインタと整数のエラー比較が表示されます。
私は設定された整数を使用して私と関係があると考えていたので、プログラムの動作につながりましたが、より高い値を持つ文をwhile
という文にするだけでしたが、whileループは完全にスキップされていました。ここに私のコードは、これまでのところです:
編集:私は私のwhile
ループが間違っていたかを理解し始めています。配列の値を高値と低値に割り当てることを怠ったためだと思っていました。また、ユーザーがwhile
ループの条件を満たすとコードが再実行されるのを忘れてしまいました。当初、私はそれを書いていたので、高値と低値は値なしで、while
状態は無限ループに閉じ込められました。これは条件が満たされた後に実行する何かを与えなかったからです。
#include <stdio.h>
#define NUMS 3
int main (void)
{
int high[NUMS];
int low[NUMS];
int max = 40;
int min = -40;
printf ("---===IPC Temperatur Analyzer ===---\n");
printf ("Enter the high value for day 1: ");
scanf ("%d", &high);
printf ("Enter the low value for day 1: ");
scanf ("%d", &low);
while (high[0] > max || low[0] > min || high[0] < low[0]) {
printf("Try again\n");
printf ("Enter the high value for day 1: ");
scanf ("%d", &high[0]);
printf ("Enter the low value for day 1: ");
scanf ("%d", &low[0]);
}
printf ("Enter the high value for day 2: ");
scanf ("%d", &high[1]);
printf ("Enter the low value for day 2: ");
scanf ("%d", &low[1]);
printf ("Enter the high value for day 3: ");
scanf ("%d", &high[2]);
printf ("Enter the low value for day 3: ");
scanf ("%d", &low[2]);
return 0;
}
高および低はアレイです。その比較でポインターに崩壊しました – Danh
曜日を格納する変数が必要です。 'scanf("%d "、&high [day_num]);' – kaylum
1日目に 'high [0]'を使用して、 '1日目に' high [例えば、 'scanf("%d "、&high [0]);とwhile(high [0]> max || ...)'のようになります。あなたのコードは、1、2、3日目に同じコードを繰り返すのではなく、ループを使うことで利益を得るでしょう。 –