반응형
#include <stdio.h>
#include<iostream>
using namespace std;
int main() {
int test[9][9] = {
{3,23,85,34,17,74,25,52,65},{10,7,39,42,88,52,14,72,63},
{87,42,18,78,53,45,18,84,53},{34,28,64,85,12,16,75,36,55},
{21,77,45,35,28,75,90,76,1},{25,87,65,15,28,11,37,28,74},
{65,27,75,41,7,89,78,64,39},
{47,47,70,45,23,65,3,41,44},
{87,13,82,38,50,12,48,29,80}
};
int res=0;
int last_array[9] = { 0, };
int last_temp[9] = { 0, };
int temp[9] = {999, };
int min = 999;
for (int i = 0; i < 9; i++)
{
for (int k = 0; k < 9; k++)
{
res += test[i][k];
if (k == 8)
{
last_array[i] = res / 9;
res = 0;
}
}
}
for (int i = 0; i < 9; i++)
{
for (int k = 0; k < 9; k++)
{
//temp[i] = abs(last_array[i] - test[i][k]);
if (min > abs((last_array[i] - test[i][k])))
{
min = abs((last_array[i] - test[i][k]));
last_temp[i] = test[i][k];
}
}
min = 999;
}
for (int i = 0; i < 9; i++)
{
cout << last_array[i] << " " << last_temp[i] << endl;
}
// system("pause");
}
위의 문제의 소스코드는
아래 첨부 하겠습니다.
필요 하신 분들은 다운로드 하여 참고 바랍니다.
문제 푼 방식!!
1) 각 행의 값을 다 더한 후 행의 수만큼 나눠서 또다른 배열에
평균 값을 저장한다.
2)저장한 평균 값과 각행에 들어있는 값들을 뺀 값중에 차이가 가장 작은 값을
구하면 최대 값이 될것이다.
여기서 핵심은 절대값으로 계산할것!
비교해야 할 대상값 Min 값은 가장 큰 값으로 초기화를 해둘것.
반응형
'프로그래밍 _공부자료. > C++ 공부' 카테고리의 다른 글
C++ 재귀함수를 이용한 10진수를 2진수로 출력. (0) | 2020.01.21 |
---|---|
C++알고리즘 블록의 최댓값 구하기. (0) | 2019.12.25 |
배열을 활용한 /C++/조세 퍼스 / 공주구하기 / 알고리즘/ (0) | 2019.12.19 |
C++ 이분검색/ 버블정렬/ 알고리즘 / 코딩 (0) | 2019.12.18 |
C/C++/알고리즘기초/자료구조/ (0) | 2019.12.10 |
댓글