Informatică, întrebare adresată de ioanahug22, 9 ani în urmă

Buna ziua, am de facut urmatoarele cerinte in c++
stiu sa le declar in cpp, doar ca nu stiu rezolvarile..
multumesc

– initializeaza elementele tabloului cu valori aleatoare in intervalul [1, 1000] in

fsierul functii.cpp


In fsierul functii.cpp se defneste functia: void Inversare(int tablou[],

int size) care inverseaza elementele tabloului

– intr-o bucla de la i = 0, j = size -1, cat timp i < j,

se inverseaza valorile tablou[i] cu tablou[j] folosind o variabila

temporara

se incrementeaza i

se decrementeaza j

Răspunsuri la întrebare

Răspuns de boiustef
2

Răspuns:

#include <iostream>

#include <cstdlib>

using namespace std;

int v[10001] ;

int n ;

void GenerareNumere()

 {

    int i, k;

    //srand(time(0)) ;

    cout<<" n = " ;

    cin>>n ;

    for (i=0 ; i<n ; i++)

    {

      k = 1 + rand() % 1000 ; // generare numar intre 1 si 1000

      v[i] = k ;

    }

 }

void AfisareVector()

{

   int i ;

   for (i=0; i<n ; i++)

       cout<<v[i]<<" " ;

}

void inversare(int tablou[])

{

   int temp, i=0, j=n-1;

   while (i<j)

   {

       temp=tablou[i];

       tablou[i]=tablou[j];

       tablou[j]=temp;

       ++i;

       --j;

   }

}

int main()

{

   GenerareNumere() ;

   cout<<"\n\n Vectorul initial :\n " ;

   AfisareVector() ;

   inversare(v);

   cout<<"\n\n Vectorul dupa inversare :\n " ;

   AfisareVector() ;

   return 0 ;

}

Explicație:

Răspuns de CinevaFaraNume
2

#include <iostream>

#include <cstdlib>

#include <ctime>

using namespace std;

void initializare(int vec[], int n){

   srand(time(NULL)); // pentru numere aleatoare diferite la fiecare rulare a functiei, (maxim un apel pe secunda, daca se fac mai multe de atat numerele returnate de rand() vor fi egale)

   for(int i = 0; i<n; i++){

       vec[i] = rand()%1000+1; // rand()%1000 -> [0, 999], rand()%1000+1 -> [1,1000]

   }

}

void Inversare(int tablou[], int size){

   register int temp;

   for(int i = 0, j = size - 1; i < j; i++, j--){

       temp = tablou[i];

       tablou[i] = tablou[j];

       tablou[j] = temp;

   }

}

//afisare() nu e necesar, aici, l-am folosit doar pentru a testa

void afisare(int vec[], int n){

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

       cout << vec[i] << ' ';

   cout << endl;

}

int vec[1000], n;

// test cu 10 numere

int main(){

   n = 10;

   initializare(vec, n);

   afisare(vec,n);

   Inversare(vec, n);

   afisare(vec,n);

}

Alte întrebări interesante