【发布时间】:2016-11-14 12:26:56
【问题描述】:
#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;
}
这个解决方案是针对这个problem。
我没有得到第三种情况所需的输出,它给我的输出是 3 或 4,这取决于我将 fflush(stdin) 放在 scanf("%d",arr[i]) 之前还是在 scanf("%d",arr[i]) 之后,请用这段代码说明问题。
【问题讨论】:
-
看起来很有趣,但是请:正确格式化您的代码。
-
我重新提出这个问题,因为标记的欺骗非常相关,但不是正确的欺骗。除了标记为欺骗中讨论的问题外,还有其他问题需要解决。
-
供参考:被标记的骗子:stackoverflow.com/questions/22901901/…