简单的c程序。错误:一元'*';
这是我在这里的第一篇文章,我对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
----
-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,我将改变它。谢谢,这正是我所寻找的,它解决了所有提到的问题!而且它比我的更可读,也更易于理解。感谢您的快速帮助,我真的非常感谢。:)