c언어 연습문제 #8 (국비9일차)

문제 1

 10명의 학생 성적을 배열에 저장하고 총점과 평균을 구하는 프로그램을 작성하세요.

 

A:

#include <stdio.h>

void main()
{
int scores[10] = { 0 };

int total=0;
for (int i = 0; i < 10; i++)
{
printf("점수 입력 :");
scanf_s("%d", &scores[i]);
total += scores[i];
}

printf(" 총점 : %d 평균 : %.2lf", total, (double)total / 10);


}

etc-image-0

 

 

문제 2

 다음 두 배열에서 같은 배열 요소 간에 곱하는 프로그램을 반복문을 이용하여 작성하세요.

2.2 3.5 2.5 10.1 4.0
3.3 2.0 4.0 1.0 2.5

 

A:

1번 요소끼리 곱하고, 2번 요소끼리 곱하고... 이런 식으로 하라는 뜻이다.

#include <stdio.h>

void main()
{
double array1[5] = { 2.2, 3.5, 2.5, 10.1, 4.0 };
double array2[5] = { 3.3, 2.0, 4.0, 1.0, 2.5 };

for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if (i == j)
{
printf("array[%d] * array2[%d] = %lf\n", i, j, array1[i] * array2[j]);
}


}
}
}

etc-image-1

 

문제 3

그림과 같이 배열을 90도 회전시키세요.

1 2 3 4
5 6 7 8

 

5 1
6 2
7 3
8 4

 

 

A:

사실 이게 잘 안되서 고민을 많이 했다.

조금 어렵기도 했다... 다시 어떤 원리인지 생각해봐야할 것 같다...

#include <stdio.h>

void main()
{
int array[2][4] = {
{1,2,3,4},
{5,6,7,8}
};


int array2[4][2];

for (int i = 0; i < 4; i++)
{
for (int j = 1; j >=0  ; j--)
{
array2[i][j] = array[j][i];
printf("%d ", array2[i][j]);
}
printf("\n");
}


}

 

etc-image-2

 

문제 4

 중심가에 위치한 3층짜리 열혈아파트는 각 층마다 세 세대가 있습니다. 각 세대의 가족수를 사용자로부터 입력받아 열혈아파트 전체 주민의 수를 구하세요.

 

실행결과

1층 1호의 가족은 몇 명입니까? : 1
1층 2호의 가족은 몇 명입니까? : 2
1층 3호의 가족은 몇 명입니까? : 4
2층 1호의 가족은 몇 명입니까? : 7
2층 2호의 가족은 몇 명입니까? : 6
2층 3호의 가족은 몇 명입니까? : 5
3층 1호의 가족은 몇 명입니까? : 3
3층 2호의 가족은 몇 명입니까? : 4
3층 3호의 가족은 몇 명입니까? : 4
열혈아파트 총 주민수는 36명입니다.

 

A;

#include <stdio.h>

void main()
{

int array[3][3];
int sum = 0;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%d층 %d호의 가족은 몇 명입니까? : ",i+1,j+1);
scanf_s("%d", &array[i][j]);

sum += array[i][j];

}
}

printf("열혈아파트 총 주민수는 %d명입니다.\n", sum);


}

 

 

etc-image-3

 

문제 5

 4행 3열의 2차원 배열 두 개에서 같은 배열 요소의 행과 열 간에 합과 차를 구하세요. 즉, 행렬릐 합과 차를 구하는 프로그램을 작성하세요.

23 75 85
12 77 51
25 66 30
19 90 88
11 15 47
74 85 69
57 86 28
90 22 33

 

A:

#include <stdio.h>

void main()
{

int array1[4][3] = {
{23,75,85},
{12,77,51},
{25,66,30},
{19,90,88}
};

int array2[4][3] = {
{11,15,47},
{74,85,69},
{57,86,28},
{90,22,33}
};

for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%d행 %d열 \n합:%d 차:%d \n", i + 1, j + 1, array1[i][j] + array2[i][j], array1[i][j] - array2[i][j]);
}
printf("\n");
}

}

 

etc-image-4