Anda di halaman 1dari 32

25 ejercicios resueltos de arrays y registros en C

19:19 Curso bsico de C 10 comments

Durante el sexto captulo del curso bsico de C vimos la teora de los arrays y los registros. Hace unos das
dej una tanda de 25 ejercicios para practicar.

Foto tomada de freedigitalphotos.net

Pues como viene siendo habitual os dejo la solucin de los mismos.

Realice un programa en C:

1. Que rellene un array con los 100 primeros nmeros enteros y los muestre en pantalla en orden
ascendente.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int x,tabla[100];

for (x=1;x<=100;x++)
{
tabla[x]=x;
}

for (x=1;x<=100;x++)
{
printf("%d\n",tabla[x]);
}
system("PAUSE");
return 0;
}

2. Que rellene un array con los 100 primeros nmeros enteros y los muestre en pantalla en orden
descendente.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int x,tabla[100];

for (x=1;x<=100;x++)
{
tabla[x]=x;
}

for (x=100;x>=1;x--)
{
printf("%d\n",tabla[x]);
}

system("PAUSE");
return 0;
}

3. Que rellene un array con los nmeros primos comprendidos entre 1 y 100 y los muestre en pantalla
en orden ascendente.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int x,cont,z,i,tabla[100];

i=0;
for (x=1;x<=100;x++)
{
cont=0;
for (z=1;z<=x;z++)
{
if (x%z==0)
{
cont++;
}
}

if (cont==2 || z==1 || z==0)


{
tabla[i]=x;
i++;
}

for (x=0;x<i;x++)
{
printf("%d\n",tabla[x]);
}

system("PAUSE");
return 0;
}

4. Que rellene un array con los nmeros pares comprendidos entre 1 y 100 y los muestre en pantalla
en orden ascendente.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int x,cont,z,i,tabla[100];

i=0;
for (x=1;x<=100;x++)
{
cont=0;
if (x%2==0)
{
tabla[i]=x;
i++;
}
}

for (x=0;x<i;x++)
{
printf("%d\n",tabla[x]);
}

system("PAUSE");
return 0;
}

5. Que rellene un array con los nmeros impares comprendidos entre 1 y 100 y los muestre en pantalla
en orden ascendente.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int x,cont,z,i,tabla[100];

i=0;
for (x=1;x<=100;x++)
{
cont=0;
if (x%2==1)
{
tabla[i]=x;
i++;
}
}

for (x=0;x<i;x++)
{
printf("%d\n",tabla[x]);
}

system("PAUSE");
return 0;
}
6. Que lea 10 nmeros por teclado, los almacene en un array y muestre la suma, resta, multiplicacin y
divisin de todos.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int x,tabla[10];
int sum,res,mul,div;

for (x=0;x<10;x++)
{
printf("Introduzca nmero\n");
scanf("%d",&tabla[x]);
}

sum=tabla[0];
res=tabla[0];
mul=tabla[0];
div=tabla[0];

for (x=1;x<10;x++)
{
sum=sum+tabla[x];
res=res-tabla[x];
mul=mul*tabla[x];
div=div/tabla[x];
}

printf("Suma: %d\n",sum);
printf("Resta: %d\n",res);
printf("Multiplicacin: %d\n",mul);
printf("Divisin: %d\n",div);

system("PAUSE");
return 0;
}

7. Que lea 10 nmeros por teclado, los almacene en un array y los ordene de forma ascendente.

#include <stdio.h>
#include <stdlib.h>
int main()
{
float aux, numeros[10];
int i,j,n=10;

for (i=0;i<n;i++){
printf("Escriba un nmero");
scanf("%f",&numeros[i]);
}

for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(numeros[i]<numeros[j])
{
aux=numeros[i];
numeros[i]=numeros[j];
numeros[j]=aux;
}
}
}

for (i=n-1;i>=0;i--){
printf("%f\n",numeros[i]);
}

system("PAUSE");
return 0;
}

8. Que lea 10 nmeros por teclado, 5 para un array y 5 para otro array distinto. Mostrar los 10 nmeros
en pantalla mediante un solo array.

#include <stdio.h>
#include <stdlib.h>

int main()
{
int aux, numeros1[5],numeros2[5],numeros3[10];
int i,j;
for (i=0;i<5;i++){
printf("Escriba un nmero");
scanf("%d",&numeros1[i]);
}

for (i=0;i<5;i++){
printf("Escriba un nmero");
scanf("%d",&numeros2[i]);
}

for(i=0;i<5;i++)
{
numeros3[i]=numeros1[i];
}

for(i=0;i<5;i++)
{
numeros3[5+i]=numeros2[i];
}

for (i=0;i<10;i++){
printf("%d\n",numeros3[i]);
}

system("PAUSE");
return 0;
}

9. Que lea 5 nmeros por teclado, los copie a otro array multiplicados por 2 y muestre el segundo
array.

#include <stdio.h>
#include <stdlib.h>

int main()
{
int aux, numeros1[5],numeros2[5];
int i,j;

for (i=0;i<5;i++){
printf("Escriba un nmero");
scanf("%d",&numeros1[i]);
}

for(i=0;i<5;i++)
{
numeros2[i]=numeros1[i]*2;
}

for (i=0;i<5;i++){
printf("%d\n",numeros2[i]);
}

system("PAUSE");
return 0;
}

10. Que lea 5 nmeros por teclado, los copie a otro array multiplicados por 2 y los muestre todos
ordenados usando un tercer array.

#include <stdio.h>
#include <stdlib.h>

int main()
{
int aux, numeros1[5],numeros2[5],numeros3[10];
int i,j;

for (i=0;i<5;i++){
printf("Escriba un nmero");
scanf("%d",&numeros1[i]);
}

for(i=0;i<5;i++)
{
numeros2[i]=numeros1[i]*2;
}

for(i=0;i<5;i++)
{
numeros3[i]=numeros1[i];
}

for(i=0;i<5;i++)
{
numeros3[5+i]=numeros2[i];
}

for (i=0;i<10;i++){
printf("%d\n",numeros3[i]);
}

system("PAUSE");
return 0;
}

11. Que rellene un array con los 100 primeros nmeros pares y muestre su suma.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int x,cont,sum,i,tabla[100];

i=0;
sum=0;
for (x=1;x<=100;x++)
{
cont=0;
if (x%2==0)
{
tabla[i]=x;
i++;
}
}

for (x=0;x<i;x++)
{
sum=sum+tabla[x];
}

printf("%d\n",sum);

system("PAUSE");
return 0;
}
12. Que lea 10 nmeros por teclado, los almacene en un array y muestre la media.

#include <stdio.h>
#include <stdlib.h>

int main()
{
float sum, numeros1[10];
int i;

sum=0;
for (i=0;i<10;i++){
printf("Escriba un nmero");
scanf("%f",&numeros1[i]);
}

for(i=0;i<10;i++)
{
sum=sum+numeros1[i];
}

printf("%f\n",sum/10);

system("PAUSE");
return 0;
}

13. Que mediante un array almacene nmeros tanto positivos como negativos y los muestre
ordenados.

#include <stdio.h>
#include <stdlib.h>

int main()
{
float aux, numeros[10];
int i,j,n=10;

for (i=0;i<n;i++){
printf("Escriba un nmero");
scanf("%f",&numeros[i]);
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(numeros[i]<numeros[j])
{
aux=numeros[i];
numeros[i]=numeros[j];
numeros[j]=aux;
}
}
}

for (i=n-1;i>=0;i--){
printf("%f\n",numeros[i]);
}

system("PAUSE");
return 0;
}

14. Que rellene un array con 20 nmeros y luego busque un nmero concreto.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])


{

int i,x=0,vector[20], n=20, dato, centro,inf=0,sup=n-1;

for (i=0;i<20;i++){
printf("Escriba un nmero");
scanf("%d",&vector[i]);
}

printf("Escriba el nmero a buscar");


scanf("%d",&dato);

while(inf<=sup)
{
centro=(sup+inf)/2;
if (vector[centro]==dato)
{
printf("Existe\n");
x=1;
break;
}
else if(dato < vector [centro] )
{
sup=centro-1;
}
else
{
inf=centro+1;
}
}

if (x==0)
{
printf("No existe\n");
}

system("PAUSE");
return 0;

15. Que pinte un tablero de ajedrez, los peones con la letra P, las torres con T, los caballos con C, los
alfiles con A, el rey con R y la reina con M.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])


{

int x,y;

for (x=0;x<8;x++)
{
for (y=0;y<8;y++)
{
//peones
if (x==1 || x==6)
{
printf("P");
}
//torres
else if ((x==0 && y==0) ||
(x==7 && y==0) ||
(x==0 && y==7) ||
(x==7 && y==7)
)
{
printf("T");
}
//caballos
else if ((x==0 && y==1) ||
(x==7 && y==1) ||
(x==0 && y==6) ||
(x==7 && y==6)
)
{
printf("C");
}
//alfiles
else if ((x==0 && y==2) ||
(x==7 && y==2) ||
(x==0 && y==5) ||
(x==7 && y==5)
)
{
printf("A");
}
//reina
else if ((x==0 && y==3) ||
(x==7 && y==3)
)
{
printf("M");
}
//rey
else if ((x==0 && y==4) ||
(x==7 && y==4)
)
{
printf("R");
}
else
{
printf(" ");
}
}
printf("\n");
}

system("PAUSE");
return 0;

16. Que muestre los primeros 100 nmeros de izquierda a derecha usando un array de dos
dimensiones.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])


{

int x,y, numeros[10][10];

for (x=0;x<10;x++)
{
for (y=0;y<10;y++)
{
numeros[x][y]=(x*10)+1+y;
}

for (x=0;x<10;x++)
{
for (y=0;y<10;y++)
{
printf("%d ",numeros[x][y]);
}
printf("\n");
}

system("PAUSE");
return 0;

17. Que muestre los primeros 100 nmeros de izquierda a derecha usando un array de dos
dimensiones, la ltima fila a mostrar la suma de sus respectivas columnas.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])


{

int x,y,sum, numeros[11][10];

for (y=0;y<10;y++)
{
sum=0;
for (x=0;x<10;x++)
{
numeros[x][y]=(x*10)+1+y;
sum=sum+numeros[x][y];
}
numeros[10][y]=sum;
}

for (x=0;x<11;x++)
{
for (y=0;y<10;y++)
{
printf("%d ",numeros[x][y]);
}
printf("\n");
}

system("PAUSE");
return 0;
}

18. Que rellene un array de dos dimensiones con nmeros pares, lo pinte y despus que pida una
posicin X,Y y mostrar el nmero correspondiente.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])


{

int x,y,num=2, numeros[3][3];

for (x=0;x<3;x++)
{
for (y=0;y<3;y++)
{
numeros[x][y]=num;
num=num*2;
}
}

printf("Introduzca coordenada x: ");


scanf("%d",&x);
printf("Introduzca coordenada y: ");
scanf("%d",&y);

printf("El nmero es: %d\n",numeros[x][y]);

system("PAUSE");
return 0;
}

19. Que rellene una matriz de 3x3 y muestre su traspuesta (la traspuesta se consigue intercambiando
filas por columnas y viceversa).

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])


{

int x,y,num=0, numeros[4][4];

for (x=0;x<3;x++)
{
for (y=0;y<3;y++)
{
numeros[x][y]=num;
num++;
}
}

printf("El array original es: \n\n\n");

for(x = 0;x < 3;x++)


{
for(y = 0;y < 3;y++)
{
printf(" %d ", numeros[x][y]);
}
printf("\n\n\n");
}

printf("La traspuesta es: \n\n\n");

for(x = 0;x < 3;x++)


{
for(y = 0;y < 3;y++)
{
printf(" %d ", numeros[y][x]);
}
printf("\n\n\n");
}

system("PAUSE");
return 0;
}

20. Que lea una cadena y la muestre al revs.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])


{

int indice,x;
char frase[50];

printf("Introduzca una frase: ");


gets(frase);
for(x = 0;x < 50;x++)
{
if (frase[x]=='\0')
{
indice=x;
break;
}
}

printf("La frase al reves es: \n\n");

for(x = indice-1;x >=0;x--)


{
printf("%c",frase[x]);
}

printf("\n\n");

system("PAUSE");
return 0;
}

21. Que lea una cadena y diga cuantas vocales hay.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])


{

int sum=0,x;
char frase[50];

printf("Introduzca una frase: ");


gets(frase);

for(x = 0;x < 50;x++)


{
switch (frase[x])
{
case 'a':
sum++;
break;
case 'e':
sum++;
break;
case 'i':
sum++;
break;
case 'o':
sum++;
break;
case 'u':
sum++;
break;
default:
break;
}

printf("\n\nEn la frase hay %d vocales\n\n",sum);

printf("\n\n");

system("PAUSE");
return 0;
}

22. Que lea una cadena y diga cuantas maysculas hay.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])


{
int sum=0,x;
char frase[50];

printf("Introduzca una frase: ");


gets(frase);

for(x = 0;x < 50;x++)


{
if (frase[x]>=65 && frase[x]<=90)
{
sum++;
}
}

printf("\n\nEn la frase hay %d maysculas\n\n",sum);

printf("\n\n");

system("PAUSE");
return 0;
}

23. Que lea una cadena y la encripte sumando 3 al cdigo ASCII de cada carcter. Mostrar por pantalla.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])


{
int sum=0,x;
char frase[50];

printf("Introduzca una frase: ");


gets(frase);

for(x = 0; x < 50;x++)


{
if (frase[x]!='\0')
{
frase[x]=frase[x]+3;
}
}

printf("\n\nLa nueva frase es:\n\n",sum);


printf("\n\n%s\n\n",frase);
printf("\n\n");

system("PAUSE");
return 0;
}
24. Que gestione los datos de stock de una tienda de comestibles, la informacin a recoger ser:
nombre del producto, precio, cantidad en stock. La tienda dispone de 10 productos distintos. El
programa debe ser capaz de:

1. Dar de alta un producto nuevo.

2. Buscar un producto por su nombre.

3. Modificar el stock y precio de un producto dado.

#include <stdio.h>
#include <stdlib.h>

struct producto {
char nombre[50];
float precio;
int cantidad;
};

int main(int argc, char *argv[])


{
struct producto prod,productos[10];

int x,opcion=1;

for (x=0;x<10;x++)
{
strcpy(productos[x].nombre,"X");
productos[x].precio=0;
productos[x].cantidad=0;
}

while ((opcion==1 || opcion==2 || opcion==3) && (opcion!=4))


{

printf("1- Alta de producto\n");


printf("2- Buscar por nombre\n");
printf("3- Modificar stock y precio\n");
printf("4- Salir\n");
printf("Introduzca una opcin: ");
scanf("%d",&opcion);
if (opcion==1)
{
printf("Introduzca un nombre: ");
gets(prod.nombre);
gets(prod.nombre);
printf("Introduzca un precio: ");
scanf("%f",&prod.precio);
printf("Introduzca un stock: ");
scanf("%d",&prod.cantidad);

for(x = 9; x >=0; x--)


{
if (x!=0)
{
strcpy(productos[x].nombre,productos[x-1].nombre);
productos[x].precio=productos[x-1].precio;
productos[x].cantidad=productos[x-1].cantidad;
}
else
{
strcpy(productos[x].nombre,prod.nombre);
productos[x].precio=prod.precio;
productos[x].cantidad=prod.cantidad;
}
}
printf("\nProducto creado. \n\n");
}
else if (opcion==2)
{
printf("Introduzca un nombre: ");
gets(prod.nombre);
gets(prod.nombre);

for(x = 0; x < 10;x++)


{

if (strcmp(productos[x].nombre,prod.nombre)==0)
{
printf("\nNombre: %s\n",productos[x].nombre);
printf("Precio: %f\n",productos[x].precio);
printf("Cantidad en Stock: %d\n",productos[x].cantidad);
}
}
printf("\n\n");
}
else if (opcion==3)
{
printf("Introduzca un nombre: ");
gets(prod.nombre);
gets(prod.nombre);

for(x = 0; x < 10;x++)


{
if (strcmp(productos[x].nombre,prod.nombre)==0)
{
printf("Introduzca un precio: ");
scanf("%f",&productos[x].precio);
printf("Introduzca un stock: ");
scanf("%d",&productos[x].cantidad);
printf("\nProducto modificado.");
}
}
printf("\n\n");
}
}

system("PAUSE");
return 0;
}

25. Que gestiona las notas de una clase de 20 alumnos de los cuales sabemos el nombre y la nota. El
programa debe ser capaz de:

1. Buscar un alumno.

2. Modificar su nota.

3. Realizar la media de todas las notas.

4. Realizar la media de las notas menores de 5.

5. Mostrar el alumno que mejores notas ha sacado.


6. Mostrar el alumno que peores notas ha sacado.

#include <stdio.h>
#include <stdlib.h>

struct alumno {
char nombre[50];
float nota;
};

int main(int argc, char *argv[])


{
struct alumno alum,alumnos[5];

int x,opcion=1;
float sum=0,cont=0,mejor,peor;

for (x=0;x<5;x++)
{
printf("Introduzca nombre alumno:");
gets(alumnos[x].nombre);
gets(alumnos[x].nombre);
printf("Introduzca nota:");
scanf("%f",&alumnos[x].nota);
}

while ((opcion==1 || opcion==2 ||


opcion==3 || opcion==4 ||
opcion==5 || opcion==6) && (opcion!=7))
{

printf("1- Buscar un alumno\n");


printf("2- Modificar nota\n");
printf("3- Media de todas las notas\n");
printf("4- Media de todas las notas inferiores a 5\n");
printf("5- Alumno con mejores notas\n");
printf("6- Alumno con peores notas\n");
printf("7- Salir\n");
printf("Introduzca una opcin: ");
scanf("%d",&opcion);
if (opcion==1)
{
printf("Introduzca un nombre: ");
gets(alum.nombre);
gets(alum.nombre);

for(x = 0; x < 5;x++)


{
if (strcmp(alumnos[x].nombre,alum.nombre)==0)
{
printf("\nNombre: %s\n",alumnos[x].nombre);
printf("Nota: %f\n",alumnos[x].nota);
}
}
printf("\n\n");
}
else if (opcion==2)
{
printf("Introduzca un nombre: ");
gets(alum.nombre);
gets(alum.nombre);

for(x = 0; x < 5;x++)


{
if (strcmp(alumnos[x].nombre,alum.nombre)==0)
{
printf("Introduzca una nota: ");
scanf("%f",&alumnos[x].nota);
printf("\nNota modificada.");
}
}
printf("\n\n");
}
else if (opcion==3)
{
sum=0;
for(x = 0; x < 5;x++)
{
sum=sum+alumnos[x].nota;
}
printf("\nLa media de las notas es de: %f \n",(sum/5));
}
else if (opcion==4)
{
sum=0;
cont=0;
for(x = 0; x < 5;x++)
{
if (alumnos[x].nota<5)
{
sum=sum+alumnos[x].nota;
cont++;
}
}
printf("\nLa media de las notas inferiores a 5 es: %f \n",sum/cont);
}
else if (opcion==5)
{
mejor=0;
for(x = 0; x < 5;x++)
{
if (alumnos[x].nota>mejor)
{
mejor=alumnos[x].nota;
alum.nota=alumnos[x].nota;
strcpy(alum.nombre,alumnos[x].nombre);
}
}
printf("\nEl alumno con mejores notas es: %s \n",alum.nombre);
}
else if (opcion==6)
{
peor=10;
for(x = 0; x < 5;x++)
{
if (alumnos[x].nota<peor)
{
peor=alumnos[x].nota;
alum.nota=alumnos[x].nota;
strcpy(alum.nombre,alumnos[x].nombre);
}
}
printf("\nEl alumno con peores notas es: %s \n",alum.nombre);
}
}
system("PAUSE");
return 0;
}
- See more at: http://programavideojuegos.blogspot.com/2013/05/25-ejercicios-resueltos-de-arrays-
y.html#sthash.uTlEtpRv.dpuf

Mejor respuesta: Puedes crear una funcin que reciba un array unidimensional, el cual sera una
fila de la matriz (array bidimensional) a ordenar. En el cuerpo de la funcin utilizas cualquier
algoritmo de ordenacin.

De esta manera:

void ordenar_fila (int fila[]) {


// aqu cualquier algoritmo de ordenacin
}

int main () {
int bi[10][10]; // 10 filas, 10 columnas (10 arrays de 10 elementos)
int i;

// ...

for (i=0; i<10; i++) // total de filas


ordenar_fila (bi[i]);

//...
}

De esa manera, ordenas todas las filas de la matriz pero de manera independiente (una fila a la
vez).

Si solo deseas ordenar una fila, en lugar del "for" indicas el indice de la matriz en la fila a ordenar:

ordenar_fila (matriz[4]); // ordena la quinta fila

...

Ahora, si lo que quieres es hacerlo sin funciones, es lo mismo, unicamente que todo el cdigo va a
estar metido dentro de un ciclo general. Ejemplo

for (i=0; i<10; i++) // toda la matriz (el "i" indicara la fila)
{
for (j=0; j<9; j++) // "j" indica el elemento que se a va a ordenar
{
for (k=j+1; k<10; k++) // mtodo de la "burbuja" ("k" indica elemento a comparar)
{
if (matriz[i][j] > matriz[i][k]) { // ordenar por intercambio
tmp=matriz[i][j];
matriz[i][j]=matriz[i][k];
matriz[i][k]=tmp;
}
}
}
}
/*
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 posicin, de lo
contrario mostrar un mensaje.
e) Usar un while o un do while para poder seguir ejecutando (algo asi
como quieres buscar otro nmero? 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;
}

#include <conio.h>
#include <iostream>

using namespace std;


int main()
{
int array[5],i,rango,mas_grande=0,valor_moda;
int frec[5]={0};

cout << "Digite los valores del arreglo:\n"<<endl;

for (i=0;i<5;i++){
cin >> array[i];
}

for (i=0;i<5;i++){
frec[array[i]]++;
}

for (rango=1;rango<=5;rango++)
{
if (frec[rango]>mas_grande){
mas_grande=frec[rango];
valor_moda=rango;
}

}
cout << "El valor moda es " << valor_moda<<endl;

getch ();
}

este otro codigo creo que lo hace mejor (no es mio, es encontrado en google)
tiene el defecto que si hay dos modas, te d como tal, la ltima.

#include<iostream>
#include<conio.h>

using namespace std;


int main(){
int num[10],b=0,cont=0,numero,val=0;

cin>>val;
for(int i=0;i<val;i++){
cout<<"numero";
cin>>num[i];
}
for(int a=0;a<val;a++){
cont=0;
for(b=0;b<val;b++){
if(num[a]==num[b])
{cont++;
}
if(cont>=2){
numero=num[a];
}
}
}
cout<<"la moda es = "<<numero;

return 0;
}

Anda mungkin juga menyukai