C/Visual C - Sabe alguien que tengo mal en estos ejercicios

 
Vista:

Sabe alguien que tengo mal en estos ejercicios

Publicado por Saul (8 intervenciones) el 24/07/2001 21:12:58
Hola tengo algún ejercicio que no se como resolverle. Si podeis echarles un vistazo y ver lo que tengo mal os lo agradeceria, porque no creo que sean muy dificiles, pero es que yo estoy empezando en esto de la programacion. Gracias.
/*No se como hacer que no haya repetidos en este vector de 10 elementos*/
void main (void)
{
int tabla[10];
int i,j,rep,num;
clrscr();
randomize();
num=0;
do
{
j=random(20);
for (i=0;i<=9;i++)
{
if (j!=tabla[i])
{
tabla[i]=j;
num++;
}
}
}while (num!=10);
for (i=0;i<=9;i++)
printf (" %d",tabla[i]);
getch();
}
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

RE:Sabe alguien que tengo mal en estos ejercicios

Publicado por ALFA (9 intervenciones) el 25/07/2001 00:50:30
/* La clave de tu ejercicio es que cada vez que se genera un numero random debes, revisar el vector desde el inicio hasta la posición anterior en la que vas a asignar el numero random y si no se encuentra entonces lo asignas y sino entonces generas otro número random, Ok? y eso es lo que no está haciendo tu código. Hay te mando un nuevo código que si creo que lo hace, lo que pasa es que en el momento no cuento con un compilador, pero lo que si te puedo asegurar es que la lógica del algoritmo que te mando está bien. Dime si te funcionó*/

void main() {
int tabla[10], num, c = 1, r;

randomize();
tabla[0] = random(20);
do {
num = random(20);
/*Este ciclo recorre el vector desde la posición inicial hasta donde vá el llenado*/
for (r = 0; r < c; r++)
if (num == tabla[r])
r = c;
/*Aquí se determina si se encontró o no*/
if (r == c) {
tabla[c] = num;
c++;
}
} while (c < 10);
/*Se imprime en pantalla el vector*/
for (c = 0; c < 10; c++)
printf("%d ", tabla[c]);
getch();
}
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

RE:Sabe alguien que tengo mal en estos ejercicios

Publicado por Erick (92 intervenciones) el 25/07/2001 01:32:22
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

void main() {
int arreglo[10], num, x = 1, y;

randomize();
arreglo[0] = random(20);
do {
num = random(20);

/*Ciclo que rellena el arreglo*/

for (y = 0; y < x; y++)
if (num == arreglo[y])
y = x;

/*Se determina si el numero generado ya ha existe*/
if (y == x) {
arreglo[x] = num;
x++;
}
} while (x < 10);

/*Imprime tu arreglo*/
for (x = 0; x < 10; x++)
printf("%d ", arreglo[x]);
getch();
}

Espero que sea de utilidad, si tienes dudas escribeme ok.
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

RE:Sabe alguien que tengo mal en estos ejercicios

Publicado por ALFA (9 intervenciones) el 25/07/2001 22:33:33
Hey! este era mi algoritmo sugerido para Saul y tú solo cambiaste el nombre de las variables.
???
Si tenías alguna idea, pienso que debiste contestarle a Saul, con otra solución más no utilizando la mía Ok?
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