Цикл на основе пользовательского ввода
Я пытаюсь создать код, который выводит среднее значение оценки студента. Пользователь вводит имя, затем три своих экзаменационных балла, а затем выводится среднее значение. Я, кажется, не могу понять, как позволить пользователю вводить любое количество имен студентов. Я хочу, чтобы программа завершилась, когда пользователь не введет другое имя, но я, кажется, не могу понять этого. Самый большой прогресс, который я получил без программы, приводящей к бесконечному циклу, - это оператор if, но оператор if завершается после одной записи.
#include <stdio.h> int main () { /* variable definition: */ char StudentName[100]; float ExamValue, Sum, Avg; int exams; if (StudentName!=0) { // 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); } else { return 0; } }
Что я уже пробовал:
Я пытался использовать цикл while, чтобы при вводе пользователем новой строки он заканчивался, но это не сработало. Я пробовал цикл for, который начинался с students = 0; students < StudentName; students++; но это не сработало. Самое большее, что я получил, - это цикл if, но я не понимаю, почему он не работает. Я пытался использовать while (StudentName> 0), но это приводит к бесконечному циклу. Я просто хочу, чтобы программа остановилась, когда пользователь перестанет вводить имена.