请问谁能帮我详细的解决这个问题的计算过程,谢谢

#include <stdio.h> main() { char ch[7]={"12ab56"}; int i,s=0; for(i=0;ch[i]>=✀0✀&&ch[i]<=✀9✀;i+=2) s=10*s+ch[i]-✀0✀; printf("%d尀n",s); }
2026年09月21日 22:44
有1个网友回答
网友(1):

定义个字符串“12ab56”。
定义 int型 i和 s,s=0。

进入for循环后。
i作为字符串的位数使用。
1. 在循环的第一圈开始时, i=0,从字符串的第0位开始进行比较:如果 ch[0]>=0且ch[0]<=9, 如果为真,进入 s=10*s+ch[0]-'0'计算(s=10*0+'1'-'0':不过貌似这个等式好像不对,不同数据型不大可能没有经过处理的就进行计数的。)。 这个等式计算完成,进入i+=2 计算,即:i=i+2 -> i=0+2->i=2. 循环结束。

2. 第二循环,把上一轮计算的i值代入ch[i]>='0'&&ch[i]<='9'这个等式,即:ch[2]>='0'且ch[2]<='9'。如果为真,进入s=10*s+ch[0]-'0'计算……
如此循环,直到ch[2]>='0'且ch[2]<='9'为假为止。