행렬의 곱셈을 하는 프로그램을 만들고 싶은데 자꾸 에러가 발생합니다.
글쓴이: kjhh03 / 작성시간: 목, 2015/12/03 - 11:09오후
#include <stdio.h>
void multiplication_matrices(int a[][3], int b[][3]);
int main(void)
{
int i, j, k;
int x, y;
int p;
int num = 0;
int a[][3] = { { 0 }, { 0 } }, b[][3] = { { 0 }, { 0 } };
for (i = 0; i < 2; i++) // 첫번째 행렬을 읽어드린다.
{
num = 0;
for (j = 0; j < 3; j++)
{
printf("첫번째 행렬의 %d행 %d열의 값을 넣으세요. : ", i+1, j+1);
scanf_s("%d", &a[i][j]);
num += a[i][j];
}
}
printf("\n\n");
for (x = 0; x < 3; x++) // 두번째 행렬을 읽어드린다.
{
num = 0;
for (y = 0; y < 3; y++)
{
printf("두번째 행렬의 %d행 %d열의 값을 넣으세요. : ", x + 1, y + 1);
scanf_s("%d", &b[x][y]);
num += b[x][y];
}
}
printf(" 첫번째 행렬\n");
for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
printf("%4d", a[i][j]);
printf("\n");
}
printf(" 두번째 행렬\n");
for (x = 0; x < 3; x++)
{
for (y = 0; y < 3; y++)
printf("%4d", b[x][y]);
printf("\n");
}
p = multiplication_matrices(a, b);
return 0;
}
void multiplication_matrices(int a[][3], int b[][3])
{
int c[3][3] = { { 0 }, { 0 } };
int i, j, k;
int num = 0;
for (i = 0; i < 2; i++)
for (j = 0; j < 3; j++)
for (k = 0; k < 3; k++)
{
num += a[i][k] * b[k][j];
}
c[i][j] = num;
num = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
printf("%4d", b[i][j]);
printf("\n");
}
return c;
}File attachments:
| 첨부 | 파일 크기 |
|---|---|
| 244.01 KB |
Forums:


문제를 잘 읽어보셔요.질문을 올릴 때는 어디에서
문제를 잘 읽어보셔요.
질문을 올릴 때는 어디에서 어떤 에러가 나는지 써 주셔요.
https://wiki.kldp.org/wiki.php/RTFM
세벌 https://sebuls.blogspot.kr/
소스를 정리해봤습니다.
참고해보세요.
행렬의 곱셈 '검색 결과
http://blog.naver.com/alwaysneoi?Redirect=Log&logNo=100194421088
행렬의 곱셈 C '검색 결과
http://search.naver.com/search.naver?sm=stb_hty&where=se&ie=utf8&query=%ED%96%89%EB%A0%AC%EC%9D%98+%EA%B3%B1%EC%85%88+C
행렬의 크기가 고정되어 있으니. 주의하시기 바랍니다.
출력하면서 확인하시면. 잘 될겁니다.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
오랜만에 코딩 해 봤네요. 아래 코드를 보고 분석해
오랜만에 코딩 해 봤네요.
아래 코드를 보고 분석해 보셔요.
#include <stdio.h> void ins_matrix(int a[][3], int b[][3]); void mult_matrix(int a[][3], int b[][3], int c[][3]); void show_matrix(int a[][3], int b[][3]); void print_matrix(int c[][3]); int main() { int a[2][3], b[3][3]; static int c[2][3]; ins_matrix(a,b); show_matrix(a,b); mult_matrix(a, b, c); print_matrix(c); return 0; } void ins_matrix(int a[][3], int b[][3]) { int y, x; printf("1st matrix\n"); for(y=0; y<2; y++){ for(x=0; x<3; x++){ printf("a%d%d ", y+1,x+1); scanf("%d", &a[y][x]); } printf("\n"); } printf("2nd matrix\n"); for(y=0; y<3; y++){ for(x=0; x<3; x++){ printf("b%d%d ", y+1,x+1); scanf("%d", &b[y][x]); } printf("\n"); } } void show_matrix(int a[][3], int b[][3]) { int y, x; printf("1st matrix\n"); for(y=0; y<2; y++){ for(x=0; x<3; x++){ printf("%d ", a[y][x]); } printf("\n"); } printf("2nd matrix\n"); for(y=0; y<3; y++){ for(x=0; x<3; x++){ printf("%d ", b[y][x]); } printf("\n"); } printf("\n"); } void mult_matrix(int a[][3], int b[][3], int c[][3]) { int y, x, t; for(y=0; y<3; y++){ for(x=0; x<3; x++){ for(t=0; t<3; t++){ c[y][x] += a[y][t] * b[t][x]; } } } return; } void print_matrix(int c[][3]) { int y, x; for(y=0;y<2;y++){ for(x=0;x<3;x++) printf("%d ", c[y][x]); printf("\n"); } return; }세벌 https://sebuls.blogspot.kr/
댓글 달기