48. 각 행의 평균과 가장 가까운 값

강지훈·2021년 11월 30일
0

<그림 1>과 같이 9 × 9 격자판에 쓰여진 81개의 자연수가 주어질 때, 각 행의 평균을 구하고,
그 평균과 가장 가까운 값을 출력하는 프로그램을 작성하세요. 평균은 소수점 첫 째 자리에서 반
올림합니다. 평균과 가까운 값이 두 개이면 그 중 큰 값을 출력하세요.
▣ 입력설명
첫 째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개씩 자연수가 주어진다. 주어지는 자연수는 100보
다 작다.
▣ 출력설명
첫째 줄에 첫 번째 줄부터 각 줄에 각행의 평균과 그 행에서 평균과 가장 가까운 수를 출력한다.
▣ 입력예제
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
▣ 출력예제
42 34
43 42
53 53
45 36
50 45
41 37
54 64
43 44
49 50

#include
#include

using namespace std;
int a[10][10];
int main() {
int i,j,sum,av,min,res,tmp;

for(i=1;i<=9;i++){
	sum = 0 ; // 행이 바뀔때마다 sum 초기화
	for(j=1;j<=9;j++){
		cin>>a[i][j];
		sum+=a[i][j];
	}
	av=(sum/9.0)+0.5; 
	
	cout<<av<<" ";
	min=2147000000;
	for(j=1;j<=9;j++){
		tmp=abs(a[i][j]-av);
		if(tmp<min){
			min=tmp;
			res=a[i][j];
		}
		else if(tmp==min){
			if(res<a[i][j]) res=a[i][j]; // 둘중 큰수 가려내기 
		}
	}
	cout<<res<<endl; 
} 

return 0;

}

profile
never stop

0개의 댓글