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

Tablice jednowymiarowe

Object Storage Arubacloud
+1 głos
427 wizyt
pytanie zadane 15 czerwca 2015 w C i C++ przez szymonn7 Początkujący (350 p.)

Napisz program, który wylosuje 999 liczb całkowitych z zakresu od 4 do 10 włącznie, wypisze te wartości na ekran, po czym zsumuje je i wynik wypisze na ekran. Program ma wykorzystywać tablicę, która zostanie najpierw wypełniona liczbami losowymi z określonego przedziału, a następnie wynik zostanie obliczony na podstawie zawartości całej tablicy.

Tutaj jest mój kod: http://pastebin.com/Ztj8sXsa

Czy jest on poprawnie napisany? Czy mógłbym zapisaćgo przyjażniej dla oczu i w jakiś prostszy sposób?

 

 

2 odpowiedzi

+2 głosów
odpowiedź 15 czerwca 2015 przez krecik1334 Maniak (58,390 p.)

Jeśli ten kod działa, to OK. Ale mi się pewne rzeczy nie podobają:

  1. int losowanie(){

  2.                                 int liczba;

  3.                                 liczba = ( ( rand() % 7 ) + 4 );

  4. } 

Ta funkcja nic nie zwraca, zmień to na:

int losowanie()
{
return  rand() % 7  + 4;
}

Może to i działa, ale ten kod czytelniejszy i jednoznaczny.

Ta pętla też trochę bez sensu:

do{
wylosowana = losowanie();
cout<< wylosowana<< ", ";
 
int tablica[licznik];
        licznik++;
} while (licznik < 999);

W każdym obrocie pętli deklarujesz tablicę... Powinno być tak:

do{
   wylosowana = losowanie();
   cout<< wylosowana<< ", ";
   tablica[licznik] = wylosowana;
   licznik++;
} while (licznik < 999);

Do policzenia sumy użyj pętli for. To ona jest najlepsza w iteracji po tablicach:

int suma = 0;
for(int licznik = 0; licznik < 999; licznik++)
{
    suma += tablica[licznik];
}

 

 

komentarz 15 czerwca 2015 przez szymonn7 Początkujący (350 p.)
wlasnie jade kazda lekcje po kolei wedlug kursu i tam jeszcze do 'fora' nie doszedłem...

Jakby nie liczyc metody for, to obliczenie sumy za pomoca do while jest ok?
komentarz 15 czerwca 2015 przez Boshi VIP (100,240 p.)
Nie potrzebnie  nawet są 2 pętle, wszystko idzie zrobić w max 2 funkcjach albo jednej. Czym więcej pętli w tak banalnym programie  tym kod bardziej jest nieczytelny.
komentarz 15 czerwca 2015 przez krecik1334 Maniak (58,390 p.)
W sumie jest też druga strona medalu. Im więcej instrukcji w jednej pętli tym kod jest bardziej spaghetti. Ale wydajność przemawia za tym żeby to umieścić w jednej.
+1 głos
odpowiedź 15 czerwca 2015 przez Boshi VIP (100,240 p.)

Nie zwracasz wartości z funkcji

Nie wiem po co funkcja tylko losuje a główny program zajmuje się sumowaniem-bez sens

Funkcja robi wszystko, ewentualnie jedna losuje liczby a potem tą tablicę przekazujesz np jako wskaźnik do funkcji która sumuje elementy.

//bardzo prosto bo nie mam kompilatora pod ręką i nie chce mi się z palca pisać wszystkeigo

 int  Suma(int  *tab, int ile)
{ int suma=0;
       for(int i=0; i<ile; i++)
{
  tab[i]=( ( rand() % 7 ) + 4 );
 suma+=tab[i];
}
return suma;
}
 int main
{
int tab[999];
  int SumaDanych=Suma(tab,999);
}

 

komentarz 17 czerwca 2015 przez szymonn7 Początkujący (350 p.)
co oznacza += ?
komentarz 17 czerwca 2015 przez Boshi VIP (100,240 p.)
to samo co $zmienna=$zmienna+jakas wartosc (skrócony zapis)

Podobne pytania

0 głosów
1 odpowiedź 145 wizyt
pytanie zadane 3 lipca 2015 w C i C++ przez Lopez Początkujący (460 p.)
0 głosów
1 odpowiedź 414 wizyt
0 głosów
1 odpowiedź 313 wizyt
pytanie zadane 10 lutego 2020 w C i C++ przez Michallo Nowicjusz (150 p.)

92,584 zapytań

141,433 odpowiedzi

319,668 komentarzy

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

...