Ayuda, examen para antes de medianoche C++

#1
Tengo un problema con este programa en C++, la verdad se mira sencillo pero me cuesta trabajo, si me ayudan se los agradeceria mazizo

Elaborar un programa en C que pida nombre, 3 calificaciones para un grupo de 5 alumnos, sacar promedio por alumno y almacenar en otro vector y al final imprimir la lista ordenada de mayor a menor
Tambien indicar si el

promedio <50 = reprobado
promedio >60<79= regular
promedio >80<89=bien
promedio >90<100= excelente


llevo esto carnales



#include<stdio.h>
#include<conio.h>
void main()
{
float v1[3],v2[3],v3[3],v4[3],i,j,k,h,aux;
char nom[3][80],copia;
clrscr();

for(i=0;i<3;i++)
{gotoxy(30,2);printf("Nombre: "); scanf("%s",&nom);
gotoxy(25,5);printf("Calificacion del 1er parcial: "); scanf("%f",&v1);
gotoxy(25,6);printf("Calificacion del 2do parcial: "); scanf("%f",&v2);
gotoxy(25,7);printf("Calificacion del 3er parcial: "); scanf("%f",&v3);
v4=(v1+v2+v3)/3;
printf("%f",v4);
getch();
clrscr();
}

for(k=0;k<v4[3];k++)
for(j=0;j<v4[3]-k;j++)
{ if(v4[j]<v4[j+1])
{ aux=v4[j];
v4[j]=v4[j+1];
v4[j+1]=aux;
}
}
for(h=0;h<3;h++)
{ gotoxy(30,1+h); printf("%f",v4[h]);
}

getch();
}
 

piKa503

Bovino adolescente
#2
aqui esta, la forma de usar los i++ k++ ,etc solo es en enteros
las cadenas de caracteres solo se pueden guardar en struct asi como lo planteabas nom[3][80] estabas asignando una matriz de 3x80 q solo almacenan un caracter cada casilla
el metodo de ordenamiento lohize de buble sort,
ACLARO, no esta completo,
solo esta q restrinjas las entradas de datos con q sean >=0 y <=10 con un while o do while. pero el ordenaminto ya esta, solo q no me ordena los nombres, pero eso ya es poco. me voy a dormir, ok
talvez alguien mas te ayude
Suerte
Código:
#include<stdio.h>
#include<conio.h>
#define dat 3
struct alum
{
char nom[80];
};

void main()
{
struct alum n[dat];
float v1[dat],v2[dat],v3[dat],v4[dat],aux1;
char aux2[80];
int i,c;
for(i=0;i<dat;i++)
  {
  clrscr();
  fflush(stdin);
  printf("Nombre: ");
  gets(n[i].nom);
  printf("Calificacion del 1er parcial: ");
  scanf("%f",&v1[i]);
  printf("Calificacion del 2do parcial: ");
  scanf("%f",&v2[i]);
  printf("Calificacion del 3er parcial: ");
  scanf("%f",&v3[i]);
  v4[i]=(v1[i]+v2[i]+v3[i])/3;
  printf("Promedio: %f",v4[i]);
  getch();
  }
c=1;
while(c!=0)//ordenamiento por Bubble sort
  {
  c=0;
  for(i=0;i<dat-1;i++)
     {
     if(v4[i]<v4[i+1])
        {
        fflush(stdin);
        aux1=v4[i];
        //aux2=n[i].nom;//esto no me funciono
        v4[i]=v4[i+1];
        //n[i].nom=n[i+1].nom;//esto no me funciono
        v4[i+1]=aux1;
        //n[i+1].nom=aux2; //esto no me funciono
        c=1;
        }
     }
  }
clrscr();
printf("Nombre\t\tNota\n");
for(i=0;i<dat;i++)
  printf("%s\t%.2f\n",n[i].nom,v4[i]);
getch();
}
 
Arriba