연습문제
예제 08
두 수 중 큰 수 찾기
사용자로부터 입력 받은 두 수를 변수 a, b에 저장하고, a 값이 b 값보다 크면 a 값을 출력하고, 그렇지 않으면 b 값을 출력한다.
#include <stdio.h>
int main()
{
int a, b;
printf("정수(2개): ");
scanf("%d %d", &a, &b);
if (a > b)
{
printf("큰 수: %d\n", a); // a가 b보다 크면 a 값을 출력한다.
}
else
{
printf("큰 수: %d\n", b); //그렇지 않으면 b 값을 출력한다.
}
return 0;
}
예제 09
양수, 0, 음수 판별하기
사용자로부터 입력 받은 수를 변수 a에 저장하고, a가 0보다 작으면 “음수”를, 그렇지 않고 0보다 크면 “양수”를, 그렇지 않으면 “0”을 출력한다.
#include<stdio.h>
#include <stdio.h>
int main()
{
int a;
printf("정수: ");
scanf("%d", &a);
if (a < 0)
printf("음수");
else if (a > 0)
printf("양수");
else
printf("0");
return 0;
}
예제 10
세 수 중 가장 큰 수 찾기(1)
a가 b보다 크고 a가 c보다 크면 a가 가장 큰 수가 되고, a가 b보다 크고 a가 c보다 크지않으면 c가 가장 큰 수가 된다. a가 b보다 크지 않고 b가 c보다 크면 b가 가장 큰 수가 되고, a가 b보다 크지 않고 b가 c보다 크지 않으면 c가 가장 큰 수가 된다.
#include <stdio.h>
int main()
{
int a, b, c;
printf("정수(3개) : ");
scanf("%d %d %d", &a, &b, &c);
if (a > b)
{
if (a > c)
printf("가장 큰 수 : %d\n", a); // a>b가 참이고 a>c가 참이면 a 값을 출력한다.
else
printf("가장 큰 수 : %d\n", c); // a>b가 참이고 a>c가 거짓이면 c값을 출력한다.
}
else
{
if (b < c)
printf("가장 큰 수 : %d\n", b); // a>b가 거짓이고 b>c가 참이면 b 값을 출력한다.
else
printf("가장 큰 수 : %d\n", c); // b가 거짓이고 b>c가 거짓이면 c 값을 출력한다.
}
return 0;
}
예제 11
세 수 중 가장 큰 수 찾기(2)
사용자로부터 첫 번째 수를 입력받아 max에 저장한다. 두 번째로 입력받은 수 a와 max를 비교하여 a가 max보다 크면 max에 a를 저장한다. 세 번째 수도 마찬가지 방법으로 수행한다. 결국 가장 큰 수가 max에 저장된다.
#include <stdio.h>
int main()
{
int a, max;
printf("첫번째 정수: ");
scanf("%d", &max);
printf("두번째 정수: ");
scanf("%d", &a);
if (a > max)
max = a;
printf("세번째 정수: ");
scanf("%d", &a);
if (a > max)
max = a;
printf("가장 큰 수는: %d\n", max);
return 0;
}
예제 12
홀수, 짝수 판별하기
사용자로부터 입력받은 수를 2로 나누었을 때 나머지가 0이면 ‘짝수’, 나머지가 0이 아니면 ‘홀수’다. 예를 들어 입력받은 수가 10이라면 2로 나누었을 때 나머지가 0이 된다. 따라서 10은 ‘짝수’가 된다. 만약 입력받은 수가 15라면 2로 나누었을 때 나머지가 1이 되어0이 아니므로 15는 ‘홀수’가 된다.
#include<stdio.h>
int main (void)
{
int a;
printf("정수를 입력하세요.");
scanf("%d", &a);
if (a%3 != 0)
{
printf("3의 배수 아님\n");
}
else
{
printf("3의 배수\n");
}
return 0;
}
예제 13
3의 배수 판별하기
사용자로부터 입력받은 수를 3으로 나눈 나머지가 0이면 입력받은 수는 3의 배수이고, 그렇지 않으면 3의 배수가 아니다.
예를 들어, 10은 3으로 나눈 나머지가 0이 아니므로 3의 배수가 아니다. 반면 15는 3으로나눈 나머지가 0이므로 15는 3의 배수가 된다.
#include <stdio.h>
int main()
{
int a;
printf("정수: ");
scanf("%d", &a);
if (a % 3 == 0)
printf("3의 배수\n");
else
printf("3의 배수가 아님\n");
return 0;
}
예제 14
나이에 따른 입장료
입장료 정가가 5,000원인 경우 나이에 따른 요금체계가 다음과 같은 경우 나이를 입력 받아 입장료를 구한다.
입력 받은 나이가 8 미만이면 “0”을,
그렇지 않고 60 미만이면 정가인 5,000을,
그렇지 않으면 정가의 50%인 2,500을 출력한다.
#include <stdio.h>
int main()
{
int age, charge = 5000;
printf("나이: ");
scanf("%d", &age);
if (age < 8)
{
printf("입장료: 0\n");
}
else if (age < 60)
{
printf("입장료: %d\n", charge);
}
else
{
printf("60세 이상 입장료: %0.f\n", charge * 0.5);
}
return 0;
}
예제 15
3의 배수이면서 5의 배수 판별하기
사용자로부터 입력받은 수를
3으로 나눈 나머지가 0이고
5로 나눈 나머지도 0이면
3의 배수이면서 5의 배수이다.
예를 들어, 10은 3으로 나누었을 때 나머지가 1이 되어 0이 아니다.
따라서 10은 ‘3의 배수이면서 5의 배수’가 아니다.
반면 15는 3으로 나누었을 때 나머지가 0이 되고, 5로 나누었을 때도 나머지가 0이 되므로
15는‘ 3의 배수이면서 5의 배수’가 된다.
#include <stdio.h>
int main()
{
int a;
printf("정수: ");
scanf("%d", &a);
if (a % 3 == 0 && a % 5 == 0)
printf("3과 5의 배수\n");
else
printf("3과 5의 배수 아님\n");
return 0;
}
예제 16
나이에 따른 공원입장료
공원 입장료는 다음과 같은 경우 나이를 입력 받아 입장료를 구한다.
입력 받은 나이가 8미만이거나 60세 이상 이면 “무료”를 출력하고, 그렇지 않으면 “5,000원”을 출력한다.
#include <stdio.h>
int main()
{
int age;
printf("나이: ");
scanf("%d", &age);
if (age < 8 || age >= 60)
printf("입장료: 무료\n");
else
printf("입장료: 5000원\n");
return 0;
}
과제
과제6
두 수를 입력받아 둘 중 작은 수를 출력하는 순서도와 C 프로그램을 작성하여라.
#include<stdio.h>
int main(void)
{
int a, b;
printf("정수 두개를 입력하세요.");
scanf("%d %d", &a, &b);
if (a<b)
printf("작은 수 : %d\n", a);
else
printf("작은 수 : %d\n", b);
}
과제7
두 수를 입력받아 두 수의 차를 출력하는 순서도와 C 프로그램을 작성하여라.
#include <stdio.h>
int main(void)
{
int a, b;
printf("정수 두개를 입력하세요.");
scanf("%d %d", &a, &b);
if(a>b)
printf("두 수의 차 : %d\n", a-b);
else
printf("두 수의 차 : %d\n", b-a);
}
과제8
양수, 0, 음수를 판별하는 순서도와 C 프로그램을 다음과 같이 작성하면 어떤 문제가 발생하는 찾아 서술하여라.
#include<stdio.h>
int main(void)
{
int a;
printf("정수를 입력하세요.");
scanf("%d", &a);
if(a<0)
{
printf("음수\n");
}
if(a>0)
{
printf("양수\n");
}
printf("0\n");
return 0;
}
과제9
세 수를 입력받아 가장 작은 수를 출력하는 순서도와 C 프로그램을 작성하여라.
#include <stdio.h>
int main(void)
{
int a, b, c;
printf("정수 세개를 입력하세요.");
scanf("%d %d %d", &a, &b, &c);
if(a<b)
{
if (a<c)
printf("가장 작은 수 : %d\n", a);
else
printf("가장 작은 수 : %d\n", c);
}
else
{
if(b<c)
printf("가장 작은 수 : %d\n", b);
else
printf("가장 작은 수 : %d\n", c);
}
return 0;
}
과제10
세 수를 입력받아 가장 작은 수를 출력하는 순서도와 C 프로그램을 작성하여라.
#include<stdio.h>
int main(void)
{
int a, min;
printf("정수 : ");
scanf("%d", &min);
printf("정수 : ");
scanf("%d", &a);
if(a<min)
min=a;
printf("정수 : ");
scanf("%d", &a);
if(a<min)
min=a;
printf("가장 작은 수 : %d\n", min);
return 0;
}
과제11
홀수, 짝수를 판별하는 다음 순서도의 ①과 ②를 채우고 그에 맞는 C 프로그램을 작성하여라.
#include<stdio.h>
int main(void)
{
int a;
printf("정수를 입력하세요. ");
scanf("%d", &a);
if (a%2==1)
{
printf("홀수\n");
}
else
{
printf("짝수\n");
}
return 0;
}
과제12
3의 배수를 판별하는 다음 순서도의 ①을 채우고 C 프로그램을 작성하여라.
#include<stdio.h>
int main(void)
{
int a;
printf("정수: ");
scanf("%d",&a);
if (a%3!=0)
{
printf("3의 배수 아님\n");
}
else
{
printf("3의 배수\n");
}
return 0;
}
과제13
다음과 같은 요금 체계에 대해 거리에 따른 요금을 출력하는 순서도와 C 프로그램을 작성하여라.
#include<stdio.h>
int main(void)
{
int a;
printf("정수를 입력하세요.");
scanf("%d", &a);
if (a%5==0 || a%7==0)
{
printf("5 또는 7의 배수임\n");
}
else
{
printf("5 또는 7의 배수가 아님\n");
}
return 0;
}
과제14
하나의 수를 입력받아 5 또는 7의 배수인지 판별하는 순서도와 C 프로그램을 작성하여라.
#include<stdio.h>
int main(void)
{
int a;
printf("정수: ");
scanf("%d",&a);
if(a%5==0 || a%7==0)
{
printf("5또는 7의 배수임\n");
}
else
{
printf("5 또는 7의 배수가 아님.\n");
}
return 0;
}
과제15
다음 공원 입장료에 대한 요금을 구하는 순서도의 ①을 채우고 C 프로그램을 작성하여라.
#include<stdio.h>
int main(void)
{
int age;
printf("나이를 입력하세요.");
scanf("%d", &age);
if(age>=8 && age<60)
printf("입장료 : 5000원");
else
printf("입장료: 무료");
return 0;
}