'For' C 中的循环无限循环
'For' loop in C loops endlessly
我知道之前有人问过这个问题,但我一直找不到适合我的案例的答案。
我无法让这个 For 循环结束。我确定这很简单,谁能告诉我我做错了什么?
#include <stdio.h>
int main ()
{
/* variable definition: */
char StudentName[100];
float ExamValue, Sum, Avg;
int students, exams;
int Total_Students;
printf("Enter total number of students: \n");
scanf("%d", &Total_Students);
// Loop through x students
for (students = Total_Students; 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);
}
return 0;
}
在预期遍历x个学生的外循环中,实际上是从x个学生开始并走向无穷大。你应该从零开始并用 "Total Students".
来约束它
这段代码可以解决您的问题。
你应该这样制作条件,准确设置起点,终点
#include <stdio.h>
int main()
{
/* variable definition: */
char StudentName[100];
float ExamValue, Sum, Avg;
int students, exams;
int Total_Students;
printf("Enter total number of students: \n");
scanf_s("%d", &Total_Students);
// Loop through x students
// you should make condition like this, set the start, end point accurately
for ( students = Total_Students; students>0; students--)
{
// reset Sum to 0
Sum = 0.0;
printf("Enter Student Name : \n");
scanf_s("%s", StudentName,sizeof(StudentName));
getchar();
// Nested Loop for Exams
for (exams = 0; exams < 3; exams++)
{
printf("Enter exam grade: \n");
scanf_s("%f", &ExamValue);
Sum += ExamValue;
}
Avg = Sum / 3.0;
printf("Average for %s is %f\n", StudentName, Avg);
}
return 0;
}
我知道之前有人问过这个问题,但我一直找不到适合我的案例的答案。
我无法让这个 For 循环结束。我确定这很简单,谁能告诉我我做错了什么?
#include <stdio.h>
int main ()
{
/* variable definition: */
char StudentName[100];
float ExamValue, Sum, Avg;
int students, exams;
int Total_Students;
printf("Enter total number of students: \n");
scanf("%d", &Total_Students);
// Loop through x students
for (students = Total_Students; 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);
}
return 0;
}
在预期遍历x个学生的外循环中,实际上是从x个学生开始并走向无穷大。你应该从零开始并用 "Total Students".
来约束它这段代码可以解决您的问题。 你应该这样制作条件,准确设置起点,终点
#include <stdio.h>
int main()
{
/* variable definition: */
char StudentName[100];
float ExamValue, Sum, Avg;
int students, exams;
int Total_Students;
printf("Enter total number of students: \n");
scanf_s("%d", &Total_Students);
// Loop through x students
// you should make condition like this, set the start, end point accurately
for ( students = Total_Students; students>0; students--)
{
// reset Sum to 0
Sum = 0.0;
printf("Enter Student Name : \n");
scanf_s("%s", StudentName,sizeof(StudentName));
getchar();
// Nested Loop for Exams
for (exams = 0; exams < 3; exams++)
{
printf("Enter exam grade: \n");
scanf_s("%f", &ExamValue);
Sum += ExamValue;
}
Avg = Sum / 3.0;
printf("Average for %s is %f\n", StudentName, Avg);
}
return 0;
}