본문으로 바로가기
728x90
반응형

Programming


4. 0부터 9까지의 난수를 100번 생성하여 가장 많이 생성된 수를 출력하는 프로그램을 작성하여보자. 난수는 rand() 함수를 사용하여 생성한다.

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
#include "stdafx.h"
#include <stdlib.h>
 
int main()
{
    int temp;
 
    int random[100], last = 0, lastnum = 0;
    int num[10= {0};
    for (temp = 0; temp < 100; temp++)
    {
        random[temp] = rand() % 10;
        num[random[temp]]++;
    }
 
    for (temp = 0; temp < 10; temp++)
    {
        if (num[temp] > lastnum)
        {
            lastnum = num[temp];
            last = temp;
        }
        printf("%d = %d \n", temp, num[temp]);
    }
 
    printf("가장 많이 뽑힌 수 = %d \n", last);
 
    system("pause");
    return 0;
}
 
 
cs



5. 다음 표의 각 행의 합계, 각 열의 합계를 구하는 프로그램을 작성하여보자. 표는 2차원 배열을 이용하여 표현한다.

 12

 56

 32

 16

 98

 99

 56

 34

 41

 3

 65

 3

 87

 78

 21


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
#include "stdafx.h"
#include <stdlib.h>
 
int main()
{
    int question[3][5= {    
        {12,56,32,16,98},        
        {99,56,34,41,3},
        {65,3,87,78,21}    };
    int row[3= { 0 }, col[5= { 0 };
 
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 5; j++)
        {
            row[i] += question[i][j];
            col[j] += question[i][j];
        }
    }
 
    for (int i = 0; i < 3; i++)
        printf("%d열의 합 = %d\n", i + 1, row[i]);
    printf("\n");
    for (int j = 0; j < 5; j++)
        printf("%d행의 합 = %d\n", j + 1, col[j]);
    printf("\n");
 
    system("pause");
    return 0;
}
 
cs



6. 10진수를 2진수로 변환하여 출력하는 프로그램을 작성하여보자. 최대 64자리까지 변환이 가능하도록 한다. 변환된 자릿수를 저장하는 데 배열을 사용한다. 10진수를 2로 나누어서 생성된 나머지를 역순으로 나타내면 2진수로 표현할 수 있다. 주어진 정수를 임의의 진법으로 변환할 수 있는 프로그램도 작성하여보자.

for(i = 0; i  < 32 && n > 0; i++)

{

binary[i] = n % 2;

n = n / 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
#include "stdafx.h"
#include <stdlib.h>
 
int main()
{
    int num = 0,temp=0,i=0;
    short binary[64= { 0 };
    printf("2진수로 변환시킬 10진수를 입력해주세요(최대 64자리) : ");
    
    scanf_s("%d"&num);
    temp = num;
    
    while (temp != 0)
    {
        binary[i] = temp % 2;
        temp /= 2;
        i++;
    }
 
    printf("변환된 2진수 : ");
    for (int j = 0; j < i; j++)
        printf("%d", binary[j]);
 
    printf("\n");
    system("pause");
    return 0;
}
 
 
cs



7. 주사위를 60000번 던져서 그 결과를  배열로 요약하여보자. 잘 만들어진 주사위라면 하나의 면이 나올 확률은 약 1/6이  되어야 한다. 컴퓨터에서 주사위 던지기는 난수 발생 함수 rand()를 통하여 구현한다.

주사위면        빈도

1            1029

2             961

3      ....

4      ....

5      ....

6      ....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <stdlib.h>
 
int main()
{
    int num[6= { 0 }, temp;
    for (int i = 0; i < 60000; i++) {
        temp = rand() % 6;
        num[temp]++;
    }
    printf("주사위면 \t빈도\n");
    for (int i = 0; i < 6; i++)
    {
        printf("%d\t%d\n", i + 1, num[i]);
    }
    printf("\n");
    system("pause");
    return 0;
}
 
 
cs



728x90
반응형