LAB16_4
int test[4][3] = { {8, 7}, {6, 5}, {1, 2}, {3, 4}};
가) 앞의 선언 및 초기화 구문에서 초기화되지 않은 엘리먼트는 몇 개이고 이들 엘리먼트들은 어떤 것들인지 말해 보시오. test의 메모리 구조를 2차원 형태로 그림을 그려보시오.
나) 아래와 같은 형태의 구문을 사용하여 배열 test를 각 row 별로 출력하는 프로그램을 완성해 보시오.
printf(“배열 test의 엘리먼트를 출력합니다\n”);
for (i = 0; i < 4; i++)
{
printf("\n%d번째 row: " , i + 1);
for (j = 0; j < 3; j++)
}
다) 아래와 같은 형태의 for 문을 사용하여 test 배열에서 초기화 되지 않은 4개의 엘리먼트들 값을 모두 - 1로 수정한후 다시 한번 나)의 코드를 이용하여 출력하시오.
for (i = 0; i < 4; i++)
______________코드 한 줄 추가 ____________________
라) 앞의 다)를 수행한 후에 test의 모든 엘리먼트(12개) 값의 합과 그 평균을 출력하는 프로그램을 작성해 보시오.. for 반복문과 적당한 변수를 추가하여 프로그램을 완성해 보시오. (주의: 전체 합으로는 32을, 평균 값으로는 2.67을 출력함)
마) 앞의 라)를 수행한 후에 다음과 같은 기능을 수행하는 프로그램을 작성해 보시오. - test 배열의 각 row에 있는 엘리먼트 중 최대값을 출력. - 출력된 최대값 4개의 합을 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#include <stdio.h>
int main(void)
{
int test[4][3] = { {8, 7,-1}, {6, 5,-1}, {1, 2,-1}, {3, 4,-1} };
int max[5]={0}, sum = 0,maxSum=0;
printf("다>\n");
printf("배열 test의 엘리먼트를 출력합니다\n");
for (int i = 0; i < 4; i++)
{
printf("\n%d번째 row: ", i + 1);
for (int j = 0; j < 3; j++)
{
printf("%d ", test[i][j]);
sum = sum + test[i][j];
}
}
printf("\n");
printf("\n");
printf("라>\n");
printf("Total is %d\n", sum);
printf("Average is %.2f\n", (double)sum / 12);
printf("\n");
printf("마>\n");
for (int i = 0; i < 4; i++)
{
printf("\n%d번째 row에서의 최대값: ", i + 1);
for (int j = 0; j < 3; j++)
if (test[i][j] > max[i])
max[i] = test[i][j];
printf("%d", max[i]);
}
printf("\n");
for (int i = 0; i < 4; i++)
maxSum = maxSum + max[i];
printf("최대값의 합 : %d", maxSum);
return 0;
}
|
cs |
반복문에서 합을 구해주면 되고
합을 int로 받았으니 형변환 double로 형변환 해준다
최댓값을 5크기의 배열로 받고 요소들을 다 0으로 선언한다
이후 배열test의 요소가 최댓값보다 크면 그 값을 최댓값으로 선언하고
그렇게 row에서의 최댓값 정하기가 끝나면 최댓값max배열에 저장되어 있는 값을 더해서 출력한다
말로 설명하려니 어렵네