Seite 1 von 1
Kleine Frage zu C/C++
Verfasst: Donnerstag 18. Mai 2006, 21:11
von murph
ich möchte an einen C-Skript
Code: Alles auswählen
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
int i, j;
srand((unsigned)time(NULL));
while(1) {
i = 1+(int) (350*rand()/(RAND_MAX+1.0));
j = rand() % 350;
printf("%i\n", j);
}
return 0;
}
diese Dauerschleife möchte ich begrenzen, sodass ich nur 10, 100, 1000, ...
Ergebnisse bekomme. Kann das wer hier?
Verfasst: Donnerstag 18. Mai 2006, 22:06
von BlackJack
Ja das kann wer:
Code: Alles auswählen
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
int i, j;
srand((unsigned) time(NULL));
for (i=0; i<10; ++i) {
/* i = 1+(int) (350*rand()/(RAND_MAX+1.0)); */
j = rand() % 350;
printf("%i\n", j);
}
return EXIT_SUCCESS;
}
Da Du sowieso nur `j` benutzt hast, habe ich `i` zum Schleifenzähler umfunktioniert.
Verfasst: Freitag 19. Mai 2006, 14:44
von murph
ok, das war schonmal ganz gut (
),
Code: Alles auswählen
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
int i, j;
srand((unsigned) time(NULL));
for (i=0; i<[color=red]x[/color]; ++i) {
j = rand() % 350;
printf("%i\n", j);
}
return EXIT_SUCCESS;
}
aber wie mache ich, dass der Zielwert x über einen parameter übergeben wird?
Verfasst: Freitag 19. Mai 2006, 16:01
von ryu
Die Argumente werden in C als Argumente der main() Funktion übergeben. Das sieht dann ca. so aus:
Wobei argc die Anzahl der Argumente enthält, argv die Argumente selber.
Verfasst: Freitag 19. Mai 2006, 17:17
von murph
genau das etwas ausführlicher bitte.
da ist der nächste Punkt: Wie greife auf diese Variable denn zurück?
Ich habe keine Ahnung von C/C++, versuche mich daran mal n bissl.
Aber es wäre nett, wenn jemand mir das sonst beantworten könnte...
Verfasst: Freitag 19. Mai 2006, 17:22
von querdenker
Hi murph!
Auch wenn das jetzt ein wenig nach RTFM klingt:
C von A bis Z
mfg, querdenker
Verfasst: Freitag 19. Mai 2006, 22:09
von BlackJack
`argc` enthält die Anzahl der Argumente und `argv` ist ein Feld mit Zeichenketten der einzelnen Argumente. `argc` entspricht ``len(sys.argv)`` in Python und `argv` entspricht `sys.argv`. Da sieht man wie nah an C die Parameterübergabe auf der Kommandozeile in Python umgesetzt wurde.
Code: Alles auswählen
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(int argc, char **argv)
{
int i, j, max;
if (argc < 2) {
printf("Usage: %s <max>", argv[0]);
return EXIT_FAILURE;
}
max = atoi(argv[1]);
srand((unsigned) time(NULL));
for (i=0; i<max; ++i) {
j = rand() % 350;
printf("%i\n", j);
}
return EXIT_SUCCESS;
}