728x90

숫자를 1씩 감소시키며 출력하는 프로그램: 감소하는 증감식의 경우 i -= c를 이용

#include <stdio.h>

int main() {

	for (int i = 10; i > 4; i--) {
		printf("%d\n", i);
	}

	printf("Done");
	return 0;

}

▶문제: 17부터 5까지 1씩 감소하며 출력하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
   
    for(int i=17; i>=5; i--){
        printf("%d ",i);
    }
    return 0;
}

▶문제: 정수 n의 값을 입력받아 1까지 차례로 출력하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
    int n;
    scanf("%d",&n);

    for(int i=n; i>=1; i--){
        printf("%d ",i);
    }
    return 0;
}

▶문제: a, b 두 자연수를 입력받아 b부터 a까지 1씩 감소하며 그 값을 출력하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
    int a,b;
    scanf("%d %d",&a,&b);

    for(int i=b; i>=a; i--){
        printf("%d ",i);
    }
    return 0;
}

▶문제:

두 정수  가 주어집니다.

 이하  이상의 모든 홀수를 내림차순으로 출력하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
    int a, b;
    scanf("%d %d",&a,&b);
    
    for(int i=a; i>=b; i-=2){
        printf("%d ",i);
    }
    return 0;
}
728x90
  • 증가하는 숫자가 1에서 2로 바뀐 것이므로, for loop의 증감문을 고쳐주면 됩니다. 그러면 for loop에서 a부터 b - 1까지 2씩 증가하며 뛰게 됩니다.
#include <stdio.h>

int main() {

	for (int i = 5; i < 11; i += 2) {
		printf("%d\n", i);
	}

	printf("Done");
	return 0;

}

▶문제: 5부터 17까지 2씩 증가하면서 출력하는 프로그램을 작성해보세요.

#include <stdio.h>

int main() {
    for(int i=5; i<18; i+=2){
        printf("%d ",i);
    }
    return 0;
}

▶문제: 자연수 n을 입력받아 n보다 크거나 같은 n의 배수 중 작은 수 5개를 차례로 출력하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
    int n;
    scanf("%d",&n);

    for(int i=1; i<=5; i++){
        printf("%d ",n*i);
    }
    return 0;
}

▶문제: 두 정수 a와 b가 주어지면 a이상 b이하의 홀수를 모두 오름차순으로 출력하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
    int a, b;
    scanf("%d %d",&a,&b);

    for(int i=a; i<=b; i+=2){
        printf("%d ",i);
    }
    return 0;
}
728x90
for( 초기화식 ; 조건식 ; 증감식 ) {
    
    반복할 코드

}
for (int i = a; i < b; i++) {

	반복할 코드

}
  • 증감식에는 i += c 형태의 코드가 일반적으로 들어가며, c의 값이 1인경우 i++ 로 바꿔줄 수 있습니다. 즉 위 코드에서 증감식에 들어있는 i++ 은 i += 1과 같은 코드입니다.
  • 처음에 i 값이 초기화식에 의해 a로 설정되고, 조건식이 맞을때에만 반복문이 진행됩니다. 즉 i = a, a+1, a+2,..... , b-1 일 때에만 for문이 실행되며, for문이 한번 실행될 때마다 증감식에 의해 i값이 1씩 늘어나게 됩니다. 초기조건이 i = a였기 때문에, 1씩 값이 늘어나다가 i = b가 되면 반복코드를 실행하지 않고 for loop를 탈출하게 됩니다.
  • 여기서도 if 조건문처럼 for 내부 라는 범위(scope)를 명확히 정의하기 위해 중괄호 블록 { }을 사용합니다. 따라서 꼭 for 안에 포함되어야 하는 코드라면 중괄호 블록 내부에 코드를 작성해야만 합니다.
#include <stdio.h>

int main() {

	for (int i = 5; i < 11; i++) {
		printf("%d\n", i);
	}

	printf("Done");
	return 0;

}
#include <stdio.h>

int main() {

	int a = 3, b = 6;
	for (int i = a; i <= b; i++) {
		printf("%d ", i);
	}

	return 0;

}

  • i++은 ++ 이 i 뒤에 있기 때문에 후위 (postfix) 증가연산자
  • ++i 는 반대로 전위(prefix) 증가연산자라고 부릅니다.
  • 이 둘의 차이는, 이 증가 연산자가 속한 줄의 코드가 실행되는 것과 증가 연산이 이루어지는 것 사이의 순서에 달려 있습니다. 즉, 전위 연산자 ++i를 실행할 경우 그 줄 코드를 실행하기 전에 증가가 이루어집니다. 후위 연산자의 경우 코드실행이 먼저 이루어지고 증가가 이루어지게 됩니다.
int a = 3, b = 5;
printf("%d\n", a++);
printf("%d\n", ++b);
printf("%d\n", a);

//출력
3
6
4

▶문제: 첫 번째 줄에 5부터 17까지 공백을 사이에 두고 출력합니다.

#include <stdio.h>

int main() {
    for(int i = 5 ; i <= 17; i++){
        printf("%d ",i);
    }
    return 0;
}

▶문제: 100 이하의 정수 n을 입력받은 후, n부터 100까지의 숫자를 순서대로 출력하는 프로그램을 작성해보세요.

#include <stdio.h>

int main() {
    int n;
    scanf("%d",&n);

    for(int i = n; i<=100; i++){
        printf("%d ",i);
    }
    return 0;
}

▶문제: n을 입력받아, 1부터 n까지 공백을 두고 출력하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
    int n;
    scanf("%d",&n);

    for(int i = 1; i<=n; i++){
        printf("%d ",i);
    }
    return 0;
}

 

 

728x90
1. a가 홀수라면 숫자 a가 10 이상이면 A, 그렇지 않다면 B를 출력합니다.
2. a가 짝수라면 숫자 a가 15 이상이면 C, 그렇지 않다면 D를 출력합니다.
#include <stdio.h>

int main() {

	int a;
	scanf("%d", &a);

	if (a % 2 == 1) {
		if (a >= 10) {
			printf("A\n");
		}
		else {
			printf("B\n");
		}
	}
	else {
		if (a >= 15) {
			printf("C\n");
		}
		else {
			printf("D\n");
		}
	}

	return 0;

}

▶문제:

성별에 대해 남자는 숫자 0, 여자는 숫자 1로 나타내기로 하고, 19세 이상을 성인이라고 합시다.

성별(숫자 0 또는 1)과 나이를 입력받아 MAN(성인남자), WOMAN(성인여자), BOY(미성년남자), GIRL(미성년여자)을 구분하여 출력하는 프로그램을 작성해 주세요.

#include <stdio.h>

int main() {
    int sex, age;
    
    scanf("%d %d",&sex,&age);
    if(sex==0){
        if(age>=19){
            printf("MAN");
        }
        else{
            printf("BOY");
        }
    }
    else if(sex==1){
        if(age>=19){
            printf("WOMAN");
        }
        else{
            printf("GIRL");
        }
    }
    return 0;
}

1. a가 홀수라면 숫자 a가 10 이상이면 A, 그렇지 않다면 B를 출력합니다.
2. a가 짝수라면 숫자 a가 15 이상이면 A, 그렇지 않다면 B를 출력합니다.
if ((a % 2 == 1 && a >= 10) || (a % 2 == 0 && a >= 15)) {
	printf("A\n");
}
else {
	printf("B\n");
}

▶문제:

자연수 y를 입력받아 y 년이 윤년인지를 판단하는 프로그램을 작성해 보세요. 윤년일 조건은 다음과 같습니다.

  • 4로 나누어 떨어지는 해는 윤년, 그 밖의 해는 평년입니다.
  • 단, 예외적으로 100으로 나누어 떨어지되 400으로 나누어 떨어지지 않는 해는 평년으로 합니다.
#include <stdio.h>

int main() {
    int y;

    scanf("%d",&y);
    if((y%4==0 && y%100!=0) || y%400 == 0){
        printf("true");
    }
    else{
        printf("false");
    }
    return 0;
}

▶문제: 윤년이 아닌 해에 n월에는 며칠이 있는지를 출력하는 프로그램을 작성하세요. 윤년이 아닌 해의 2월은 28일까지 있습니다.

#include <stdio.h>

int main() {
    int n;

    scanf("%d",&n);
    if(n==2){
        printf("28");
    }
    else if(n!=2 && n<=7){
        if(n%2==0){
            printf("30");
        }
        else{
            printf("31");
        }
    }
    else if(n>7){
        if(n%2==0){
            printf("31");
        }
        else{
            printf("30");
        }
    }
    return 0;
}

▶문제:  3개의 정수 a, b, c를 입력받았을 때, 최댓값을 출력하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);

    if(a>=b){
        if(a>=c){
            printf("%d",a);
        }
        else{
            printf("%d",c);
        }
    }
    else{
        if(b>=c){
            printf("%d",b);
        }
        else{
            printf("%d",c);
        }
    }
    return 0;
}

▶문제:

감기 증상이 있으면 Y, 감기 증상이 없으면 N으로 나타내기로 하고, 체온을 쟀을 때 수치에 따라 진료소를 다르게 구분하려고 합니다.

  • 증상도 있고 37℃ 이상일 때 A
  • 증상은 없지만 37℃ 이상일 때 B
  • 증상은 있지만 체온은 정상일 때 C
  • 둘 다 괜찮은 경우엔 D

한 번에 3명씩 검사하는데 A로 가는 사람이 2명 이상 나올 때는 위급상황으로 분류합니다. 위급상황인지를 판단하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
    int n1,n2,n3;
    char cold1,cold2,cold3;

    scanf("%c %d\n",&cold1,&n1);
    scanf("%c %d\n",&cold2,&n2);
    scanf("%c %d\n",&cold3,&n3);

    if(n1>=37 && cold1 == 'Y'){
        if((n2>=37 && cold2 == 'Y')||(n3>=37 && cold3 == 'Y')){
            printf("E");
        }
        else{
            printf("N");
        }
    }
    else{
        if((n2>=37 && cold2=='Y')&&(n3>=37 && cold3 == 'Y')){
            printf("E");
        }
        else{
            printf("N");
        }
    }
    return 0;
}

▶문제:

3개의 정수 a, b, c를 입력받았을 때, 중앙값을 구하는 프로그램을 작성해 보세요.

중앙값이란, 오름차순으로 나열했을 때 중앙에 오는 값입니다.

#include <stdio.h>

int main() {
    int a,b,c;

    scanf("%d %d %d",&a,&b,&c);
    if(a>b){
        if(c>a){
            printf("%d",a);
        }
        else if(b>c){
            printf("%d",b);
        }
        else{
            printf("%d",c);
        }
    }
    else{
        if(c>b){
            printf("%d",b);
        }
        else if(a>c){
            printf("%d",a);
        }
        else {
            printf("%d",c);
        }
    }
    return 0;
}
728x90
  • 숫자 a가 짝수 거나 혹은 홀수이면서 동시에 10보다 크다면이라는 조건을 성립하려면?
숫자 a가 다음 2개 중 하나라도 조건을 만족할까요?
1. a는 짝수
2. a는 홀수이면서 10 이상인 수

1. a % 2 == 0
2. a % 2 == 1 && a >= 10
if ( a % 2 == 0 || (a % 2 == 1 && a >= 10) ) {
    코드1
}

! 이때 주의해야 할 점은, 의미단위로 수학에서 소괄호를 사용해 우선순위를 강제하는 것처럼 소괄호를 적절하게 사용해줘야 합니다.

  • and는 or 보다 연산자 우선순위가 높기 때문에, 먼저 식을 계산
#include <stdio.h>

int main() {

	int a;
	scanf("%d", &a);

	if (a % 2 == 0 || (a % 2 == 1 && a >= 10)) {
		printf("special");
	}
	else {
		printf("normal");
	}

	return 0;

}

▶문제:

자연수 n을 입력받아 n이 굉장한 숫자인지 판단하는 프로그램을 작성해 보세요.

굉장한 숫자이기 위해서는 다음 두 조건 중 하나를 만족해야 합니다.

  • 홀수이면서 3의 배수인 수
  • 짝수이면서 5의 배수인 수
#include <stdio.h>

int main() {
    int n;

    scanf("%d",&n);
    if((n%2!=0 && n%3==0) || (n%2==0 && n%5==0)){
        printf("true");
    }
    else{
        printf("false");
    }
    return 0;
}

▶문제: 몇 월인지를 입력받아, 어떤 계절인지를 출력하는 프로그램을 작성해 보세요.

3~5월이 봄, 6~8월이 여름, 9~11월이 가을, 12~2월이 겨울이라 가정합니다.

#include <stdio.h>

int main() {
    int a;

    scanf("%d",&a);
    if(3<=a && a<=5){
        printf("Spring");
    }
    else if(6<=a && a<=8){
        printf("Summer");
    }
    else if(9<=a && a<=11){
        printf("Fall");
    }
    else{
        printf("Winter");
    }
    return 0;
}

▶문제: 중간고사를 90점 이상 받은 자들로 한해서, 기말고사 점수에 따라 장학금을 지급하기로 했습니다. 기말고사 점수가 100점 만점에 95점 이상은 10만 원, 90점 이상은 5만 원, 그 미만 점수는 받지 못합니다. 중간, 기말고사 점수를 입력했을 때 받을 수 있는 장학금을 출력하는 프로그램을 작성해 주세요.

#include <stdio.h>

int main() {
    int mid,fin;

    scanf("%d %d",&mid,&fin);
    if(mid >= 90){
        if(fin>=95){
            printf("100000");
        }
        else if(fin>=90){
            printf("50000");
        }
        else{
            printf("0");
        }
    }
    else{
        printf("0");
    }
    return 0;
}

▶문제: 이번 중간고사에는 영어보다 수학이 특별히 더 어려웠습니다. 학생 A와 B가 서로의 점수를 가지고 우선순위를 나누려고 합니다. 영어 점수와 상관없이 수학 점수가 높다면 더 높은 학생의 이름을 출력하고, 만약 수학 점수가 같다면 영어 점수가 더 높은 학생의 이름을 출력하려고 합니다. 두 학생의 수학 점수와 영어 점수가 주어질 때, 위의 조건을 만족하는 학생의 이름을 출력하는 프로그램을 작성해 보세요. (단, 수학 점수와 영어 점수가 둘 다 동일하게 주어지는 경우는 없다고 생각해도 좋습니다.)

#include <stdio.h>

int main() {
    int a_m,a_e,b_m,b_e;

    scanf("%d %d",&a_m,&a_e);
    scanf("%d %d",&b_m,&b_e);

    if(a_m>b_m){
        printf("A");
    }
    else if(a_m<b_m){
        printf("B");
    }

    if(a_m == b_m){
        if(a_e>b_e){
            printf("A");
        }
        else{
            printf("B");
        }
    }
    return 0;
}

▶문제: 두 사람에 대한 정보로 나이와 성별이 주어집니다. 두 사람 중 한 사람이라도 19세 이상이면서 남자라면 1을 출력하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
    int o_1, o_2;
    char s_1, s_2;

    scanf("%d %c",&o_1,&s_1);
    scanf("%d %c",&o_2,&s_2);

    if((o_1 >= 19 && s_1 == 'M')||(o_2 >= 19 && s_2 == 'M')){
        printf("1");
    }
    else{
        printf("0");
    }
        
    return 0;
}

 

728x90
  • 2개 이상의 조건들 중 하나라도 만족하는지를 알고 싶은 경우라면, 다음과 같이 || (or) 를 사용하면 됩니다.
if ( 조건1 || 조건2 ) {

    코드1

}
#include <stdio.h>

int main() {

	int a;
	scanf("%d", &a);

	if (a % 2 == 0 || a > 10) {
		printf("special");
	}
	else {
		printf("normal");
	}

	return 0;

}
  • 3개의 조건 중 하나라도 만족하는지에 대한 여부 역시 || 를 2번 사용하여 표현할 수 있습니다. 조건이 더 많아도 됩니다.
if ( 조건1 || 조건2 || 조건3 ) {

    코드1

}

▶문제: 정수 a를 입력받아 a가 10보다 작거나 20보다 큰 수인지를 판단하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
    int a;

    scanf("%d",&a);
    if(a<10 || a>20){
        printf("yes");
    }
    else{
        printf("no");
    }
    return 0;
}

▶문제: 정수 a를 입력받았을 때 13의 배수이거나 19의 배수인 경우는 True, 그 외의 경우는 False를 출력하는 프로그램을 작성해 주세요.

#include <stdio.h>

int main() {
    int a;

    scanf("%d",&a);

    if(a%13==0 || a%19==0){
        printf("True");
    }
    else{
        printf("False");
    }
    return 0;
}

▶문제: 정수 a가 주어졌을 때, a가 3의 배수이거나 5의 배수인 경우에는 1을, 그렇지 않다면 0을 출력하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
    int a;
    
    scanf("%d",&a);
    
    if(a%3==0 || a%5==0){
        printf("1");
    }
    else{
        printf("0");
    }
    return 0;
}
728x90
  • 2개 이상의 조건을 동시에 만족하는지를 알고 싶은 경우라면, 다음과 같이 && (and)를 사용하면 됩니다.
#include <stdio.h>

int main() {
    int a, b, c;

    scanf("%d %d %d",&a,&b,&c);

    if(a<=b && a<=c){
        printf("1 ");
    }
    else{
        printf("0 ");
    }
    
    if(a==b && b==c && c==a){
        printf("1");
    }
    else{
        printf("0");
    }
    return 0;
}
if (조건1 && 조건2) {

    코드1

}
#include <stdio.h>

int main() {

	int a;
	scanf("%d", &a);
	if (a % 2 == 0 && a >= 10) {
		printf("special");
	}
	else {
		printf("normal");
	}

	return 0;

}
  • 3개의 조건을 모두 만족시키는지에 대한 여부 역시 and를 2번 사용하여 표현할 수 있습니다. 조건이 더 많아도 됩니다.
if (조건1 && 조건2 && 조건3) {

    코드1

}

▶문제: A와 B의 수학과 영어의 점수를 입력받아 누가 더 높은지 비교하는 프로그램을 작성해주세요.

#include <stdio.h>

int main() {
    int a_m,a_e,b_m,b_e;
    
    scanf("%d %d",&a_m,&a_e);
    scanf("%d %d",&b_m,&b_e);

    if(a_m>b_m && a_e>b_e){
        printf("1");
    }
    else{
        printf("0");
    }

    return 0;
}

  • 2개 이상의 조건을 동시에 만족하는지를 알고 싶은 경우이므로 && (and)를 사용해 볼 수 있습니다.
  • ! C에서는 조건 2개를 && , || 등을 사용하지 않고 동시에 표현할 수 없음에 주의하여 주세요.
if (2 <= a && a <= 10) {

   코드1

}
#include <stdio.h>

int main() {

	int a;
	scanf("%d", &a);

	if (2 <= a && a <= 10) {
		printf("in range");
	}
	else {
		printf("out of range");
	}

	return 0;

}

▶문제: 정수 a를 입력받아 a가 10 이상 20 이하인 수인지를 판단하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
    int a;
    
    scanf("%d",&a);
    if(a>=10 && a<=20){
        printf("yes");
    }
    else{
        printf("no");
    }
    return 0;
}

▶문제: 양쪽눈의 시력을 실수(real number)로 입력받아 모두 1.0 이상이면 High, 모두 0.5 이상이면 Middle, 아니면 Low라고 출력하는 프로그램을 작성해 주세요.

#include <stdio.h>

int main() {
    double l, r;

    scanf("%lf %lf",&l,&r);
    if(l>=1.0 && r>=1.0){
        printf("High");
    }
    else if(l>=0.5 && r>=0.5){
        printf("Middle");
    }
    else{
        printf("Low");
    }
    return 0;
}

▶문제: 3개의 정수를 입력받아 첫 번째 수가 세 정수의 최솟값과 일치한다면 1 아니면 0을 출력하고, 세 개의 수가 모두 같으면 1 아니면 0을 출력하는 프로그램을 작성해 주세요.

#include <stdio.h>

int main() {
    int a, b, c;

    scanf("%d %d %d",&a,&b,&c);

    if(a<=b && a<=c){
        printf("1 ");
    }
    else{
        printf("0 ");
    }
    
    if(a==b && b==c && c==a){
        printf("1");
    }
    else{
        printf("0");
    }
    return 0;
}

▶문제: 3개의 정수를 입력받아 조건연산자를 이용하여 입력받은 수 중 최솟값을 출력하는 프로그램을 작성해 주세요.

#include <stdio.h>

int main() {
    int a,b,c;

    scanf("%d %d %d",&a,&b,&c);
    
    if(a<=b && a<=c){
        printf("%d",a);
    }
    else if(b<=a && b<=c){
        printf("%d",b);
    }
    else if(c<=a && c<=b){
        printf("%d",c);
    }
    return 0;
}

▶문제: 세 수 a, b, c의 값이 주어졌을 때, b가 a보다 크고 c보다 작다면 1을, 그렇지 않다면 0을 출력하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
    int a,b,c;

    scanf("%d %d %d",&a,&b,&c);
    
    if(a<b && b<c){
        printf("1");
    }
    else{
        printf("0");
    }
    return 0;
}

 

728x90
  • 비교 연산자는 식이 옳은지 틀린지에 따라 1(참 - true) 혹은 0(거짓 - false) 값을 반환하게 됩니다.
if (1 > 2) {
    코드1 -- 위의 조건이 거짓이므로 실행되지 않음
}

if (1 < 2) {
    코드2 -- 위의 조건이 참이므로 실행됨
}
if (15) {
	printf("A\n");
}

if (0) {
	printf("B\n");
}

0이 아닌 값은 true이고, 0은 false로 정의됩니다.

 

▶문제: 

두 정수 a, b를 입력받아 다음 조건들이 각각 참인지 거짓인지를 판단하는 프로그램을 작성해 보세요.

  • a가 b보다 같거나 큰가?
  • a가 b보다 큰가?
  • b가 a보다 같거나 큰가?
  • b가 a보다 큰가?
  • a와 b가 같은가?
  • a와 b가 다른가?
#include <stdio.h>

int main() {
    int a, b;
    
    scanf("%d %d",&a,&b);
    printf("%d\n",a>=b);
    printf("%d\n",a>b);
    printf("%d\n",b>=a);
    printf("%d\n",b>a);
    printf("%d\n",a==b);
    printf("%d\n",a!=b);
    return 0;
}

▶문제: 두 개의 정수를 입력받아서 4가지 관계연산자의 결과를 출력하는 프로그램을 작성해 주세요.

각각의 경우에 대해 참이라면 1을, 거짓이라면 0을 출력합니다.

첫 번째 줄에는 a가 b보다 같거나 큰지,

두 번째 줄에는 a가 b보다 큰지,

세 번째 줄에는 b가 a보다 같거나 큰지,

네 번째 줄에는 b가 a보다 큰지에 대한 결과를 출력합니다.

#include <stdio.h>

int main() {
    int a, b;
    
    scanf("%d %d",&a,&b);
    printf("%d\n",a>=b);
    printf("%d\n",a>b);
    printf("%d\n",b>=a);
    printf("%d\n",b>a);
    return 0;
}

▶문제: 정수 a의 값과 정수 b, c, d, e의 값이 주어질 때, 정수 a가 나머지정수와 비교해서 크기가 크다면 1을, 크지 않다면 0을 출력하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
    int a,b,c,d,e;

    scanf("%d",&a);
    scanf("%d %d %d %d",&b,&c,&d,&e);

    printf("%d\n",a>b);
    printf("%d\n",a>c);
    printf("%d\n",a>d);
    printf("%d\n",a>e);
    return 0;
}

 

728x90
  • 다음과 같이 if else / if else 이렇게 조건문을 2번 이상 사용하게 된다면, 처음 정의한 if-else 구문과 그다음 정의된 if-else 구문끼리는 서로 관련이 없습니다.
if (조건1) {
    코드1-1
}
else {
    코드1-2
}

if (조건2) {
    코드2-1
}
else {
    코드2-2
}
코드3
#include <stdio.h>

int main() {

	int a;

	scanf("%d", &a);

	if (a % 2 == 0) {
		printf("even\n");
	}
	else {
		printf("odd\n");
	}

	if (a >= 5) {
		printf("normal\n");
	}
	else {
		printf("small\n");
	}

	printf("done");

	return 0;

}

 

▶문제: 2개의 정수 a, b를 입력받아 첫 번째 수의 짝홀 여부와, 두 번째 수의 짝홀 여부를 출력하는 프로그램을 작성해주세요.

#include <stdio.h>

int main() {
    int a, b;

    scanf("%d %d",&a,&b);

    if(a%2==0){
        printf("even\n");
    }
    else{
        printf("odd\n");
    }

    if(b%2==0){
        printf("even\n");
    }
    else{
        printf("odd\n");
    }
    return 0;
}

▶문제: 두 개의 정수를 입력받아 첫 번째 수가 더 적으면을, 아니면 을 출력하고, 두 개의 수가 같으면 을, 아니면 을 출력하는 프로그램을 작성하세요.

#include <stdio.h>

int main() {
    int a,b;

    scanf("%d %d",&a,&b);
    if(a<b){
        printf("1 ");
    }
    else{
        printf("0 ");
    }

    if(a==b){
        printf("1");
    }
    else{
        printf("0");
    }
    return 0;
}

▶문제: 정수 a가 3의 배수라면 YES를, 아니라면 NO를 출력하고, 또 5의 배수라면 YES를, 아니라면 NO 출력하는 프로그램을 작성해 보세요.

#include <stdio.h>

int main() {
    int a;

    scanf("%d",&a);
    if(a%3==0){
        printf("YES\n");
    }
    else{
        printf("NO\n");
    }

    if(a%5==0){
        printf("YES\n");
    }
    else{
        printf("NO\n");
    }
    return 0;
}

 

728x90
  • 다음과 같이 if / if 이렇게 조건문을 2번 이상 사용하게 된다면, 처음 정의한 if 구문과 그 다음 정의된 if 구문끼리는 서로 관련이 없습니다.
if (조건1) {
    코드1
}

if (조건2) {
    코드2
}

코드3
#include <stdio.h>

int main() {

	int a;

	scanf("%d", &a);

	if (a % 2 == 0) {
		printf("even\n");
	}

	if (a >= 5) {
		printf("normal\n");
	}

	printf("done");

	return 0;

}

 

▶문제:

정수 a를 입력받아 다음 2개의 과정을 순서대로 거친 이후의 결과를 출력하는 프로그램을 작성해주세요.

  1. 만약 a가 짝수라면 2로 나눠줍니다.
  2. 만약 a가 홀수라면 1을 더한 뒤 2로 나눠줍니다.

예를 들어 a가 10이었다면 1번 과정을 거쳐 5가 되고, 연달아 2번 과정을 거쳐 3이 됩니다. 하지만 a가 8이었다면 1번 과정을 거쳐 4가 되지만, 연달아 2번 과정을 거쳤을 때에는 조건을 만족하지 않으므로 변화없이 최종 결과는 4가 됩니다.

#include <stdio.h>

int main() {
    int a;

    scanf("%d",&a);
    if(a%2==0){
        a/=2;
    }
    if(a%2!=0){
        a=(a+1)/2;
    }
    printf("%d",a);
    return 0;
}

▶문제: 정수 a를 입력받았을 때 a의 값이 5인 경우엔 A를, 2의 배수인 경우엔 B를 출력하는 프로그램을 작성해보세요. 둘 다 해당하지 않는 경우에는 아무 값도 출력하지 않습니다.

#include <stdio.h>

int main() {
    int a;

    scanf("%d",&a);
    if(a==5){
        printf("A");
    }
    if(a%2==0){
        printf("B");
    }
    return 0;
}

▶문제: 정수 a가 주어졌을 때, a가 홀수라면 3을 더해줍니다.

이후, 최종적으로 a가 3의 배수라면 3으로 나누어줍니다.

위의 연산을 한 결과값을 출력하는 프로그램을 작성해보세요.

#include <stdio.h>

int main() {
    int a;
    
    scanf("%d",&a);
    if(a%2!=0){
        a+=3;
    }
    if(a%3==0){
        a/=3;
    }
    printf("%d",a);
    return 0;
}

+ Recent posts