Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C++ IF.

Dobrý den. Mám vytvořené pole pomocí příkazu new a chci označit čísla,která jsou dělitelná čísly v poli v rozmezí x,y , ale zjístil jsem ,že musím definovat if a jeho podmínky už předem, ale nějak nevím jak.

Jediné co mě napadá je udělat cyklus v němž se všechna čísla jenž jsou dělitelné číslem pole a následně je uložit do jiného pole(např cisla) a pak "posunout pole dělitelů na další číslo" a následně prověřit čísla pole cisla číslem pole dělitelů a tak pokračovat dokud nebude hodnota pole dělitelů NULL.... a pak vypsat čísla v poli cisla. .............................

Ale to je jen teorie blba co se v tom moc nevyzná. No, raději se vrátím zpět - existuje nějaký příkaz jimž bych mohl přidávat do kódu IF a jeho podmínky během chodu programu? Předem moc děkuji za odpovědi

Předmět Autor Datum
Programy, které modifikují samy sebe sice existovat mohou a taky existují, ale rozhodně nejde o obvy…
Wikan 13.10.2016 18:12
Wikan
Hmm :-/, to je škoda , chtěl jsem si vytvořit program, který je nezávislý na počet dělitelů jenž se…
SiBa 13.10.2016 18:31
SiBa
Však to pořád můžeš. Na to nepotřebuješ, aby ten program měnil sám sebe.
Wikan 13.10.2016 18:33
Wikan
Pravda, ale ten kod bude zadrhovačka(pro mě 100%).
SiBa 13.10.2016 18:46
SiBa
No nevím, jestli jsem správně pochopil zadání, ale tohle by měly zvládnou dva cykly. Takže primitivn…
Wikan 13.10.2016 18:48
Wikan
Pravda, ale ja se zamotal v poli.
SiBa 13.10.2016 19:32
SiBa
No môžeš vytvoriť program, ktorý vytvorí iný program. Alebo vytvoríš rovno správny algoritmus.
čitateľ 13.10.2016 18:13
čitateľ
Hmm, asi to už mám, ale pokaždé mi to crashne, poradí mi někdo? Přiložím kod(snad jsem nic nevynecha…
SiBa 13.10.2016 20:01
SiBa
ked nieco crashne tak to nieco napise alebo si to mozes v debuggeri skontrolovat ze kde a preco to c…
MM.. nereg 13.10.2016 21:35
MM.. nereg
v tych cykloch mas totalny bordel, bb je najskor furt okolo 5 takze prvy cyklus asi ani neskonci nik…
MM.. nereg 13.10.2016 21:41
MM.. nereg
Díky, už mi to funguje jak má.... když jsem se na to koukl dnes tak jsem musel být asi mimo když jse…
SiBa 14.10.2016 13:59
SiBa
#include <iostream> #include <windows.h> using namespace std; void cistka() { system("CLS"); } int… poslední
SiBa 14.10.2016 14:13
SiBa

Hmm, asi to už mám, ale pokaždé mi to crashne, poradí mi někdo? Přiložím kod(snad jsem nic nevynechal):

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

void cistka()
{
system("CLS");
}


int main()
{
   int Odk,dok;
   int kod;
   cout <<" Od kolika: "<< ' ';
    cin >> Odk;
   cout <<" Do kolika: "<< ' ';
    cin >> dok;
   cout <<" Kolik delitelu: " <<' ';
    cin >> kod;
    int *pepe = new(nothrow) int[kod];
    for(int tt = 0;tt < kod;++tt)
    {
    cout << " " << tt+1 << ". delitel:" <<' ';
    cin >> pepe[tt];
    }
    int *ee = new(nothrow) int[dok-Odk];
    int *veve = new(nothrow) int[dok-Odk];
   cistka();
   for(;Odk <= dok;++Odk)
   {

    veve[0] = Odk;
    int pp = 0;

    for(int bb = 0;bb < kod;++bb)
    {
    if(veve[0]%bb==0)
    {
    ee[pp]= veve[0];
    }
    else
    {
    bb = 5;
    }
    }
   pp = ++pp;
   }
   for(int ii=0;ii < dok;++ii)
   {
    cout << ee[ii] << endl;
   }
    return 0;

}

v tych cykloch mas totalny bordel, bb je najskor furt okolo 5 takze prvy cyklus asi ani neskonci nikdy a pp sa zvysi az dokial to necrashne.
1) prepis vsetjy nazvy premennych na jasne oznacenie vyznamu. Ziadne pepe bebe pp veve ani podobne hovadiny.
2) najprv si ujasni co sa bude zvysovat od kolko po kolko a preco. Preber si ten algoritmus offline v hlave alebo v niecom inteligentnom.
3) az potom zacni pisat nejake cykly.

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

void cistka()
{
system("CLS");
}

int main()
{
int Odk,dok;
int kod;
cout <<" Od kolika: "<< ' ';
cin >> Odk;
cout <<" Do kolika: "<< ' ';
cin >> dok;
cout <<" Kolik delitelu: " <<' ';
cin >> kod;
int *delitele = new(nothrow) int[kod];
for(int tt = 0;tt < kod;++tt)
{
cout << " " << tt+1 << ". delitel:" <<' ';
cin >> delitele[tt];
}
int rozdil = dok - Odk;
int *vpole = new(nothrow) int[rozdil];

int a = 0;
for(;Odk <= dok;++Odk)
{

for(int bb = 0;bb < kod;++bb)
{
if(Odk%delitele[bb]==0)
{
vpole[a]= Odk;
}
else
{
vpole[a]= 0;
bb = kod;
}
}
a = a + 1;
}
for(int ii=0;ii < dok;++ii)
{
if(vpole[ii]!=0)
{
cout << vpole[ii] << endl;
}

}
return 0;

}

Zpět do poradny Odpovědět na původní otázku Nahoru