Autor
|
Tema: Ordenamiento burbuja (Leído 7,485 veces)
|
jravelar
Desconectado
Mensajes: 12
|
Hola tengo un arreglo en dev c que me pide calificaciones y me entrega el promedio, me han pedido que lo mejore imprimienole además del promedio la calificacion mas alta del alumno, se debe tomar en cuenta que el maximo de calificaciones por semestre es 10; estuve buscando y encontre algo que es ordenamiento burbuja, pero no supe adaptarlo a mi programa. por si alguien me puede ayudar con el codigo a imprimir la calificacion mas alta porfavor! este es el codigo #include <stdio.h> #include <stdlib.h> #define M 10 int main(int argc, char *argv[]) { int n, i; float calif[M], prom=0; printf ("Cuantas materias tomaste en el semestre:"); scanf ("%d", &n); for(i=0; i<n; i++) { printf("Dame tu calificacion:"); scanf("%f", &calif); prom=prom + calif; } calif = prom/n; printf("\nTus calificaciones son:\n"); for(i=0; i<n; i++) printf("\n%.02f", calif ); printf("\n\n\nTu promedio es: %.02f\n\n\n\n", calif[n]); system("PAUSE"); return 0; }
Agradezco de antemano
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Pero si no te han pedido implementar una ordenación, ¿por qué quieres usar la burbuja ahí?
Además está mal redactado lo que quieres, vuelvelo a leer, verás que se entiende poco.
¿ "me han pedido que lo mejore imprimienole además del promedio la calificacion mas alta del alumno" ?
|
|
|
En línea
|
|
|
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
Tomas un valor como ejemplo y mientras recorres el arreglo -u donde sea que recibas las calificaciones- vas comparando con ese ejemplo, si es mayor reemplazas y si no no. Para cuando termines tendrás la calificación mas alta en donde tenias el ejemplo.
En el caso que ordenes el arreglo, la calificación mas alta estará obviamente en los extremos, dependiendo de como ordenes el arreglo (en forma ascendente o descendente)
Saludos
PD: En el foro hay ejemplos con códigos de lo que quieres hacer, y la etiqueta para los códigos es [code=c]código[/code]
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
jravelar
Desconectado
Mensajes: 12
|
Corrijo El problema es 1-Pedir numero de materias 2-Obtener promedio 3-Imprimir la calificacion mas alta Esto es lo que tengo, ya me imprime el promedio; aunque siempre me imprime 0 como si fuera la calificacion mas alta. Segun yo utilizo el ordenamiento para imprimir la que quede "hasta al final" e imprimirla. Por si me ayudan otra vez, jeje #include <stdio.h> #include <stdlib.h> #define M 10 int main(int argc, char *argv[]) { int n, i, j, temp; float calif[M], prom=0; printf ("Cuantas materias tomaste en el semestre:"); for(i=0; i<n; i++){ { printf("Dame tu calificacion:"); prom=prom + calif[i]; } for (j=i; j<n; j++) {if (calif[i]>calif[j]) temp=calif[i]; calif[i]=calif[j]; calif[j]=temp; }} printf("\n\nTu calificacion mas alta es: %i", calif [i ]); calif[i] = prom/n; printf("\n\n\nTu promedio es: %.02f\n\n", calif [n ]); return 0; }
|
|
|
En línea
|
|
|
|
biribau
Desconectado
Mensajes: 181
|
1 - te faltan unas llaves en el "ordenamiento" 2 - eso no es la burbuja 3 - ordenacion por insercion es mucho más fácil y natural en la forma en que te vienen los datos(de uno en uno) y que supongo que es lo que pretendías(malamente, porque recorres la parte sin inicializar del array, fíjate) 4 - no te hace falta ordenarlo, es el problema de la k-seleccion cuando k=0, mira sólo tienes que llevar otra variable temporal con el máximo, cada vez que te entreguen un numero mayor actualizas el máximo, ya está, porque si algo es mayor que el máximo es que es el máximo. Problema: necesitas un numero mínimo(para inicializar máximo), esto a veces puede suponer un problema, a veces se coge -infinito o MIN_INT, en tu caso ya sabes cual es el mínimo posible, 0.
|
|
|
En línea
|
|
|
|
Tha_Traker
Desconectado
Mensajes: 28
|
Yo te recomendarías dos cosas para empezar: tabula y pon comentarios. Porque el código tal cual esta es incomprensible. Antes de preguntas, por qué no usas el debuger, aprenderas más que si te resuelven otros las dudas simples. En todo caso como dice biribau no te hace falta ordenar y en este caso no deberías ordenador es totalmente ilógico y sobrecargas el programa para nada. Lo que tienes que hacer es coger un papel y plantearte el problema. Necesitas saber cual es la nota maxima. Pues como te ha dicho biribau : cada vez que te entreguen un numero mayor actualizas el máximo, ya está, porque si algo es mayor que el máximo es que es el máximo. Problema: necesitas un numero mínimo(para inicializar máximo), esto a veces puede suponer un problema, a veces se coge -infinito o MIN_INT, en tu caso ya sabes cual es el mínimo posible, 0. Después de insertar los datos en el vector con el primer for. Haz otro for igual y dentro pregunta si el dato que esta en MAX es mejor que el del vector, si es el caso cambia, sino pues que siga. NOTA:No hace falta un mínimo para eso, tan solo inicialo con el primer valor del vector. Una burbuja en speudocódigo COMIENZO Burbuja
Entorno: p,n,i son enteros vector[n] es alfanumerico{vector} Algoritmo: para p<-1 a n-1 hacer {en c seria i<-0} para i<-1 a n-1 hacer si vector>vector[i+1] entonces aux<-v vector<-vector[i+1] vector[i+1]<-aux fin_si fin_para fin_para FIN_BURBUJA Esto es la estructura de una burbuja. Un saludo
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como limitar un resultado en un ordenamiento de Burbuja
Programación C/C++
|
luis456
|
6
|
4,241
|
27 Diciembre 2012, 18:35 pm
por luis456
|
|
|
Ordenamiento de array mediante burbuja
Java
|
luchi
|
5
|
3,570
|
22 Agosto 2013, 07:34 am
por 1mpuls0
|
|
|
Cómo ordenar un arreglo bidimensional aplicando ordenamiento burbuja?
Programación C/C++
|
UmbraNoche
|
1
|
7,819
|
14 Febrero 2015, 17:36 pm
por engel lex
|
|
|
Esta vez no estamos ante una burbuja tecnológica, EEUU es una burbuja
« 1 2 3 »
Foro Libre
|
dimitrix
|
23
|
9,454
|
7 Marzo 2015, 17:04 pm
por dimitrix
|
|
|
Ordenar un arreglo de dos dimensiones aplicando el ordenamiento burbuja
Programación C/C++
|
UmbraNoche
|
0
|
2,806
|
25 Octubre 2015, 03:31 am
por UmbraNoche
|
|