Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/09/2005, 10:31
viruss1362
 
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;
}