Dev - C++ - amigos necesito ayuda con un programa en c++

 
Vista:
sin imagen de perfil
Val: 36
Ha disminuido su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

amigos necesito ayuda con un programa en c++

Publicado por Mario Alberto (19 intervenciones) el 04/02/2020 19:04:33
necesito ayuda con un programa en c++ que dado un arreglo de 20 valores me muestre esos mismo 20 valores aleatoriamente en otro arreglo con las funciones rand y srand.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

amigos necesito ayuda con un programa en c++

Publicado por Alfil (1444 intervenciones) el 04/02/2020 23:17:43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
#include <ctime>
#include <cstdlib>
 
using namespace std;
 
const int sz = 20;
 
void leerDatos(int v[]);
int aleatorio();
void intercambiar(int a[], int b[]);
bool buscar(int v[], int n, int dato);
void imprimir(int v[]);
 
int main()
{
    int v1[sz];
    int v2[sz];
 
    srand(time(NULL));
 
    cout << "\nIntroducir valores:\n";
    leerDatos(v1);
 
    intercambiar(v1, v2);
 
    cout << "\nOrden aleatorio: ";
    imprimir(v2);
 
    cout << endl;
 
    return 0;
}
 
void leerDatos(int v[])
{
    for(int i = 0; i < sz; i++) {
        cout << "(" << i + 1 << "/" << sz << "): ";
        cin  >> v[i];
    }
}
 
int aleatorio() { return rand() % 20; }
 
void intercambiar(int a[], int b[])
{
    int ids[sz];
    int temp;
    int i = 0;
 
    while(i < sz) {
        temp = aleatorio();
        if(i == 0) {
            ids[i] = temp;
            b[temp] = a[i++];
        } else if(buscar(ids, i, temp)) {
            ids[i] = temp;
            b[temp] = a[i++];
        }
    }
}
 
bool buscar(int v[], int n, int dato)
{
    for(int i = 0; i < n; i++)
        if(v[i] == dato) return false;
 
   return true;
}
 
void imprimir(int v[])
{
    for(int i = 0; i < sz; i++)
        cout << v[i] << " ";
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

amigos necesito ayuda con un programa en c++

Publicado por Rodrigo (539 intervenciones) el 05/02/2020 05:15:06
Una version mas simple:

Copiar el arreglo original, re-ordenar la copia

1
2
3
4
5
6
7
8
9
10
void intercambiar(int a[], int b[])
{
    for( int i = 0; i < sz; i++ ) {
        b[i] = a[i];
    }
 
    for( int i = sz; i > 1; i-- ) {
        swap( b[ i-1 ], b[ rand() % i ] );
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar