Autor
|
Tema: Ayuda con un array por favor? (Leído 2,144 veces)
|
elignah
Desconectado
Mensajes: 3
|
Bueno gente, soy nuevo en el foro, como andan? Vengo a plantearles una pequeña duda que tengo con el tema arrays. Les dejo la consigna que lo puede explicar mejor que yo: 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 7ES PROGRAMACION EN C, aclaro, y estoy usando el DEV C ++.Estoy hace un par de horas intentando y no me sale che... espero que alguno me pueda ayudar, seguramente sea una boludez. Me quedo despues de esta parte: #include <stdio.h> int main () { int i, num, cont = 0; int arre[10]; for (i=0;i<10;i++) { printf ("Ingrese valor %d del arreglo:" ,i +1); }
Pongo los 10 valores del array, pero despues no se como compararlos para que me diga como esta en la consigna! Desde ya, muchas gracias! MOD EDIT: Usar etiquetas GeSHi.
|
|
« Última modificación: 16 Marzo 2016, 02:59 am por MCKSys Argentina »
|
En línea
|
|
|
|
r00t31
Desconectado
Mensajes: 14
|
|
Re:
« Respuesta #1 en: 15 Marzo 2016, 06:41 am » |
|
Puedes comenzar por ordenar tu arreglo por ejemplo con el metodo de la burbuja for(i=0;i<9;i++){ for(j=0;j<10;j++){ if(arre[j]>arre[j+1]){ tem = arre[j]; arre[j] = arre[j+1]; arre[j+1] = tem; } } }
Ahora que ya esta ordenado ya puedes imprimir n=1; for(i=1;i<10;i++){ if(arre[i-1] != arre[i]) printf("Existen %d elementos del numero %d",n ,arre [i -1]); else n++; }
Solo declara las variables que no esten en tu codigo inicial, aunque no lo corri para comprobarlo espero te sirva, yo tambien soy nuevo en el foro pero espero que no te hayas unido solo para que te solucionen la tarea suerte Saludos!!! Enviado desde mi LG-H542 mediante Tapatalk MOD EDIT: Usar etiquetas GeSHi.
|
|
« Última modificación: 16 Marzo 2016, 03:01 am por MCKSys Argentina »
|
En línea
|
|
|
|
elignah
Desconectado
Mensajes: 3
|
Muchas gracias!!! Y no es tarea, simplemente me estoy iniciando en la programación por mi cuenta. Todavía no empecé a estudiar en una universidad. Falta poquito para eso pero por.ahora estoy por mi cuenta. Pero tengo un problema, soy nuevito en la programacion por si no se dieron cuenta. Cuando pongo el codigo en el dev c++ me dan errores, warnings, y funciones no declaradas, cuando las declaro, no consigo el objetivo de la consigna! Les dejo una captura, como les repito, soy nuevo en el tema! FALTA EL #include y el intmain en la imagen pero estan. Gracias! MOD EDIT: Ajuste de imagen a un tamaño aceptable.
|
|
« Última modificación: 16 Marzo 2016, 03:02 am por MCKSys Argentina »
|
En línea
|
|
|
|
r00t31
Desconectado
Mensajes: 14
|
Ok que bueno que te interese la programación, mira este es el codigo, si eres nuevo y no comprendes alguna parte te recomiendo mejor preguntar, lo programe en linux y se supone que debe funcionar pero a veces con mis compañeros de la escuela el devc++ no corre algunos codigos creo que por el compilador pero ese no es el tema espero y funcione al 100 #include<stdio.h> int main(){ int i,j,n,tem; printf("Cuantos numeros desea introducir\n"); int Array[n]; for(i=0;i<n;i++){ printf("Ingrese la cantidad No, %d\n",i +1); } for(i=0;i<n-1;i++){ for(j=0;j<n;j++){ if(Array[j]>Array[j+1]){ tem = Array[j]; Array[j] = Array[j+1]; Array[j+1] = tem; } } } tem = 1; for(i=1;i<=n;i++){ if(Array[i] != Array[i-1]){ printf("Existen %d elementos del numero %d\n",tem ,Array [i -1]); tem = 1; } else tem++; } return (0); }
Espero que te sirva, ahora si lo corri para asegurarme que funcione MOD EDIT: Usar etiquetas GeSHi!!!
|
|
« Última modificación: 16 Marzo 2016, 20:42 pm por MCKSys Argentina »
|
En línea
|
|
|
|
r00t31
Desconectado
Mensajes: 14
|
|
Re:
« Respuesta #4 en: 16 Marzo 2016, 07:30 am » |
|
Agrege que puedas preguntar cuantos numeros deseas introducir, saludos!!
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Elginah, el error que tienes marcado en rojo es que comparas el valor de algo que se guarda en el array con la dirección de inicio de ese array. El nombre de un array devuelve siempre su dirección de inicio, para acceder a un valor que contenga, aunque sea la primera posición debes dereferenciarlo, ya sea con notación de puntero, ya sea con subíndices (notación de array).
|
|
|
En línea
|
|
|
|
elignah
Desconectado
Mensajes: 3
|
Lo pude solucionar, al parecer era el dev c++ que me daba el error. Ahora estoy usando el codeblocks y perfecto! Muchas gracias a los dos!!! ---------PD: Disculpa si te molesto querido r00t31, o a quien corresponda, pero hago 4 preguntas: 1- Por que usaste el metodo de la burbuja en la mitad del codigo? 2- Por que usas i-1 y j+1??? Cual es la finalidad de esto? Tengo muchisima intriga 3- Por que pusiste un mayor (>) en esta parte? if(Array[j]>Array[j+1]){
Y ALGO QUE NO ENTIENDO EN ESTA PARTE ES: COMO UN NUMERO VA A SER MAYOR QUE ESE NUMERO +1??? No significa eso? 4- Que significa este if? Esta esta relacionada con la 2. A q hace referencia j y j+1? if(Array[i] != Array[i-1]){
No entendi eso. Me interesa muchisimo! Por eso quiero despejarme todas las dudas que tengo! Por favor que alguien me ayudee!!!
|
|
« Última modificación: 19 Marzo 2016, 05:40 am por elignah »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Copiar parte de una array a otra array
Programación Visual Basic
|
sircid
|
3
|
5,257
|
19 Diciembre 2007, 11:27 am
por LeandroA
|
|
|
ayuda con array
Programación C/C++
|
dulcevictoria
|
1
|
2,517
|
7 Diciembre 2010, 23:53 pm
por winroot
|
|
|
Eliminar las posiciones pares de un array y comprimir el array
Java
|
sevedeboa
|
8
|
15,399
|
26 Enero 2015, 15:52 pm
por sevedeboa
|
|
|
Ayuda por favor! Con c, unsigned char y array de char !
Programación C/C++
|
Yurasamai
|
1
|
3,430
|
24 Noviembre 2015, 09:14 am
por avesudra
|
|
|
creo que dañe mi router por favor ayuda no c que hacer por favor ayuda
Redes
|
ddiego84
|
2
|
3,327
|
2 Febrero 2016, 23:05 pm
por IBE
|
|