03/09/2005, 10:31
|
| | Fecha de Ingreso: agosto-2005
Mensajes: 1
Antigüedad: 19 años, 3 meses Puntos: 0 | |
Hola alberto mx, resulta que yo tb estoy aprendiendo C, y he visto tu ejercicio y lo he hecho xD, te dejo el codigo haber que te parece, hay una parte que me he "rallado" un poco pero era para que cuando salieran las posiciones y los numeros en la pantalla quedara mas centrado
Código:
/*
a) Cargar un arreglo de 20 elementos.
b) Que lo imprima en la pantalla mas o menos así:
*los numeros blancos indican el numero de elemento, índice o como se llame; y los verdes son los valores en si.
c) Leer un valor x a buscar.
d) Indicar si el elemento se encontró y decir en que posición, de lo contrario mostrar un mensaje.
e) Usar un while o un do while para poder seguir ejecutando (algo asi como “¿quieres buscar otro número? S/N”).
*/
#include <stdio.h>
int elementos[20]; //creamos un array de 20 posiciones /0-19/
int mirarvalor(int x); //creamos funcion encargada de ver si el numero existe y de dar la posicion
void main() //llamamos a la funcion principal
{
int numero; //variable que guarda el numero indicado por el user
int resultado; //guarda el resultado que de la funcion mirarvalor
char opcion=0; //opcion de salir o buscar otro numero
int i=0,z=0; //i y z usada en el for para entrar en cada posicion del array
int x=0; //x guarda el valor para crear el arreglo de 20 elementos /2-40/
for (i=0;i<20;i++)
{
x=x+2; //primero se crean los numeros (pares) dentro de cada posicion del array
elementos[i]=x;
printf(" (%d) ", i); //las posicion se representan co (1) para diferenciar
if (i==9) //cuando llega a la posicon 9, hago que se muestren el contenido
{
printf("\n");
for (z=0;z<5;z++) //muestro el contenido
{
printf(" %d ", elementos[z]);
}
for (z=5;z<10;z++) //muestro el contenido, pero dejo un espacio mas para que quede mas cuadrado todo
{
printf(" %d ", elementos[z]);
}
printf("\n");
}
//al salir del if, el primer for seguria haciendo el trabajo de crear los numeros pares,
//ya que lo habiamos parado en la posicion del array 9
}
printf("\n");
for (z=10;z<20;z++) //por ultimo sigue mostrando los numeros hasta la posicion 20
{
printf(" %d ", elementos[z]);
}
printf("\n");
do //realizamos el do-while para que cuando no ponga s/S salga del programa
{
fflush(stdin);
printf("Elija un numero a buscar: ");
scanf("%d", &numero);
fflush(stdin);
resultado=mirarvalor(numero); //lamamos a la funcion mirarvalor y le pasamos el numero
if (resultado!=-1) //si nos da algo distinto a -1 es que ha ido bien
{
printf("El numero %d existe, se encuentra en la posicion %d\n\n",numero, resultado);
}
else //si nos da -1 es que no ha encontrado el numero
{
printf("No existe el numero indicado\n");
}
printf("Desea buscar otro numero? S/N: ");
scanf("%s", &opcion);
fflush(stdin);
}while(opcion=='s' || opcion=='S'); //en caso de que la opcion sea s, continua con el do
}
//funcion mirarvalor
int mirarvalor(int x)
{
//vamos a ver si se encuentra un valor
int i=0; //buscamos en el array y si en alguna posicion encuentra el numero indicado,
int z=-1; //da como retorno el valor de la posicion y si no encuentra z vale -1
for (i=0;i<20;i++)
{
if (elementos[i]==x)
{
z=i;
}
}
return z;
}
|