Я хотел создать программу, которая может читать правильные ответы, проверять ответы учащихся по сравнению с правильными ответами, а затем показывать точки каждого. Проблема в том, что каждый раз, когда я вставляю первый ответ, программа пропускает второй и переходит к третьему. Вот как получается каждый раз:C-язык, что не так с этим?
"Вставить ответ 1:
Вставить ответ 2: Вставьте ответ 3:"
И вот мой код:
#include <stdio.h>
int main()
{
char v[30], a[30][20];
int i,j,c;
for (i=0; i<30; i++)
{
printf("Insert the answer %d: ", i+1);
scanf("%c", &v[i]);
}
for(j=0; j<20; j++)
{
printf("Student %d\n", j+1);
for (i=0; i<30; i++)
{
printf("Insert your answer %d: ", i+1);
scanf("%c", &a[i][j]);
}
}
for(j=0; j<20; j++)
{
c=0;
printf("Student %d\n", j+1);
for (i=0; i<30; i++)
{
if (v[i] == a[i][j])
c=c+1;
}
printf("Points: %d\n", c);
}
return 0;
}
проблема, скорее всего, в scanf возвращается дважды. замените на readln. –