zadanie w c++(tablice)

Odpowiedz Nowy wątek
2012-09-09 16:02
0

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

//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;
}

Pozostało 580 znaków

2012-09-09 16:15
0

W warunku powinno być == a nie jedno =, bo operatorem porównania są właśnie 2 znaki równości.


Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał
edytowany 1x, ostatnio: xeo545x39, 2012-09-09 16:16

Pozostało 580 znaków

2012-09-09 16:20
0

zależy co chcesz osiągnąć? chcesz sprawdzić czy dla każdej pary warunek jest spełniony?

#include <iostream>
using namespace std;
int main() {
  int tab[20];
  int i;
  int flaga = 1;
  for(i=0; i<20; i+=2) {
    if(tab[i] != tab[i+1]) {
      flaga = 0;
      break;
    }
  }
  if (flaga) {
    cout<<"te same"<<endl;
  } else {
    cout<<"nie takie same"<<endl;
  }
  system("pause");
  return 0;
 }

no i w warunku masz = zamiast ==


#define if(x) if(rand()%6 && (x)) u mad? !user image
edytowany 1x, ostatnio: dawidgarus, 2012-09-09 16:24

Pozostało 580 znaków

2012-09-09 16:22
0
raven168in1 napisał(a):

Tablica [20] liczb naturalnych, program sprawdza, czy w tablicy na pozycjach
parzystych występują te same liczby co na pozycjach nieparzystych

Albo to zadanie jest niedoprecyzowane, albo masz zły algorytm.
Jeśli masz sprawdzać czy jakiś element na pozycji parzystej jest równy elementowi na pozycji nieparzystej, to musisz porównać ten element z pozycji parzystej z każdym elementem na pozycji nieparzystej. Jeśli są równe to wtedy wyświetlasz komunikat.
W tym momencie, Twój algorytm porównuje dwa sąsiednie elementy. A co, jeśli na pozycji drugiej jest ten sam element, co na pozycji jedenastej?


Idiots, idiots everywhere.
edytowany 1x, ostatnio: allocer, 2012-09-09 16:23

Pozostało 580 znaków

2012-09-09 17:53
0

dzieki za odpowiedzi dawidgarus , int flaga mozna zastapic bool' em , tak ? A te break to po co , bo nie wiem ? Ale czy ta wersja co napisałeś porównuje liczby np. 4 i 9 tak jak pisze allocer czy tylko sasiednie liczby ? allocer a co mozna tu zmienic zeby była taka własnie wersja , która porównuje nawet te nie sąsiadujące liczby?

break jest po to, że jak już znajdziesz różne liczby to żeby nie szukać dalej. porównuje tylko sąsiednie - dawidgarus 2012-09-09 18:23

Pozostało 580 znaków

2012-09-09 18:14
0
raven168in1 napisał(a):

allocer a co mozna tu zmienic zeby była taka własnie wersja , która porównuje nawet te nie sąsiadujące liczby?

Oczywiście, że można, a nawet trzeba jeśli Ci o to chodzi :).
Musisz zagnieździć dodatkową pętlę for w aktualnej. Wtedy każdy element na pozycji parzystej porównujesz najpierw z wszystkimi elementami z pozycji nieparzystych, a następnie przechodzisz do następnego elementu na pozycji parzystej.

Na szybko, coś takiego (nie testowałem):

#include<iostream>

int main(){

    int tab[20] = {2, 2, 2, 3, 3, 4, 5, 6, 7, 7, 8, 8, 9, 9, 10, 11, 11, 12, 4 , 15};    
    for(int i = 1; i <= 20; i += 2){
        for(int j = 0; j < 20; j += 2)
            if(tab[i] == tab[j])
                std::cout<<"Elementy takie same na pozycjach: "<< i <<" "<< j <<"\n";
    }
}

Idiots, idiots everywhere.
edytowany 3x, ostatnio: allocer, 2012-09-09 18:28

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0