我是C语言初学者,请大侠帮忙分析下面的程序,以及输出结果是多少?谢谢!

2024年11月28日 12:35
有2个网友回答
网友(1):

这里首先要知道字符和其所对应的整数值之间的关系,'0'的值为48,'1'的值为49,'8'的值为56,'9的值为57。
从循环开始讨论,当i=3时,s[0][3] + s[1][3]-2*'0' 等价于 48+56-2*48 =8,所以s[0][3]=c%10+'0'也就等价于8%10 +48 =56也就对应与'8'了所以s[0][3]为8
同理i=2是为 s[0][2] + s[1][2]-2*'0' = 56 +57 -2*48 =17 然后17%10 +48 =55对应于7
i=1是为 s[0][1] + s[1][1]-2*'0' = 57 +59 -2*48 =20 然后20%10 +48 =48对应于0
i=0是为 s[0][0] + s[1][0]-2*'0' = 56 +57 -2*48 =17 然后17%10 +48 =55对应于7
所以输入s[0]=7078 而s[1]为9198

网友(2):

s={'8' '9' '8' '0'
'9' '1' '9' '8'}
从最后一列,c=‘0’ +‘8’-2*‘0’=‘0’-‘0’+‘8’-‘0’=8,c变成了int型
s[0][3]=c%10+'0'=8%10+‘0’=8+‘0’;即‘0’向后增8个长度,为‘8’,所以s[0][3]=‘8’
而第二排的数保持不变
同理向后计算,最后的结果为
7 0 7 8
9 1 9 8