Tim*_*tei 0 c syntax post-increment
奇数数组以这种方式分组:first数字是第一组,下一个2数字形成第二组,下一个3数字形成第三组,依此类推.
团体:
现在我想查找给定数字是否是组中数字的总和并找到该组的订单号.
我写了下一个代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int k;
scanf("%d", &k);
int x = 1;
while( x * x * x < k )
x++;
if( x * x * x != k )
x = 0;
printf("%d", x);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试将while循环更改为下一个循环:
while( x * x * x++ < k )
;
Run Code Online (Sandbox Code Playgroud)
该程序无法运行,我收到了下一个警告codeblocks:
operation on 'x' may be undefined
它为什么不起作用?
行为x * x++是未定义的.这是因为你基本上是读取和写入到x在未测序的步骤; 乘法不是C中的序列点.
不要在C中执行此操作.您的编译器会出于常见的礼貌警告您.其他编译器可能会吃你的猫.