CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Problem z przepisywaniem do tablicy

Problem z przepisywaniem do tablicy

dział ogólny

Problem z przepisywaniem do tablicy

Nowy postprzez szprota » wtorek, 17 maja 2011, 21:39

witam,

w związku z tym ze z programowania na prawde jestem slaby, kolega pomogł mi napisać program który mam przynieść na jutro na lekcje, ale niestety nie potrafię zrobic zeby program przepisywal do nowo utworzonej tablicy wszytkie liczby większe od 0, a następnie je wypisywał, pojawia sie problem gdy podamy np jakies liczby na minusie, wtedy program wypisuje liczby 0, zamiast pomijac liczby minusowe i wypisywać dalej.... może ktos mi z tym pomóc? program napisany w dev



KOD cpp:     UKRYJ  
#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
int TabCount;
cout<<"Podaj wielkosc tablicy:\n";
cin>>TabCount;
int* tab = new int[TabCount];  
int* tab2 = new int[TabCount];
cout<<"Stworzyles tablice skladajaca sie z "<<TabCount<<" elementow.\n";
for(int i = 0;i < TabCount;i++)
{
        cout<<"Podaj "<<i + 1<<" element :\n";
        cin>>tab[i];
        if(tab[i] > 0)
        tab2[i]=tab[i];
        else
        tab2[i]=0;
}
cout<<"Liczby wieksze od zera to : ";
for(int j = 0;j < TabCount;j++)
{
        cout<<tab2[j]<<" ";
}

delete tab;
delete tab2;

cin.ignore();
getchar();
return 0;
}
 
Avatar użytkownika
szprota
Bladawiec
Bladawiec
 
Posty: 1
Dołączył(a): wtorek, 17 maja 2011, 21:19
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Windows 7 64BIT
Kompilator: DEV C++
Gadu Gadu: 0
    Windows XPFirefox

Re: Problem z przepisywaniem do tablicy

Nowy postprzez Cyfrowy Baron » środa, 18 maja 2011, 08:12

Czego was w tych szkoła teraz uczą, że tak prostych zadań, nie potraficie realizować?! :shock:

KOD cpp:     UKRYJ  
#include <iostream>
#include <cstdio>

using namespace std;

int tmain(void)
{
 int TabCount;

 cout << "Podaj wielkosc tablicy:\n";
 cin >> TabCount;

 int* tab  = new int[TabCount];

 cout << "Stworzyles tablice skladajaca sie z " << TabCount << " elementow.\n";

 for(int i = 0; i < TabCount; i++)
 {
  cout << "Podaj " << i + 1 << " element :\n";

  cin >> tab[i];
 }

 cout<<"Liczby wieksze od zera to : ";

 for(int i = 0; i < TabCount; i++)
 {
  if(tab[i] > 0) cout << tab[i] << " ";
 }


 delete tab;

 cin.ignore();
 getch();

 return 0;
}



Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Problem z przepisywaniem do tablicy

Nowy postprzez Pitek » środa, 18 maja 2011, 19:03

Cyfrowy Baronie myślę że chodziło o przepisanie wartości do drugiej stworzonej dynamicznie tablicy o rozmiarze jaką jest ilość tych dodatnich liczb a nie po kolei wypisywanie ich z czym myślę że szprota dał by sobie radę. Problem to chyba pozbycie się tych zer z przykładu powyżej czyli dla wartości wejściowych np. 1 -2 3 -4 5 otrzymać 1 3 5 a nie tak jak to jest wyżej 1 0 3 0 5. W pętli for w której następuje sprawdzenie czy liczba jest dodatnia oraz jej przepisanie do tej drugiej tablicy w razie liczby ujemnej, jest problem z indeksem tablicy z wartościami dodatnimi. Kiedy liczba jest ujemna nie dzieje się nic czyli element tablicy przyjmuje wartość 0 a "i" w pętli for leci dalej. Myślę ze o to tutaj chodzi. Nie zastanawiałem się nad tym jak to napisać ale myślę że trzeba by było odejmować jakąś wartość od indeksu tablicy z wartościami dodatnimi. Powiększać tą wartość w razie wystąpienia liczby ujemnej wtedy jak gdyby przy następnym cyklu pętli indeks tablicy zostaje jak w poprzednim.
No coś takiego.....
Komputer służy do tego aby ułatwić Ci pracę, której bez niego w ogóle byś nie miał.
E.Murphy
http://piotrekprogramy.pl
Avatar użytkownika
Pitek
Kreacjusz
Kreacjusz
 
Posty: 290
Dołączył(a): środa, 14 października 2009, 14:53
Lokalizacja: Rybnik/Wrocław
Podziękował : 43
Otrzymał podziękowań: 5
System operacyjny: Win 7 Ultimate 64bit SP1 / Ubuntu 19.04 LTS 64bit
Kompilator: Embarcadero RAD Studio XE2
SKYPE: pitek3010
Gadu Gadu: 7060047
    Windows XPFirefox

Re: Problem z przepisywaniem do tablicy

Nowy postprzez Cyfrowy Baron » czwartek, 19 maja 2011, 07:55

Skupiłem się na wypisywaniu wszystkich liczb większych od 0, ale wystarczy spojrzeć na mój kod i od razu widać jak powinno to wyglądać z dwiema tablicami.

KOD cpp:     UKRYJ  
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include <tchar.h>
#include <iostream.h>
#include <conio.h>
//---------------------------------------------------------------------------

using namespace std;

#pragma argsused


int main(void)
{
 int TabCount, TabCount2 = 0;

 cout << "Podaj wielkosc tablicy:\n";
 cin >> TabCount;

 int *tab  = new int[TabCount];
 int *tab2 = new int[TabCount];;

 cout << "Stworzyles tablice skladajaca sie z " << TabCount << " elementow.\n";

 for(int i = 0; i < TabCount; i++)
 {
  cout << "Podaj " << i + 1 << " element :\n";

  cin >> tab[i];

  if(tab[i] > 0)
  {
   tab2[TabCount2] = tab[i];
   TabCount2++;
  }
 }

 tab2 = (int *) realloc(tab2, TabCount2);

 cout << "Liczby wieksze od zera to : ";

 for(int i = 0; i < TabCount2; i++)
 {
  cout << tab2[i] << " ";
 }


 delete tab;
 delete tab2;

 cin.ignore();
 getch();

 return 0;
}
//---------------------------------------------------------------------------
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 4 gości