: 논리적 흐름의 기본
조건문 순서도

반복문 순서도

#iclude <stdio.h>
int main()
{
int x = -150;
if(x < 0)
x = -x; // 블록이 없으므로 최초 한 줄만 if영역에 해당됨
printf("x의 절댓값은 %d입니다.\n", x); // x의 절댓값은 150입니다.
return 0;
}
#include <stdio.h>
int main()
{
int score = 85; // 학생의 점수를 의미
if(score >= 90)
printf("당신의 학점은 A입니다.\n");
else if(score >= 80)
printf("당신의 학점은 B입니다.\n");
else if(score >= 70)
printf("당신의 학점은 C입니다.\n");
else
printf("당신의 학점은 F입니다.\n");
return 0;
}
// 실행결과: 당신의 학점은 B입니다.
#include <stdio.h>
int main()
{
int year = 2024;
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
printf("%d년은 윤년입니다.\n", year);
}
else
{
printf("%d년은 윤년이 아닙니다.\n", year);
}
return 0;
}
// 실행결과: 2024년은 윤년입니다.
#include <stdio.h>
int main()
{
int i = 1, sum = 0;
while(i <= 1000)
{
sum += i; // sum = sum + i
i++;
}
printf("1부터 1000까지의 합은 %d입니다.\n", sum);
return 0;
}
// 실행결과: 1부터 1000까지의 합은 500500입니다.
이중 for문을 활용하여 사각형 출력하기
#include <stdio.h>
#define N 10
int main()
{
int i, j;
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
printf("★"); // 별이 10개가 출력되고
printf("\n"); // 줄바꿈
}
// 10 * 10 => 100개의 별이 출력되는데
// i가 0부터 10까지 반복되는 동안 J도 반복이 중첩되어 이루어짐
return 0;
}
피라미드 형태 출력하기
#include <stdio.h>
#define N 20
int main()
{
int i, j;
for(i = 0; i < N; i++)
{
for(j = N - i -1; j > 0; j--)
{
printf(" ");
}
// 맨 처음 시작시 i가 0이기때문에 가장 윗부분 공백만 19개 존재
for(j = 0; j < i; j++)
{
printf("★");
}
for(j = 0; j < i - 1; j++)
{
printf("★");
}
printf("\n");
}
return 0;
}
가장 가까운 반복문을 빠져나올 수 있다.
while(1)
{
if(a == 1)
break;
}
// a가 1이 되는 순간, 무한반복이 정지된다.
스탠다드 io를 넣을 때 자동으로 표준 입출력 부분이 기능적으로 헤더 파일 라이브러리 안에 포함되어 있다
scanf() -> variable -> printf()
입력
#include <stdio.h>
int main()
{
int x;
scanf("%d", &x);
// 사용자가 입력하는 값을 정수의 형태로 변수 x의 메모리 주소에 삽입
return 0;
}
간단한 계산기 프로그램
#include <stdio.h>
int main()
{
char o;
int x, y;
while(1)
{
printf("수식을 입력하세요 : ");
scanf("%d %c %d", &x, &o, &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");
}
🔘
// 3 + 5를 입력하면,
// x에는 3, o에는 +, y에는 5가 삽입되고
// 조건문에 따라 o가 +에 해당되기에
// 3 + 5 = 8이 출력된다 --> x, o, y, x+y
getchar();
🔘
// 한개의 문자만 입력 -> 버퍼처리
// 3 + 5 입력 후 엔터를 누르면, 엔터 또한 하나의 문자로 인식됨
// -> "프로그램을 종료하시겠습니까"라는 질문의 답으로 인식되기에
// getchar() 함수를 사용하여 버퍼처리를 해줘야한다.
// 문자 서식 지정자(%c) 사용 시, Enter(줄바꿈)도 하나의 공백문자로 입력됨
// Buffer: 데이터들이 임시로 거쳐가는 메모리 장소
printf("프로그램을 종료하시겠습니까? (y/n) ");
scanf("%c", &o);
if (o == 'n' || o == 'N')
{
continue;
// 아래 코드는 수행하지 않고 현재 반복문의 처음 코드로 돌아가서 다시 수행됨 -> 수식을 입력하세요로 이동
}
else if(o == 'y' || o == 'Y')
{
break;
// 반복문 종료
}
else
{
printf("입력이 잘못되었습니다.");
}
}
return 0;
}
정해진 개수의 정수를 더하는 프로그램
#include <stdio.h>
int main()
{
int num, x, i, sum = 0;
printf("정수의 개수를 입력하세요 : ");
scanf("%d", &num);
for(i=0; i<num; i++)
{
printf("정수의 값을 입력하세요 : ");
scanf("%d", &x);
sum += x;
}
// num만큼 반복문이 수행되면 모든 정수의 값의 합으로 출력된다.
printf("전체 정수의 값의 합은 %d입니다.\n", sum);
return 0;
}
구구단
#include <stdio.h>
int main()
{
int x, i;
printf("정수를 입력하세요 : ");
scanf("%d", &x);
for(i = 1; i <= 9; i++)
{
printf("%d X %d = %d\n", x, i, x*i);
}
return 0;
}