Basics/자기주도 C언어 프로그래밍

[Chapter] 06 반복제어문 I

whereareyoung 2023. 7. 14. 15:10
//1
알파벳 'A'부터 'Z'까지 출력하는 프로그램을 작성하시오.

 

출력 예 ABCDEFGHIJKLMNOPQRSTUVWXYZ
 
#include<stdio.h>
 
int main()
{
char alpha = 'A';
 
while (alpha <= 'Z') {
printf("%c", alpha++);
}
printf("\n");
 
return 0;
}
 
 
 
자가진단 1 1부터 15까지 차례로 출력하는 프로그램을 작성하시오.
 
#include<stdio.h>
 
int main()
{
int num = 1;
 
while (num <= 15) {
printf("%d ", num++);
}
printf("\n");
 
return 0;
}
 
 
 
//2
정수 변수 num을 선언하여 1을 대입한 후 1씩 증가시키면서 10까지의 누적 합을 구하는 프로그램을 while문을 이용하여 작성하고, 1부터 10까지의 합과 while문이 끝난 후의 num의 값을 출력하는 프로그램을 작성하시오.
출력 예
#include<stdio.h>
 
int main()
{
int sum = 0, num = 1;
 
while (num <= 10) {
sum = num + sum;
num++;
}
printf("1부터 10까지의 합 = %d \n", sum);
printf("while문이 끝난 후의 num의 값 = %d \n", num);
 
return 0;
}
 
// sum += num; 을 사용해도 같은 결과값을 얻을 수 있다.
 
 
 
자가진단 2 100 이하의 정수를 입력받아 while 문을 이용하여 1부터 입력받은 정수까지의 합을 구하여 출력하는 프로그램을 작성하시오.
 
입력 예 10
출력 예 55
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 
int main()
{
int num;
int sum = 0;
int a = 1;
 
scanf("%d", &num);
 
while (a <= num) {
sum = a + sum;
a++;
}
printf("%d \n", sum);
 
return 0;
}
 
 
 
//3
점수를 입력받아 80점 이상이면 합격메시지를 그렇지 않으면 불합격 메시지를 출력하는 작업을 반복하다가 0~100점 이외의 점수가 입력되면 종료하는 프로그램을 작성하시오.
 
입·출력 예
점수를 입력하세요. 50
죄송합니다. 불합격입니다.
점수를 입력하세요. 95
축하합니다. 합격입니다.
점수를 입력하세요. 101
 
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 
int main()
{
int score;
 
while (1) {
printf("점수를 입력하세요. ");
scanf("%d", &score);
 
if (score < 0 || score > 100) break;
if (score >= 80) {
printf("축하합니다. 합격입니다. \n");
}
else {
printf("죄송합니다. 불합격입니다. \n");
}
}
 
return 0;
}
 
 
 
자가진단 3 한 개의 정수를 입력받아 양수(positive integer)인지 음수(negative number)인지 출력하는 작업을 반복하다가 0이 입력되면 종료하는 프로그램을 작성하시오.
 
입·출력 예
 
number? 10
positive integer
number? -10
negative number
number? 0
 
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 
int main()
{
int num;
 
while (1) {
 
printf("number? ");
scanf("%d", &num);
 
if (num == 0) break;
if (num > 0) {
printf("positive integer \n");
}
else {
printf("negative number \n");
}
}
 
return 0;
}
 
 
 
//4
정수를 계속 입력을 받다가 0이 입력되면 0을 제외하고 이전에 입력된 자료의 수와 합계, 평균을 출력하는 프로그램을 작성하시오. (평균은 반올림하여 소수 둘째자리까지 출력한다.)
입력 예 15 88 97 0
출력 예
입력된 자료의 개수 = 3
입력된 자료의 합계 = 200
입력된 자료의 평균 = 66.67
 
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 
int main()
{
int num;
int sum = 0, cnt = 0;
double avg;
 
while (1) {
scanf("%d", &num);
if (num == 0) break;
sum = num + sum;
cnt++;
}
avg = (double)sum / cnt;
 
printf("입력된 자료의 개수 = %d \n", cnt);
printf("입력된 자료의 합계 = %d \n", sum);
printf("입력된 자료의 평균 = %.2f \n", avg);
 
return 0;
}
 
 
 
자가진단 4 정수를 계속 입력받다가 100 이상의 수가 입력이 되면 마지막 입력된 수를 포함하여 합계와 평균을 출력하는 프로그램을 작성하시오. (평균은 반올림하여 소수 첫째자리까지 출력한다.)
입력 예 1 2 3 4 5 6 7 8 9 10 100
출력 예
155
14.1
 
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 
int main()
{
int num;
int sum = 0, cnt = 0;
double avg;
 
while (1) {
scanf("%d", &num);
sum = num + sum;
cnt++;
if (num >= 100) break;
}
 
avg = (double)sum / cnt;
 
printf("%d \n", sum);
printf("%.1f \n", avg);
 
return 0;
}
 
 
 
//5 (소스1)
정수를 계속 입력 받다가 0이 입력되면 입력된 수중 홀수의 합과 평균을 출력하는 프로그램을 작성하시오. (정수 미만은 버림)
입력 예 5 8 17 6 31 0
출력 예
홀수의 합 = 53
홀수의 평균 = 17
 
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 
int main()
{
int num;
int sum = 0, cnt = 0;
int avg;
 
while (1) {
scanf("%d", &num);
if (num == 0) break;
if (num % 2 == 0) continue;
sum = sum + num;
cnt++;
}
 
avg = sum / cnt;
 
printf("홀수의 합 = %d \n", sum);
printf("홀수의 평균 = %d \n", avg);
 
return 0;
}
 
 
 
//5 (소스2)
정수를 계속 입력 받다가 0이 입력되면 입력된 수중 홀수의 합과 평균을 출력하는 프로그램을 작성하시오. (정수 미만은 버림)
입력 예 5 8 17 6 31 0
출력 예
홀수의 합 = 53
홀수의 평균 = 17
 
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 
int main()
{
int num;
int sum = 0, cnt = 0;
int avg;
 
do {
scanf("%d", &num);
if (num % 2 == 1) {
sum = sum + num;
cnt++;
}
} while (num != 0);
 
avg = sum / cnt;
 
printf("홀수의 합 = %d \n", sum);
printf("홀수의 평균 = %d \n", avg);
 
return 0;
}
 
 
 
자가진단 5 정수를 입력받아서 3의 배수가 아닌 경우에는 아무 작업도 하지 않고 3의 배수인 경우에는 3으로 나눈 몫을 출력하는 작업을 반복하다가 -1이 입력되면 종료하는 프로그램을 작성하시오. (아래 입출력 에에서 이태릭체는 입력 받은 것이고 진한 것이 출력된 것이다.)
입·출력 예
 
5
12
4
21
7
100
-1
 
 
 
(소스1)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 
int main()
{
int num;
 
while (1) {
scanf("%d", &num);
if (num == -1) break;
if (num % 3 != 0) continue;
printf("%d \n", num / 3);
}
return 0;
}
 
 
 
(소스2)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 
int main()
{
int num;
 
do {
scanf("%d", &num);
if (num % 3 == 0) {
printf("%d \n", num / 3);
}
} while (num != -1);
 
return 0;
}
 
 
 
//6
아래 예와 같이 메시지를 출력하고 숫자를 입력받아 선택한 번호에 해당하는 메시지를 출력하는 작업을 반복하다가 4가 입력되면 메시지 출력 후 종료하는 프로그램을 작성하시오. (1~4 이외의 수가 입력되면 "잘못 선택하였습니다." 라고 출력한다.)
입·출력 예
 
1. 입력하기
2. 출력하기
3. 삭제하기
4. 끝내기
작업할 번호를 선택하세요. 2
 
출력하기를 선택하였습니다.
 
1. 입력하기
2. 출력하기
3. 삭제하기
4. 끝내기
작업할 번호를 선택하세요. 5
 
잘못 입력하였습니다.
 
1. 입력하기
2. 출력하기
3. 삭제하기
4. 끝내기
작업할 번호를 선택하세요. 4
 
끝내기를 선택하였습니다.
 
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 
int main()
{
int num;
 
do {
printf("1. 입력하기 \n");
printf("2. 출력하기 \n");
printf("3. 삭제하기 \n");
printf("4. 끝내기 \n");
 
printf("작업할 번호를 선택하세요. ");
scanf("%d", &num);
 
switch (num) {
case 1:
printf("\n입력하기를 선택하였습니다. \n\n");
break;
case 2:
printf("\n출력하기를 선택하였습니다. \n\n");
break;
case 3:
printf("\n삭제하기를 선택하였습니다. \n\n");
break;
case 4:
printf("\n끝내기를 선택하였습니다. \n\n");
break;
default:
printf("\n잘못 선택하였습니다. \n\n");
}
} while (num != 4);
 
return 0;
}
 
 
 
자가진단 6 아래와 같이 나라 이름을 출력하고 숫자를 입력받아 해당하는 나라의 수도를 출력하는 작업을 반복하다가 해당하는 번호 이외의 숫자가 입력되면 "none" 이라고 출력한 후 종료하는 프로그램을 작성하시오.
입·출력 예
 
1. Korea
2. USA
3. Japan
4. China
number? 1
 
Seoul
 
1. Korea
2. USA
3. Japan
4. China
number? 5
 
none
 
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 
int main()
{
int num;
 
do {
printf("1. Korea \n");
printf("2. USA \n");
printf("3. Japan \n");
printf("4. Chana \n");
 
printf("number? ");
scanf("%d", &num);
 
switch (num) {
case 1:
printf("\nSeoul \n\n");
break;
case 2:
printf("\nWashinton \n\n");
break;
case 3:
printf("\nTokyo \n\n");
break;
case 4:
printf("\nBeijing \n\n");
break;
default:
printf("\nnone \n\n");
}
} while (num > 0 && num < 4);
 
return 0;
}
 

'Basics > 자기주도 C언어 프로그래밍' 카테고리의 다른 글

[Chapter] 08 반복제어문 III  (0) 2023.07.14
[Chapter] 07 반복제어문 II  (0) 2023.07.14
[Chapter] 05 선택제어문  (0) 2023.07.14
[Chapter] 03 연산자  (0) 2023.07.14
[Chapter] 02 입력  (0) 2023.07.14