Zdravim, sem v programování začátečník a potřeboval bych pomoct se skriptem. Mám za úkol:
Napište program, který otestuje generátor náhodných čísel od 0 do 9. Program vygeneruje n-krát náhodné číslo z rozsahu 0 až 9 (n je zadáno z klávesnice) a uloží si do pole absolutní četnosti jednotlivých generovaných čísel. Na obrazovku vypíše tabulku s absolutními a relativními četnostmi.
První část mám, ale nevim jak na tabulku.
Popřípadě jakoukoliv kritiku přijímám.
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define random(num) (rand()%(num))
void randomize(void)
{
srand((unsigned) time(NULL));
}
int main(int argc, int i, int n, char **argv)
{
printf("Nahodna cisla od 0 do 9\n");
scanf("%d",&n);
for(i=0; i<n; i++)
printf("%d\n", rand()%10);
system("PAUSE");
return 0;
randomize();
}
C+ Help
Re: C+ Help
To C+ má být C nebo C++? Program máš sice v Céčku, ale pro jistotu se ptám.
Kde jsi viděl tohle?
To v závorce jsou argumenty předávané z příkazové řádky, a mají vypadat takhle:
Nebo takhle, což je v podstatě totéž:
Jenže ty je v tomhle programu určitě používat nebudeš, takže stačí když překladači sdělíš že program nic přijímat nemá:
Ty lokální proměnné i a n si pak deklaruješ až uvnitř main(), takže za složenou závorkou {.
Nejdřív si musíš do pole sečíst kolikrát ti které číslo padlo:
Samozřejmě je potřeba to pole nejdřív naplnit nulami, buď přímo v inicializaci nebo pomocným cyklem na začátku programu.
A na konci programu to pole normálně vypíšeš dalším cyklem, aby ti vyšlo něco jako tabulka:
A to randomize() dej na začátek programu, takhle by ti nebylo nic platné. Ty musíš seed nastavit ještě předtím než poprvé použiješ rand(), a navíc ho máš až za returnem, který ti program ukončí, takže by se vlastně vůbec nevykonal.
Kdo ten název vymyslel? Příkaz RANDOMIZE jsem používal před lety v BASICu :)
Kde jsi viděl tohle?
Kód: Vybrat vše
int main(int argc, int i, int n, char **argv)
To v závorce jsou argumenty předávané z příkazové řádky, a mají vypadat takhle:
Kód: Vybrat vše
int main(int argc, char **argv)
Nebo takhle, což je v podstatě totéž:
Kód: Vybrat vše
int main(int argc, char *argv[])
Jenže ty je v tomhle programu určitě používat nebudeš, takže stačí když překladači sdělíš že program nic přijímat nemá:
Kód: Vybrat vše
int main(void)
Ty lokální proměnné i a n si pak deklaruješ až uvnitř main(), takže za složenou závorkou {.
Nejdřív si musíš do pole sečíst kolikrát ti které číslo padlo:
Kód: Vybrat vše
int i,n,cislo,pole[10];
for (i=0; i<n; i++)
{
cislo=random(10);
++pole[cislo];
}
Samozřejmě je potřeba to pole nejdřív naplnit nulami, buď přímo v inicializaci nebo pomocným cyklem na začátku programu.
A na konci programu to pole normálně vypíšeš dalším cyklem, aby ti vyšlo něco jako tabulka:
Kód: Vybrat vše
Četnost čísel:
0: 85
1: 64
2: 105
3: 92
4: 69
5: 81
6: 91
7: 90
8: 85
9: 73
A to randomize() dej na začátek programu, takhle by ti nebylo nic platné. Ty musíš seed nastavit ještě předtím než poprvé použiješ rand(), a navíc ho máš až za returnem, který ti program ukončí, takže by se vlastně vůbec nevykonal.
Kdo ten název vymyslel? Příkaz RANDOMIZE jsem používal před lety v BASICu :)
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
-
- nováček
- Příspěvky: 11
- Registrován: květen 14
- Pohlaví:
- Stav:
Offline
Re: C+ Help
Díky kouknu na to a poupravim.. dělám to v Dev C++ ale je to jen C.
Toto bylo v příloze úkolu jak máme začít:
int main(int argc, char **argv) to int i a n sem si tam přidal já.
Název RANDOMIZE je také uveden u tohoto úkolu a vymyslel ho jeden pan profesor na ČVUT FD a ostatní profesoři se toho drží.
Toto bylo v příloze úkolu jak máme začít:
int main(int argc, char **argv) to int i a n sem si tam přidal já.
Název RANDOMIZE je také uveden u tohoto úkolu a vymyslel ho jeden pan profesor na ČVUT FD a ostatní profesoři se toho drží.
Re: C+ Help
Tak to jsi je přidal na špatné místo, takhle bys to rozbil.
Kdyžtak si zapamatuj tuhle kostru, to je první věc co si napíšu když začínám nějaký program:
To je minimum aby se to dalo zkompilovat, pak už jen místo těch komentářů přidávám co je potřeba.
Řekl bych že on ten název skutečně nevymyslel, jen použil to co znal z dřívějška. Zajímalo by mě na kterém osmibitovém mikropočítači kdysi začínal: http://en.wikibooks.org/wiki/BASIC_Prog ... Generation
Jo, já to dělám zrovna tak.
Kdyžtak si zapamatuj tuhle kostru, to je první věc co si napíšu když začínám nějaký program:
Kód: Vybrat vše
#include <stdio.h>
int main(void)
{
/* proměnné */
/* kód */
return 0;
}
To je minimum aby se to dalo zkompilovat, pak už jen místo těch komentářů přidávám co je potřeba.
Řekl bych že on ten název skutečně nevymyslel, jen použil to co znal z dřívějška. Zajímalo by mě na kterém osmibitovém mikropočítači kdysi začínal: http://en.wikibooks.org/wiki/BASIC_Prog ... Generation

Jo, já to dělám zrovna tak.
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti