본문 바로가기
프로그래밍 _공부자료./C++ 공부

각 행의 평균과 가장 가까운 값 구하기. C++

by 대구부자 2019. 12. 22.
반응형

 

 

 

 

#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");

}



 

 

 

 

 

위의 문제의 소스코드는

 

아래 첨부 하겠습니다.

 

필요 하신 분들은 다운로드 하여 참고 바랍니다.

 

각행의평균과가장가까운값.cpp
다운로드

 

 

 

 

문제 푼 방식!!

 

1) 각 행의 값을 다 더한 후 행의 수만큼 나눠서  또다른 배열에

평균 값을 저장한다.

 

 

2)저장한 평균 값과 각행에 들어있는 값들을 뺀 값중에 차이가 가장 작은 값을

 

구하면 최대 값이 될것이다.

 

여기서 핵심은 절대값으로 계산할것!

 

비교해야 할 대상값 Min 값은 가장 큰 값으로 초기화를 해둘것.

 

 

 

반응형

댓글