我真的是C編程語言的初學者,我已經開始學習指針了......我在操縱它們時遇到了一些問題。 我想要做的是用2個函數讀寫一個矩陣,而不使用全局變量(只是指針)......所以我沒有成功完成這個任務。我已經搜索了很多關於指針的信息,並試圖瞭解如何使用它們,但是我無法讀取和寫入矩陣我做錯了什麼...請請幫助我(即使有些有用的鏈接關於2DArray &指針)...謝謝!C:指針和函數2DArray
#include <stdio.h>
#include <stdlib.h>
void readM(int (*x)[100][100], int *row, int *column)
{
int i,j;
printf("Row no: ");
scanf("%d",row);
printf("Column no: ");
scanf("%d",column);
printf("Matrix elemnts: \n");
for(i=0;i<(*row);i++)
{
for(j=0;j<(*column);j++)
{
printf("[%d][%d]=",i,j);
scanf("%d",x[i][j]);
}
}
}
void writeM(int (*x)[][100], int *row, int *column)
{
int i,j;
printf("\nMatrix is: \n");
for(i=0;i<(*row);i++){
for (j=0;j<(*column);j++){
printf("%d",(*x)[i][j]);
}
printf("\n");
}
}
int main()
{
char choice;
int a[100][100],m,n;
do
{
printf("\nChose an option\n\n"
"1) read matrix \n"
"2) write matrix\n"
"3) display matrix in spiral\n"
"4) return max and min\n"
///...etc
scanf("%c", &choice);
while (choice<'0'|| choice>'4')
{
printf("\nInvalid option! Chose again! \n\n");
scanf("%c",&choice);
}
switch (choice)
{
case '0': exit(0);
case '1': readM(&a,&m,&n); break;
case '2': writeM(&a,&m,&n);break; /// ... etc
} while (choice !=5);
getch();
}
有很多混亂的代碼,它甚至不編譯,有大括號不匹配。另外,你已經使用了只有你明白的語言(對不起)。如果它不是英文,請將其從您的代碼中移除並粘貼到有問題的部分。 – fayyazkl
是的,這不是英文...對不起... – user1797060
閱讀[comp.lang.c常見問題](http://www.c-faq.com)的第6部分。 –