본문으로 바로가기

   

 

*반복문/제어문부터는 ,이론도 중요하지만 직접 코딩해보는 것이 훨씬 더 중요합니다.
 따라서 많고 다양한 문제들을 접해보고 직접 풀어보고 하는 것을 추천드립니다.

문제1)
프로그램 사용자로부터 양의 정수를 하나 입력 받아서, 그 수만큼 "Hello world"를 출력하는 프로그램을 작성해보자.

#include <stdio.h>
void main()
{    
    int num;
    int i=0;
    printf("양의 정수를 하나 입력하세요 >>> ");
    scanf("%d", &num);
 
    while(i<num)
    {
        printf("Hello world!\n");
        i++;
    }
 
}//end of main

 

 

문제2) (심화)
프로그램 사용자로부터 양의 정수를 하나 입력 받은 다음, 그 수만큼 3의 배수를 출력하는 프로그램을 작성해보자. 예를 들어서 5를 입력 받았다면 3 6 9 12 15를 출력해야 한다.

#include <stdio.h>
void main()
{    
    int num;
    int i=1;
    printf("양의 정수를 하나 입력하세요 >>> ");
    scanf("%d", &num);
 
    while(i<=num)
    {
        printf("3의 배수: %d\n", 3*i);
        i++;
    }
 
}//end of main

 

 

문제3)
프로그램 사용자로부터 계속해서 정수를 입력 받는다. 그리고 그 값을 계속해서 더해 나간다.
이러한 작업은 프로그램 사용자가 0을 입력할 때까지 계속되어야 하며, 0이 입력되면 입력된 모든 정수의 합을 출력하고 프로그램을 종료시킨다.

#include <stdio.h>
void main()
{    
    int num = 1;
    int total =0;
 
    while(num != 0)
    {
        printf("정수를 입력하세요(0을 입력하면 종료됩니다.)");
        scanf("%d", &num);
        total += num;
    }
    printf("입력하신 정수의 합은 %d입니다.\n", total);
}//end of main

 

 

문제4)
프로그램 사용자로부터 입력 받은 숫자에 해당하는 구구단을 출력하되, 역순으로 출력하는 프로그램을 작성해보자.

#include <stdio.h>
void main()
{    
    int i=9;
    int num;
        printf("정수하나를 입력하세요 :");
        scanf("%d", &num);
    while(i>0)
    {
 
        printf("%dx%d=%d\n", num, i, num*i);
        i--;
    }
}//end of main

 

 

문제5)
프로그램 사용자로부터 입력 받은 정수의 평균을 출력하는 프로그램을 작성하되 다음 두 가지 조건을 만족시켜야 한다.
"먼저 몇 개의 정수를 입력할 것인지 프로그램 사용자에게 묻는다. 그리고 그 수만큼 정수를 입력 받는다." "평균 값은 소수점 이하까지 계산해서 출력한다."

#include <stdio.h>
void main()
{    
    int i=0;
    int total=0;
    int num;
    int input;
    
    printf("몇 개의 정수를 입력할 것입니까?");
    scanf("%d", &num);
 
    while(i++<num)
    {
        printf("정수를 입력하세요");
        scanf("%d", &input);
        total += input;
    }
    printf("평균 값은 %lf입니다.\n", double(total)/num);
}//end of main

 

 

문제6)
***코리아 ATM***은행을 만들어보자. 다음의 결과값을 출력해야한다.  문제가 잘 이해가 되지 않는다면 출력 코드를 한 번 보고 문제를 풀어도 상관없다.
//1.입금 
//2.출금 ==> 비밀번호 == 1234; 
//3.조회 ==> 비밀번호 == 1234; 
//4.종료 
// 잔액 >>> 10000

#include <stdio.h>

void main()
{
	int money = 10000;
	int store;
	int bye;
	int menu;
	int password;
	while(1){
	printf("코리아ATM입니다\n");
	printf("1.입금\n2.출금\n3.조회\n4.종료\n눌러주세요\n");
	scanf("%d", &menu);
	if(menu == 1){
		printf("입금을 선택하셨습니다.\n");
		printf("입금하실 금액을 입력해주세요.\n");
		scanf("%d", &store);
		money += store;
		printf("현재 잔액은 %d원 입니다.\n", money);
	}else if(menu == 2){
		printf("출금을 선택하셨습니다.\n비밀번호를 입력해주세요\n");
		scanf("%d", &password);
		if(password == 1234){
			printf("확인되었습니다.\n");
			printf("출금하실 금액을 입력해주세요.\n");
			scanf("%d", &bye);
			if(money < bye){
				printf("잔액이 부족합니다.\n");
			}else{
				money -= bye;
			printf("현재 잔액은 %d원 입니다.\n", money);
			}
		}else{
			printf("비밀번호를 확인해주세요.\n");
		}
	}else if(menu == 3){
		printf("조회를 선택하셨습니다.\n비밀번호를 입력해주세요\n");
		scanf("%d", &password);
		if(password == 1234){
			printf("확인되었습니다.\n");
			printf("현재 잔액은 %d원 입니다.\n", money);
		}else{
			printf("비밀번호를 확인해주세요.\n");
		}
	}else if(menu == 4){
		printf("종료를 선택하셨습니다.\n프로그램이 종료됩니다.\n");
		break;
		}
	menu++;
	}//end of while
}//end of main

 

 

문제 7) 

업다운게임 변수 comnum 은 0~99 사이의 값을 랜덤으로 가진다.  mynum 에 0~99 사이의 값을 입력받으면 comnum 보다 크다 작다 같다 를 출력 (같다가 나올때 까지 반복)

#include <stdio.h> // printf() , scanf()
#include <stdlib.h> // rand()
#include <time.h> // srand(time(0))
void main(){
	int comnum = 0;
	int mynum = 0;
	srand(time(0));
	comnum = rand() % 100; // 0~99 
	while(1){
		printf("치트 ==> %d\n" , comnum);
		printf("0~99사이의 숫자를 입력하세요 >>> ");//mynum = rand() % 100;
		scanf("%d" , &mynum);
		if (comnum < mynum){
			printf("comnum 이 작습니다\n");
		}
		else if(comnum > mynum){
			printf("comnum 이 큽니다\n");
		}
		else{
			printf("정답입니다.\n");
			break;
		}
	}