Несколько проблем:
int metrisi=getchar();
Это поместит ASCII-значение из первой буквы, которую вы вводите в метриси.
Вы можетеполучить десятичное значение этого значения, вычтя 48, но это совершенно небезопасно - что произойдет, если вы введете другую форму, кроме цифры?
РЕДАКТИРОВАТЬ: Как отметил Дэвид, это вычитание технически небезопасно.Однако, поскольку вы хотите выполнить некоторую арифметику для ваших входных значений, было бы разумно убедиться, что вы принимаете только цифры в качестве входных данных.
В любом случае, следующая проблема в вашем printf:
printf("%5.0f %5.0f %5.0f\n", proi,apog,brady);
Здесь вы указываете вывод 5 цифр слева от десятичной точки и 0 цифр после десятичной точки.Возможно, вы хотели это:
printf("%.5f %.5f %.5f\n", proi,apog,brady);
Здесь также (как мне кажется) проблема здесь:
float proi=(metrisi-80)/40*1.5;
Это выражение может привести к довольно неожиданным результатам.Причина этого в том, что в C есть нечто, называемое приоритет оператора , и это не всегда интуитивно понятно.
Вместо этого вы можете попробовать это:
float proi=(metrisi-80)/(float)40*1.5;
или
float proi=(metrisi-80)/40.0*1.5;