Pole - opakující se čísla – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pole - opakující se čísla – C / C++ – Fórum – Programujte.comPole - opakující se čísla – C / C++ – Fórum – Programujte.com

 

vidonv
~ Anonymní uživatel
2 příspěvky
18. 9. 2012   #1
-
0
-

Dobrý den,

může mi někdo poradit s programem?

Potřebuji nadefinovat pole o 6-ti prvcích - v rozmezí 1-49 a žádný se nesmí opakovat.

Pole nadefinuji - to je OK, zda jsou čísla v rozmazí taky zjistím ale mám problém s opakováním - program vypise ze cislo bylo již zadáno a i u prvního zadávaného čísla (!) nevíte co s tím?Zdroják přidávám... V programu je nadefinovane i  druhe pole - toho si nevsimejte :)

Díky za pomoc.

#include <iostream>
#include <stdio.h>;
#include <time.h>;
#include <stdlib.h>;


int main ()
{
   

int x[6];
int y[6];
int j = 0;
int pom;
int i;
int a;
int dodatkove = 0;

using namespace std;
srand( (unsigned) time(NULL));        /*Časovač generátoru náhodných čísel*/


cout << " Vitejte v programu Sportka.";
cout << "\n";
cout << " Zadej 6 cisel v rozmezi od 1 do 49 a cisla se nesmi opakovat:";
cout << "\n";

for (i=0;i<6;i++)                    /*Uživatel zadá jím zvolená čísla do pole*/
{
       ZACATEK:                       /*Návěstidlo*/                     
    cin >> x[i];  
          a++;
         
         
      if ((x[i]<1)||(x[i]>49))                                                  /*Zjištění zda je číslo v rozmezi*/
     
      {
                
              cout<<"Cislo neni v rozmezi 1-49 - zadejte prosim jine";
              cout<<"\n";
              goto ZACATEK;                                                     /*Funkce goto*/
              }
             
              if (x[i] != x[i-1])
              {

              {
                      cout<<"   Cislo neplnuje podminky";
                       cout<<"\n";
                       goto ZACATEK;
                       }

Nahlásit jako SPAM
IP: 78.80.64.–
vidonv
~ Anonymní uživatel
2 příspěvky
18. 9. 2012   #2
-
0
-

#1 vidonv

Omlouvám se - mám tam chybu: patří to takhle ale problém není stále vyřešen :(


if (x[i] = x[i-1])

              {

              {
                      cout<<"   Cislo neplnuje podminky";
                       cout<<"\n";
                       goto ZACATEK;
                       }
                       }

Nahlásit jako SPAM
IP: 78.80.64.–
liborb
~ Redaktor
+18
Guru
18. 9. 2012   #3
-
0
-

programujte.com/clanek/2011122300-vyvojove-diagramy-priklady-s-vyuzitim-poli-19-dil/?desktop=1

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 82.145.209.–
vitamin+8
Grafoman
18. 9. 2012   #4
-
0
-

#2 vidonv


Najprv sa skús vyhnúť zbytočnému používaniu goto keď ti úplne stačí použiť if-else.

Ten for ti prebehne presne 6x bez ohľadu na to či sa podarí vložiť prvok do poľa. Lepšie bude použiť while(i<6) a i inkrementovať až po úspešnom vložení prvka do poľa. Ak chceš zistiť či už sa prvok nenachádza v poli, tak musíš vytvoriť vnorený cyklus ktorý bude testovať všetky doposial vložené prvky v poli s prvkom ktorí tam chceš vložiť alebo môžeš použiť funkciu count ktorá ti zo zvoleného rozsahu vráti počet výskytov definovaného prvku. Napr:

if(count(x, x+i, cislo))/*chybová hláška*/;   //i= počet prvkov v poly
else /*vloží prvok do poľa*/;
Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 38 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý