Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SonaArtica en 6 Noviembre 2012, 06:18 am



Título: [PROBLEMA]Ejercicio en C de Vectores 1.3[Borland 5.02]
Publicado por: SonaArtica en 6 Noviembre 2012, 06:18 am
Bueno este problema no me salio,si alguno puede detectar en que le erre le estaria muy agradecido,Saludos :-X
Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3. /* De un curso de informatica, de 30 alumnos se tiene el D.N.I y las notas de dos parciales de cada
  4. alumno.
  5.       Determinar e imprimir el promedio de las notas y el legajo de cada alumno ordenado en forma
  6.           decreciente por promedio. */
  7. void intercambio(int *a,int *b){
  8.                                int aux;
  9.                                aux=*a;
  10.                                *a=*b;
  11.                                *b=aux;
  12. }
  13. void ordenar2(int i,float promedio[]){
  14.                                    int a,j,hubocambio;
  15.                                    a=0;
  16.                                    do{
  17.                                    hubocambio=1; //Señal o Bandera que indica si se realizo algun cambio
  18.                                    for(j=1;j<i-a;j++)
  19.                                     if(promedio[j-1]>promedio[j])
  20.                                          { intercambio(&promedio[j-1],&promedio[j]);
  21.                                             hubocambio=0;};
  22.                                    a=a+1;
  23.                                    }while(hubocambio==0);//Cierrde de Do-While
  24. }
  25.  
  26. main(){
  27.       int alumnos[30];
  28.       int dni[30];
  29.       float nota1[30];
  30.       float nota2[30];
  31.       float promedio[30];
  32.       int i;
  33.       for(i=0;i<30;i++){
  34.                        printf("Ingrese Legajo y D.N.I del alumno \n",alumnos[i],dni[i]);
  35.                        fflush(stdin);
  36.                        scanf(" %d%d",&alumnos[i],&dni[i]);
  37.                        printf("Ingrese la primera y la segunda nota de los parciales \n");
  38.                        fflush(stdin);
  39.                        scanf(" %f%f",&nota1[i],&nota2[i]);
  40.                        promedio[i]=(nota1[i]+nota2[i])/2;
  41.       }
  42.       //Imprimir en forma decreciente los promedios de cada alumno
  43. return 0;
  44. }


Título: Re: [PROBLEMA]Ejercicio en C de Vectores 1.3[Borland 5.02]
Publicado por: HRSLASH en 6 Noviembre 2012, 17:04 pm
Hola SonaArtica! un consejo, en lugar de usar 5 vectores para mantener los datos de los alumnos, seria mejor usar una estructura y desp hacer un vector con ellas.

Ej

struct alumno{
    char nombre[20];
    long dni;
    double nota1;
    double nota2;
    double promedio;
};

int main(void)
{
    struct alumno alumnos[30];

    //sentencias

    return 0;
}

Tmb puede hacerse de forma dinamica, eso depende de cada uno..

Saludos!