ëŠ�ë‚€ì � ¶
ë¬¸ì œëŠ” 쉬운ë�° ì�´ê±¸ 함수로 나누기가 무지 ì• ë§¤í•˜ë‹¤ -_-;
ë¬¸ì œëŠ” ê¸ˆë°©í’€ê³ ; ì�´ 프로그래ë°� 함수 어떻게 나눌지 ìƒ�ê°�한게 한시간 ê±¸ë ¸ì�„듯...
ë¬¸ì œëŠ” ê¸ˆë°©í’€ê³ ; ì�´ 프로그래ë°� 함수 어떻게 나눌지 ìƒ�ê°�한게 한시간 ê±¸ë ¸ì�„듯...
ì�¼ë‹¨ ë¦¬íŒ©í† ë§� ì „ 소스만 ì˜¬ë ¸ë‹¤;
- 추가: ë¦¬íŒ©í† ë§�(?) 한거같지ë�„ 않지만-_- ì�¼ë‹¨ ë‚˜ëˆ ë´¤ë‹¤; í–‰ë ¬ì—�서 transpose를 ì�´ìš©í•´ì„œ;;; ì�¼ë‹¨ 짜보았는ë�° 효율ì �ì�´ì§„ 않ì�€ë“¯ 

ë¦¬íŒ©í† ë§� å‰� 소스 ¶
~cpp
#include <stdio.h>
#define ROW 4
#define COL 4
void prt_array(int value[ROW][COL]);
int main(int argc, char* argv[])
{
//int value[4][4]={ {1,2,3}, {3,4,5}, {4,5,6}};
int max;
int i,j;
int value[ROW][COL];
//ì „ì²´ 4 * 4 í–‰ë ¬ì�˜ 공간 중 3 * 3 í–‰ë ¬ì�˜ 공간ì—� 키보드로 ìž…ë ¥ì�„ 받아 숫ìž�를 ì €ìž¥í•œ 후,
for(i=0;i<ROW-1;i++){
for(j=0;j<COL-1;j++){
scanf("%d",&value[i][j]);
}
}
//í–‰ë ¬[i][3]ì—�는 ê°� í–‰ 중 가장 í�° 수를 찾아 ì €ìž¥í•˜ê³ ,
for(i=0;i<ROW-1;++i){
max=0;
for(j=0;j<COL-1;++j){
if(max < value[i][j]) max = value[i][j];
}
value[i][3] = max;
}
//í–‰ë ¬[3][j]ì—�는 ê°� ì—´ 중 가장 í�° 수를 찾아 ì €ìž¥í•˜ê³ ,
for(j=0;j<COL-1;++j){
max = 0;
for(i=0;i<ROW-1;++i){
if(max < value[i][j]) max = value[i][j];
}
value[3][j] = max;
}
//í–‰ë ¬[3][3]ì—�는 ì „ì²´ 중 가장 í�° 수를 찾아 ì €ìž¥í•œ 다ì�Œ,
max=0;
for(i=0;i<ROW-1;++i) if(max < value[i][3]) max=value[i][3];
for(i=0;i<COL-1;++i) if(max < value[3][i]) max=value[3][i];
value[3][3] = max;
//ì�´ë“¤ì�„ ê¹”ë�”하게 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성하여ë�¼.
prt_array(value);
return 0;
}
//////////////////////////////////////////////////////////////////////////
//// Functions ///////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
void prt_array(int value[ROW][COL])
{
int i=ROW,j=COL;
for(i=0;i<ROW;++i) {
for(j=0;j<COL;++j) {
printf("%d ",value[i][j]);
}
printf("\n");
}
}
ë¦¬íŒ©í† ë§� 後 소스 ¶
~cpp
#include <stdio.h>
#define ROW 4
#define COL 4
#define DEBUG
void prt_array(int value[ROW][COL]); //í–‰ë ¬ ì¶œë ¥
void swap(int* x,int* y); //� 파�미터를 바꾸기
void transpose(int (*value)[COL]); //í–‰ë ¬ì�˜ diagonalì�„ 기준으로 transpose
void findmax_row(int (*value)[COL]); //한 행� 최대값� 마지막 열� 넣기
int main(int argc, char* argv[])
{
int max;
int i;
#ifdef DEBUG
int value[ROW][COL]={{1,2,3},{3,4,5},{4,5,6}};
#else
int value[ROW][COL];
//ì „ì²´ 4 * 4 í–‰ë ¬ì�˜ 공간 중 3 * 3 í–‰ë ¬ì�˜ 공간ì—� 키보드로 ìž…ë ¥ì�„ 받아 숫ìž�를 ì €ìž¥í•œ 후,
for(i=0;i<ROW-1;i++){
for(j=0;j<COL-1;j++){
scanf("%d",&value[i][j]);
}
}
#endif //DEBUG
//í–‰ë ¬[i][3]ì—�는 ê°� í–‰ 중 가장 í�° 수를 찾아 ì €ìž¥í•˜ê³ ,
findmax_row(value);
transpose(value);
//í–‰ë ¬[3][j]ì—�는 ê°� ì—´ 중 가장 í�° 수를 찾아 ì €ìž¥í•˜ê³ ,
findmax_row(value);
transpose(value);
//í–‰ë ¬[3][3]ì—�는 ì „ì²´ 중 가장 í�° 수를 찾아 ì €ìž¥í•œ 다ì�Œ,
max=0;
for(i=0;i<ROW-1;++i) if(max < value[i][3]) max=value[i][3];
for(i=0;i<COL-1;++i) if(max < value[3][i]) max=value[3][i];
value[3][3] = max;
//ì�´ë“¤ì�„ ê¹”ë�”하게 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성하여ë�¼.
prt_array(value);
return 0;
}
//////////////////////////////////////////////////////////////////////////
//// Functions ///////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
void prt_array(int value[ROW][COL])
{
int i=ROW,j=COL;
for(i=0;i<ROW;++i){
for(j=0;j<COL;++j){
printf("%d ",value[i][j]);
}
printf("\n");
}
}
void findmax_row(int (*value)[COL])
{
int i,j,max;
for(j=0;j<ROW-1;++j){
max=0;
for(i=0;i<COL-1;++i){
if(max < value[j][i]) max = value[j][i];
}
value[j][3] = max;
}
}
void transpose(int (*value)[COL])
{
int i,j;
for(i=0;i<ROW;++i)
{
for(j=1+i;j<COL;++j){
swap(&value[i][j],&value[j][i]);
}
}
}
void swap(int* x,int* y)
{
int tmp;
tmp = *x;
*x = *y;
*y = tmp;
}
나ì—�게 í• ë§� ¶
오오;; 함수나누는 부분ì�´ ì˜ˆìˆ ì�´ë‹¤ +_+ 나ë�„ ì�¨ë¨¹ì–´ë³¼ê¹Œ ã…Žã…Ž










