Facing this Error: tempCodeRunnerFile.c:3:38: note: expected 'int *' but argument is of type 'int' void printArray(int row,int col,int *marks){
Facing this Error: tempCodeRunnerFile.c:3:38: note: expected 'int *' but argument is of type 'int' void printArray(int row,int col,int *marks){
我正在尝试使用类似
的函数打印二维数组
{ {i,j}{i,j}
{i,j}{i,j}
{i,j}{i,j} }
通过在二维数组中获取主函数中的值...
请帮助我是编程初学者,正在学习我的第一门编程语言...
#include <stdio.h>
void printArray(int row,int col,int *marks){
printf("{ ");
int j;
for(int i=0; i<row; i++){
printf("{");
for(int j=0; j<col; j++){
printf("%d", *(marks));
if(j==0){
printf(", ");
}
}
printf("}");
if(i==2,j==1);
}
printf("}");
}
int main()
{
int marks[3][2];
int row = 3,col = 2;
int i,j;
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
printf("Enter the value [%d][%d]: ",i,j);
scanf("%d", &marks[i][j]);
}
}
printArray(row, col, marks[i][j]);
return 0;
}
问题是您正在调用传递给它的函数 int
类型的表达式,其中使用了未初始化的变量 i
和 j
而不是传递数组本身.
int i,j;
//...
printArray(row, col, marks[i][j]);
像这样更改函数调用
printArray(row, col, marks);
函数声明和定义如下面的演示程序所示
#include <stdio.h>
void printArray( int row, int col, int marks[][col]){
printf("{\n");
for(int i=0; i<row; i++){
printf("\t{");
for(int j=0; j<col; j++){
printf("%d", marks[i][j]);
if(j != col - 1){
printf(", ");
}
}
printf("\t}\n");
}
printf("}\n");
}
int main(void)
{
enum { ROW = 3, COL = 2 };
int marks[ROW][COL] =
{
{ 1, 2 },
{ 3, 4 },
{ 5, 6 }
};
printArray( ROW, COL, marks );
return 0;
}
程序输出为
{
{1, 2 }
{3, 4 }
{5, 6 }
}
我正在尝试使用类似
的函数打印二维数组{ {i,j}{i,j}
{i,j}{i,j}
{i,j}{i,j} }
通过在二维数组中获取主函数中的值... 请帮助我是编程初学者,正在学习我的第一门编程语言...
#include <stdio.h>
void printArray(int row,int col,int *marks){
printf("{ ");
int j;
for(int i=0; i<row; i++){
printf("{");
for(int j=0; j<col; j++){
printf("%d", *(marks));
if(j==0){
printf(", ");
}
}
printf("}");
if(i==2,j==1);
}
printf("}");
}
int main()
{
int marks[3][2];
int row = 3,col = 2;
int i,j;
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
printf("Enter the value [%d][%d]: ",i,j);
scanf("%d", &marks[i][j]);
}
}
printArray(row, col, marks[i][j]);
return 0;
}
问题是您正在调用传递给它的函数 int
类型的表达式,其中使用了未初始化的变量 i
和 j
而不是传递数组本身.
int i,j;
//...
printArray(row, col, marks[i][j]);
像这样更改函数调用
printArray(row, col, marks);
函数声明和定义如下面的演示程序所示
#include <stdio.h>
void printArray( int row, int col, int marks[][col]){
printf("{\n");
for(int i=0; i<row; i++){
printf("\t{");
for(int j=0; j<col; j++){
printf("%d", marks[i][j]);
if(j != col - 1){
printf(", ");
}
}
printf("\t}\n");
}
printf("}\n");
}
int main(void)
{
enum { ROW = 3, COL = 2 };
int marks[ROW][COL] =
{
{ 1, 2 },
{ 3, 4 },
{ 5, 6 }
};
printArray( ROW, COL, marks );
return 0;
}
程序输出为
{
{1, 2 }
{3, 4 }
{5, 6 }
}