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型輸出的話就 是數值了, 請問〈== 這是什么?