2014-09-16 2 views
-3

я пытаюсь сделать программу, которая вычисляет геометрическое average.But я получаю эту ошибку: электронное письмо именующее выражения требуется, так как левый операнд назначенияименующий требуется в качестве левого операнда назначения


#include<stdio.h> 
#include<conio.h> 

int main() { 
    float number1,number2,avarage; 
    printf("enter the numbers which you want to calculate geometrical average of them > "); 
    scanf("%f %f",&number1,&number2); 

    average*average=number1*number1+number2*number2; 

    printf("Geometrical avarage is:%f",sayi); 

    getch(); 

    return 0; 
} 

(я пробовал «==» оператор тоже, но +0,00 присваивается среднее по этим времени)

Благодарности

+4

Что вы ожидаете от эффекта присвоения значения среднему среднему? Это бессмысленно. BTW: Какой тип «средний», только нахождение определения «avarage». Это действительно ваш код? – Deduplicator

+0

Что вы ожидаете от «среднего» среднего? Он не содержит никакой ценности. –

+0

Я не знаю, является ли эта глупость даже законной в Haskell ... (средняя * средняя) = 4 ... какова будет средняя стоимость ... -2? –

ответ

1

Это скорее математическая проблема, чем проблема программирования. Если вы знаете, что

average*average = number1*number1+number2*number2

вы должны оценить среднее первое. Решение является

average = sqrt(number1*number1+number2*number2)

EDIT1: , но среднее геометрическое должно быть вычислено как

average = sqrt(number1 * number2)

согласно http://en.wikipedia.org/wiki/Geometric_mean

1

использовать эту формулу для вычисления среднего геометрического:

Geometric average = square root of (number1 * number2)

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

int main() 
{ 

    float number1,number2,average; 

    printf("enter the numbers which you want to calculate geometrical average of them > "); 
    scanf("%f %f",&number1,&number2); 

    average=sqrt(number1*number2); 

    printf("Geometrical average is:%f",average); 

    return 0; 
} 
Смежные вопросы