Autor
|
Tema: Mi programa no responde! (SOLUCIONADO) (Leído 1,822 veces)
|
MJI
Desconectado
Mensajes: 12
|
Hola, me gustaría realizar un programa que crease un vector hasta cierto 'num', y los números que lo componen están entre 0 y num - 1. Ademas no ha de repetirse ningún numero dentro del vector.
Mi intento de este programa es el siguiente:
#include <iostream> #include <cstdlib> #include <time.h>
using namespace std;
const int MAX = 80; typedef int Vector[MAX];
void GenerarVector(Vector v, int num); void MostrarVector(const Vector v, int num);
int main (void) { Vector v; int num; Presentacion(); cout << "Dame numero de elementos del vector: "; cin >> num; cout << endl; if(num < 0) cout << "El numero no es positivo, no se puede generar el vector"; else { GenerarVector (v, num); cout << "El vector generado es: "; MostrarVector (v, num); }
return 0; }
void Presentacion(void) { cout << "Este programa genera vector de una cantidad de numeros que el usuario " cout << "indique, comprendidos entre 0 y el numero indicado, sin repetirse ningún" cout << " numero a lo largo del vector" << endl << endl; return; }
void GenerarVector(Vector v, int num) { int numvec; bool numrep = false; int i = 0; int j = 0; srand(time(NULL)); do { numvec = rand() % num; do { if(numvec = v[j]) numrep = true; else numrep = false; j++; } while(j <= i && numrep == false); j = 0; if(numrep == false) { v = numvec; i++; } } while(i < num); return; }
void MostrarVector(const Vector v, int num) { int contador = 0; int i = 0; while(contador < num) { cout << v << " "; i++; contador++; } return; }
No informa de ningún error pero al ejecutarse se queda congelado. ¿Alguien sabe cual es el problema? Me imagino que sera por la función 'GenerarVector'.
Gracias.
|
|
« Última modificación: 22 Diciembre 2018, 17:54 pm por MJI »
|
En línea
|
|
|
|
K-YreX
|
El código entre etiquetas de código GeSHi porque cuando usas la i como índice entre corchetes se convierte todo el mensaje de ahí en adelante en cursiva y la i y los corchetes no se ven y no se puede corregir bien el código. En la función <generarVector()> estás usando asignaciones (un igual "=") donde deberías estar usando comparaciones (dos iguales "=="). No he mirado todo el código en profundidad pero la idea para generar un vector sin valores repetidos es: - Opción 1 Generas un número aleatorio, recorres los valores que ya has introducido en el vector y si ninguno es igual al nuevo valor generado, lo introduces en el vector, si ya está repetido, generas otro número. - Opción 2 Vas ordenando cada nuevo valor que introduces y así no tienes que compararlo con todo el vector que ya tienes generado. PD: Las funciones de tipo <void> no hace falta que le pongas <return>, es raro verlo. Suerte
|
|
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
MJI
Desconectado
Mensajes: 12
|
El código entre etiquetas de código GeSHi porque cuando usas la i como índice entre corchetes se convierte todo el mensaje de ahí en adelante en cursiva y la i y los corchetes no se ven y no se puede corregir bien el código. En la función <generarVector()> estás usando asignaciones (un igual "=") donde deberías estar usando comparaciones (dos iguales "=="). No he mirado todo el código en profundidad pero la idea para generar un vector sin valores repetidos es: - Opción 1 Generas un número aleatorio, recorres los valores que ya has introducido en el vector y si ninguno es igual al nuevo valor generado, lo introduces en el vector, si ya está repetido, generas otro número. - Opción 2 Vas ordenando cada nuevo valor que introduces y así no tienes que compararlo con todo el vector que ya tienes generado. PD: Las funciones de tipo <void> no hace falta que le pongas <return>, es raro verlo. Suerte Vale, el problema era añadir un = mas en el segundo do de la función GenerarVector. Muchas gracias!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
El programa que quiero crackear no responde cuando le doy al F9 (Run) en Olly
Ingeniería Inversa
|
Zeus54
|
0
|
2,065
|
10 Agosto 2004, 04:46 am
por Zeus54
|
|
|
[SOLUCIONADO]Mi programa no responde
.NET (C#, VB.NET, ASP)
|
diego_lp
|
2
|
4,877
|
1 Septiembre 2009, 00:15 am
por diego_lp
|
|
|
por que mi programa no responde momentaneamente??
Programación Visual Basic
|
SRVAM
|
3
|
5,872
|
1 Septiembre 2009, 16:01 pm
por Kasi
|
|
|
[Solucionado]ping a maquina sino responde fail,si responde okay,start process
Scripting
|
Anonymous250
|
4
|
7,442
|
7 Julio 2012, 03:53 am
por Anonymous250
|
|
|
Problemas en este programa (Juego de 2048 en C) No responde a comandos W,A,S,D
Programación C/C++
|
Carlos.Martinez
|
4
|
2,510
|
20 Mayo 2016, 21:19 pm
por damical
|
|