我想用函式列印一個二維陣列,如
。{ {i,j}{i,j}.
{i,j}{i,j}{i,j}
{i,j}{i,j}{i,j} {i,j}. }
通過在二維陣列中的主函式取值...... 請幫助我,我是一個編程初學者,正在學習我的第一門編程語言。
#include <stdio.h>/span>
void printArray(int row,int col,int *marks) /span>{
printf("{"/span>)。
int j;
for(int i=0; i< row; i ){
printf("{"/span>)。
for(int j=0; j<col; j ){
printf("%d", *(marks))。
if(j==0){
printf(", "/span>)。
}
}
printf("}"/span>)。
if(i==2,j==1) 。
}
printf("}"/span>)。
}
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;
uj5u.com熱心網友回復:
問題是你在呼叫函式時傳遞了一個型別為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("{
")。)
for(int i=0; i< row; i ){
printf(" {"/span>)。
for(int j=0; j<col; j ){
printf("%d", marks[i][j]) 。
if(j != col - 1){
printf(", ") 。
}
}
printf(" }; }
")。)
}
printf("}"; }
")。)
}
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 }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/315445.html
標籤:
