19.11.2015, 09:12
(Ten post był ostatnio modyfikowany: 19.11.2015, 09:37 przez Szachista.)
[C] Część wspólna dwóch tablic
Witam! Mam problem z jednym zadaniem. Na wstępie powiem, że jestem początkujący, a nawet raczkujący z języka C, ale takie zadanie mamy na studiach.
Otóż, stworzyłem program, tworzący 2 tablice, z niepowtarzającymi się liczbami. Pierwsze zadanie, czyli sumowanie tablic poszło dosyć sprawnie i działa, drugie zadanie to stworzenie iloczynu tych zbiorów (czyli wyciągnięcie części wspólnych).
Problem w tym, że nie wiem jak się do tego zabrać, gdyż musimy używać funkcji FOR/IF. Wklejam kod programu sumującego, z góry dzięki za pomoc.
// Proszę nieco dokładniej tytułować wątki.
Otóż, stworzyłem program, tworzący 2 tablice, z niepowtarzającymi się liczbami. Pierwsze zadanie, czyli sumowanie tablic poszło dosyć sprawnie i działa, drugie zadanie to stworzenie iloczynu tych zbiorów (czyli wyciągnięcie części wspólnych).
Problem w tym, że nie wiem jak się do tego zabrać, gdyż musimy używać funkcji FOR/IF. Wklejam kod programu sumującego, z góry dzięki za pomoc.
Kod:
#include <stdio.h>
#include <math.h>
int t1[5], t2[4], sum[9], iloczyn[4], liczba, dopisz, tab, idx, w=1;
main()
{
///Tablica 1 - wprowadzanie
printf("%s", "Wprowadz liczby do tablicy 1:\n\n");
for (int i=0;i<5;i++)
{
scanf("%d",&liczba);
while(w==1)
{
w=0;
for (int j=0; j<i; j++)
{
if (liczba==t1[j])
{
w=1;
printf ("%s","Zla liczba - podaj nowa - \n");
scanf ("%d", &liczba);
}
}
}
t1[i]=liczba;
w=1;
}
printf ("%s","Tablica 1 wpisana: ");
for (int i=0;i<5;i++)
printf ("%d%s",t1[i], ", " );
///Tablica 2 - wprowadzanie
printf("\n\n%s", "Wprowadz liczby do tablicy 2:\n\n");
for (int i=0;i<4;i++)
{
scanf("%d",&liczba);
while(w==1)
{
w=0;
for (int j=0; j<i; j++)
{
if (liczba==t2[j])
{
w=1;
printf ("%s","Zla liczba - podaj nowa - \n");
scanf ("%d", &liczba);
}
}
}
t2[i]=liczba;
w=1;
}
printf ("%s","Tablica 2 wpisana: ");
for (int i=0;i<4;i++)
printf ("%d%s",t2[i], ", ");
///Sumowanie
int i=0;
for (i=0;i<5;i++) sum[i]=t1[i];
idx=i-1;
for (i=0;i<4;i++)
{
dopisz=1;
for (int j=0;j<5;j++)
if (t2[i]==t1[j])
{
dopisz=0;
}
if (dopisz==1)
{
idx++;
sum[idx]=t2[i];
}
}
printf ("\n\n%s","Suma tablic: ");
for (int i=0;i<idx+1;i++)
printf ("%d%s",sum[i], ", " );
getchar();getchar();
}
// Proszę nieco dokładniej tytułować wątki.