떡대님 답변 정말감사 합니다.
그런데..제가 하고자 하는거랑 약간 틀려서요...
200승을 행렬의 요소 하나하나씩의 200승이 아니라....
mat1[][3]행렬 자체의200승인데... 일반수의200이랑 하는게 다른거같은데...그걸잘 모르겠네요...
일단3*3행렬은 아래와같이 나오는데....으 막막합니다..
어쨋든 떡대님 답변해주셔서 감사합니다.
떡대 님이 쓰신 글 :
: #include <stdio.h>
: #include <math.h>
:
: int main(void)
: {
: float mat1[][3] = {{1,1,1},{1,1,2},{2,1,2}};
: float mat2[][3] = {{1,1,1},{1,1,2},{2,1,2}};
: float res[3][3] = {0, };
: int i, j, k;
:
: for (i = 0; i < 3; i++)
: for (j = 0; j < 3; j++)
: {
: for (k = 0; k < 3; k++)
: res[i][j] += mat1[i][k]*mat2[k][j];
: }
:
:
: for (i = 0; i < 3; i++)
: for (j = 0; j < 3; j++)
: {
: printf("res[%d][%d] = %f\n", i, j, res[i][j]);
: printf("res[%d][%d] ^ %d = %f\n", i, j, 200, pow(res[i][j], 200));
: }
:
: return 0;
: }
:
: 헉..소스에 문제가.. 초기화에 대한 고려를 전혀안했었네요..
: float res[3][3] = {0, }; 를 해서 배열을 모두 0 로 초기하해야 합니다.
: 님의 소스는 초기화에 문제가 있습니다. Local 변수는 Garbage 값이 들어가므로
: 초기화가 필요합니다.
|