2017-06-03 5 views
-1

最高温度と最低温度をご確認ください。私はそれが動作させるために何かが恋しいと思う。ほぼ完了です。条件を作成する場合は、私はそれを使用する必要がありますか? 最高温度と最低温度を見つけてください。私はそれが動作させるために何かが恋しいと思う。ほぼ完了です。条件を作成する場合は、私はそれを使用する必要がありますか?温度計解析プログラムについてのお問い合わせ

#include <stdio.h> 
#define NUMS 3 

int main(void) { 

int high; 
int low; 
int totalhigh=0; 
int totallow=0; 
double average; 
int i; 
printf("---=== Temperature Analyzer ===---\n"); 
for (i = 0; i < 3; i++) 
{ 
printf("Enter the high temperature for the day %d: ", i + 1); 
scanf("%d", &high); 
printf("Enter the low temperature for the day %d: ", i + 1); 
scanf("%d", &low); 
totalhigh = high + totalhigh; 
totallow = low + totallow; 
    } 

average = (double)(totalhigh + totallow)/6 ; 
printf("The average (mean) temperature was: %.2lf\n", average); 
return 0; 
} 
+1

'int型の最大値= INT_MIN;; =高(最大<高)最大あれば' ... '' – BLUEPIXY

+1

は、2つの変数を宣言します。 '' INT_MAX'に初期化min'と 'はINT_MIN''に初期化max'現在の値が '< min' or '> max' –

+1

の場合は各繰り返しをチェックしてください。質問には関係ありませんが、3つのwhileループにはすべて同じコードがあるので、3つの条件でループするか一緒にするのはなぜですか? – pstrjds

答えて

0

最高(最低)と最高(最低)を記録する必要があります。

struct hit 
{ 
    int value, 
     day; 
}; 
struct hit highest = {-40; 0}, lowest = {+40; 0}; 
.... 
if (high > highest.value) 
{ 
    highest.value = high; 
    highest.day = i; 
} 
... 

最後に、設立の値を印刷することができます:私が入力している間に到着したコメントから

print("The highest has been %d on day %d\n", highest.value, highest.day); 
+0

私はあなたの日数が1時間ずれていると思います。 – Yunnosch

+0

あなたは正しいYunnoshです。ありがとう –

+1

ループは0〜2です。日数は1〜3とカウントされ、1日目にi == 0で最初に入力されます。印刷された質問にはi + 1が使用されます。あなたは+1を保存せずに+1を出力します。まだ私には1つのように見えます。 – Yunnosch

1

違いはありません。

#include <stdio.h> 
#define NUMS 3 

int main(void) { 

    int high; 
    int low; 
    int highest =-42; 
    int highday = -1; 
    int lowday = -1; 
    int lowest = 42; 
    int totalhigh=0; 
    int totallow=0; 
    double average; 
    int i; 

    printf("---=== IPC Temperature Analyzer ===---\n"); 
    for (i = 0; i < 3; i++) 
    { 
     printf("Enter the high value for day %d: ", i + 1); 
     scanf("%d", &high); 
     printf("Enter the low value for day %d: ", i + 1); 
     scanf("%d", &low); 
     printf("\n"); 

     totalhigh = high + totalhigh; 
     totallow = low + totallow; 
     if (high>highest) 
     { highest=high; 
      highday=i+1; 
     } 
     if (low<lowest) 
     { lowest=low; 
      lowday=i+1; 
     } 
    } 

    average = (double)(totalhigh + totallow)/6 ; 

    printf("The average (mean) temperature was: %.2lf\n", average); 
    printf("The lowest   temperature was: %3d on day %d\n", lowest, lowday); 
    printf("The highest  temperature was: %3d on day %d\n", highest, highday); 
    return 0; 
} 
+0

コメントとはちょっと違う、OK。私は42を使用することに抵抗することができませんでした。そして、私は入力エラーのチェックを変更しませんでした。私はしかし同意する。 – Yunnosch

+0

私はこの答えに対して編集を拒否しました。編集はコードを短くしました(これは良いことです)、それが持っている小さなエラーチェック機能を削除します。後者は私が気に入らないものです。エラーチェッカーをより効率的にすることで、エラーチェッカーを置き換える、または改善する編集は大歓迎です。それらを完全に削除することは、OPの質問/問題を解決する変更の明快さを曇らせている追加の変更(OP自身のコードと比較して)です。それらを改善することさえそのような "曇り"の変化ですが、改善され、コメントされたエラーチェッカーは価値ある目標であり、受け入れられます。 – Yunnosch

+0

くそー!私は、私が拒否した私の答えに対する編集が実際にはOPの質問のコードに行われた変更を反映していることに気づいた。申し訳ありませんが、私がレビュー時にその細部に気がついたら、私は受け入れていました。私がどのように修正できるかというアイデアは歓迎です。 – Yunnosch

関連する問題