Kopiuj
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main( int argc, char * argv[] )
{
//niektóre zmienne nie są zainicjowane (n, i oraz j)
int a, b, n, i, j;
//zgaduję, że te tablice są podane w zadaniu i na sprawdzeniu nie będzie wymogu odczytu z wprowadzonych innych danych przez prowadzącego
int tabA[11]={1,2,2,2,3,4,4,4,5,8,10}, tabB[11]={2,2,4,4,4,4,10,16,20}, tabC[11];
//zamiast "a, b, c..." do for() tradycyjnie stosuje się "i, j, k"
//zmienne (a oraz b) można zainicjować w for() na zasadzie int a=0, int b=0;
//!!! zmienna "n" nie jest zainicjowana żadną wartością, więc nie masz działania logicznego ( albo masz... a < coś-nikt-nie-wie-co),
//tak więc albo weź wymiar tablicy jako zmienną albo "11" jeśli wielkość tablicy nie zostanie w przyszłości zmieniona
for( a = 0; a < n; a++ )
{
//!!! zmienna "n" nie jest zainicjowana żadną wartością, więc nie masz działania logicznego ( albo masz... b < coś-nikt-nie-wie-co)
//tak więc albo weź wymiar tablicy jako zmienną albo "11" jeśli wielkość tablicy nie zostanie w przyszłości zmieniona
for( b = 0; b < n; b++ )
{
if( tabA[ a ] == tabB[ b ] )
{
//i także nie jest w żaden sposób określone ( dla pola w tabC o indeksie coś-nikt-nie-wie-co zapisz wartość z tabA[a]
tabC[i] = tabA[a];
//proszenie się o kłopot, zwiększając wartość "a" z tego miejsca pętla for(b=0 ... ) dalej się wykonuje i może wywalić błędy;
//w tym miejscu powinno nastąpić przerwanie pętli i przejście do następnego elementu z pętli for(a=0...)
a++;
}
}
}
//n niezainicjowane, tak więc wyskoczy błąd ( tutaj zrób sobie po prostu string ze wszystkimi wartościami z tabC[] - pętla for() zda egzamin do tego, i później dodaj go do printf zamiast tabC[n])
printf( "Elementy wspolne: %d\n", tabC[n] );
system( "PAUSE" );
return 0;
}
Tyle uwag. Co do samego zadania nie będę pisać jak rozwiązać, ale po poprawieniu tych rzeczy powinno być łatwiej.
Nie używaj do porównywania niezainicjowanych zmiennych.