Treść zadania

19patrick91

Program w C++ (code blocks)
Napisz program który wygeneruje n liczb bez powtórzeń z zakresu od 1 do 100.

Zadanie jest zamknięte. Autor zadania wybrał już najlepsze rozwiązanie lub straciło ono ważność.

Najlepsze rozwiązanie

  • 0 0

    unsigned char tab[100]; // do notowania, czy liczba już była
    int licznik, x, n, duzo;

    czytaj(n); // W dowolnie wybrany sposób wczytaj ilość liczb
    if ((n < 1) || (n > 99))
    {
    printf("Zła ilość liczb, ma być od 1 do 99\n");
    exit(1); // Zakoncz brogram z kodem błedu różnym od zera
    }
    // Dla n > 50 szybciej jest losować liczby, które NIE są wybierane
    // a potem wypisac pozostałe

    duzo = 0;
    if (n > 50)
    {
    n = 100 - n;
    duzo = 1;
    }

    for (x=0; x<100; x++) tab[x] = 0; // Na początku nie ma losowanych liczb

    licznik = 0;
    while (licznik < n)
    {
    x = random(100); // random - funkcja zwracająca losową liczbę od 0 do 99
    if (tab[x] == 1) continue; // liczba była już wybrana
    tab[x] = 1;
    licznik += 1;
    }

    // wypisz dane. Ważne: poniżej wypisz x+1, nie "x"
    // Warunek po if = jesli duzo (n bylo > 50) wypisuj wszystkie licby poza wybranymi,
    // gdy n jest małe, czyli duzo == 0 to wypisuj wybrane
    for (x=0; x<100; i++)
    if (duzo <> tab[x]) printf("%d\n", x+1);

Rozwiązania

Podobne zadania

leneczka program Przedmiot: Informatyka / Liceum 1 rozwiązanie autor: leneczka 14.5.2010 (16:45)
sebastianus777 Napisz program schemat blokowy i listę kroków z wykorzystaniem random i Przedmiot: Informatyka / Liceum 2 rozwiązania autor: sebastianus777 13.10.2010 (17:57)
sebastianus777 jak bedzie wyglądał schemat blokowy do tego programu ?? program Przedmiot: Informatyka / Liceum 1 rozwiązanie autor: sebastianus777 13.10.2010 (20:39)
rubensdb Hej mam na zadanie napisać program w c rysujący choinkę z gwiazdek * z Przedmiot: Informatyka / Liceum 1 rozwiązanie autor: rubensdb 31.10.2010 (18:35)
ola18 Napisz program liczący objętość sześcianu, zabezpiecz się przed Przedmiot: Informatyka / Liceum 2 rozwiązania autor: ola18 29.11.2010 (18:43)

Podobne materiały

Przydatność 60% Liczby Pierwsze - program do wyszukiwania liczb pierwszych

Dokumentacja do programu Liczby Pierwsze v1.1 ***************************************** Program służy do wyszukiwania wszystkich liczb pierwszych w danym przedziale naturalnym (liczby całkowite od zera do nieskończoności). Obsługa programu jest banalna. Najpierw do obydwu pól wpisz dwie liczby naturalne (pierwsza mniejsza od drugiej) i naciśnij Sprawdź! Aby skopiować do...

Przydatność 50% program zgadujący liczbę z wybranego zakresu liczb

Program zgadujacy; uses CRT; var a,b,c,k,x:integer; begin randomize clrscr; writeln('Program pozwalajacy zgadnac liczbe z wybranego zbioru'); repeat write('Wybierz zakres'); readln; random(R) repeat readln(c)l If i:=2 then writeln('Zgadles') else writeln('Pudlo') until c=10; k= until k='k'; end.

Przydatność 70% Program na dodawanie, odejmowanie, mnożenie, dzielenie liczb freepascal.

Zastanawiałeś się jak napisać prosty programik, (dla początkujących) który pomoże Ci dodać/odjąć/pomnożyć/podzielić pewne liczby? To proste! Zobacz jak to się robi! Program, który oblicza sumę dwóch liczb: Uses crt; Var x,y:integer; Begin Writeln(‘Podaj pierwszą liczbę’); Readln(x); Writeln(‘Podaj drugą liczbę’); Readln(y); Writeln(‘Suma=’,x+y);...

Przydatność 75% Program pozytywistów

Omów założenia europejskiego pozytywizmu Według francuskiego filozofa Augusta Comte’a żyjącego w pierwszej połowie XIX wieku słowo pozytywny znaczy – realny, nie odbiegający od rzeczywistości; użyteczny, służący konkretnym celom; ścisły; pewny i względny – przeciwstawiający się wszystkiemu co absolutne. Przy tym pozytywizm był epoką nastawioną na badanie przez...

Przydatność 100% program trojmian

program trojmian; uses CRT; var a,b,c,x1,x2,delta:real; begin clrscr; write('a='); readln(a); write('b='); readln(b); write('c='); readln(c); delta:=sqr(b)-4*a*c; If (delta>0) then begin x1:=(-b-sqrt(delta))/(2*a); x2:=(-b+sqrt(delta))/(2*a); writeln('x1=',x1); writeln('x2=',x2); end else If (delta<0) then begin writeln('Nie ma rozwiazan'); end else If (delta=0) then...

0 odpowiada - 0 ogląda - 1 rozwiązań

Dodaj zadanie

Zobacz więcej opcji