У меня проблема, когда мои функции, кажется, только возвращают. Я думал, что правильно возвращаю функции, но, похоже, я этого не делаю.функции только возвращают 1?
char goAgain()
{
char ch;
do
{
printf("Would you like to go again? ");
ch = getchar();
while(fgetc(stdin) != '\n');
}while(ch != 'n' || 'y');
return ch;
}
double findMedian(int array[], int length)
{
int mid;
double median, medianLeft, medianRight;
if(length % 2 == 0)
{
mid = length/2;
// medianLeft = array[mid];
// medianRight = array[mid + 1];
}
else
{
mid = length/2;
median = array[mid];
}
return median;
}
это, как я называю средний
double mean = findMedian(array, length);
почему он только дает мне один в моем возвращении. также, когда я пытаюсь повторить goAgain, я тоже не получаю правильный ch.
option = goAgain();
В мире c все намного отличается от мира java.
do
{
int num = menu();
if(num == 1)
fillArray(array, size);
else if(num == 2)
{
int newSize = readNum();
fillArray(array, newSize);
}
else if(num == 3)
{
int length = size;
sortArray(array);
double mean = findMean(array, length);
double median = findMedian(array, length);
printResults(mean, median);
}
else
{
printf("Please enter a valid number\n");
num = menu();
}
option = goAgain();
}while(option == 'y');
Что следует 'findMedian' вернуться, если' (длина% 2! = 0) ' ? 0? – raina77ow
'if (length% 2 == 0)', тогда вы не инициализируете «медианную» для любого значения и, следовательно, возвращаете что-то случайное. – RichieHindle
'while (ch! = 'N' || 'y')' не делает того, что вы думаете. –