Que tal gente, soy nuevo en el foro. Resulta q me estoy iniciando en el tema de la programacion, estoy en lo mas basico, y me encuentro con este ejercicio:
Escribe un programa que lea diez enteros comprendidos entre 1 y 10, los almacene en
un vector y escriba por pantalla la cantidad de elementos de cada número que contiene.
Ejemplo: Dado el siguiente vector [2, 2, 2, 3, 3, 4, 4, 4, 7, 7]
La salida producida sería:
Existen 3 elementos del número 2
Existen 2 elementos del número 3
Existen 3 elementos del número 4
Existen 2 elementos del número 7
Que me esta complicando la vida. Les cuento, con mis escasos conocimientos, pude hacer este codigo que obviamente no me funciona, y quiero q me lo revisen a ver q es lo q falta, y que es lo que esta mal:
Código PHP:
#include <stdio.h>
int main (){
int vector[4];
int i, j, k;
int n = 0;
printf("Escriba 4 numeros:\n");
for (i=0;i<4;i++){
printf("Introduzca numero %i: ", i+1);
scanf("%i", &vector[i]);
}
for(k=0;k<4;k++){
for(j=k+1;j<4;j++){
if (vector[k] == vector[j]){
n ++;
}
}
}
for(i=0;i<4;i++){
printf("Existen %i elementos del numero %i\n", n, vector[i]));
}
system("pause");
return 0;
}
CAMBIE EL NUMERO 10 a 4 para hacerlo mas corto al probarlo, pero la idea es la misma.
Les juro que no se cuantas horas ya estoy viendo de resolverlo y no puedo!
Busque ayuda en otro foro y me dieron este codigo, que funciona perfectamente, pero no lo entiendo! Intente de entenderlo con el debugger paso a paso pero no hay caso! es desesperante!!
Les dejo el codigo que funciona pero no entiendo (despues les especifico cuales son las partes que no entiendo):
Código PHP:
#include<stdio.h>
int main(){
int i,j,n,tem;
printf("Cuantos numeros desea introducir\n");
scanf("%d",&n);
int Array[n];
for(i=0;i<n;i++){
printf("Ingrese la cantidad No, %d\n",i+1);
scanf("%d",&Array[i]);
}
for(i=0;i<n-1;i++){
for(j=0;j<n;j++){
if(Array[j]>Array[j+1]){ //NO ENTIENDO ESTA PARTE! COMO UN NUMERO VA A SER MAYOR QUE ESE NUMERO +1??? No significa eso?
tem = Array[j];
Array[j] = Array[j+1]; //NO ENTIENDO ESTAS 3 LINEAS!! PARA QUE EL METODO DE LA BURBUJA!!???
Array[j+1] = tem;
}
}
}
tem = 1;
for(i=1;i<=n;i++){ //TAMPOCO ENTIENDO ESTAS 3 o 4 LINEAS!!
if(Array[i] != Array[i-1]){
printf("Existen %d elementos del numero %d\n",tem,Array[i-1]);
tem = 1;
}
else
tem++;
}
return (0);
}
Bueno espero que me puedan ayudar, para los que saben seguramente sea una boludez el tema, pero estoy muerto de ganas de aprenderlo y tengo que recurrir aca porque ya van varias horas que no me sale!
Muchas gracias!