求一道C语言问题,求高手详解,谢谢!

#include<stdio.h>intmain(){charstr[10]="27";inti,number=0;for(i=0;str[i]!='\0';i++)if... #include<stdio.h>
int main()
{
char str[10]="27";
int i,number=0;
for(i=0;str[i]!='\0';i++)
if(str[i]>='0'&&str[i]<='7')
number=number*8+str[i]-'0';
printf("%d\n",number);
for(i=0;str[i]='\0';i++)
if(str[i]>='0'&&str[i]<='5')
number=number*6+str[i]+str[i]-'0';
printf("%d\n",number);
}
展开
 我来答
smallkey2011
2012-04-19 · TA获得超过376个赞
知道小有建树答主
回答量:339
采纳率:100%
帮助的人:240万
展开全部
for(i=0;str[i]!='\0';i++)
if(str[i]>='0'&&str[i]<='7')
number=number*8+str[i]-'0';
printf("%d\n",number);
先看这个循环;
第一次;i=0,str[0]="2"!='\0',执行循环体内语句
str[0]="2">='0'&& <='7'
number=0*8+str[0]-'0'=2;
第二次循环;i=1;str[1]="7"!='\0',执行循环体内语句
str[1]="7">='0'&& <='7'
number=2*8+str[1]-'0'=16+7=23;
第三次循环;i=2,str[2]='\0',跳出循环
执行输出语句;输出 23
看这个循环 for(i=0;str[i]='\0';i++)
if(str[i]>='0'&&str[i]<='5')
number=number*6+str[i]+str[i]-'0';
第一次;i=0,str[0]="2"!='\0',执行循环体内语句
str[0]="2">='0'&& <='5'
number=0*8+str[0]-'0'=2;
第二次循环;i=1;str[1]="7"!='\0',执行循环体内语句
str[1]="7">='0'&& <='5'为假
执行第三次循环
第三次循环;i=2,str[2]='\0',跳出循环
执行输出语句;输出 2
最后屏幕输出 23
2
百度网友268db17
2012-04-20 · 超过10用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:33.2万
展开全部
第2个循环语句中的条件是个错误的 要不是!= 要么就是==
是!= 就输出23 和190
是==就输出23 和23
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式