简单的c程序。错误:一元'*';

简单的c程序。错误:一元'*';,c,matrix,C,Matrix,这是我在这里的第一篇文章,我对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

这是我在这里的第一篇文章,我对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;

}
//4。运动
//学习二维阵列
#包括
charz;
字符s;
字符m1_ptr;
void createMatrix()
{
对于(z=0;z!=4;z++)
{
对于(s=0;s!=4;s++)
{
printf(“%c”,*m1_ptr);
}
printf(“\n”);
}
}
//------------------------------------------------------------------
int main()
{
charo=o;
字符c='-';
//以及矩阵计数的一些变量:
字符矩阵_1[4][4]={{c,c,c},{c,o,c,c},{o,o,c},{c,c,c};
char*m1_ptr=&矩阵_1[z][s];
创建矩阵(矩阵_1[0][0]);
/*对于(z=0;z!=4;z++)
{
对于(s=0;s!=4;s++)
{
printf(“%c”,矩阵_1[z][s]);
}
printf(“\n”);
}
*/
返回0;
}
如果我把void函数放到main函数中,它就可以工作了,但是因为有更多的矩阵,我想在一个额外的函数中这样做,使它更可读

如果我编译,我会收到错误消息:

“第17行:错误:一元'*'('have int')的类型参数无效” (编辑:第17行写着“printf(“c……”)

我看了其他的问题,但因为我只懂超级简单的程序,所以对我来说并不可行

有人知道如何解决这个问题吗?
(如果答案能解释原因那就太好了,因为我对指针几乎没有经验)

我想你在寻找这样的东西:

#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;

}
#包括
#定义第4行
#定义第4列
void printMatrix(int rowLength、int columnLength、char矩阵[rowLength][columnLength]){
int行计数,columnCount;
对于(rowCount=0;rowCount
它打印您想要的图案

#包括
#include <stdio.h>


void displayMatrix( char pMatrix[rCount][cCount], int rCount, int cCount )
{

    for(int i = 0; i < rCount; i++ ) // one loop for each row
    {
        for (int j = 0; j < cCount; j++) // one loop for each column
        {
            printf("%c", pMatrix[i][j]);
        }
        printf("\n"); // prep for next row
    }
}



//------------------------------------------------------------------
static const o = 'o';
static const c = '-';

int main()
{
     // And some variables for the matrix count:
     char matrix_1 [][] ={{c,c,c,c},{c,o,c,c},{o,o,o,c},{c,c,c,c}};

     displayMatrix(matrix_1, 
                   sizeof( matrix_1) / sizeof(matrix_1[0]),  // = number of rows
                   sizeof( matrix_1[0]) );                   // = number of columns

     return 0;

}
无效显示矩阵(字符pMatrix[rCount][cCount],int rCount,int cCount) { for(int i=0;i
你的例子没有说明模式应该是什么样子!同样,你的代码看起来很好。只要解释一下模式应该是什么样子就可以了。这是我们在学校必须做的练习。我必须在屏幕上打印4个矩阵(这就是为什么矩阵“\u 1”)然后将它们旋转4次,每次旋转90°。这没有实际用途,而且为了学习,我理解这没有多大意义。因此,在不同的矩阵之间可能会发生变化的是,char矩阵中的c和o s_n[4][4]可能会被切换。你知道我的意思吗?很抱歉,我还没有经验。哦,太糟糕了。如果我深入研究全局
char m1_ptr;
,那么我会得到一个错误,即m1_ptr是未声明的(第17行)。这种for语句:for(z=0;z!=4;z++)应该写成:for(z=0;z<4;z++)因为循环将在4或更高的值停止,这是一个比z!=4更安全的测试条件,对于tipp,我将改变它。谢谢,这正是我所寻找的,它解决了所有提到的问题!而且它比我的更可读,也更易于理解。感谢您的快速帮助,我真的非常感谢。:)