gpt4 book ai didi

c - 如何打印一个以1开头的指针的矩阵?

转载 作者:行者123 更新时间:2023-11-30 21:15:14 24 4
gpt4 key购买 nike

我想打印诸如 a[1][1]=11a[1][2]=12 等内容,因此我对此进行了编码以避免指针从 0 开始。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include "nrutilz.h"
#define n 5
int main() {
int a[n][n], i, j, x;
for (i=1; i<n+1; i++) {
for (j=1; j<n+1; j++) {
a[i][j]=10*i+j;
}
}
for (i=1; i<n+1; i++) {
for (j=1; j<n+1; j++) {
printf("a[%d][%d] = %3d\n ",i,j,a[i][j]);
}
}
}

这给了我想要的结果,但它也给了我一个 Abort trap 6 错误,阻止我在下一步中使用这个矩阵。

我知道我一定正在写入不属于我的内存,但我不知道我应该改变什么。

最佳答案

你正在破坏你的堆栈!您必须将第一个 1 索引重新映射回原来的 0。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>

enum { n = 5 };

int main(void)
{
int a[n][n];

for (int i = 1; i < n + 1; ++i) {
for (int k = 1; k < n + 1; ++k) {
a[i - 1][k - 1] = 10 * i + k;
}
}

for (int i = 1; i < n + 1; ++i) {
for (int k = 1; k < n + 1; ++k) {
printf("a[%d][%d] = %3d\n ", i, k, a[i - 1][k - 1]);
}
}
}

关于c - 如何打印一个以1开头的指针的矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53534605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com