• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

2. Wylosuj liczbę k z przedziału [1,10]. Utwórz jednowymiarową tablicę dynamiczną zawierającą k elementów typu float.

Object Storage Arubacloud
0 głosów
1,034 wizyt
pytanie zadane 2 grudnia 2015 w C i C++ przez martix3 Użytkownik (690 p.)
edycja 2 grudnia 2015 przez Eryk Andrzejewski

2. Wylosuj liczbę k z przedziału [1,10]. Utwórz jednowymiarową tablicę dynamiczną zawierającą k elementów typu float.

#include<iostream>
#include<stdlib.h>

int main()
{

int i, k;
float *p;

k=(rand()%10)+1;
p = new folat [k]; //alokacja pamieci

for(i=0; i<k ;i++)
{
    std::cin>>p[i];
}

delete[] p; // zwolnienie pamieci
p = NULL; ; return 0;

}

Podpowie mi ktoś czy dobrze wykonałam to zadanie?

4 odpowiedzi

0 głosów
odpowiedź 2 grudnia 2015 przez endo93 Użytkownik (720 p.)
edycja 2 grudnia 2015 przez endo93

Co mamy zrobić z tym kodem? Powinnaś podać jakąś informacje, co nie trybi, albo co chciałabyś się dowiedzieć. Potrafimy pisać w C++, ale nie potrafimy jeszcze czytać w myślach cheeky.

komentarz 2 grudnia 2015 przez martix3 Użytkownik (690 p.)
Może jeszce nie wyświetliło, bo wkleiłam kod i zapomniałam dodać pytania, ale od razu edytowałam;) Po prostu chciałam się spytać czy dobrze zadanie wykonałam.
komentarz 2 grudnia 2015 przez endo93 Użytkownik (720 p.)
edycja 2 grudnia 2015 przez endo93

No dobrze. Masz literówkę w linii z alokacją pamięci. Poza tym wygląda OK. Powinnaś tylko trochę popracować nad estetyką smiley.

komentarz 2 grudnia 2015 przez niezalogowany
@endo93 - nie "powinieneś", tylko powinnaś ;) To samo z "chciałbyś" :)
komentarz 2 grudnia 2015 przez endo93 Użytkownik (720 p.)

Auć! Przepraszam bardzo blush. Pod Linuxem śmiga ten kod, ale warto w razie czego doincludować "time.h" i użyć przed losowaniem "srand(time(NULL));". Bez tego nie będzie losował, tylko będzie podawał cały czas tę samą liczbę. Pozdrawiam.

komentarz 2 grudnia 2015 przez niezalogowany
@endo93 - nie srand(rand()), tylko srand(time(NULL)) :D No chyba, że takie rozwiązanie jest na Linuxie (ale chyba nie jest ;)).
komentarz 2 grudnia 2015 przez endo93 Użytkownik (720 p.)

Co ja napisałem!! Racja, poprawiłem już surprise.

0 głosów
odpowiedź 2 grudnia 2015 przez Porcupine Nałogowiec (31,560 p.)

Jak wstawiasz kod korzystaj ze znaczników [code] ... ;)

@EDIT

Z takich uwag: 

1) Nie "folat", a float... Nawet nie wkleiłaś tego do jakiegoś IDE coby składnie podświetlał... 

2) Zmienną i możesz zadeklarować bezpośrednio w pętli for :
 

for (int i = 0; i < k; i++)

3) Popraw entery, tabulacje, spacje itd. bo trochę razi po oczach :(

Pozdrawiam,

0 głosów
odpowiedź 2 grudnia 2015 przez niezalogowany
No, brakuje paru rzeczy, takich jak srand(time(NULL)) wywołane na początku (potrzebne do rand(), żeby na początku pobrać czas, do tego trzeba zainkludować bibliotekę time.h) i jeszcze dwa średniki po p=NULL (swoją drogą, to ta linijka nie jest raczej potrzebna, wskaźnik wtedy się ustawia na NULL, czyli na nic, czyli że nie wiem po co to jest :)), int i możesz zadeklarować w pętli for, czyli tak for(int i=0;...). A tak poza tym to program spełnia swoją funkcję i powinien działać :)

Edit: słuszna uwaga endo93, literówka w alokacji dynamicznej, nie folat, tylko float ;) I tak jak powiedział, powinnaś pisać troszkę staranniej, albo po skończeniu przejrzeć kod jeszcze raz, żeby upewnić się, że nie ma żadnych błędów "ortograficznych" ;)
0 głosów
odpowiedź 2 grudnia 2015 przez Radfler VIP (101,030 p.)

Prawie dobrze:

1. Użyj std::srand(std::time(nullptr)) na początku programu (inicjalizuje ziarno generatora), oraz dołącz <ctime>,

2. new float[k] nie new folat[k],

I parę uwag:

1. W C++ jest nagłówek <cstdlib>  nie <stdlib.h>,

2. Jak już to std::rand nie rand,

3. Możesz wykorzystać ficzer z C++11: zamiast NULL możesz użyć lepszego nullptr,

4. Linijka return 0; nie jest potrzebna (tym razem proszę bez dyskusji na ten temat).

komentarz 3 grudnia 2015 przez niezalogowany
No, chyba wszystkie funkcje jakie używam są  z std (bo oprócz sf, to żadnych innych przestrzeni nie używam), więc wystarczy, że bym dodał przedrostek std:: do każdej bibliotecznej funkcji. Chociaż nie, bo na przykład cout i cin nie są funkcjami... Hm, no chyba rzeczywiście trzeba to wszystko spamiętać...
komentarz 3 grudnia 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Ale chociażby chciałbyś sobie zaincludować jakąś amatorsko napisaną biblioteczkę, napisaną w C. Jako, że nie było tam klasy string, ktoś postanowił sobie taką samemu napisać. Teraz dołączasz ją do swojego projektu, piszesz using namespace std i co teraz? Mamy dwie różne klasy o nazwie string :)
komentarz 3 grudnia 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
A poza tym, jak sądzisz - po co wprowadzono przestrzenie nazw? Żeby programista musiał więcej pisać, czy po coś jeszcze? :D
komentarz 3 grudnia 2015 przez niezalogowany
No wiem, ale dopóki nie kombinuję z bibliotekami i przestrzeniami, to nic się nie stanie :) Dobra, morał: nie warto używać using namespace przez to, że czasem niewiadomo co jest gdzie, ale jeśli ktoś nie używa więcej przestrzeni, to czemu nie. Chyba koniec tematu :)
komentarz 3 grudnia 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Ja już się tam od using odzwyczaiłem :D

Podobne pytania

0 głosów
1 odpowiedź 581 wizyt
pytanie zadane 29 lutego 2016 w C i C++ przez Pixel040 Gaduła (3,100 p.)
+1 głos
1 odpowiedź 181 wizyt

92,558 zapytań

141,407 odpowiedzi

319,569 komentarzy

61,945 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...