Я пытался понять логику c, стоящую за этим для l oop, но я не смог. Задача состоит в том, чтобы ввести целое число n
(количество тестовых случаев), за которым следует n символов, каждый из которых обозначает день недели. Поэтому мне нужно вывести число дней n раз.
#include <stdio.h>
int main()
{
int n, i;
char ch;
scanf("%d",&n);
for (i = 0; i < 2 * n; i += 1)
{
scanf("%c", &ch);
switch (ch)
{
case 'M':
printf("Monday\n");
break;
case 'T':
printf("Tuesday\n");
break;
case 'W':
printf("Wednesday\n");
break;
case 'H':
printf("Thursday\n");
break;
case 'F':
printf("Friday\n");
break;
case 'S':
printf("Saturday\n");
break;
case 'N':
printf("Sunday\n");
break;
}
}
return 0;
}
Я не понимаю логи c для i<2*n
. Так, например, когда я ввожу n=2
, за которым следуют символы M M
, а i
инициализируется 0
, проверяется условие для 0 < 4
, которое является истинным, поэтому вводится первый символ M
, и Monday
печатается один раз, теперь i
увеличивается до 1
и проверяется на 1 < 4
, который имеет значение true и печатается еще раз. Теперь он уже был напечатан дважды, но в соответствии с i < 2 * n
logi c не должен ли Monday
печататься 4 раза, пока 4 < 4
не прекратит работу для l oop?
Но этот лог c как-то работает правильно.
Мой лог c для i <= n
, почему-то не работает и только вводит и печатает символ один раз. Куда я здесь не так?