Использование цикла «for» для вычисления увеличенной точки данных в C - PullRequest
0 голосов
/ 04 января 2012

Мой вопрос: как мне использовать цикл FOR (или лучшую рекомендуемую стратегию) для распечатки различных результатов, основанных на пользовательском вводе?

ОК, позвольте мне подробнее остановиться.

Я ошибся с моим объяснением, потому что не думал об этом. я прошу прощения.

Пользователь вводит минимум 0f 1000 фунтов на квадратный дюйм, затем максимум 3000 фунтов на квадратный дюйм. затем количество образцов, которые будут взяты. Мы будем говорить образцы с интервалом 100 фунтов на квадратный дюйм.

Пример:

  1. введите минимальное давление // 1000 фунтов на квадратный дюйм
  2. введите максимальное давление // 3000 psi
  3. какой интервал между образцом (давление) // 50 фунтов на кв. Дюйм
  4. для каждого интервала расчета плотности

Код:

#include <stdio.h>
#include <math.h>

#define N2Denstiy 1.251 //1.251 g/l  mole weight
#define ATM 0.0680459639 //Pressure in PSI time ATM
#define R 0.08206 //gas constant


float calculateDensity(float pres, float temp, float moleWeight);

float calculateDensity(float pres, float temp, float moleWeight) {

return moleWeight * (pres * ATM) / (temp * R);

}


int main (int argc, const char * argv[])
 {
  float result;
  float temp = 77.0;

  float i, min_pressure, max_pressure, sample_interval;

  printf("Enter minimum Pressure, maximum pressure and interval: ");

  scanf("%f %f %f", &min_pressure, &max_pressure, &sample_interval);

  for(i = min_pressure; i <=max_pressure; i = i + sample_interval) 



    // result = calculateDensity(i, temp, N2Denstiy);
    //      printf("%f\n",result);

  printf("%f ", i);
  printf("\n");


  return 0;

}

Результаты здесь верны для основного цикла. Однако я хочу рассчитать плотность, а затем отобразить результаты.

Введите минимальное давление, максимальное давление и интервал: 1000 3000 50 1000.000000 1050.000000 1100.000000 1150.000000 1200.000000 1250.000000 1300.000000 1350.000000 1400.000000 1450.000000 1500.000000 1550.000000 1600.000000 1650.000000 1700.000000 1750.000000 1800.000000 1850.000000 1900.000000 1950.000000 2000.000000 2050.000000 2100.000000 2150.000000 2200.000000 2250.000000 2300.000000 2350.000000 2400.000000 2450.000000 2500.000000 2550.000000 2600.000000 2650.000000 2700.000000 2750.000000 2800.000000 2850.000000 2900.000000 2950.000000 3000.000000

Ответы [ 3 ]

0 голосов
/ 04 января 2012

Скажи номер, если образцы numSamples:

for ( int i = 0 ; i < numSamples ; i++ )
{
    //get data from user - pres, temp, moleWeight
    float result = calculateDensity(pres, temp, moleWeight);
    printf("%f\n",result);
}
0 голосов
/ 04 января 2012

Насколько я понимаю ваш вопрос вы хотите:

int i;
for(i = 0; i < sample_interval && increment_pressure * i + min_pressure < max_pressure; i++) {
     printf("%f\n", calculatePressure(increment_pressure * i + min_pressure, temp, moleWeight));
}
0 голосов
/ 04 января 2012

Попробуй так:

float i;
for(i = min_pressure; i <= max_pressure; + += increment_pressure) {
    calculatePressure(i, temp, moleWeight);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...