SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: benne en Martes 20 de Enero de 2009, 16:55
-
este año e empzado a programar y no tengo ni idea y me esta costando mucho llevar a cabo los codigos
pero hoy me han dado una practica para traerla hecha para el martes y es para nota y nose ni por dodne cojerla aber si vostros me podeis enseñar el codigo o vuestra forma de acerla:
practica!
-se rrecibiran 10 numeros enteros y se almacenaran en un array
-se recibiran dos numeros enteros que constituiran el limite max y limite min
-se recibiran un entero positivo que indicara el numero de intentos
-los numeros almacenados deberan estar comprendidos entre el limite max y limite min
-se filtraran numeros que no pertenezcan a dicho itnervalo, pero para ello se permitira un maximo de intentos indicados
si es el primer numero entonces e almacenara 0
para sucesivos numeros se almacenara el inmediato anterior
-tras obtener los 10 numeros se ordenadarn de mayor a menor
-se debera imprimir por pantalla:
-los enteros del array en una misma lina y separados por espacios
-el numero de fallos
se ofrecera la posibilidad de continuar
os pidoa ydua porque estoy muy perdido.. no por vagancia
de este ejercicio aunk aprezca mentira solose acer lo de ordenar los numero de mayor a menor.
y lo recibir 10 numeros y almacenarlos en un array
seria asi:
int arr[10]
siendo arr la variable
o asi tampoco es?
lo demas es que no tengo ni idea
y solo queria vuestras opiniones y como lo ariais sin PUNTEROS.. porque no los hemos dado
espero que me ayudeis lo que podais.. asique gracias :P
-
Primero, que sepas que aquí nadie te va a hacer la práctica, en todo caso se te darán consejos ^_^
-se rrecibiran 10 numeros enteros y se almacenaran en un array
int arr[10];
y como lo ariais sin PUNTEROS
Efectivamente, aunque arr es un puntero (los arrays son punteros :P), pero bueno supongo que te referirás al operador *.
-se rrecibiran
Échale un vistazo a la función scanf().
-los numeros almacenados deberan estar comprendidos entre el limite max y limite min
Simple comparación >= y <=
se filtraran numeros que no pertenezcan a dicho itnervalo, pero para ello se permitira un maximo de intentos indicados
Bucle con condición <= número máximo de intentos
-se debera imprimir por pantalla:
Función printf()
Bueno, ve haciendo algo y ya me cuentas. Y por favor, el código con etiqueta y razonablemente formateado ;)
¡Salud y suerte!
-
aki esta el codigo del programa pero q me falta algo pork me da error
// practica3new.cpp: define el punto de entrada de la aplicación de consola.
//
#include "stdafx.h"
int _tmain(){
/*Variables*/
int max, min,intentos, fin, j, i,k,l,temp;
int v[10];
/*bucle principal, terminará cuando fin=1*/
while(!fin){
/*Inicializaciones*/
temp=0;
fin=0;
k=0;
i=0;
j=0;
l=0;
printf("introduce el valor máximo del intervalon");
scanf("%d", &max); //guardamos el valor máximo en max
printf("introduce el valor mínimo del intervalon");
scanf("%d",&min); //guardamos el mínimo en min
printf("introduce el número máximo de intentosn");
scanf("%d",&intentos);
/*mientras el array no tenga 10 elementos (j<10) y el número de intentos no
sea mayor del que toca (k<intentos) seguimos metiendo datos.*/
while(j<10&&k<intentos){
printf("introduce el elemento %d del vector n", j);
scanf("%d",&i);
if(i>max||i<min){
/*Si el valor introducido está fuera del intervalo:*/
if(j==0){
/*Si es el primer elemento, le metemos un 0*/
v[j]=0;
}
else{
/*Si nos, le metemos el elemento anterior*/
v[j]=v[j-1];
}
/*incrementamos el contador de intentos K*/
k=k+1;
}
else{
/*Si el valor introducido está dentro del intervalo, lo metemos al
array*/
v[j]=i;
}
/*incrementamos el contador de elementos del array J*/
j=j+1;
}
/*Algoritmo de ordenación de vectores bubblesort (o sea, que ordena el
array)*/
for (i=1; i<j; i=i+1){
for (l=0 ; l<j - 1; l=l+1){
if (v[l] > v[l+1]){
temp = v[l];
v[l] = v[l+1];
v[l+1] = temp;
}
}
}
/*Empezamos a imprimir cosas*/
printf("nElementos del vector:");
for(i=0;i<j;i=i+1){
/*imprimos los J elementos que hemos metido en el array*/
printf("nv[%d] = %d ",i, v);
}
/*imprimimos el número de intentos realizados en una nueva linea*/
printf("nNúmero de intentos: %dn", k);
/*y ofrecemos la oportunidad de seguir:*/
printf("desea terminar? (Si- cerrar, No - continuar)");
scanf("%d", &fin);
}
getchar ();
return 0;
}
el error q me ad esq dice q la variable fin is being used without being initialized
y estoy mirando y nose pork sale eso
me señala en la linea
del
while (!fin){
mirarmelo aber q pasa
-
while (!fin){
No inicializas el valor de fin. Cuando comienza el programa, fin tiene un valor indeterminado, por tanto no pueeds saber cómo se va a comportar el programa. Dale un valor 0 antes del while.
Ah, y es la última vez que miro tu código si no usas las etiquetas de código para que se entienda algo.
Salud