저는 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 FAQ] (http://www.c-faq.com)의 섹션 6을 읽으십시오. –