Como o trabalho do fflush (stdin) está alterando a saída no código abaixo?
#include <stdio.h>
int main()
{
int test_no ,count=1,i,n,j;
scanf("%d",&test_no);
fflush(stdin);
int arr1[test_no];
for(i=0;i<test_no;i++)
{
scanf("%d",&n);
printf("\n");
int arr[n];
for(j=0;j<n;j++)
{
fflush(stdin);
scanf("%d",&arr[i]);
}
for(j=1;j<=n-1;j++)
{
if(arr[j-1]>arr[j])
{
count++;
}
}
if(n==1)
{
arr1[i]=1;
}
else
{
arr1[i]=count;
}
count=1;
}
for(i=0;i<test_no;i++)
{
printf("%d\n",arr1[i]) ;
}
return 0;
}
Esta solução é para issoproblema.
Não estou obtendo a saída desejada para o terceiro caso, está me dando uma saída como 3 ou 4, dependendo de eu colocarfflush(stdin)
antesscanf("%d",arr[i])
ou depoisscanf("%d",arr[i])
, informe o problema com este código.