Prosím o pomoc, spěchá - jazyk C++ – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Prosím o pomoc, spěchá - jazyk C++ – C / C++ – Fórum – Programujte.comProsím o pomoc, spěchá - jazyk C++ – C / C++ – Fórum – Programujte.com

 

SYS.ErrorCZ
~ Anonymní uživatel
2 příspěvky
3. 1. 2009   #1
-
0
-

Píšu seminární práci v jazyce C++ a zasekl jsem se na jednom bodě. Pomocí for cyklu uživatel zadá 10 čísel od 1 do 100 a po zadání se vygeneruje 10 náhodných čísel, také v rozpětí od 1 do 100. Problém u toho, že potřebuju porovnat těchto 10 čísel, každé s každým a shodná čísla vypsat na obrazovku. Přikládám prozatimní zdrojový kód s prosbou o rychlou radu, nebo pukud znáte jiný způsob, tak prosím o pomoc.
Zdrojový kód:

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

int main()
{
int x=10;
int vstup [10];
int i, losovana;

srand((unsigned int) time(NULL));


printf("Vitejte v nasem hernim systemu, Prosim zadejte 10 cisel v rozsahu od 1 do 100\n");

for (i=1;i<11;i++) //for cyklus pro zadani cisel zvolenych uzivatelem
{
printf("Zadej %d. cislo: ",i);
scanf("%d,",&vstup[i]);
}

printf("\n\n\n");
printf ("Tebou zvolena cisla jsou: \n\n");

for(i=1;i<=10;i++) //for cyklus pro nacteni 10 cisel zadanych uzivatelem
{ if(i!=1)
printf(" |");
printf(" %d",vstup[i]);
}

printf("\n\n\n");
printf("Losovana cisla jsou: \n\n");

for(i=1;i<=10;i++) //for cyklus pro vypocet 10 nahodnych cisel
{ if(i!=1)
printf(" |");
printf(" %d",losovana);
losovana = (rand() % 100) + 1; //vypocet nahodneho cisla ze systemoveho casu
}
printf("\n\n\n");


system("pause");
}


Předem děkuji za odpověď. :)

Nahlásit jako SPAM
IP: 90.178.76.–
KIIV
~ Moderátor
+43
God of flame
3. 1. 2009   #2
-
0
-

a v cem je problem?

nacteny je mas v poli... co ti brani v tom cyklu kde generujes ty nahodny rovnou srovnat s tema nactenejma...

btw - trochu neprehledny odsazovani..

Nahlásit jako SPAM
IP: 80.250.27.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Bald3rr0
Super člen
3. 1. 2009   #3
-
0
-

To SYS.ErrorCZ : Vezmeš první číslo ze vstupních a porovnáš ho s každým pvkem v poli generovaných čísel. To samé s druhým, třetím, až desátým vstupním prkvem. Pokud se některá čísla budou shodovat, vypíšeš. Pokud ne, porovnáš další.

Nahlásit jako SPAM
IP: 82.100.0.–
SYS.ErrorCZ
~ Anonymní uživatel
2 příspěvky
3. 1. 2009   #4
-
0
-

to jsem si myslel, bohužel, nevím, jak to přesně udělat, pokud by jste byl někdo tak laskav a poskytl mi nějakou ukázku, byl bych věděčný

Nahlásit jako SPAM
IP: 86.49.18.–
Bald3rr0
Super člen
3. 1. 2009   #5
-
0
-

To SYS.ErrorCZ : Budou to dva vnořené cykly for, v jednom budeš inkrementovat vstupní čísla a v tom vnořeném čísla náhodná.
Jde o to, že máš i vstupních čísel i <0, 9>, a počet náhodných čísel n <0, 9> a musíš porovnat každé číslo i s každým číslem n. Takže musíš testovat, zda i[0] == n[0] ... i[0] == n[9] ... i[9] == n[9].

for(int vstup = 0; vstup < 10; vstup++)

for(...)
kontrola, případně výpis

Nahlásit jako SPAM
IP: 82.100.0.–
Grungy0
Super člen
4. 1. 2009   #6
-
0
-

To SYS.ErrorCZ : Dovolím si ťa trochu poopravovať a možno aj naviesť na správny smer.
Základný algoritmus bude vyzerať takto:
1. Načítaš čísla od užívateľa do pola vstup[10]
2. Vygeneruješ čísla zas do pola losovanie[10]
3. Porovnáš každý prvok s každým podla indexov presne tak ako ti radil Bald3rr, čiže v cykle porovnáš prvé z prvého pola zo všetkými z druhého pola, druhé z prvého pola z ostatnými z druhého pola ... atd.

No vypisovanie som tam nepísal (dúfam že ho zvládneš a budeš vedieť kam ho dať).
A teraz prejdem k pár začiatočníckym chybám ktoré som postrehol v tom tvojom kuse kódu. Na začiatku som si všimol, že más deklarované pole vstup[10], ale cyklus pri jeho vypisovaní máš for(i=0; i<=10; i++) čo je samozrejme ZLE. Tvoje pole prvkov je totižto deklarované od vstup[0]...vstup[9] čo znamená že cyklus si musíš napísať ako for(i=0; i<10; i++). Takže si prosím zmeň všetky takéto cykli.
Ďalej v cykle pre generovanie náhodných čísel si ich načítaj radšej do pola, ale hlavne ich najprv vygeneruj a následne až vypisuj, pretože v tom tvojom kóde to robíš presne naopak.

Na záver dúfam že som trochu pomohol pri tvojich myšlienkových pochodoch, tú ťažšiu časť už musíš zvládnuť ty.

Nahlásit jako SPAM
IP: 213.215.118.–
Prvý náznak hlúposti, je pocit geniality.
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, 28 hostů

Podobná vlákna

Jazyk C -Vysvetlenie, pomoc — založil prometheus7

Prosim pomoc v c++ — založil miska

Prosím o pomoc — založil Jamarson23

C - prosim o pomoc — založil krajco

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ý