Post

04. Introduction and practice of engineering computer(Array & Swap)

04. Introduction and practice of engineering computer(Array & Swap)

[toc]

공학컴퓨터입문및실습 과제4

배열 실습1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#define SIZE 5

int main(void)
{
    int i;
    int score[SIZE]; //배열 지정
    
    score[0] = 10;
    score[1] = 20;
    score[2] = 30;
    score[3] = 40;
    score[4] = 50;
    //배열의 각 요소에 값을 대입한다.
    for (i = 0; i < SIZE; i++) //i를 0~SIZE-1까지 반복한다.
    {
        printf("scores[%d]=%d\n", i, score[i]);
    }
    return 0;
}

배열 실습2

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
#include <stdio.h>
#define SIZE 10

int main(void)
{
    int price[SIZE] = { 12, 3, 19, 6, 18, 8, 12, 4, 1, 19};
    //배열에 미리 값을 지정했습니다.
    int i, minimum;
    
    printf("[");
    for (i = 0;i < SIZE;i++) //i는 0~ SIZE - 1까지 반복을 합니다.
    {
        printf("%d ", price[i]); //price[i]를 정수형을 받습니다.
    }
    printf("]\n");
    
    minimum = price[0];  //최소값을 배열 price의 0번째 요소로 지정합니다.
    
    for (i = 1;i < SIZE;i++) 
    {
        if (price[i] < minimum)
            minimum = price[i];
      			//만약에 배열 안의 요소가 지정해 놓은 최소값 보다 작으면 최소값이 바뀝니다.
    }
    printf("최소값은 %d입니다.", minimum);  //바뀐 최소값을 출력합니다.
    
    return 0;
}

베열 실습3

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
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define SIZE 5

int main(void)
{
    int i, k;
    int list[SIZE] = {16, 7, 9, 1, 3};
    
    for (k = 0;k < SIZE;k++)
    {
        for (i = 0;i < SIZE-1;i++)
        {
            if (list[i] > list[i + 1])
            {
                int tmp = list[i];
                list[i] = list[i + 1];
                list[i + 1] = tmp;
            }
        }
    }
    for (i = 0;i < SIZE;i++)
    {
        printf("%d ", list[i]);
    }
    return 0;
}

2차원 배열 실습

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
#include<stdio.h>
#define Xcor 3
#define Ycor 3
int main() {
   int a, b;
   int A[Xcor][Ycor];
   int B[Xcor][Ycor];
   int C[Xcor][Ycor];
   for (a = 0; a < 3; a++) {
      for (b = 0; b < 3; b++) {
         scanf("%d", &A[a][b]);

      }
   }
   for (a = 0; a < 3; a++) {
      for (int b = 0; b < 3; b++) {
         scanf("%d", &B[a][b]);

      }
   }
   for (a = 0; a < 3; a++) {
      for (int b = 0; b < 3; b++) {
         C[a][b] = A[a][0] * B[0][a] + A[a][1] * B[1][a] + A[a][2] * B[2][a];

      }
   }
    
   for (a = 0; a < 3; a++) {
      printf("\n");
      for (int b = 0; b < 3; b++) {
         printf("%d",C[a][b]);
         printf(",");
      }
   }
    return 0;
}

난수를 생성 후 10으로 나눈 나머지가 가장 많이 생성된 수를 찾기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
#include <stdlib.h>
int main(void) {
    int num[10] = {0, };
    int temp;
    for (int i = 0; i < 100; i++) {
        temp = rand() % 10;
        num[temp]+=1;
    }
    int max = 0;
    for (int i = 0; i < 9; i++) {
        if (num[i] > max) {
            max = num[i];
            temp = i;
        }
    }
    printf("가장 많이 생성된 수 = %d\n", temp);
    
    return 0;
}

swap함수 실습

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
void swap(int *px, int *py);

int main(void){
    
    int a = 100, b = 200;
    
    printf("swap() 호출전 a=%d b=%d\n", a, b);
    swap(&a, &b);
    printf("swap() 호출전 a=%d b=%d\n", a, b);
    
    return 0;
}

void swap(int *px, int *py)
{
    int tmp;
    
    tmp = *px;
    *px = *py;
    *py = tmp;
}

End.