谁能做这道二级C语言的题?谁就是高手.

来源:百度知道 编辑:UC知道 时间:2024/05/25 09:24:29
#include<stdio.h>
main()
{ char ch[2][5]={"6937","8254"},*p[2];
int i,j,s=0;
for(i=0;i<2;i++) p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>'\0';j+=2)
s=10*s+p[i][j]-'0';
printf("%d\n',s);
}

ch为一个二维字符数组,共2行,分别赋值给指针数组p[],然后对p里的成员变量判断,如果不是'\0'就执行s=10*s+p[i][j]-'0';显然这是把p[i][j]转换成数字并赋值给s,s+的同时还自加自己的10倍。j是+2的,所以会取到字符就有'6','3','8','5'四个字符,因为前面的每加一次要乘以10,所以最后s的结果就是6385

最后s的结果是6385
特别提出:printf那行"写成了'

给一楼加分吧

问题是什么?