
一道C语言指针类问题(有答案,解释一下过程)
main(){char*p[]={"3697","2584"};inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=...
main()
{char *p[]={ " 3697 "," 2584 "};
int i,j; long num=0;
for(i=0;i<2;i++)
{j=0;
while(p[i][j]!='\0')
{if((p[i][j]-'0')%2) num=10*num+p[i][j]-'0';
j+=2;}
}
printf("%d\n",num);
}
答案:39.
。 展开
{char *p[]={ " 3697 "," 2584 "};
int i,j; long num=0;
for(i=0;i<2;i++)
{j=0;
while(p[i][j]!='\0')
{if((p[i][j]-'0')%2) num=10*num+p[i][j]-'0';
j+=2;}
}
printf("%d\n",num);
}
答案:39.
。 展开
1个回答
展开全部
从
i=0;i<2;i++
j+=2
这两句,可以得知,分析的字符是p[0][0]、p[0][2]、p[1][0]、p[1][2],即
'3'、'9'、'2'、‘8’
if((p[i][j]-'0')%2) 是判断上述字符转换为数字后,哪个是奇数(模2不等于0),可以得知是
'3'、'9'
num初始值是0,第一次分析出3后
num = '3' - '0' = 3
num值是3,第二次分析出9后
num = 3*10 + '9' - '0' = 39
答案是39.
i=0;i<2;i++
j+=2
这两句,可以得知,分析的字符是p[0][0]、p[0][2]、p[1][0]、p[1][2],即
'3'、'9'、'2'、‘8’
if((p[i][j]-'0')%2) 是判断上述字符转换为数字后,哪个是奇数(模2不等于0),可以得知是
'3'、'9'
num初始值是0,第一次分析出3后
num = '3' - '0' = 3
num值是3,第二次分析出9后
num = 3*10 + '9' - '0' = 39
答案是39.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询