在C中打印和显示单位矩阵的程序

tgo*_*ood -2 c identity matrix

我在编写打印矩阵的程序时遇到问题,然后生成单位矩阵.这是我的下面的ccode,任何帮助将不胜感激.

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

int PrintMatrix(int dim, double matrix[dim][dim]);
int main()

int PrintMatrix(int dim, double matrix[dim][dim]) {
int aa, bb;
for (aa = 0; aa <= dim; aa++) {
    for (bb = 0; bb <= dim; bb++) {
        printf("%lf ", matrix[aa][bb]);
    }
    printf("\n");
}
}

double TestMatrix[7][7] = {
{1,0,0,0,0,0,0},
{0,1,0,0,0,0,0},
{0,0,1,0,0,0,0},
{0,0,0,1,0,0,0},
{0,0,0,0,1,0,0},
{0,0,0,0,0,1,0},
{0,0,0,0,0,0,1}
};
    PrintMatrix(7, TestMatrix);
return 0;
Run Code Online (Sandbox Code Playgroud)

Dil*_*mar 5

  1. 您的代码无法成功编译.
  2. 之后main有没有开括号.
  3. 你在里面定义函数main,这是一个问题.
  4. 检查整个代码中的括号.
  5. 修复了循环控件<=<.

这是修改后的代码:

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

int PrintMatrix(int dim, double matrix[dim][dim]);
int main()
{
    double TestMatrix[7][7] = {
        {1,0,0,0,0,0,0},
        {0,1,0,0,0,0,0},
        {0,0,1,0,0,0,0},
        {0,0,0,1,0,0,0},
        {0,0,0,0,1,0,0},
        {0,0,0,0,0,1,0},
        {0,0,0,0,0,0,1},
    };
    PrintMatrix(7, TestMatrix);
    return 0;
}

int PrintMatrix(int dim, double matrix[dim][dim]) {
    int aa, bb;
    for (aa = 0; aa < dim; aa++) {
        for (bb = 0; bb < dim; bb++) {
            printf("%lf ", matrix[aa][bb]);
        }
        printf("\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 你还应该指出你(正确)修复了'PrintMatrix()`函数中的循环,使用`<`而不是`<=`. (3认同)