#include<stdlib.h>
#include <stdio.h>
int main()
{
int T,N,a;
scanf("%d\n",&T); //test cases
int A[T];
for(int i=0;i<T;i++) {
scanf("%d\n",&N); //number of box in a test case
int X[N];
for(int j=0;j<=N-1;j++)
scanf("%d\n",&X[j]);
a=N;
for(int k=0,l=0;l<(a-1);l++) {
if(X[k]<X[++k])
N=N-1;
}
A[i]=N;
}
for(int i=0;i<T;i++)
printf("%d\n",A[i]);
system("pause");
return 0;
}
此代码在程序结束时要求额外输入,然后显示输出。但是,它从不考虑我给出的最后一个输入,也不需要最后输入。我可以在这做什么改变,所以它不会要求额外的输入。
答案 0 :(得分:0)
您的\n
格式字符串末尾不需要scanf
。只需在"%d\n"
次来电中将"%d"
更改为scanf
。
当scanf
在格式字符串中遇到空白字符(包括'\n'
)时,它会跳过所有空格,直到它遇到非空白字符。如果您尚未输入另一个非空格字符,它将等待您输入一个字符。所以,如果你这样做scanf
:
int x;
scanf("%d\n", &x);
...然后您在键盘上输入5<Enter>
,scanf将x
设置为5
,然后等待,以便您输入另一个非空白character,因为你告诉它将数值读入x
然后跳过任何/所有空格,直到它遇到下一个非空格字符。