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

miał zliczać liczby parzyste i nieparzyste

VPS Starter Arubacloud
0 głosów
208 wizyt
pytanie zadane 11 maja 2021 w C i C++ przez gallba Nowicjusz (120 p.)
edycja 11 maja 2021 przez Arkadiusz Waluk
#include <iostream>
#include <time.h>
#include <cstdlib>

using namespace std;

int n,x;
int main() {

    srand(time(NULL));
    int tab[6][6];
        for (int i=0; i<6; i++);
    for (int j = 0; j < 6; j++);
        tab[5][5] = rand()%(25 + 1);

                for (int i=0; i<6; i++); if (tab[i]%2); n++; else x++;
    for (int j = 0; j < 6; j++); if (tab[j]%2); n++; else x++;

}

 

1
komentarz 11 maja 2021 przez Arkadiusz Waluk Ekspert (288,790 p.)
Opisz problem dokładniej i wstaw kod w przeznaczony do tego bloczek.
1
komentarz 11 maja 2021 przez tkz Nałogowiec (42,020 p.)

@gallba, Tak z grubsza, to ten kawałek 

                for (int i=0; i<6; i++); if (tab[i]%2); n++; else x++;
    for (int j = 0; j < 6; j++); if (tab[j]%2); n++; else x++;

jest całkowicie niepoprawny. 

1 odpowiedź

+2 głosów
odpowiedź 11 maja 2021 przez NewEraOfPeace Gaduła (4,790 p.)
edycja 11 maja 2021 przez NewEraOfPeace
#include <iostream>
#include <time.h>
#include <cstdlib>

using namespace std;

int n,x;
int main() {

    srand(time(NULL));
    int tab[6][6];
        for (int i=0; i<6; i++);
    for (int j = 0; j < 6; j++);
        tab[5][5] = rand()%(25 + 1);

                for (int i=0; i<6; i++); if (tab[i]%2); n++; else x++;
    for (int j = 0; j < 6; j++); if (tab[j]%2); n++; else x++;

1.

#include <time.h>
#include <cstdlib>

używasz time.h, zamiast ctime, a pod spodem, o ironio cstdlib (powinno się preferować wersję z c na początku) (abstrahując też od tego, że powinieneś używać <random>)
2. 

int n,x;

niepotrzebne zmienne globalne
3.

    srand(time(NULL));

ponownie, powinieneś używać <random>
4.

        for (int i=0; i<6; i++);

ta pętla nic nie robi (zwróć uwagę, że jest zakończona średnikiem), to jest deadcode
5.

    for (int j = 0; j < 6; j++);
        tab[5][5] = rand()%(25 + 1);

ponownie, pętla jest zakończona średnikiem, nie wykona się, jedyne co tu robisz, to ustawiasz raz 5 element 5tej tablicy na rand()%(25+1) (a powiniewneś użyć <random> :p)
6.

                for (int i=0; i<6; i++); if (tab[i]%2); n++; else x++;
    for (int j = 0; j < 6; j++); if (tab[j]%2); n++; else x++;

to Ci się nawet nie skompiluje, będzie coś pokroju "else without previous if", bo forów nie kończymy średnikami, ifów też

Na logikę zbytnio nie zwracam uwagi, ale z tego co widzę, to te dwie pętle też są złe, bo robisz w nich dokładnie to samo


PS jeśli jest to zadanie do szkoły, to zignoruj uwagi do <random>, czyli m.in pkt. 3

Podobne pytania

0 głosów
1 odpowiedź 699 wizyt
pytanie zadane 23 października 2019 w C i C++ przez darekdede1995 Nowicjusz (180 p.)
0 głosów
1 odpowiedź 456 wizyt
0 głosów
2 odpowiedzi 563 wizyt
pytanie zadane 4 maja 2020 w C i C++ przez kwazi Nowicjusz (120 p.)

92,830 zapytań

141,771 odpowiedzi

320,817 komentarzy

62,159 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

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!

...