我是C语言初学者,请大侠帮忙分析下面的程序,以及输出结果是多少?谢谢!
#include"stdio.h"voidmain(){inti,c;chars[2][5]={"8980","9198"};for(i=3;i>=0;i--){c=s[...
#include"stdio.h"
void main()
{int i,c;
char s[2][5]={"8980","9198"};
for(i=3;i>=0;i--)
{c=s[0][i]+s[1][i]-2*'0';
s[0][i]=c%10+'0';
}
for(i=0;i<=1;i++)
puts(s[i]);
} 展开
void main()
{int i,c;
char s[2][5]={"8980","9198"};
for(i=3;i>=0;i--)
{c=s[0][i]+s[1][i]-2*'0';
s[0][i]=c%10+'0';
}
for(i=0;i<=1;i++)
puts(s[i]);
} 展开
展开全部
这里首先要知道字符和其所对应的整数值之间的关系,'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
从循环开始讨论,当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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询