Napisz funkcje generuj(rand)

Napisz funkcje generuj(rand)
G1
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:9
0

witam, mam do zrobienia zadanie : gdzie popełniłem błąd?

I. Napisz program zawierający funkcje wykonujące operacje na N – elementowym wektorze liczb
całkowitych:

  • generuj() - funkcja zapisująca do wektora wygenerowane pseudolosowo liczby
    całkowite z zakresu 〈a, b〉, gdzie a i b są argumentami funkcji;
Kopiuj
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int i,x;
int generuj(x)
{
    int tab[x];
    srand(time(NULL));
    for(i=0;i<x;i++)
    {
        tab[i]=rand() %10;
    }


    return tab[i];
}



int main()
{
int x=5;
    printf("Wylosowane numery to: %d ",generuj(x));

    return 0;
}

Kopiuj

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
4

Dlaczego Twoja funkcja generuj() zwraca tab[i]? Co to robi, według Ciebie? :-)


edytowany 2x, ostatnio: Patryk27
szweszwe
  • Rejestracja:ponad 11 lat
  • Ostatnio:13 dni
  • Lokalizacja:Kraków
  • Postów:1694
5

gdzie popełniłem błąd?

Raczej gdzie nie popełniłeś?

  1. Musisz się zastanowić co ta funkcja ma zwracać.
  2. Na razie zwracasz element który jest poza tablicą.
  3. W ogóle printf wygląda tak, że chce wypisać jakiego inta, co by się z deklaracją funkcji zgadzało, ale tekst mówi o numerach. No to jak chcesz zawrzeć kilka numerów w 1 zmiennej int?
  4. Deklaracja funkcji powinna mieć typ argumentu, to że masz int x wcześniej, nie znaczy, że tutaj magicznie zadeklarujesz funkcję jako int generuj(int x). Musisz to napisać wprost. Zresztą ci to kompilator zakomunikował w błędzie.
edytowany 1x, ostatnio: szweszwe
AK
No nie czepiaj się, w linii 13 i 16 nie ma błedów
enedil
4. oj nie, w C, jak nie podasz typu argumentowi, to jest implicite int
szweszwe
No faktycznie. Leci jakiś warning, że jak chcę tak robić to se mam flagę dodać, ale się kompiluje. Nie wiedziałem, dzięki.
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Szczecin
3

całkowite z zakresu 〈a, b〉, gdzie a i b są argumentami funkcji;

​ ​

int generuj(x)

Zgodnie z opisem, funkcja ma mieć przynajmniej dwa argumenty. I prawdopodobniej wektor, do którego zapisujesz też ma być przekazany jako argument.


TomaszLiMoon
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 11 godzin
  • Postów:530
2

funkcja zapisująca do wektora wygenerowane pseudolosowo liczby

Czy przypadkiem nie jest to std::vector<int>, a język C++?

AK
Ale google tego nie wiedziało, jak podawało pierwszy gotowiec
kq
Trzeba było poprosić GPT-3 ;​)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.