программа проверяет простые типы треугольников: равносторонние, равнобедренные, прямоугольные и т. Д. но я получаю действительно странные результаты.простая программа для определения типа треугольника, дающего странные результаты
мой код:
#include <stdio.h>
#include <stdlib.h>
int comparator (const void * elem1, const void * elem2) {
int f = *((float*)elem1);
int s = *((float*)elem2);
if (f > s) return 1;
if (f < s) return -1;
return 0;
}
void checkTriangles(float *num){
float a = *num;
float b = *(num + 1);
float c = *(num + 2);
if((a*a + b*b)==c*c){
printf("right angled triangle");
}
else if(a==b || b==c || c==a){
printf("isosceles triangle");
}
else if(a==b && b==c){
printf("equilateral triangle");
}
else if(a!=b && b!=c && c!=a && ((a+b)>c)){
printf("normal triangle");
}
else{
printf("invalid");
}
}
int main(void){
char c = 'a';
char str[12];
float num[3];
while(c!='q'){
printf("\n\nenter the sides : ");
fgets(str , sizeof(str) , stdin);
sscanf(str , "%f%f%f", num , num + 1 , num + 2);
qsort(num, sizeof(num)/sizeof(*num), sizeof(*num), comparator);
printf("\n%f\n%f\n%f\n", num , num + 1 , num + 2);
checkTriangles(num);
printf("\nenter q to quit.. any other to continue : ");
c=getchar();
}
return 0;
}
однако им получать реальный нечетные выходы, как это:
я знаю, что с помощью быстрой сортировки что-то вроде этого является излишним, но я хотел держите его коротким и используйте компараторы, просто для удовольствия.
Редактировать: iv добавлен полный код и проверили компаратор, чтобы проверить наличие поплавков, но все равно получить тот же результат.
Дайте нам «основной» код, где вы фактически называете эти функции. – Yuushi
Как вы называете функцию 'checkTriangles'? В чем аргумент? Как объявляется аргумент? И каковы его ценности? Возможно, вы захотите сделать [SSCCE] (http://sscce.org/). Кроме того, предупреждающие сообщения от компилятора * важны *, поскольку они обычно указывают, что вы делаете что-то не так, поэтому, пожалуйста, отредактируйте свой вопрос, чтобы включить их также (как текст, а не как скриншот). –
предоставляется. я хотел предоставить все это, но я получил предупреждение. Надеюсь, теперь это поможет. – Somjit