*반복문/제어문부터는 ,이론도 중요하지만 직접 코딩해보는 것이 훨씬 더 중요합니다.
따라서 많고 다양한 문제들을 접해보고 직접 풀어보고 하는 것을 추천드립니다.
문제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;
}
}
'4. 프로그래밍 기초 > 4_2 C' 카테고리의 다른 글
[열혈 C프로그래밍] 다차원 배열 연습문제 (0) | 2018.12.22 |
---|---|
[열혈 C프로그래밍] 포인터와 함수 연습문제 (0) | 2018.12.22 |
[열혈 C프로그래밍] 포인터와 배열 연습문제 (0) | 2018.12.22 |
[열혈 C프로그래밍] For문 연습문제 (0) | 2018.12.22 |
[열혈 C프로그래밍] if문 연습문제 (0) | 2018.12.20 |