为啥这个只有i==j被赋值为1了呀,不应该是所有都为1嘛??

以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
问题出在这段代码:
a[i][j]=(i/j)*(j/i);
在C语言中,/ 运算符表示整数除法,即结果为整数,小数部分会被舍去。因此,当 i 和 j 不相等时,(i/j) 和 (j/i) 的结果都为0,所以最终的乘积也为0。只有当 i 和 j 相等时,(i/j) 和 (j/i) 的结果才为1,所以只有对角线上的元素被赋值为1。
如果你希望所有元素都被赋值为1,可以修改代码如下:
a[i][j]=(i%j==0)*(j%i==0);
这样,只有当 i 和 j 相等时,(i%j==0) 和 (j%i==0) 的结果才为1,所以最终的乘积也为1。