Charakterystyczna twarz chada - na początku myślałem że profil twarzy jest dziełem przypadku, ale tak naprawdę został on stworzony na podstawie PRAWDZIWEJ granicy państwa Czad w Afryce xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
Charakterystyczna twarz chada - na początku myślałem że profil twarzy jest dziełem przypadku, ale tak naprawdę został on stworzony na podstawie PRAWDZIWEJ granicy państwa Czad w Afryce xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
1. podaje zawsze wartość SUMA jako 27 zamiast liczyć
2. nie pozwala po raz kolejny przypisać czegoś innego niż "SUMA" tylko gasi program
???????????????
#programowanie #programista15k
Hej, jeśli nie masz nic przeciwko dorzucę swoje trzy grosze.
Jeśli chodzi o sam problem tego kodu to tak jak inni zauważyli:
* by obliczyć sumę musisz się prze-iterować po tablicy podobnie jak to robisz przy wyświetlaniu (linia 18) i koniecznie zainicjalizuj zmienną suma przy deklaracji (linia 10) - rób tak zawsze dla typów POD (ang. plain old data), czyli float, double, short, char, bool, long, wszystkie poprzednie wariacje z unsigned i samo usigned, a także struct bez konstruktora, czyli w tym wypadku int sum = 0 - w zależności od miejsca deklaracji zmiennej (lokalnie albo globalnie) oraz implementacji kompilatora może dojść do przypisania losowej wartości przy deklaracji - wtedy dodajesz wartości z tablicy do losowej wartości z przedziału danego typu zmiennej (linia 26).
* proszę deklaruj i inicjalizuj samego guarda iteracji (w tym wypadku indeks tablicy) w pierwszej części pętli for, czyli for (int y = 0; ... - dzięki temu podobnie jak w linii 26 nie dojdzie to użycia wartości spoza zasięgu tablicy, ponieważ zmienna zadeklarowana jest jedynie w zasięgu tej pętli i kompilator to zauważy. Niestety, ale w większości przypadków użycie operatora [ ] (tzw. subskrypcji) poza zasięgu tablicy lub wektora (ale nie mapy) jest UD (ang. undefined behaviour), i nie ma sprawdzania zasięgu (uciążliwe przy debuggowaniu, bo zobaczysz tylko jakąś wartość ze stosu - jeżeli wartość była na stosie, np. lokalna zmienna - w innym wypadku, np. wektor jest szansa, że dostaniesz segfault). Deklarowanie typu poza pętlą for to rzecz wymuszana i pochodząca z
Niestety C++ nie należy do najłatwiejszych, a semantyka języka (np. przytoczone przeciążanie operatorów) nie stanowi problemu tego języka. Łatwo zobaczyć, że nawet w prostych problemach można sobie łatwo strzelić w stopę, np. z powodu częstych gęstych UB.
często wracałem do feedbacku jaki dostawałem od ludzi, np. w sprawach mojego kodu i rzeczy po czasie nabierały więcej sensu, a czasem się najpierw z nimi nie zgadzałem, ale później przekonywałem w praktyce.
Dałem parę ogólnych rad, jak np. brak namespace'a std przy cin (std::cin) albo cout (std::cout), który wynika z używacia
using namespace std;
a do reszty napisałem jakiś przykład takie to trudne, a możeAle cóż, wolicie leczyć kompleks mniejszości uwagami o łechtaniu ego xD a najlepiej już siedzieć dupa cicho, bo ktoś poleci OPowi jakieś tutoriale na youtube albo książki kompletnie nie związane z jego problemem i kodem
Jest w moim poście sporo literówek i rzeczy, które fajnie by było doprecyzować (tych parę pojęć), ale tak