OriginalGriff
Начните с правильного отступа кода, чтобы он не выглядел так, как будто заканчивается ложной закрытой фигурной скобкой:
#include <stdio.h>
#include <limits.h>
int main ()
{
/* variable definition: */
char StudentName[100];
char end;
float ExamValue, Sum, Avg;
int students,exams;
// Loop through Students
for (students=1; students <INT_MAX ; students++)
{
// reset Sum to 0
Sum =0.0;
printf("Enter Student Name \n");
scanf("%s", StudentName);
// Nested Loop for Exams
for (exams=0; exams < 3; exams++)
{
printf ("Enter exam grade: \n");
scanf("%f", &ExamValue);
Sum += ExamValue;
}
Avg = Sum/3.0;
printf( "Average for %s is %f\n",StudentName,Avg);
if (StudentName == 'end')
{
break;
}
}
return 0;
}
Теперь то, что я хотел бы посмотреть, - это перемещение "теста выхода" выше в функции, так что это первое, что вы делаете:
#include <stdio.h>
#include <limits.h>
int main ()
{
/* variable definition: */
char StudentName[100];
char end;
float ExamValue, Sum, Avg;
int students,exams;
// Loop through Students
for (students=1; students <INT_MAX ; students++)
{
printf("Enter Student Name \n");
scanf("%s", StudentName);
if (strcmp(StudentName, "end") == 0)
{
break;
}
Sum =0.0;
for (exams=0; exams < 3; exams++)
{
printf ("Enter exam grade: \n");
scanf("%f", &ExamValue);
Sum += ExamValue;
}
Avg = Sum/3.0;
printf( "Average for %s is %f\n",StudentName,Avg);
}
return 0;
}
Если это не решит вашу проблему, тогда вам нужно объяснить гораздо более подробно, что именно он делает, чего вы не ожидали, или не делает того, что вы сделали. И что вы сделали, чтобы выяснить, почему - включая то, что отладчик показал вам во время выполнения вашего кода.