최고와 최저 4 일 동안의 평균 기온을 표시하려고합니다. 이 코드는 4 일의 평균 및 최고 / 최저 값을 완벽하게 표시합니다. 문제는 그것이 어느 날에 발생했는지 보여 주려는 것입니다.
나는 그것을 위해 배열을 사용할 필요가 없다는 것을 알고 있으며, 그것을 사용하면 쉽다고 생각했습니다. 자, 여기에 코드가 있습니다. 사용자가 최고 / 최저 값을 삽입하기 위해 어떻게 개선 할 수 있습니까?
int high[NUMS], low[NUMS];
int maximum = 40;
int minimum = -40;
int i, day;
float total, average;
printf("---=== IPC Temperature Analyzer ===---\n");
for (i = 0; i < NUMS; ++i) {
do{
printf("Enter the high value for day %d: \n", i+1);
scanf("%d", &high[i]);
printf("Enter the low value for day %d: \n", i+1);
scanf("%d", &low[i]);
if ((high[i] > maximum) || (low[i] < minimum) || (high[i] < low[i])){
printf ("Incorrect values, temperatures must be in the range -40 to 40, high must be greater than low.\n");
}
} while((high[i] > maximum) || (low[i] < minimum) || (high[i] < low[i]));
if((high[0] < high[i]))
high[0] = high[i];
if ((low[0] > low[i]))
low[0] = low[i];
total = total + (high[i] + low[i]);
}
average = (total / (NUMS * 2));
printf("The average (mean) temperature was: %.2f\n", average);
printf("The highest temperature was %d, on day %d\n", high[0], day);
printf("The lowest temperature was %d, on day %d\n", low[0], day);
return 0;
코드를 많이 변경하지 않고 가장 간단한 방법 day
은 하나가 아닌 두 개의 변수 를 선언하는 것입니다.
int day_low = 0;
int day_high = 0;
그런 다음 if
아래 조건을 변경하십시오 .
if((high[0] < high[i])) {
high[0] = high[i];
day_high = i;
}
if ((low[0] > low[i])) {
low[0] = low[i];
day_low = i;
}
그리고 마지막으로:
printf("The highest temperature was %d, on day %d\n", high[0], day_high);
printf("The lowest temperature was %d, on day %d\n", low[0], day_low);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다