안녕하세요.
저는 흔한 대학교 1학년 학생입니다.
교수님께서 과제로 두 행렬의 합을 구하는 걸 포인터와 함수로 만들어서 오라는 문제였습니다.
저는 고민을 하였고 저의 무릎을 탁치며
행과 열을 따로 포인터로 하려면 정말 힘들거야 그러니 이중포인터를 쓰자!
라는 병신같은 생각을 하였고 고로 이런 병신같은 코딩을 산출해냈습니다.
저는 아직 자료구조는 커녕 포인터를 함수에 넣는것도 잘 못하는데
친구들의 조언으로 최고의 선생님인 구글선생님을 찾아갔지만 외국이신데다가
너무 안친절하셔서 친절한 디씨 선생님들에게 여쭈러 왔습니다.
이 코딩을 어케 수정하면 두행렬의 합을 구하게 될까요
정말 코딩이 더러우니 죄송합니다 ㅜㅜ저진짜 ㅠㅠ 대가리가 빠라가서 그러니 이해좀 해주세요 ㅠㅠ
#include <stdio.h>
void final (void ** r);
void add (void **p,void **c);
main()
{
int i,l;
int button;
int a = 0 , b = 0;
int z=0,x=0;
int **c=NULL;
int **p= NULL;
printf("행령의 값을 입력하세요1");
scanf("%d" , &a);
printf("행렬의 값을 입력하세요2");
scanf("%d" , &b);
if(a>10 || b>10)
{printf("안되염 뿌잉\n");}
else{
printf("되염\n");
}
p = (int**)malloc(sizeof(int) * a);
for(i = 0 ; i < a ; i++)
{
p[i] = (int*)malloc(sizeof(int)*b);
}
printf("행령의 값을 입력하세요1");
scanf("%d" , &z);
printf("행렬의 값을 입력하세요2");
scanf("%d" , &x);
if(z>10 || x>10)
{printf("안되염 뿌잉\n");}
else{
printf("되염\n");
}
c = (int**)malloc(sizeof(int) * z);
for(l = 0 ; l < a ; l++)
{
c[l] = (int*)malloc(sizeof(int)*x);
}
printf("고르시오");
printf("1=a+b 2=a*b(개발중) 3=a-b(현재 버그로 임시페쇄)");
scanf("%d",&button);
if(button==1)
add(p,c);
}
void add (void**p,void**c)
{int **d;
int i;
int j;
for(i=0;i<=p;i++)
{for(j=0;j<=c;j++)
{
d=(int)p+(int)c;
}
}
final(d);
}
void final (void ** r)
{
int i;
int j;
for(i=0;i<=r;i++)
{for(j=0;j<=r;j++)
{
printf("%d",++r);
}
}
}
뭐가 안되는지 적어놔야지 이래적으면 해주세요밖에 안되네
아 그렇ㄴ요 그 두 행렬을 받아서 다음 함수로 넘겨서 합을 계산해야하는데 그 넘어가는 부분에서 더이상 진행이 되지않습니다.
행열 2개를 더하기만하면 되는거야 ?
넵
실행은 커녕 컴파일도 안될거같은데엑 add함수 매개변수 형이랑 실제 add함수 사용하는곳이랑 매치가 안되잖어 그거부터 고치고
아,,, 그런건가요 ㅜㅜ 제가 정말 c를 잘 몰라서 ㅠㅠ
문제가 뭔지 모르겠는데 2차원 행렬 두개 사이즈가 다르면 합하는걸 어케하냐
두개의 행렬의 구조는 같아도 속에 구성하는 수가 다른 걸 말씀하신거 같아요...
다른 두 행렬의 크기를 입력받고(단 10x10이하의) 두 행렬의 합을 구하여 출력하는 문제 입니다. 정리하자면? 그런거 같습니다.
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=173813909
이거보고 입맛대로 수정해 네이년가면 널리고 널렸어
최근대박yang빵 정보공유! 월천club 쉽다! ㅌ nete77