| <복습> 조건문과 반복문 -0이 아닌 수는 모두 참이다. -모든 조건문, 반복문에서는 왠만해서는 무조건 괄호를 적용하세요. -for문 혹은 while문은 얼마든지 중첩될 수 있습니다. -for(;;)는 while(1)과 동일하게 무한루프로 동작합니다. -break;를 이용하여 반복문을 즉시 빠져나올 수 있다. 예를들면, while(1) { if (a ==1) break; } ->a가 1이되는 순간에 반복이 정지가 되도록 break문을 사용하면 즉시 빠져나올 수 있다. |
기본입출력
기본입출력이라는 것은 사용자와 컴퓨터와의 상호작용 그 자체를 의미합니다.
| #include<stdio.h> int main(void) { int x; scanf("%d", &x); return 0; } |
c언어에서는 기본 입출력 함수를 이용하여 사용자와 상호작용할 수 있습니다. 대표적으로 scanf("%d",&x);라는 정수에 사용자에게 입력받은 값을 삽입한다는 의미의 코드입니다. 다만 사용자로부터 입력 받을 자료형에 따라서 %d, %c, %f, %lf 등의 다양한 문법을 사용해야 한다는 것에 유의해야 합니다. 그리고 반면에 프로그램에서 사용자에게 메시지를 출력할 때는 가장 대표적으로 printf();를 이용합니다. 물론 이들은 텍스트 기반의 입출력이며 나중에 GUI를 배우게 되면 사용자에게 글자 뿐만아니라 이미지도 보여줄 수 있습니다.
간단한 실습을 통해서 기본입출력에 대해 더 자세하게 배워보겠습니다.
scanf()와 printf()함수를 이용하여 다양한 프로그램을 작성해보겠습니다.
-간단한 계산기 프로그래을 개발해보자.
-정해진 개수의 정수를 더하는 프로그램을 개발해보자.
-특정한 단의 구구단을 출력하는 프로그램을 개발해보자.
| #include<stdio.h> int main() { char o; int x, y; while (1) { printf("수식을 입력하세요:"); scanf_s("%d %c %d", &x, &o,1, &y); if (o == '+') { printf("%d %c %d = %d\n", x, o, y, x + y); } } } 비주얼베이직으로 실행시 정상작동되는것을 확인함. |
무한반복은 1을 이용합니다. 왜냐하면 1은 항상 참값에 해당하기 때문에 절대 break를 사용하지 않는 이상 탈출되지 않기 때문입니다.
위의 코드에서,
scanf_s("%d %c %d", &x, &o,1, &y);
부분은 scanf가 오류가 나면 _s를 뒤에 붙여주면 됩니다.
(scanf_s) 혹시 이렇게 햇는데도 오류가 난다면, scanf_s("%d %c %d" , &x ,&a, 1, &y); 이렇게 해주면 됩니다.
c언어가 이것저것 바뀌면서 문자열이 아닌 문자만 입력한려 한다면 컴퓨터가 문자를 문자열로 받아들였는지 메모리 계산이 잘못되면서? 오류가 납니다. 그래서 &a 뒤에 1을 붙여줌으로써 문자형 a는 1의 메모리 값을 가집니다. 하고 알려줘야 합니다.
+도 있으니까 -, * , / , % 도 있어야 겠죠.
| #include<stdio.h> int main() { char o; int x, y; while (1) { printf("수식을 입력하세요:"); scanf_s("%d %c %d", &x, &o,1, &y); if (o == '+') { printf("%d %c %d = %d\n", x, o, y, x + y); } else if (o == '-') { printf("%d %c %d = %d\n", x, o, y, x - y); } else if (o == '*') { printf("%d %c %d = %d\n", x, o, y, x * y); } else if (o == '/') { printf("%d %c %d = %d\n", x, o, y, x - y); } else if (o == '%') { printf("%d %c %d = %d\n", x, o, y, x % y); } else { printf("처리할 수 없는 연산자입니다.\n"); } getchar(); printf("프로그램을 종료하시겠습니까?(y/n)"); scanf_s("%c", &o); if (o == 'n' || o == 'N') { continue; } else if(o == 'y' || o == 'Y') { break; } else { printf("입력이 잘못되었습니다."); } } } |
이때 getchar(); 는 버퍼를 말하는데,
엔터 또한 문자의 하나로 인식하기 때문에 엔터를 넣을 수 있는 getchar()를 넣으면 된다.
다음으로 해볼 실습은 정해진 개수만큼 정수를 더하는 프로그램을 만드는 것입니다.
| #include<stdio.h> int main() { int number, x, i, sum = 0; printf("정수의 개수를 입력하세요. :"); scanf("%d", &number); for (i = 0; i < number; i++) { printf("정수의 값을 입력하세요. :"); scanf("%d", &x); sum += x; } printf("전체 정수의 값은: %d입니다.",sum); } |
정해진 개수를 입력받을 수 있도록 number라는 변수를 만들어주고, number변수 안에 해당 개수가 들어갈 수 있도록 해줍니다.
for (i = 0; i < number; i++)
i는 0부터 number만큼 1씩 더해가면서 반복문이 수행됩니다.
scanf를 이용해 x라는 변수 안에 정수의 값이 들어갈 수 있도록 해준 다음에, sum값에 x를 더해줍니다.
간단한 실습을 하나 더 해보겠습니다.
이번에 해볼 실습은 구구단 프로그램입니다.
| #include<stdio.h> int main() { int x, i; printf("정수를 입력하세요.:"); scanf_s("%d", &x); for (i = 1; i <= 9; i++) { printf("%d X %d = %d\n", x, i, x * i); } } |
'플밍 공부' 카테고리의 다른 글
| c언어(사용자 정의 함수) 복습필요. (2) | 2024.01.10 |
|---|---|
| c언어 3(자료형) (0) | 2024.01.08 |
| C언어 1 (0) | 2024.01.05 |