首页 > 解决方案 > 我无法显示最大 PSI 值的对应区域

问题描述

我无法在所有区域中显示我的对应区域以获得最高 PSI 读数。

我尝试了许多其他各种方法,但我无法显示我对应的区域(中部、东部、北部、南部、西部......)以获得最高 PSI 值。

我已经在每个区域的数组中声明了 PSI 值。

int i, largest;

int Time[] = { 600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800 };
int Central[] = { 89,88,87,143,139,79,144,85,83,90,89,88,76 };
int East[] = { 80,79,78,77,76,80,90,89,88,110,109,143,136 };
int North[] = { 147,144,141,139,137,132,109,110,109,80,77,132,108 };
int South[] = { 90,89,88,139,136,132,102,105,109,110,109,80,77 };
int West[] = { 141,137,153,147,143,83,90,89,141,138,134,130,127 };

largest = Central[0];
for (i = 1; i < 13; i++)
{
    if (largest < Central[i])
        largest = Central[i];
}
largest = Central;

for (i = 0; i < 13; i++)
{
    if (largest < East[i])
        largest = East[i];
}
for (i = 0; i < 13; i++)
{
    if (largest < North[i])
        largest = North[i];
}
for (i = 0; i < 13; i++)
{
    if (largest < South[i])
        largest = South[i];
}
for (i = 0; i < 13; i++)
{
    if (largest < West[i])
        largest = West[i];
}
printf(" Highest PSI value amongst all is %d\n\n\n", largest); 
break;

我能够显示我最大的 PSI 值,但我无法显示该最高 PSI 值的区域。

例如,如果我在数组中的最大 PSI 为 180,即位于 Central,它将显示 PSI 值为 180,对应区域为 Central。

如果我在阵列中最大的 PSI 是 180,即在西部,它将显示 PSI 值为 180,对应区域为西部。

标签: carraysloopsfor-loopmax

解决方案


要查找最大区域的名称,请创建另一个变量来存储具有最大值的区域并在每个if语句中分配它。

此外,我还结合了您的for循环以使您的代码更清晰。

int i, largest;
char region[strlen("Central") + 1];

int Time[] = { 600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800 };
int Central[] = { 89,88,87,143,139,79,144,85,83,90,89,88,76 };
int East[] = { 80,79,78,77,76,80,90,89,88,110,109,143,136 };
int North[] = { 147,144,141,139,137,132,109,110,109,80,77,132,108 };
int South[] = { 90,89,88,139,136,132,102,105,109,110,109,80,77 };
int West[] = { 141,137,153,147,143,83,90,89,141,138,134,130,127 };

largest = Central[0]; 

// Combine the for loops to make your code more clear
for (i = 0; i < 13; i++) 
{
    if (largest < Central[i]){
        largest = Central[i];
        region = "Central";
    }
    if (largest < East[i]){
        largest = East[i];
        region = "East";
    }
    if (largest < North[i]){
        largest = North[i];
        region = "North";
    }
    if (largest < South[i]){
        largest = South[i];
        region = "South";
    }
    if (largest < West[i]){
        largest = West[i];
        region = "West";
    }
}

// Display results
printf("PSI value is %d and correspondent region is %s.", largest, region);

推荐阅读