[C++] Tablice - sprawdzenie poprawności

raven168in1
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 15 cze 2011, o 10:40
Płeć: Mężczyzna
Lokalizacja: Ostrołęka

[C++] Tablice - sprawdzenie poprawności

Post autor: raven168in1 »

czesc . moglby ktos sprawdzic czy ten program jest poprawny . jesli nie to czego tu brakuje .
z gory dzieki .

Kod: Zaznacz cały

//tablica [20] liczb naturalnych, program sprawdza, czy w tablicy na pozycjach 
//parzystych występują te same liczby co na pozycjach nieparzystych
#include <iostream>
using namespace std;
int main()
{
    int tab[20];
    int i;
    for(i=0;i<20;i++)
    if(tab[i]=tab[i+1]) 
    {
        cout<<"te same"<<endl;
    }
    else
    {
        cout<<"nie takie same"<<endl;
    }
    system("pause");
    return 0;
}
Ostatnio zmieniony 9 wrz 2012, o 22:36 przez Afish, łącznie zmieniany 2 razy.
Powód: Stosuj tagi [code][/code].Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Awatar użytkownika
Damian905
Użytkownik
Użytkownik
Posty: 144
Rejestracja: 2 sty 2008, o 17:14
Płeć: Mężczyzna
Podziękował: 9 razy
Pomógł: 16 razy

c++(tablice)

Post autor: Damian905 »

Może się nie znam , ale jak dla mnie to najpierw należałoby zapełnić tą tablicę liczbami . A tak to chyba poprawnie
pzdr
royas
Użytkownik
Użytkownik
Posty: 363
Rejestracja: 24 sie 2012, o 09:27
Płeć: Mężczyzna
Lokalizacja: Cieszyn
Pomógł: 80 razy

c++(tablice)

Post autor: royas »

Nie wiem dokładnie co ma robić ten program ale nie robi tego co chcesz. Sprawdza t[0] z t[1] potem t[1] z t[2] czyli jak wszystkie sprawdzenia będą takie same, to w całej tablicy będzie ta sama liczba.
Problem jest w ostatnim przebiegu pętli dla i=19, sprawdzasz t[19]==t[20], a t[20] już nie masz.
Do tego masz przypisanie zamiast sprawdzenia. No i to o czym w poprzednim poście: tworzysz tablicę tab wewnątrz funkcji, czyli masz w niej śmieci.
Awatar użytkownika
ares41
Użytkownik
Użytkownik
Posty: 6499
Rejestracja: 19 sie 2010, o 08:07
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 142 razy
Pomógł: 922 razy

c++(tablice)

Post autor: ares41 »

1) W jaki sposób Twój program porówna tab[19] z tab[20] ?
2) Czy on przypadkiem nie miał sprawdzić czy dla wszystkich pozycji spełniony jest zadany warunek i dopiero wtedy zwrócić "tak/nie" ?
3) Tak jak było napisane wyżej - nie ma wielkiego sensu sprawdzać pustej tablicy
tkostek
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 4 lip 2012, o 21:02
Płeć: Mężczyzna
Lokalizacja: Warszawa

c++(tablice)

Post autor: tkostek »

Nie wiem dokładnie o co ci chodzi, ale rozumiem że np dla:
1 1 2 2 3 3 4 4 9 5 6 6 2 7 8 8 9 8 8 10
powinno być:
TAK TAK TAK TAK NIE TAK NIE TAK NIE NIE
Program powinien wyglądać tak:

Kod: Zaznacz cały

#include<iostream>
using namespace std;
main(){
  int tab[20];
  for(int i=0;i<20;i++)cin>>tab[i];
  for(int i=0;i<19;i+=2){
    if(tab[i]==tab[i+1])cout<<"TAK
";
    else cout<<"NIE
";
  }
system("pause");
}
Haqu
Użytkownik
Użytkownik
Posty: 20
Rejestracja: 27 mar 2012, o 19:38
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 1 raz
Pomógł: 1 raz

c++(tablice)

Post autor: Haqu »

Ja bym Ci podpowiedział tak, że musisz sprawdzić wszystkie pozycje tablicy parzyste z wszystkimi nieparzystymi za pomocą 2 pętli for. Jeśli uznajemy liczbę zero za liczbę parzystą, to w pierwszy forze ustawiamy początek na pozycję tablicy o indeksie 0, a w forze wewnątrz pierwszego fora ustawiamy na pozycję tablicy jeden i przesuwamy o 2 do przodu aż dojdzie do 19, za każdym porównując z liczbą na zerowym indeksie tablicy. Jak już skończymy to porównanie, wracamy do pierwszego fora i tam przesuwamy indeks też o dwa i porównujemy kolejną parzystą pozycję z wszystkimi nieparzystymi, aż dojdzie do 20.

W ten sposób porównasz wszystkie liczby w tablicy na wzajem ze sobą i wykażesz, czy jakakolwiek o parzystym indeksie nie jest taka sama jak z nieparzystym indeksem. Jeśli nie do końca rozumiesz to daj znać, napisze szybko Ci kod.
raven168in1
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 15 cze 2011, o 10:40
Płeć: Mężczyzna
Lokalizacja: Ostrołęka

[C++] Tablice - sprawdzenie poprawności

Post autor: raven168in1 »

dzięki za odpowiedzi , już mam .
ODPOWIEDZ