Я пытаюсь завершить программу, когда пользователь вводит 1 в часть решения, но он все еще продолжает запрашивать ввод даже после ввода пользователем 1. Что я сделал неправильно или пропустил код? Пожалуйста, помогите, я не понимаю, что с этим не так.Как завершить программу?
#include <stdio.h>
int main()
{
int H, N, mark, s, n, last;
/*Student Marks Input, Grade Output/Loop*/
do
{
printf("Please enter your marks:");
scanf("%i", &mark);
if(mark>100)
{
printf("Invalid Input\n");
printf("Re-enter your marks:");
scanf("%i",&mark);
}
if(mark>=80)
{ H++;
printf("You got a H\n");
}
else
if(mark>=70)
{
printf("You got a D\n");
}
else
if(mark>=60)
{
printf("You got a C\n");
}
else
if(mark>=50)
{
printf("You got a P\n");
}
else
if(mark<=49)
{
N++;
printf("You got an N\n");
}
/*Decisions*/
printf("Are you the last student?(Y=1/N=0):");
scanf("%i", &last);
if(last==0)
{
n++;
}
else if (last==1)
{
s++;
}
}
while(s>0);
/*Results*/
if(H>N)
printf("Good Results");
else
printf("Bad Results");
return 0;
}
'в то время как (s> 0);' выглядит подозрительно к бесконечному циклу. –
@AlterMann Я не думаю, что это возможно для того, чтобы что-либо сделать, если 's' не изменяется в другом потоке. – Carcigenicate
Правильно форматируйте и отступайте свой код. Это трудно читать. – Olaf