C언어 각 정수가 몇 번 등장


이번에는 값을 두 개 입력받아서 변수 두 개에 저장해보겠습니다.

scanf_two_integer.c

#define _CRT_SECURE_NO_WARNINGS    // scanf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>

int main()
{
    int num1, num2;

    printf("정수를 두 개 입력하세요: ");
    scanf("%d %d", &num1, &num2);    // 값을 두 개 입력받아서 변수 두 개에 저장

    printf("%d %d\n", num1, num2);    // 변수의 내용을 출력

    return 0;
}

소스를 컴파일하여 실행한 뒤 1 2를 입력하고 엔터 키를 누르세요. 1 2 사이에는 반드시 공백(스페이스)으로 띄워줍니다.

실행 결과

정수를 두 개 입력하세요: 1 2 (입력)
1 2

입력 값 두 개가 num1, num2 변수에 각각 저장됩니다. 그리고 printf 함수를 통해 num1, num2의 값이 출력됩니다.

scanf 함수는 printf 함수와 사용 방법이 유사합니다. 입력받을 개수만큼 서식 지정자를 넣어주고, 서식 지정자 개수만큼 변수를 넣어주면 됩니다. 이번에도 변수 앞에 &를 반드시 붙입니다. 초보는 자주 틀리니 꼭 기억하세요!


지난 학기들의 기록/C 기초

2020. 5. 21.

C언어 각 정수가 몇 번 등장
기초적인 2차원 배열 구현 문제

 문제 11번은 설명 생략하겠습니다.

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

#pragma warning(disable:4996)

#include <stdio.h>

/*학생 3명의 국어, 영어 성적이 있다.

- 이 자료를 저장하기 위한 2차원 배열을 선언 하시오.

- 학생 별 국어와 영어 성적을 사용자로부터 입력 받으시오.

- 학생 별 국어와 영어 성적의 합을 각각 출력하시오.*/

int main() {

int grade[3][2];

int sum[3= { 0 };

for(int i=0;i<3;i++){

for(int j=0;j<2;j++){

scanf("%d"&grade[i][j]);

}

}

for (int i = 0; i < 3; i++) {

for (int j = 0; j < 2; j++) {

sum[i]= sum[i]+ grade[i][j];

}

}

for (int i = 0; i < 3; i++) {

printf("%d\n", sum[i]);

}

return 0;

}

cs
C언어 각 정수가 몇 번 등장

또한 설명생략

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

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

#pragma warning(disable:4996)

#include <stdio.h>

/*숫자에 해당하는 영어 출력하기.*/

int main() {

char x[6][5=

{

{'Z','E','R','O','-'},

{'O','N','E','-','-'},

{'T','W','O','-','-'},

{'T','H','R','E','E'},

{'F','O','U','R','-'},

{'F','I','V','E','-'},

};

int num[3];

for (int i = 0; i < 3; i++) {

scanf("%d"&num[i]);

}

for (int i = 0; i < 3; i++) {

int j = 0;

if (num[i] == 0) {

while (j < 5) {

printf("%c", x[0][j]);

j++;

}

puts("");

}

else if (num[i] == 1) {

while (j < 5) {

printf("%c", x[1][j]);

j++;

}

puts("");

}

else if (num[i] == 2){

while (j < 5) {

printf("%c", x[2][j]);

j++;

}

puts("");

}

else if (num[i] == 3) {

while (j < 5) {

printf("%c", x[3][j]);

j++;

}

puts("");

}

else if (num[i] == 4) {

while (j < 5) {

printf("%c", x[4][j]);

j++;

}

puts("");

}

else {

while (j < 5)

{

printf("%c", x[5][j]);

j++;

}

puts("");

}

}

return 0;

}

cs
C언어 각 정수가 몇 번 등장

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

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

#pragma warning(disable:4996)

#include <stdio.h>

/* 2차원 배열 x에 3X3 정수로 된 행렬을 입력하시오. 

- 2차원 배열 y에 2X2 정수로 된 행렬을 입력하시오.

- x 행렬에서 y 행렬이 어디에 있는지, x에서 y 행렬 시작위치의 행 번호와 열 번호를 출력하시오. 

(여러 개 있는 경우 첫 번째 나타나는 y 행렬의 행 과 열 번호를 쓰시오)  

- 없는 경우에는 “none”을 출력하시오.*/

int main() {

int x[3][3];

int y[2][2];

int a = 0, b = 0;

int cnt = 0;

// 입력파트

for (int i = 0; i < 3; i++) {

for (int j = 0; j < 3; j++) {

scanf("%d"&x[i][j]);

}

}

for (int i = 0; i < 2; i++) {

for (int j = 0; j < 2; j++) {

scanf("%d"&y[i][j]);

}

}

// 출력파트

for (int i = 0; i < 3; i++) {

for (int j = 0; j < 3; j++) {

printf(" %d", x[i][j]);

}

puts("");

}

for (int i = 0; i < 2; i++) {

for (int j = 0; j < 2; j++) {

printf(" %d", y[i][j]);

}

puts("");

}

for (int p = 0; p < 2; p++) {

for (int q = 0; q < 2; q++) {

= 0, b = 0;

if(x[p][q] == y[a][b]) {

q++;

b++;

if (x[p][q] == y[a][b]){

p++;

a++;

if (x[p][q] == y[a][b]) {

q--;

b--;

if (x[p][q] == y[a][b]&&cnt==0) {

printf("%d %d", p - 1, q);

cnt++;

}

}

}

}

}

}

if (cnt == 0printf("none");

return 0 ;

}

cs

배열 3x3과 2x2의 크기가 정해져있어서 풀은 것이다.

만약 배열의 n1 x n1 과 n2 x n2 를 입력받고 배열 n1에서 n2를 발견하는 것이라면 못풀었을것같다..

관련글