struct

[email protected]
25 de Febrero del 2010
Hola, tengo problemas con el siguiente ejercicio:
#include <stdio.h>
#include <stdlib.h>
#define N_ALUMNOS 3

struct alumno{
char nombre[30];
double nota;
};

int main(){
int i;
double nota=0.0;
struct alumno clase[N_ALUMNOS];
for(i=0; i<N_ALUMNOS; i++){
printf("Introduce el nombre y la nota del alumno: ");
scanf("%29s %lf",clase[i].nombre,&clase[i].nota);
}
printf("%sn","El alumno con mayor nota es: ");

for(i=0; i<N_ALUMNOS; i++){
if(clase[i].nota >clase[i+1].nota && i<N_ALUMNOS)
printf("%s %.2lfn",clase[i].nombre,clase[i].nota);
}
exit(0);
}
Se trata de buscar la nota mayor, pero no me sale. Le doy el nombre y la nota de los tres alumnos. Ej: maria 7.5, pepe 8.25 y paco 6.8 y como resultado me sale esto: carlos 8.25
pepe 6.08. No me saca la nota más alta. ¿Pueden decirme donde está el fallo? Gracias.