# 선택제어문
- If 문
# include <stdio.h>
int main(){
int score;
printf("점수를 입력하세요: ");
scanf("%d", &score);
if (score%2 ==0)
printf("%d는 짝수\n", score);
if (score%2 == 1)
printf("%d는 홀수\n", score);
if(score >= 90)
printf("%d는 A \n", score);
else if(score >= 80)
printf("%d는 B \n", score);
else if(score >= 70)
printf("%d는 c\n", score);
else if(score >= 60)
printf("%d는 D \n", score);
else
printf("%d는 F \n", score);
}
- Switch 문
//계산기 프로그램
#include <stdio.h>
int main(){
int op_num1, op_num2;
char op;
printf("계산기 프로그램\n");
printf("연산자 입력 (+,-,*,/) :");
scanf("%c", &op); //연산자 캐릭터로 받는다.
printf("%c의 좌측 피연산자 1 입력: ", op);
scanf("%d", &op_num1);
printf("%c의 우측 피연산자 2 입력: ", op);
scanf("%d", &op_num2);
switch(op) {
case '+' :
printf("%d + %d = %d\n", op_num1, op_num2, op_num1+op_num2);
break;
case '-' :
printf("%d - %d = %d\n", op_num1, op_num2, op_num1-op_num2);
break;
case '*' :
printf("%d * %d = %d\n", op_num1, op_num2, op_num1*op_num2);
break;
case '/' :
printf("%d / %d = %d\n", op_num1, op_num2, op_num1/op_num2);
break;
default:
printf("잘못된 연산자입니다.");
}
}
# 반복 제어문
- for문
//구구단을 7단부터 9단까지 세 줄로 출력하는 프로그램
#include <stdio.h>
#include <conio.h> //getch()의 원형이 보관된 헤더파일(윈도우에서 키보드 입력을 처리하는 함수들 제공)
int main(){
int i,j;
for(i=7; i<10; i=i+3){
for(j=1; j<10;j++){
printf("\t %2d * %2d = %2d \t", i, j, i*j);
printf("\t %2d * %2d = %2d \t", i+1, j, (i+1)*j);
printf("\t %2d * %2d = %2d \n", i+2, j, (i+2)*j);
}
getch(); // 키보드에서 한 문자를 입력받는 함수, 키를 누를 때까지 프로그램이 대기하고, 사용자가 키를 누르면 아스키코드값 반환한다.
printf("\n");
}
}
//주어진 문자열에서 특정 문자 개수 구하기
#include <stdio.h>
int main(){
static char a[31] = "KOREA NATIONAL OPEN UNIVERSITY";
int i;
int c=0; // 'O'의 수를 세는 카운터 c를 0으로 초기화.
for (i = 0; i<=29; i++)
if(a[i] == 'O')
c++;
printf("O 개수 = %d", c);
}
//O 개수 = 3
// 삼각형 모양 출력
#include <stdio.h>
int main(){
int i, j;
for(i=0; i<5; i++){
for(j=0;j<=i;j++){
printf("*");
}
printf("\n");
}
}
//*
//**
//***
//****
//*****
#include <stdio.h>
#include <conio.h>
int main(){
int i,j;
float m,k;
k=26;
for(i=65; i<=90; i++){
for (m=k; m>=0;m--) //왼쪽부터 26칸 띄고 출력
printf(" ");
k = k-1; //1칸씩 줄여가면서 출력
for(j=65; j<=i;j++)
printf("%c", j);
printf("\n");
}
getch();
}
- while문
- do ~ while문
- continue: 루프 실행 중 루프를 다시 실행하고자 할 때, 루프를 빠져나오는 것이 아니라 그 루프의 선두로 다시 제어를 옮기는 기능을 가진 명령어, 즉, 루프를 다시 실행하고자 할 때 사용된다.
- break: 루프를 빠져나올 때
- goto: 무조건적인 분기명령, 루프가 여러 개 중첩되어 있을 경우 한꺼번에 루프를 벗어나고자 할 때 사용.
- 즉, 원하는 곳으로 제어를 무조건적으로 옮긴다.
- label: ~ goto label;
# include <stdio.h>
int main(){
int i,n,c = 'A';
while(1){
printf("\n 횟수는? ");
scanf("%d", &n);
for(i=0;i<=n;i++){
printf("%c",c);
if(c=='Q')
goto end; //레이블 명 end로 무조건 실행 옮김
c++;
}
}
end: //레이블명
printf("\n\n끝");
}
#include <stdio.h>
#include <math.h> # 수학 관련 함수의 원형을 갖고 있는 헤더파일
int main(){
double val=-1.0;
do{
printf("sine of %f is %f \n", val, sin(val));
printf("cosine of %f is %f \n", val, cos(val));
printf("tangent of %f is %f \n\n", val, tan(val));
val ++;
}while(val <= 1.0);
}
# [실습] 숫자 맞추기 게임
- getchar(): 입력 버퍼에서 직전 입력 함수가 읽어들인 마지막 위치부터 시작하여 읽어 들이므로, 이전 개행 문자 삭제를 위해 호출한다.
- scanf()의 경우 이전 공백 문자는 무시한다.
- usigned형 : 부호없는 정수 데이터 타입, 음수 값을 표현하지 않으며 0또는 양의 정수만을 표현한다.
- 음수 값을 표현하지 않아서 범위가 더 크다.
- 정수 연산 시에 부호 비트에 대한 고려가 필요 없어서 연산이 더 빠르게 수행된다.
//숫자 맞추기 게임
#include<stdio.h>
#include<stdlib.h>
int main(){
unsigned secret_num,guess_num, k, times=1;
unsigned again=1, win=0;
char replay;
printf("** Game Start! **\n");
while(again){
printf("\n=%u 번째 게임 = \n", times++);
secret_num = rand() % 100; //rand()함수는 0~2147483647 사이 값 중 하나 무작위로 선택해준다. (100으로 나눈 나머지값을 가지므로 0~99사이의 값을 가진다.)
// win = 0;
k=1;
while (k++ <=7){ //총 7번의 기회 존재.
printf("k값 : %u \n", k);
printf("0부터 99사이의 수를 입력: ");
scanf("%u", &guess_num);
if(guess_num == secret_num){
win = 1;
k=8;
}
else if (guess_num < secret_num)
printf(" %u보다 큰 수입니다. \n", guess_num);
else
printf(" %u보다 작은 수입니다. \n", guess_num);
}
if(win) // win이 1이면
printf("당신이 이겼습니다. 축하합니다. \n");
else
printf("당신이 졌습니다. %u 였습니다. 다시 시도하세요. \n", secret_num);
printf("다시 하겠습니까? (y/n)");
getchar(); // 이전 개행문자 삭제를 위해 호출
replay = getchar();
if(!(replay == 'y' || replay =='Y'))
again = 0;
}
printf("\n** Good Bye ** \n");
}
반응형
'프로그래밍 > C 프로그래밍' 카테고리의 다른 글
[C언어] 배열 (0) | 2024.06.04 |
---|---|
[C언어] 함수 (0) | 2024.06.04 |
[C언어] 입출력함수와 연산자 (1) | 2024.06.04 |
[C] 선행처리기 매크로 (0) | 2024.06.04 |
[C언어] C언어의 개요 (0) | 2024.02.21 |