| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1310 人关注过本帖
标题:[求助]一个简单求n题
只看楼主 加入收藏
夜火
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2007-5-30
收藏
得分:0 
1: n=0 while 成立 执行n++ n=1
2: n=1 while 成立 执行n++ n=2
3: n=2 while 成立 执行n++ n=3
4: n=3 while 不成立 执行n++ n=4

2007-06-04 22:32
小子也大叔
Rank: 2
等 级:新手上路
威 望:4
帖 子:143
专家分:0
注 册:2007-4-23
收藏
得分:0 
以下是引用小子也大叔在2007-6-4 22:31:13的发言:

我现在没去编译他  我想答案应该是D  因为if n=0;我觉得这句有语病 如果是个条件判断的话  应该是
if n==0;

我现在编译了   真的有语病 报错如下图:

图片附件: 游客没有浏览图片的权限,请 登录注册

就是 if n=0;有错

当我把它改成 if(n==0);时  如:
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
int n;

if (n==0);
while(n++<=2);
printf("%d",n);

system("pause");
return 0;
}
 就可以编译了  结果是 4 这个结果我就想不通了  

还有时候的程序可以写成这样:

#include<stdio.h>
#include<stdlib.h>

int main(void)
{
int n;

if (n==0)
;
while(n++<=2)
;
printf("%d",n);

system("pause");
return 0;
}

我的理解是:当n=0时 什么都不执行  当我就想不通 n的初值是多少呢????结果怎么会是4呢???


希望一心想学c的加我的群吧~~ 40834003
2007-06-04 22:41
夜火
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2007-5-30
收藏
得分:0 
N 的 初值为0

if(n==0)

就是
if(1)

因为n==0 就是1 呀

2007-06-04 22:44
wshyj18
Rank: 1
等 级:新手上路
帖 子:124
专家分:0
注 册:2007-5-14
收藏
得分:0 
看不懂

2007-06-04 22:56
小子也大叔
Rank: 2
等 级:新手上路
威 望:4
帖 子:143
专家分:0
注 册:2007-4-23
收藏
得分:0 
以下是引用爱C在2007-6-4 22:14:16的发言:

if n=0;

while(n++<=2); printf("%d",n); A) 2 B) 3C) 4 D)有语法错

这个题目的答案是C为什么啊。
这题有语法错误啊 !!
if后面是什么??

不错  这个一定是有语病的 if 后面应该是个条件判断 可以改为 n==0
要是是n==0的话  就是他们那样说的:第一次 其实我都不知道n的初值是多少 要是是1的话 就是开始为1 但执行一次后 自加为2

第2次  n=2 满足条件 然后自加为3 这个时候再去判断 (n++<=2)时 就不满足条件了 就不再执行后面的空语句 但n++还是要执行的 所以 n自加为4   

所以 答案是4 

但哪个可以告诉我n的初值是多少?????


希望一心想学c的加我的群吧~~ 40834003
2007-06-04 22:57
小子也大叔
Rank: 2
等 级:新手上路
威 望:4
帖 子:143
专家分:0
注 册:2007-4-23
收藏
得分:0 
以下是引用夜火在2007-6-4 22:44:28的发言:
N 的 初值为0

if(n==0)

就是
if(1)

因为n==0 就是1 呀

或许你可以把它写成这样:

#include<stdio.h>
#include<stdlib.h>

int main(void)
{
int n;

if (n==0);
printf("%d\n",n);

while(n++<=2);
printf("%d",n);

system("pause");
return 0;
}

这样就可以判断它的初值了(或许不是吧  我也不知道算不算是)
运行结果是:

图片附件: 游客没有浏览图片的权限,请 登录注册


要是这样的话 看来n的初值就应该是2 (当然只要它的初值满足n<=2 结果还是4)

但要是改成:
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
int n=0;

//printf("input n:");
//scanf("%d",&n);

if (n==0);
printf("%d\n",n);

while(n++<=2);
printf("%d",n);

system("pause");
return 0;
}

的话 又能怎么想呢???
他的初值又成了0(为0 应该是情理之中) 但为什么上面的就是2呢???


希望一心想学c的加我的群吧~~ 40834003
2007-06-04 23:12
风之舞鹤
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2007-6-2
收藏
得分:0 

答案是4
main()
{ int n=0;

while(n++<=2); printf("%d",n);


}


2007-06-04 23:21
chyhome
Rank: 1
等 级:新手上路
威 望:1
帖 子:102
专家分:0
注 册:2007-5-13
收藏
得分:0 

答案:4
n++,n先参与表达式的计算后n再自增加1。


2007-06-04 23:24
yangzhifu
Rank: 1
等 级:新手上路
威 望:2
帖 子:433
专家分:0
注 册:2007-4-11
收藏
得分:0 

我也觉得应该选D:


方寸之内,剖天下; 方坛之内,析自我;
2007-06-04 23:29
小子也大叔
Rank: 2
等 级:新手上路
威 望:4
帖 子:143
专家分:0
注 册:2007-4-23
收藏
得分:0 
或许LZ这个程序根本就是个错误  总的来说我们应该避免这种情况出现

希望一心想学c的加我的群吧~~ 40834003
2007-06-05 00:03
快速回复:[求助]一个简单求n题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026081 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved