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'&&p[i][j]<=='9';j+=2)s=10*s+p[i][j]-'0'; printf("%d",s);}请问s=10*s+p[i][j]-'0'是什么意思?为什么是10*s? 为什么要-'0'

热心网友

这个题目的答案应该是6385.数组元素的值字符,所以p[i][j]-'0'得到该元素的ASCII码值相对应的数值,例如'6'的数值为6.程序中先取出6,通过s=s*10+p[0][2],就变成了63,再通过S=10*S+P[1][0],变成638,最后变成6385.

热心网友

你说的S=10*S+P[I][J]-‘0’ 是其实10*S=0是无可否认的对吧 P[I][J]与‘0’相减其实ASIC码值相减 得到的值如果是C型输出是字符,D型输出的话就 是数值了, 请问〈== 这是什么?