Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

[C] Część wspólna dwóch tablic

#1
[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.
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.
 System operacyjny: windows_eight Przeglądarka: firefox
#2
RE: Iloczyn tablic
Witam, najprościej zrealizować to za pomocą dwóch pętli (gdyby obie tablice były posortowane, to algorytm miałby złożoność liniową):
Kod:
k = 0;
for (i = 0; i < n_1; i++) // liczba el. pierwszej tablicy
    for (j = 0; j < n_2; j++)
        if (a[i] == b[j])
        {
            c[k++] = a[i]; // albo b[j]
            break;
        }
 System operacyjny: linux_ubuntu Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki ([C] Część wspólna dwóch tablic)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [C]Część wspólna 2 przedziałów. polak3018 2 7405 13.10.2017, 16:43
Ostatni post: ptrick
  Wskażniki do tablic dwuelementowych soul1648 1 5762 25.03.2017, 16:13
Ostatni post: Szachista
  [C++] Scalanie dwóch posortowanych tablic soul1648 5 7286 16.03.2017, 20:09
Ostatni post: Szachista

Skocz do:


Wybrane wątki ([C] Część wspólna dwóch tablic)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  VBA excel dmjs 6 1360 17.04.2019 10:20
Ostatni post: ptrick
  C++ gbr 5 1952 25.03.2019 12:53
Ostatni post: koneton
  Klasa wewnętrzna w C++ Physicist 4 1936 23.03.2019 18:28
Ostatni post: Physicist
  Ruby on Rails - tutoriale luciussulla 0 1677 23.03.2019 16:49
Ostatni post: luciussulla
Big Grin Czy dostane sie technikum informatycznego klaudiusz20046 6 3619 21.03.2019 01:28
Ostatni post: UnableToSee
  [C#] Program do moderacji czatów gier wiktrom12 0 2137 07.03.2019 15:33
Ostatni post: wiktrom12
  Mój pierwszy projekt - Pomoc rafal12999 1 2651 07.02.2019 22:01
Ostatni post: Szachista
  pomoc projekt scilab piesel18 2 3498 04.02.2019 09:03
Ostatni post: piesel18
  [Java] Strona z zadaniami do rozwiązania i odpowiedziami rafal12999 2 3839 27.01.2019 13:44
Ostatni post: rafal12999
  kompilacja biblioteki Agui - cmake jurek2 0 3251 10.01.2019 13:12
Ostatni post: jurek2
  Zamiana całego zestawu znaków wg przyporządkowania BarHorab 5 3976 19.12.2018 16:45
Ostatni post: Szachista
  Sumowanie licz excel - problem OxyGenE 2 7053 19.12.2018 16:29
Ostatni post: Szachista
  Transfer plików via FTP Visual Basic FireBytes 1 2807 17.11.2018 21:07
Ostatni post: Szachista
  Jaki kod pod pewne zdarzenia visualbasic 2010 aktywny27 4 4834 07.11.2018 13:41
Ostatni post: Ajgor
Scared Ipad Pro programowanie? NissmoOne 4 5640 06.10.2018 12:22
Ostatni post: NissmoOne