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

Wyświetla się minusowy wynik zamiast zera

Object Storage Arubacloud
0 głosów
123 wizyt
pytanie zadane 2 kwietnia 2022 w C i C++ przez Latarnik Użytkownik (650 p.)

Próbuję zrobić kod który z pośród podanych n miast i m traktów będzie szukał najtańszego połączenia wszystkich miast ( jeśli jest ich więcej to będzie szukał czy dany punkt należy do jednego z nich ) . chciałem zrobić to poniższym sposobem zliczając najpierw najniższe "w" czyli ceny połączeń 2 miast. chciałem polecieć od najtańszych miast i ustalić jaka jest najniższa cena połączenia wszystkich miast dlatego zrobiłem tabele zer tb gdzie pod każdym indeksem będziemy wpisywać 1 jeśli ten trakt ma co najmniej jedno miast które jeszcze się nie łączyło z żadnym innym miastem. miasta to p i k. Jednak zawsze kiedy próbuje wpisać 2 miasta jeden trakt i te miasta numerami 1 , 2 i cena 3 to kiedy sprawdzam indeks tablicy tb który powinien wynosić 0 to pokazuje mi w konsoli ujemną liczbę.

 

#include <iostream>
#include <string> 
#include <algorithm>
#include <vector>
using namespace std;

struct trakty
{
	int p;
	int k;
	int w;
};
bool porownanie(trakty t1,trakty t2)
{
	return t1.w > t2.w;
}
int main()
{
	int m,n;
	cin>>n>>m;
	trakty t[m];
	int tb[n+1];
	bool pf[n];
	int min = 0;
   /*for(int j = 0;j<n;j++)
	{
		pf[n]=true;
	}*/
	for(int r = 0;r<m;r++)
	{
		cin>>t[r].p>>t[r].k>>t[r].w;
	}	
	sort(t, t +m,porownanie);
	for(int i = m-1;i>=0;i--)
	{
		cout<<t[i].p<<" "<<t[i].k<<" "<<t[i].w<<endl;
		cout<<tb[t[i].p]; // wyswietla mi sie ujemna liczba a powinno być zero
		if(tb[t[i].k] < 1 ||tb[t[i].p] < 1)
		{
	 	    if(tb[t[i].k] < 1)
	    	{
	 	    tb[t[i].k] + 1;
	        }
	   	    if(tb[t[i].p] < 1)
	    	{
	 	    tb[t[i].p] + 1;
	      } 
	      //min = min + t[i].w;
	    }  
	}
	// cout<<min<<endl;
	
	
	return 0;
}

 

komentarz 4 kwietnia 2022 przez edutomek Dyskutant (8,380 p.)
Nikt nie odpowiedział, więc w formie komentarza napiszę, że z ciekawości postanowiłem uruchomić ten kod, potem wpisałem jakieś liczby i wynik bynajmniej nie był ujemny. Może to być więc kwestia danych testowych - wypadałoby je również podać, żeby łatwiej dało się odtworzyć błąd.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

–1 głos
1 odpowiedź 249 wizyt
0 głosów
0 odpowiedzi 113 wizyt
pytanie zadane 3 lutego w Algorytmy przez kio41 Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 582 wizyt
pytanie zadane 20 maja 2020 w Rozwój zawodowy, nauka, praca przez Zabijaka3230 Początkujący (300 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 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!

...