Wie funktioniert es, wenn fflush (stdin) die Ausgabe im folgenden Code ändert?
#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;
}
Diese Lösung ist zu diesemProble.
Ich erhalte nicht die gewünschte Ausgabe für den dritten Fall. Je nachdem, ob ich @ platziere, erhalte ich die Ausgabe als 3 oder fflush(stdin)
Vorscanf("%d",arr[i])
oder danachscanf("%d",arr[i])
, bitte teilen Sie das Problem mit diesem Code.