PDA

View Full Version : C++: Array con numeri casuali e scambi casuali


docmpg
20-04-2018, 19:26
Crea un array contenente valori casuali compresi tra 1 e 9 ed effettua 5 scambi casuali.
Fatto cosi' ma non viene..

Aiuto!!!
***************************


#include <cstdlib>
#include <ctime>
#include <cmath>
#include <iostream>
using namespace std;

int main()
{
srand(time(NULL));
int dim;
cout<<"Inserisci dim: "<<endl;
cin>>dim;
cout<<endl;
int A[dim];
cout<<A[dim-1]<<endl;
for(int i=0;i<dim;i++)
{
A[i]=rand()%10+1;
cout<<A[i]<<endl;
}
cout<<endl;
for(int i=0;i<4;i++)
{
int k=rand()%dim;
int h=rand()%dim;
int temp;
A[k]=temp;
A[k]=A[h];
A[h]=temp;
}
for(int i=0;i<dim;i++)
{
cout<<A[i]<<endl;
}

return 0;
}

melko
21-04-2018, 11:56
$> g++ -Wall prova.cpp
prova.cpp: In function ‘int main()’:
prova.cpp:27:7: warning: ‘temp’ may be used uninitialized in this function [-Wmaybe-uninitialized]
A[k]=temp;
~~~~^~~~~

mi sa che hai scambiato gli elementi nell'assegnazione ;)

Inoltre compilando con -pedantic:
prova.cpp:14:11: warning: ISO C++ forbids variable length array ‘A’ [-Wvla]
int A[dim];
^

docmpg
21-04-2018, 13:33
$> g++ -Wall prova.cpp
prova.cpp: In function ‘int main()’:
prova.cpp:27:7: warning: ‘temp’ may be used uninitialized in this function [-Wmaybe-uninitialized]
A[k]=temp;
~~~~^~~~~

mi sa che hai scambiato gli elementi nell'assegnazione ;)

Inoltre compilando con -pedantic:
prova.cpp:14:11: warning: ISO C++ forbids variable length array ‘A’ [-Wvla]
int A[dim];
^

Scusa cos'č pedantic??INoltre vedo scritto g++ non c++ , che compilatore usi?

melko
22-04-2018, 01:57
pedantic č una flag del compilatore (supportata perlomeno da gcc e clang):
"Issue all the warnings demanded by strict ISO C and ISO C++; reject all programs that use forbidden extensions, and some other programs that do not follow ISO C and ISO C++. For ISO C, follows the version of the ISO C standard specified by any -std option used."

come compilatore ho usato gcc (ma clang da un messaggio analogo)