arrays - 在c中打印身份(“I”)矩阵
问题描述
我正在尝试在方阵数组中打印出单位矩阵。
这是我当前的代码:
#include <stdio.h>
int main(){
int n = 50;
int i,j = 0;
int a[n][n];
for (i=0; i<n; i++){
for (j=0; j<n; j++){
if (a[i] == a[j]){
printf("1");
} else {
printf("0");
}
}
}
printf("/n");
return 0;
}
我的 macOS 终端没有告诉我有任何语法错误并且可以正确编译。但是当我运行可执行文件时,我什么也没有打印出来。
我的代码中是否有任何错误?
非常感谢你的帮助。
解决方案
发布的代码a
在初始化之前正在访问。正如所指出的,如果它只是想打印一个单位矩阵(而不实际创建它),则a[i] == a[j]
可以简单地将测试替换为i == j
.
如果您想实际初始化a
,然后打印它,您可以按如下方式进行。首先,要初始化它,你可以这样做:
for (i=0; i<n; i++) {
for (j=0; j<n; j++) {
a[i][j] = i == j;
}
}
该表达式的i == j
计算结果为1
如果i
和j
相等,0
否则,这将1
在主对角线和0
其他地方创建一个标识矩阵。
初始化后,您可以更改它,使用它,打印它等。要打印它,您可以:
for (i=0; i<n; i++) {
for (j=0; j<n; j++) {
printf(" %d", a[i][j]);
}
printf("\n");
}
这会在每个元素之前打印一个空格(作为分隔符),并以换行符结束每一行。根据您的需要,您可以将其更改为对每个元素使用固定宽度等。这实际上取决于您正在处理的值以及您希望它在打印时的外观。
推荐阅读
- php - 我的更新、删除、创建功能不影响数据库
- rest - 如何使用 Rest API 开始构建
- netlify - 如何在netlify中找到IP地址
- powershell - 搜索字符串并替换文件中的整行
- regex - 匹配多个值的正则表达式相同的组
- cucumber - 如何为 Cucumber + testng 框架生成范围报告
- javascript - 将详尽的依赖项添加到 useEffect 和 useCallback 会导致无限循环
- oracle - 无法更新 testUpdateBookOrdersShippingAddress 中的任何属性
- javascript - Chrome的内容脚本默认不允许添加EventListeners?
- http - Drupal 7:HTTPS 提交按钮进入 HTTP 页面,然后重定向到 HTTPS