• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z programem z tablicami

Object Storage Arubacloud
0 głosów
244 wizyt
pytanie zadane 3 września 2015 w C i C++ przez Jaszczer Początkujący (250 p.)

Witam wykonuję właśnie taki program: program, który wyznaczy wszystkie pary kolejnych elementów tablicy o tej własności, że jeden element z pary jest kwadratem drugiego, lecz nie wiem dlaczego dla nie których par np. 5 i 25, 9 i 81, 15 i 225, program ich nie wypisuje w konsoli. Może ktoś sprawdzić co robię źle bądź co jest nie tak? O to mój kod:

#include <iostream>
#include <math.h>
using namespace std;

int main()
{
    int n;
    cout<<"Podaj rozmiar tablicy: ";
    cin>>n;

    int a[n];

    for(int i=0; i<n; i++)
    {
        cout<<"Podaj element "<<i<<" tablicy: ";
        cin>>a[i];
    }

    int b[n],c[n],i=0,k=1,m=0;

    do
    {
        if(a[k]==pow(a[i],2))
        {
            b[m]=a[k];
            c[m]=a[i];
            m++;
        }
        k++;
        i++;
    }while(k<n);

    cout<<endl<<"Pary kolejnych elementow tablicy spelniajacych warunek: ";

    for(int i=0; i<m; i++)
    {
       cout<<endl<<c[i]<<" "<<b[i];
    }


    return 0;
}

 

2 odpowiedzi

+1 głos
odpowiedź 3 września 2015 przez Rogargol Pasjonat (16,600 p.)
wybrane 6 września 2015 przez Jaszczer
 
Najlepsza

Tutaj masz działający kod, zobacz sobie i porownaj co u Ciebie jest zle.


#include <iostream>
#include <math.h>
#include <conio.h>

using namespace std;

int main()
{
    int n;
    cout<<"Podaj rozmiar tablicy: ";
    cin>>n;

    double *a = new double[n];

    for(int i=0; i<n; i++)
    {
        cout<<"Podaj element "<<i<<" tablicy: ";
        cin>>a[i];
    }

    for(int i1 = 0; i1<n; i1++)
       for(int i2 = i1+1; i2<n; i2++)
           if(a[i2] == pow(a[i1],2) || a[i1] == pow(a[i2],2))
               cout<<a[i1] << " oraz "<<a[i2] <<endl;


    getch();
    return 0;
}

 

komentarz 3 września 2015 przez Jaszczer Początkujący (250 p.)

Tak wyglada teraz moj kod: 

#include <iostream>
#include <math.h>
#include <cmath>
using namespace std;

int main()
{
    int n;
    cout<<"Podaj rozmiar tablicy: ";
    cin>>n;

    int a[n];

    for(int i=0; i<n; i++)
    {
        cout<<"Podaj element "<<i<<" tablicy: ";
        cin>>a[i];
    }

    for(int i=0; i<n; i++)
    {
        for(int j=1; j<n; j++)
        {
            if(a[i]==pow(a[j],2)||a[j]==pow(a[i],2))
                cout<<"Pary to "<<a[i]<<" oraz "<<a[j]<<endl;
        }
    }

    return 0;
}

Wydruk z konsoli, nie wiem dlaczego nie drukuje tej pary?

Wydruk z konsoli

komentarz 3 września 2015 przez Rogargol Pasjonat (16,600 p.)
Szczerze mowiac nie widze co jest nie tak, ale zarwalem nocke na rybach i ogolnie nie bardzo ogarniam. Moj kod dziala, wiec najwyzej zmodyfikuj go sobie tak zeby Ci pasowalo :)
komentarz 3 września 2015 przez przeCinek19 Użytkownik (650 p.)

Brakło nawiasów do warunku :)

 if((a[i]==pow(a[j],2))||(a[j]==pow(a[i],2)))

 

komentarz 3 września 2015 przez Rogargol Pasjonat (16,600 p.)
U mnie to dziala bez nawiasow... zreszta w tym ukladzie one nic nie powinny zmieniac
komentarz 4 września 2015 przez Jaszczer Początkujący (250 p.)
Hmm, nie wiem, może to problem kompilatora? Dodałem jeszcze nawiasy i dalej jest to samo, programuje w CodeBlocks 13.12
komentarz 4 września 2015 przez Rogargol Pasjonat (16,600 p.)
A wklejales moj kod bez zmian? Jesli moj kod u Ciebie nie dziala, to cos jest nie tak
komentarz 6 września 2015 przez Jaszczer Początkujący (250 p.)
Teraz już wszystko, działa, problem się rozwiązał gdy zmieniłem typ tablicy z int na double. Dzięki za pomoc.
0 głosów
odpowiedź 3 września 2015 przez Rogargol Pasjonat (16,600 p.)

Moim zdaniem powinienes to zrobic w dwoch petlach for np:

for(int i1 = 0; i1<n; i1++)

   for(int i2 = i1+1; i2<n; i2++)

       if(a[i1] == pow(a[i2],2))
           cout<<a[i1] << " oraz "<<a[i2] <<endl;

zobacz sobie po kolei jakie wartosci maja zmienne "i" i "k", nie sprawdzasz wszystkich mozliwych zaleznosci  i tu jest blad Twojego programu

komentarz 3 września 2015 przez Jaszczer Początkujący (250 p.)
Wykonałem tak jak zaleciłeś, dalej jest to samo co w moim programie jak wpisuje 9 i 81 to nie widzi takiej pary, nie wiem w czym jest problem?
komentarz 3 września 2015 przez Rogargol Pasjonat (16,600 p.)
wklej kod jak to masz teraz zrobione

Podobne pytania

0 głosów
4 odpowiedzi 234 wizyt
pytanie zadane 20 października 2015 w C i C++ przez Piotr Karaś Początkujący (460 p.)
0 głosów
3 odpowiedzi 167 wizyt
pytanie zadane 19 października 2015 w C i C++ przez Piotr Karaś Początkujący (460 p.)
0 głosów
1 odpowiedź 191 wizyt
pytanie zadane 27 września 2015 w C i C++ przez TenTakiTam Bywalec (2,460 p.)

92,632 zapytań

141,500 odpowiedzi

319,878 komentarzy

62,011 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...