• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sprawdzenie czy trójkąt jest prostokątny

Object Storage Arubacloud
0 głosów
496 wizyt
pytanie zadane 8 maja 2022 w C i C++ przez edekkredek Nowicjusz (120 p.)
edycja 8 maja 2022 przez ScriptyChris

Cześć potrzebuje pomocy, program ma sprawdzać czy trójkąt z podanych liczb jest prostokątny i ma zapisać w tablicy.

main.c

#include <stdio.h>
#include <math.h>
#include "triangle.h"
int i;
float x1,x2,x3,y1,y2,y3;
Point_t first={x1,y1};
Point_t second={x2,y2};
Point_t third={x3,y3};
int main(){
printf("Wprowadz wartosci 'x' i 'y' dla trzech punktow (zatwierdzaj kazda wartosc enter) \n");
	scanf("%f", &x1);
	scanf("%f\n", &y1);
	scanf("%f", &x2);
	scanf("%f\n", &y2);
	scanf("%f", &x3);
	scanf("%f\n", &y3);
	points[]={Point_t first,Point_t second,Point_t third};
bool isRightTriangle(Point_t points[]);
if true {
printf("Trojkat prostokatny);
};
if false {
printf("Trojkat nie jest prostokatny");
};
return 0;
};

triangle.c

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

double calculateDistance (Point_t first,Point_t second){
const double xDist = second.x - first.x ;
const double yDist = second.y - first.y ;
return sqrt(xDist*xDist + yDist*yDist);
};
double side1,side2,side3;
bool isRightTriangle(Point_t points[]){
	side1=calculateDistance(Point_t first, Point_t second);
	side2=calculateDistance(Point_t first, Point_t third);
	side3=calculateDistance(Point_t second, Point_t third);
if {
(sqrt(pow(side1)+pow(side2))==side3)||(sqrt(pow(side3)+pow(side2))==side1)||(sqrt(pow(side1)+pow(side3))==side2);
return true;
};
if else {
	return false;
};
};

triangle.h

#pragma once

// Declaration of boolean type
#include <stdbool.h>

typedef struct Point {
	double x, y;
} Point_t;

bool isRightTriangle(Point_t points[]);

tak wygląda polecenie. 

Plik triangle.h zawiera deklaracje struktury Point t, przechowującej współrzędne punktu na płaszczyźnie, oraz funkcji bool isRightTriangle(Point t points[]), która sprawdza czy trzy zadane punkty na płaszczyźnie tworzą trójkąt prostokątny. Punkty przekazywane są w postaci tablicy struktur Point t. Napisz definicję funkcji isRightTriangle() i umieść ją w pliku triangle.c, a następnie przetestuj działanie zaimplementowanej funkcji. Współrzędne x, y punktów pobierz z klawiatury. Dla uproszczenia możesz przyjąć, że działanie funkcji jest niezdefiniowane w przypadku, gdy tablica punktów ma rozmiar różny niż 3

komentarz 9 maja 2022 przez Oscar Nałogowiec (29,290 p.)
edycja 9 maja 2022 przez Oscar

Inicjujesz zmienne typu Point_t przed przypoisaniem wartości do x1,y1 itp. Tablicę points w main() też dziwnie tworzysz.

Takie uwagi na przyszłość:

Jak liczysz na zmiennym przecinku, to nie używaj ==, wyniki będą przybliżone, więc trzeba założyć jakąś maksymalną względną różnicę o ile dwie liczby mogą się różnić.

Jak już liczysz te kwadraty to porównuj je bezpośrednio, nie wyciągaj pierwiastka. Funkcja licząca odległość też w sumie ma prościej podać kwadrat, ale jak rozumiem, ona jest dana z góry.

 

1 odpowiedź

0 głosów
odpowiedź 8 maja 2022 przez Apled Dyskutant (9,520 p.)

Wewnątrz pliku triangle.h deklarujesz

bool isRightTriangle(Point_t points[]);

wewnątrz pliku main znowu masz

bool isRightTriangle(Point_t points[]);

i co to w ogóle ma robić?

if true {
printf("Trojkat prostokatny);
};
if false {
printf("Trojkat nie jest prostokatny");
};

Czy ten fragment ma odnosić się do wyniku funkcji isRightTriangle?

Ja tutaj widzę spory bałagan, chociażby z niepotrzebnymi myślnikami po if'ach i jakimiś "if else" zamiast zwykłego else

Podobne pytania

0 głosów
1 odpowiedź 1,795 wizyt
pytanie zadane 6 stycznia 2018 w JavaScript przez BinaryMan Stary wyjadacz (12,620 p.)
0 głosów
1 odpowiedź 278 wizyt
pytanie zadane 30 listopada 2017 w Ogłoszenia, zlecenia przez lichotka Nowicjusz (210 p.)
0 głosów
4 odpowiedzi 10,855 wizyt
pytanie zadane 16 kwietnia 2016 w C i C++ przez Michał_Warmuz Mądrala (5,830 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...