Эта программа сканирует некоторые символы и показывает, сколько 'x'
было введено в качестве ввода.
Я думаю, что вам лучше понять код, а не объяснение.
#include<stdio.h>
main()
{
int n,i,t=0;
scanf("%d",&n);
char ara[n];
for(i=0;i<n;i++)
{
scanf("%c", &ara[i]);
if(ara[i]=='x') t++;
}
printf("%d",t);
}
предположим, n
= 5
и символы были "xxxxxx"
. В этом случае значение t
должно быть 5
. Но он отображает 4
.
Другое дело, что если вы удалите первый оператор scanf (строка 5) и вручную установите значение n
= 5
везде в коде:
int n,i,t=0;
//scanf("%d",&n);
n = 5;
тогда значение t
становится 5
, что приводит к правильному выводу. Есть ли вероятность того, что внешняя функция scanf влияет на функцию scanf внутри цикла for?