如何将用户插入的1个值存储到2个不同的数组中?

时间:2018-12-20 23:44:09

标签: c arrays

开发一个程序,可以在两个温度范围之间进行转换, 基于两个输入值的开氏摄氏度:i)所需的转换比例;和 ii)温度清单。输入38“ K”表示用户打算将温度38摄氏度转换为开氏温度。

用户应该能够输入n个温度; 输入所有温度的表格, 转换,表示显示的每一列的大小;

您还应该告知用户平均温度以及 在原始尺寸和转换比例中最大和最小。

这是我需要做的。 在尝试其余练习之前,我试图正确显示值的输出。发生的情况是用户插入的第一个值永远不会出现,并且这些值会出现在数组的错误位置。 存储值时,我可能做错了,但我不知道它是什么。

我是编程的初学者,所以任何建议都将不胜感激,如果对问题的描述未正确描述,这是我第一次在这里发布,因此我仍在学习^^; < / p>

我首先是在没有函数的情况下执行此操作的,所以我尝试了一个原因,尽管它会更好,但也无法正常工作。

#include <stdio.h>
#include <stdlib.h>

float CalculaC(float tK);
float CalculaK(float tC);
void ShowResults(float storesC[], float storesK[], int elementNumbers);

int main(int argc, char *argv[])
{
    float tC, tK, storesC[11], storesK[11], calC, calK;
    int i,j;
    char var;

    for(i = 0; i < 10; i++)
    {
        printf("Insert 10 temperatures values and identify it as Celsius or Kelvin with K or C respectively:");
        scanf("%f", &tC);

        var = getchar();

        if(var == 'C' || var == 'c')
        {
            storesC[i] = tC;
            calK = CalculaC(storesC[i]);
            printf("value: %f \n",calK); // this is just for testing if the function was working    
        }
        else if(var == 'K' || var == 'k')
        {
            storesK[i] = tC;
            calC = CalculaK(storesK[i]);
            printf("value: %f \n",calC);    // this is just for testing if the function was working 
        }
    }
    ShowResults(storesC,storesK,i);

    getchar(); 
}

float CalculaC(float tK)
{
    float temp;
    temp = tK - 273.15;

    return temp;
}

float CalculaK(float tC)
{
    float temp;
    temp = tC + 273.15;
    return temp;
}

void ShowResults(float storesC[], float storesK[], int elementNumbers)
{
    int j,z;
    for(j = 1; j < elementNumbers; j++ )
    {
        printf("Value in Celcius: %f \n", storesC[j]);
    }

    for(z = 1; z < elementNumbers; z++ )
    {
        printf("Value in Kelvin: %f \n", storesK[z]);
    }   
}

我期望输出的温度是我在正确位置插入的每摄氏度和开尔文温度,但它们出现在错误的位置。这是输出的输出:output。如您所见,它会跳过摄氏温度和开氏温度的位置。

0 个答案:

没有答案