gpt4 book ai didi

c - 简单的c程序。错误 : invalid type arguement of unary '*'

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:45 27 4
gpt4 key购买 nike

这是我在这里的第一篇文章,我是 C 的新手。

我想编写一个能够打印矩阵的程序。它应该看起来像:

----
-o--
ooo-
----

所以我希望在开始时将其打印出来。

我当前的代码是:

    // 4. Exercise
// Learn 2d arrays

#include <stdio.h>

char z;
char s;
char m1_ptr;


void createMatrix()
{
for(z = 0; z != 4; z++)
{
for (s = 0; s != 4; s++)
{
printf("%c", *m1_ptr);
}
printf("\n");
}

}



//------------------------------------------------------------------

int main()
{

char o = o;
char c = '-';
// And some variables for the matrix count:
char matrix_1 [4][4] ={{c,c,c,c},{c,o,c,c},{o,o,o,c},{c,c,c,c}};
char *m1_ptr = &matrix_1 [z][s];

createMatrix(matrix_1 [0][0]);



/* for(z = 0; z != 4; z++)
{
for (s = 0; s != 4; s++)
{
printf("%c", matrix_1 [z][s]);
}
printf("\n");
}
*/
return 0;

}

如果我将 void 函数放入 main 中,它会起作用,但由于有更多的矩阵出现,我想在一个额外的函数中这样做,以使其更具可读性。

如果我编译我得到错误信息:

“第 17 行:错误:一元‘*’(‘have int’)的无效类型参数”(编辑:第 17 行是“printf("c......")

我查看了其他问题,但由于我只了解 super 简单的程序,但对我来说并不适用。

有人知道怎么解决吗?(如果答案能解释原因就好了,因为我对指针的经验很少)

最佳答案

我认为您正在寻找这样的东西:

#include <stdio.h>

#define ROW 4
#define COLUMN 4

void printMatrix(int rowLength, int columnLength, char matrix[rowLength][columnLength]) {

int rowCount, columnCount;

for(rowCount = 0; rowCount < rowLength; rowCount++) {

for(columnCount = 0; columnCount < columnLength; columnCount++)
printf("%c", matrix[rowCount][columnCount]);

printf("\n");
}


}


int main() {

char o = 'o';
char c = '-';
char matrix_1 [ROW][COLUMN] = {
{c,c,c,c},
{c,o,c,c},
{o,o,o,c},
{c,c,c,c}
};

printMatrix(ROW, COLUMN, matrix_1);


return 0;

}

打印出你想要的图案

关于c - 简单的c程序。错误 : invalid type arguement of unary '*' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26877686/

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