Okay, here is the code so far, in its entirety:
I'm getting errors everywhere, mainly "subscripted value is neither array nor pointer". Can anyone offer any help? I'm getting desperate.
Code:
#define NROWS 11
#define NCOLS 23
#define TRUE 1
#define FALSE 0
#define INSTALLATION_COST 2000
float panelEfficiency = 0.18, inverterEfficiency = 0.90;
int main()
{
int houseEnergyREQ, numBatteries, numInverters;
int flag = TRUE;
float userInput[4], panelCost, inverterCost, batteryCost,
panelArea, batteryRating = 4.8, inverterRating = 5.0,
insolDayMin, maxHourPanelOutput, insolHourMax, totalCost;
float insolation_Matrix[NROWS][NCOLS];
void get_inputs(float userInput[4]);
while(flag)
{
get_inputs(userInput[4]);
/* Switch userInput array to meaningful terms */
houseEnergyREQ = userInput[0];
panelCost = userInput[1];
inverterCost = userInput[2];
batteryCost = userInput[3];
/* Equation to calculate panelArea */
panelArea = houseEnergyREQ/(insolDayMin*panelEfficiency*inverterEfficiency);
/* Equation to calculate maxHourPanelOutput */
maxHourPanelOutput = insolHourMax*panelArea*panelEfficiency;
/* Equation to calculate numbatteries */
numBatteries = ceil(houseEnergyREQ/(inverterEfficiency*batteryRating));
/* Equation to calculate numInverters */
numInverters = ceil(maxHourPanelOutput/(inverterEfficiency*inverterRating));
/* Equation to calculate total cost */
totalCost = panelArea*panelCost + numBatteries*batteryCost + numInverters*inverterCost
+ INSTALLATION_COST;
printf("The total cost of your Solar panel system is %.2f $. \n", totalCost);
/* Give user an option to quit program */
printf("Do you wish to continue? (y/n) \n");
if(getchar() == 'n')
{
flag = FALSE;
}
}
system("PAUSE");
}
/*---------------------------------------*/
/* Function to get inputs houseEnergyREQ, panelCost, inverterCost, batteryCost */
void get_inputs(float userInput[4])
{
printf("This program will calculate the total cost of your solar panel system.");
printf("Enter the daily required amount of energy for your house, in kWh : \n");
scanf("%f", &userInput[0]);
printf("Enter the cost of solar panels (per m^2), power inverters and batteries: \n");
scanf("%f %f %f", &userInput[1], &userInput[2], &userInput[3]);
}
/*---------------------------------------*/
/* Function with matrix to determine insolDayMin */
float fillInInsolation(float insolation_Matrix[NROWS][NCOLS])
{
/* Declare Variables : i represents a row (month), j represents a column (year) */
int i, j;
float insolation, Fs_h;
for(i == 0; i <= 11; i++)
{
/* Declare insolation values for different months */
switch (i)
{
case 0:
insolation = 0.142;
break;
case 1:
insolation = 0.207;
break;
case 2:
insolation = 0.298;
break;
case 3:
insolation = 0.389;
break;
case 4:
insolation = 0.456;
break;
case 5:
insolation = 0.483;
break;
case 6:
insolation = 0.467;
break;
case 7:
insolation = 0.410;
break;
case 8:
insolation = 0.326;
break;
case 9:
insolation = 0.234;
break;
case 10:
insolation = 0.158;
break;
case 11:
insolation = 0.124;
break;
}
for (j == 0; j <= 4; j ++)
{
insolation_Matrix[i][j] = 0;
}
for (j == 5; j <= 17; j ++)
{
Fs_h = 0.1316 * insolation * cos (0.2618 * (j - 12));
scanf("%f", &insolation_Matrix[i][j]);
}
for (j == 18; j <= 23; j ++)
{
insolation_Matrix[i][j] = 0;
}
}
return insolation_Matrix[NROWS][NCOLS];
}
/*---------------------------------------*/
/* A function to calculate insolDayMin */
float calculate_insolDayMin(float insolation_Matrix, float insolDayMin)
{
int i, j;
float insolDaySum[12], temp;
for(i == 0; i <= 11; i++)
{
for (j == 5; j <= 17; j ++)
{
insolDaySum[i] += insolation_Matrix[i][j];
}
}
while (1)
{
if(insolDaySum[i] > insolDaySum[i + 1])
{
insolDaySum[i] = temp;
insolDaySum[i + 1] = insolDaySum[i];
temp = insolDaySum[i + 1];
}
}
insolDaySum[0] = insolDayMin;
return insolDayMin;
}
/*---------------------------------------*/
/* A function to calculate insolHourMax */
float calculate_insolHourMax(float insolation_Matrix, float insolHourMax)
{
int i, j;
insolHourMax = 0;
for(i == 0; i <= 11; i++)
{
for (j == 5; j <= 17; j ++)
{
if(insolation_Matrix[i][j] > insolHourMax)
{
insolHourMax = insolation_Matrix[i][j];
}
}
}
return insolHourMax;
}