C语言问题,看不懂,帮忙分析一下

2024-11-14 11:21:57
推荐回答(3个)
回答(1):

第一行 不解释了
第二行定义一个宏 在之后的 程序中 LEN就是数字4
接下来住函数
定义2个int类型的变量i j
定义一个静态的二维的字符数字长度5 个数2 给于初始值"8980"和"9198"
第一个FOR从j=3开始循环每次j-1当J小雨0时弹出
把二维字符数组的第0组第j个位置的字符的asc||码加上 二维字符数组的第1组第j个位置的字符的asc|| 在减去2*0的asc||码 二维字符数组的第0组第j个位置的字符赋予C和10的余数加上0的asc码 二维字符数组的第1组第j个位置的字符赋予C和10的余数加上0的asc码
第二个F输出那个二维字符数组

回答(2):

#include
#define LEN 4
main()
{ int j,c;
static char n[2][LEN+1]={"8980","9198"}; //定义二维数组,n[2][5]
for( j=LEN-1 ; j>=0 ; j--)
{c=n[0][ j ]+n[1][ j ]-2 * '0' ;/*将第0行的j下标的字符+第0行的j下标的字符-2 * '0'得c */
n[0][ j ]=c%10+'0';//将c对10取余+'0',存入 n[0][ j ]
n[1][ j ]=c/10+'0';}//将c对10整+'0',存入 n[1][ j ]
for( j=0; j<=1; j++)//输出数组
puts(n[ j ]);
}

回答(3):

先简单解释一下:
查询一下"0"的ASCII码,替换值做计算,其中需要注意两个j是不同的使用范围,第一个j就在第一个循环里,第二个就只在第二个循环里,第一个循环全执行完才会进第二个循环