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

#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);
}

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
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-20
第2个循环语句中的条件是个错误的 要不是!= 要么就是==
是!= 就输出23 和190
是==就输出23 和23
相似回答