I'm new to coding, and starting with C.
The program I am working on is getting me hung up because of user input.
I'm supposed to find the minimum and maximum value of the user's input, but nothing I've tried so far is working.
Any help would be appreciated:
#include <stdio.h>
#include <math.h>
int main() {
int i;
int n;
float data;
float sumx;
float sumx2;
float mean;
float var;
float sd;
int min;
int max;
/* Get the number of data lines from the user*/
printf("How many numbers do you need to enter (n)? ");
scanf("%d", &n);
while (n <= 0) {
printf("Enter positive numbers only, please.\n");
printf("\n");
printf("How many numbers do you need to enter (n)? ");
scanf("%d", &n);
/* Initialization */
sumx = sumx2 = 0.0;
for ( i = 1; i <= n; i++) {
printf("Enter data item %d: ", i);
scanf("%f", &data);
min = 0;
max = 0;
if(data > max)
max = data;
else if(data < min)
min = data;
sumx = sumx + data;
sumx2 = sumx2 + (data * data);
}
mean = sumx / n;
var = 1.0/(n-1) * (sumx2 - (1.0/n) * sumx * sumx);
sd = sqrt(var);
printf("\n");
printf("The minimum value entered: %d\n", min);
printf("The maximum value entered: %d\n", max);
printf("\n")
printf("mean = %f\n", mean);
printf("variance = %f\n", var);
printf("std. dev. = %f\n\n", sd);
return 0;
}
No matter what values are entered into the program, the min values read as 0, and the max value is whatever was inputted last.
Should the min/max values be different?
min = 0;
max = 0;
for ( i = 1; i <= n; i++) {
printf("Enter data item %d: ", i);
scanf("%f", &data);
if(data > max)
max = data;
if(data < min)
min = data;
if(i == 1){min = data;}
sumx = sumx + data;
sumx2 = sumx2 + (data * data);
}
EDIT (the above code don't work for initial value of data = 0)
min = INT_MAX; //chux suggestion
max = INT_MIN;
for ( i = 1; i <= n; i++) {
printf("Enter data item %d: ", i);
scanf("%f", &data);
if(data > max)
max = data;
if(data < min)
min = data;
sumx = sumx + data;
sumx2 = sumx2 + (data * data);
}
and correct the while
loop
valter