int main()
{
int N, K, i, j, k, x, final, cur, A[22];
for(i=!!scanf("%d %d",&N,&K), printf("%d\n",(final=N*N)-N);i<=N;A[i++]=i);
for(i=(cur=N)-1; i>=1; i--)
for(j=1; j<=i; printf("%d %d min\n%d %d max\n",A[j],A[j+1],A[j],A[j+1]),A[j]=++cur, A[j+1]=++cur, j++);
for(printf("%d",final-1+(cur=final)*0+(x=2)*0); cur>N; printf(" %d",cur), cur-=x, x+=2);
return 0;
}
请解释在第一个“for”语句中使用2个感叹号。请解释一下代码?
你知道C中单个感叹号的含义吗? (修辞问题,如果你不这样做,你应该阅读你的基本C)现在申请两次! – usr2564301
单个感叹号“!”意味着采取逻辑NOT,所以申请。所以它的值将是0或1.取决于scanf的返回值。做'man scanf'来找出更多关于它的信息。当它返回应该告诉哪两个的成功/失败!意思。 – gabhijit
该代码需要格式化,它不是所有可读的。我现在会做,但请记住它之后。 –