一道C,请高手讲解

来源:百度知道 编辑:UC知道 时间:2024/05/23 04:57:48
int 23;
do
{
printf("%d",x--);
}while(!x);
回答者:029349029 - 试用期 一级 8-12 00:17
首先谢谢个位的关注与回答,在此需要特别感谢的是回答者:029349029 - 试用期 一级 8-12 00:17
因为没有给你最佳答案,但你也给出的也是很好的更正和回答.
学C是一年前的事了,忘了很多,虽然这道题下来后自己翻了下书也解出来了,但很是羞愧.
由于时间仓促写得很简单,但029349029与125149400还是给出了非常清晰的解答,在此再次感谢二为,并对029349029报以歉意.

你可能是写:
int x=23;
do
{
printf("%d",x--);
}while(!x);
/*******你写的会有问题******/
do {.....}while是循环结构。
所以其中的printf("%d",x--)可能要执行多次。
第一次循环:
输出23 X自减1,变为22
判断条件!x,也就是!22,而非22就是0了,条件就不满足了,条出程序
/// !(非0)=0;
条件为0的就表示条件不满足
条件非0的就表示条件满足。

int 23,什么来的,不懂

int x=23??
如果这样,打印23,再--,22,!22为假
所以结果23

这个程序有问题的 请楼主修正

注意你的错误:int x=23;//这么粗心,不看了

确实有问题…
首先,这不是一个完整的程序(无main函数)
如果这是一个片段,那么:
1.23是非法的变量名。
2.即使他不是变量名,那也应该赋给他一个变量吧!
3.变量x未声明。

如果把此程序稍加改动,那样结果就是正确的了。

main()
{
int x=23; //注意这里
do
{
printf("%d",x--);
} while (!x);
}

这样,输出结果为:23。

如果是
int x = 23;

那么结果是
23 22 21 ........ 3 2 1