求一道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);
} 展开
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);
} 展开
2个回答
展开全部
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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询