3. 실습 1 : sorting ¶
배열 a를 정렬해서 배열 result에 담는 코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(){
int a[5], result[5];
int max = -999;
int i, j, index;
//get input
for (i = 0; i < 5; i++){
scanf("%d", &a[i]);
}
//sorting
for (j = 0; j < 5; j++){
for (i = 0; i < 5; i++){
if (a[i] > max){ //a 배열에서 현재 가장 큰 수를 max에 담는다.
max = a[i];
index = i; //나중에 -999로 초기화하기 위해 현재 수의 번호(index)를 저장해놓는다.
}
}
result[j] = max; //가장 큰 수를 result배열에 0번부터 4번까지 차례대로 담는다.
a[index] = -999; //result배열에 담은 수는 -999로 초기화하여 다음에 max값을 계산할 때 또 걸리지 않도록 한다.
max = -999; //max값 초기화
}
//오름차순 출력
for (i = 4; i >=0; i--){
printf("%d ", result[i]);
}
printf("\n");
return 0;
}
4. 실습 2 : 행렬 곱셈 ¶
3X3 행렬 a와 b를 곱하여 c에 저장합니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(){
//행렬 초기화
//int a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9} 이런 식으로 해도 된답니다~
int a[3][3] =
{ { 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 } };
int b[3][3] =
{ { 1, 0, -1 },
{ 0, 1, -2 },
{ 0, 0, -3 } };
//c는 0으로 초기화를 꼭 해주어야 합니다.
int c[3][3] = { 0 };
int i, j, k;
/* 만약 사용자로부터 입력을 받고 싶다면 이 부분을 추가하세요~
for (i = 0; i < 3; i++){
for (j = 0; j < 3; j++){
scanf("%d", &a[i][j]);
}
}
for (i = 0; i < 3; i++){
for (j = 0; j < 3; j++){
scanf("%d", &b[i][j]);
}
}
*/
for (k = 0; k < 3; k++){
for (i = 0; i < 3; i++){
for (j = 0; j < 3; j++){
c[k][i] += a[k][j] * b[j][i];
}
}
}
//print result
for (i = 0; i < 3; i++){
for (j = 0; j < 3; j++){
printf("%d ", c[i][j]);
}
printf("\n");
}
return 0;
}










