Práce v poli čísel – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Práce v poli čísel – C / C++ – Fórum – Programujte.comPráce v poli čísel – C / C++ – Fórum – Programujte.com

 

dean
~ Anonymní uživatel
3 příspěvky
1. 11. 2014   #1
-
0
-

zjistěte počet 3 místných čísel, které mají první a poslední číslici stejnou.... takhle zní program, který chcu vytvořit. zajímalo by mě, jakým způsobem na to mám jít. je mě jasný že vytvořím pole od 100 do 999 , ale co dál. nějaký nápad jak na to ? díky

Nahlásit jako SPAM
IP: 2a00:1028:8b40:171a:2d00:...–
lukas.balaz0
Super člen
1. 11. 2014   #2
-
0
-

#1 dean
Riešiť toto polom je zbytočné.

Načo ti je vôbec vytvárať takýto program bez vstupu ? Šak to máš normálne 9*10.

Ak by si mal ako vstup koľko ciferné číslo to má byť, tak to je 9*(10^(x-2)).

Ak máš na vstupe x a máš zistiť počet x-ciferných palindrómov, tak to máš tiež nejakú jednoduchú kombinatoriku. Ale nepotrebuješ cykly a už vôbec nie polia.

Nahlásit jako SPAM
IP: 80.242.41.–
dean
~ Anonymní uživatel
3 příspěvky
1. 11. 2014   #3
-
0
-

#2 lukas.balaz
tohle je zadání jednoho z úkolu do zápočtu na vš. ale když chcu vypsat "počet 3 místných čísel, které mají první a poslední číslici stejnou", tak přeci musím pracovat s polem ne . Všechny ty čísla se nachází v intervalu od 100 do 999 , z toho jsem chtěl vycházet.

Nahlásit jako SPAM
IP: 2a00:1028:8b40:171a:2d00:...–
lukas.balaz0
Super člen
1. 11. 2014   #4
-
0
-

#3 dean
Ak som správne pochopil, tá úloha je bez vstupu.

To znamená, že výsledok je 90. Načo robiť program ktorý neurobí nič iné len vypíše 90 ? Ak to chceš vypočítať, tak kombinatorikou 9 možností pre prvé číslo a 10 pre druhé a tretie je rovnaké ako prvé. Takže 9*10. Ak to je naozaj bez vstupu, tak potrebuješ jeden riadok: vypis(9*10) (neviem či C alebo C++, takze pseudokod)

A ak tam je vstup tak napiš zadanie ešte raz tak, aby som pochopil.

Nahlásit jako SPAM
IP: 80.242.41.–
KIIV
~ Moderátor
+43
God of flame
1. 11. 2014   #5
-
0
-

#3 dean
na to ti staci obycejny pocitadlo ... a jelikoz je prvni a posledni cislice stejna, tak staci pocitat od 10 do 99

(abys stejne zjistil, ze to da proste konstantu 90)

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
dean
~ Anonymní uživatel
3 příspěvky
1. 11. 2014   #6
-
0
-

#4 lukas.balaz
-to zadání je tak jak jsem ho napsal, akorát to má být řešené přes pole .... děláme "práce v poli" a dostal jsem tenhle ukol

- v C

Nahlásit jako SPAM
IP: 2a00:1028:8b40:171a:2d00:...–
lukas.balaz0
Super člen
1. 11. 2014   #7
-
0
-

 JA viem skôr v C++ tak dúfam že nejakú chybu neurobím (ten kod som netestoval):

bool pole[900];
for(int i=0;i!=900;++i)
{
    if((i+100)/100==(i+100)%10)pole[i]=true;
    else pole[i]=false;
}
int v=0;
for(int i=0;i!=900;++i)
{
   if(pole[i])++v;
}
printf("%d",v);

ALE NAČO TU POUŽÍVAŤ POLE ?? akože ak by boli kázané cykly, tak nepoviem, ale pole ??

Nahlásit jako SPAM
IP: 80.242.41.–
vitamin+8
Grafoman
1. 11. 2014   #8
-
0
-

   

char pole[] = {'9', '0', '\0'};

puts(pole);

:)

Nahlásit jako SPAM
IP: 95.105.186.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
lukas.balaz0
Super člen
1. 11. 2014   #9
-
0
-

#8 vitamin
alebo

int pole[] = {0,1,2};
printf("90");
Nahlásit jako SPAM
IP: 80.242.41.–
ingiraxo+15
Grafoman
2. 11. 2014   #10
-
0
-

 hmm, trochu špatný zadání na zápočet, když cyklus nebo pole je naprosto zbytečný.. ale toto by mělo uspokojit obě strany :-D

int ziskejPocet(int pocetRadu) // 3
{
    int pole[100];
    int sum = 0;
    // nějaká práce s polem, aby VŠ byla spokojená
    for (int i = 0; i < sizeof(pole) / sizeof(int); i++) {
        *(pole + i) = rand() + i * pocetRadu;
        sum += *(pole + i);
    }
    return 9 * 9 + 9; // získání výsledku
}
Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
JoDiK
~ Anonymní uživatel
987 příspěvků
2. 11. 2014   #11
-
0
-

#1 dean
Asi to zadání přecejen není celé. Pokud to opravdu mý být zadání pro výuku práce s polem, tak bych ho viděl spíš takto: Naplňte pole o velikosti x náhodnými hodnotami. Zjistěte počet 3 místných čísel, které mají první a poslední číslici stejnou.

Neboli procvičí se jak procházení polem, tak zjišťování počtu cifer a rozdělení na jednotlivé cifry.

Nahlásit jako SPAM
IP: 88.103.228.–
lukas.balaz0
Super člen
2. 11. 2014   #12
-
0
-

Áno aj mne to napadlo.

V takom prípade celá pointa kódu bude v prechádzaní pola a hádzania čísel do tejto podmienky:

if(i>=100 && i<1000 && i/100==i%10)
Nahlásit jako SPAM
IP: 80.242.41.–
ingiraxo+15
Grafoman
2. 11. 2014   #13
-
0
-

#12 lukas.balaz
ta podmínka by nefungovala správně, na některý případy asi jo, ale né vždy proběhne u čísel, který začínají i končí stejným číslem

osobně bych to řešil porovnáváním znaku u prvního a posledního čísla (nejjednodušší co mě v tuhle chvíli napadá) 

// nejaky cyklus nahodnych cisel, kde "number" je aktualni cislo z pole

if (number > 99 && number < 1000) {
   char buffer[sizeof(int)];
   sprintf(buffer, "%d", number);

   if (*buffer == *(buffer + sizeof(int) - 2)) {
      // vysledek (vypsani "number" nebo ulozeni do pole)
   }
}
Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
lukas.balaz0
Super člen
2. 11. 2014   #14
-
0
-

#13 ingiraxo
Ja som to včera skúšal spustiť pre všetky čísla od 100 až po 999 a vyhodilo mi, že počet je 90, takže v poriadku. Teda skúšal som konkrétne ten kód čo som písal #7

Nahlásit jako SPAM
IP: 80.242.41.–
ingiraxo+15
Grafoman
2. 11. 2014   #15
-
0
-

#14 lukas.balaz
pokud máš postoupnost  od 100 do 999 tak to je ok, ale pokud by bylo pole náhodných čísel (řekněme od 0-2000), tak tohle řešení neprojde :) A přislo mi, že si odpovídal na pole náhodných čísel, pokud ne tak jsem nic nenapsal ;-)

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
lukas.balaz0
Super člen
2. 11. 2014   #16
-
0
-

#15 ingiraxo
Veď cez tú podmienku neprejdú žiadné NEtrojciferné čísla. A hľadáme všetky TROJciferné čísla, ktorých prvá a posledná číslica je rovnaká .. nooo teda vlastne ani nevieme čo hľadáme :)

Nahlásit jako SPAM
IP: 80.242.41.–
ingiraxo+15
Grafoman
2. 11. 2014   #17
-
0
-

#16 lukas.balaz
teď ti nějak nerozumim co to plácáš, mám dojem, že si něco špatně pochopil ;)

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
lukas.balaz0
Super člen
2. 11. 2014   #18
-
0
-

#17 ingiraxo

Zadanie o ktorom sa tu teraz bavíme je to, čo napísal JoDiK, že by "mohlo" byť:

Naplňte pole o velikosti x náhodnými hodnotami. Zjistěte počet 3 místných čísel, které mají první a poslední číslici stejnou.

tá podmienka vracia true len vtedy, ak je číslo trojciferné a prvú a poslednú cifru má rovnakú. Takže ak číslo nie je 3ciferné, automaticky vracia false a na delenie 100 a modulovanie 10 sa ani nepozerá.Ak by hrubo vytlačená časť v zadaní nebola, tak by to nefugovalo. Ale mám pocit, že s tou hrubo vytlačenou časťou počítaš aj ty v #13. Takže nájdi číslo, pre ktoré by sa naše riešenia správali inak.

Nahlásit jako SPAM
IP: 80.242.41.–
ingiraxo+15
Grafoman
2. 11. 2014   #19
-
0
-

#18 lukas.balaz
vim jaký je zadání... ale jak si psal tu podmínku, tak to "i" jsem bral jako index z cyklu a ne jako aktualni cislo, proto jsem psal, že to moc dobře nevychází, protože jsem přepokladal, že vycházíš z indexace pole

ale jinak ano, pokud "i" bude aktuální číslo a né index (možná si to mohl pojmenovat jinak), tak máš pravdu ;)

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
lukas.balaz0
Super člen
2. 11. 2014   #20
-
0
-

#19 ingiraxo
aha jasné, máš pravdu ... toto mi nenapadlo :D

Nahlásit jako SPAM
IP: 80.242.41.–
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, 23 hostů

Podobná vlákna

Opakování čísel v poli — založil Daran

Počet čísel v poli — založil TomasekTom

Práce s poli — založil Elektron112

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ý