▩ C언어를 이용한 필수 기초 알고리즘 - 제어 반복문의 활용 1
1. 100~999 사이에 7의 배수의 갯수와 합을 구하는 프로그램을 작성하세요. 답 : 128, 70336
#include <stdio.h>
#include <conio.h>
void main(){
long int i,cnt,sum,nmg;
cnt=sum=0L;
for(----- ? -----){
nmg = ----- ? -----;
if(nmg)
continue;
else {
printf("현재 발견된 7의 배수: %d\n", i);
sum += i;
cnt++;
}
}
printf("\n 7의 배수의 갯수: %5ld\n 합 : %5ld\n",cnt,sum);
getch();
}
▷ 7의 배수를 한줄에 15개씩 출력하는 프로그램을 작성하세요.
2. 100~999 사이에 7의 배수가 아닌 수들의 갯수와 합을 구하는 프로그램을 작성하세요.
답 : 772, 424214
3. 최대값 , 최소값을 구하는 프로그램을 제작 하세요.
#include <stdio.h>
#include <conio.h>
void main(){
int no,data,max,min,cnt;
printf("입력할 자료의 갯수는 ? ");
scanf("%d",&no);
cnt=1;
printf("데이터를 입력해 주세요.\n------------------------\n");
scanf("%d",&data);
----- ? -----
do {
cnt++;
scanf("%d",&data);
if( max < data ) max = data;
if( min > data ) min = data ;
} while( cnt < no );
printf("\n 최대값 : %5d\n 최소값 : %5d\n", max, min);
getch();
}
4. 5개의 정수를 입력 받아 수의 범위를 구하는 프로그램을 작성하시오.
#include <stdio.h>
#include <conio.h>
void main(){
int tbl[5], i, max, min, range;
for(i=0;i<5;i++){
scanf("%d", &tbl[i]);
}
printf("입력받은 데이터 : \n");
for(i=0;i<5;i++){
printf("%5d",tbl[i]);
}
----- ? -----
for(i=1;i<5;i++){
if(max<tbl[i]) max=tbl[i];
if(min>tbl[i]) min=tbl[i];
}
----- ? -----
printf("\n\n 입력받은 수의 범위 : %5d\n",range);
getch();
}
5. 하나의 수를 입력받아 양수, 음수 인지 출력하는 프로그램 작성하세요.
6. 하나의 수를 입력받아 부호를 무조건 양수로 바꾸어 출력하는 프로그램을 작성하세요.
7. 세 과목의 점수(0~100)를 입력받아 평균을 구한 후 평균이 90점 이상이면 "A", 80이상이면 "B", 70 이상이면 "C", 60 이상이면 "D", 그렇지 않으면 "F"를 출력하는 프로그램을 작성하세요.
#include <stdio.h>
#include <conio.h>
void main() {
int kor, eng, mat, ave;
printf("국어 점수를 입력하세요 : ");
scanf("%d", &kor);
printf("영어 점수를 입력하세요 : ");
scanf("%d", &eng);
printf("수학 점수를 입력하세요 : ");
scanf("%d", &mat);
--------?--------;
printf("점수의 평균은 %d입니다.\n", ave);
switch(--?--) {
case 10 :
case 9 :
printf("당신의 평가는 A입니다.");
break;
case 8 :
printf("당신의 평가는 B입니다.");
break;
case 7 :
printf("당신의 평가는 C입니다.");
break;
case 6 :
printf("당신의 평가는 D입니다.");
break;
default :
printf("당신의 평가는 F입니다.");
}
getch();
}
▩ 제어 반복문 활용 2
1. 아래 문제의 ---?--- 칸을 채우세요. 대문자로 변경하는 로직이 들어가야 합니다.
#include <stdio.h>
#include <conio.h>
void main() {
char c;
do {
printf("메뉴 코드를 입력하세요.(F, E, H, X, 기타) : ");
c=getch();
putchar(c);
if(c>=97) c -= --?--;
switch(c) {
case 'F' :
printf("\nFile MENU\n");
break;
case 'E' :
printf("\nEdit MENU\n");
break;
case 'H' :
printf("\nHelp MENU\n");
break;
case 'X' :
printf("\n프로그램을 종료합니다.\n");
break;
default :
printf("\n잘못된 입력입니다.\n");
}
} while(c!='X');
getch();
}
2. 1부터 3까지 a와 b의 값를 출력하는 데, a, b가 같은 경우는 출력되지 않도록 프로그램을 작성해 보세요.
출력 결과:
a=1 b=2
a=1 b=3
-------
a=2 b=1
a=2 b=3
-------
a=3 b=1
a=3 b=2
#include <stdio.h>
#include <conio.h>
void main() {
int a, b;
printf("=========\n");
for(a=1; a<=3; a++) {
for(b=1; b<=3; b++) {
if(a--?--b){
--?--
}
printf("A=%d, B=%d\n", a ,b);
}
printf("=========\n");
}
getch();
}
3. 제어문을 이용하여 아래와 같이 출력되는 프로그램을 제작해 보세요.
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
4. 제어문을 이용하여 아래와 같이 출력되는 프로그램을 제작해 보세요.
3
6 9
12 15 18
21 24 27 30
33 36 39 42 45
5. 제어문을 이용하여 아래와 같이 출력되는 프로그램을 제작해 보세요.
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
#include <stdio.h>
#include <conio.h>
main(){
int i, j, cnt;
cnt=0;
for(----- ? -----){
for(j=1; j<=5; j++){
if(i>j){
printf(" ");
}else{
cnt=cnt+1;
printf("%5d", cnt);
}
}
printf("\n");
}
getch();
}
6. 제어문을 이용하여 아래와 같이 출력되는 프로그램을 제작해 보세요.
15
14 13
12 11 10
9 8 7 6
5 4 3 2 1
▩ 제어 반복문의 활용 3
▶ 구구단 출력하기
1. 2단만 출력
#include <stdio.h>
#include <conio.h>
void main(){
int i;
for(i=1; i<=9; i++){
printf("2*%d=%d\n", ----- ? -----);
}
getch();
}
2. 3단식 출력하기
#include <stdio.h>
#include <conio.h>
void main(){
int k, i, p;
for(----- ? -----){
for(i=1; i<=9; i=i+1){
printf("\t%d*%d=%d", k, i, k*i);
printf("\t%d*%d=%d", k+1, i, (k+1)*i);
printf("\t%d*%d=%d\n", k+2, i, ----- ? -----);
}
printf("\n---------------------------------------------------------\n");
p=getchar();
}
getch();
}
3. 배열을 이용하여 구구단 출력하기
#include <stdio.h>
#include <conio.h>
void main(){
int k, i, ----- ? -----, p;
for(k=0; k<=8; k=k+3){
for(i=0; i<=8; i=i+1){
a[k][i] = (k+1)*(i+1);
a[k+1][i] = (k+2)*(i+1);
a[k+2][i] = ----- ? -----;
}
}
for(----- ? -----){
for(i=0; i<=8; i=i+1){
printf("\t%d*%d=%d", k+1, i+1, a[k][i]);
printf("\t%d*%d=%d", k+2, i+1, a[k+1][i]);
printf("\t%d*%d=%d\n", k+3, i+1, a[k+2][i]);
}
printf("\n---------------------------------------------------------\n");
p=getchar();
}
getch();
}
▷ 1부터 100까지 짝수의 합 구하기 (답 : 2550)
▷ 1부터 100까지 홀수의 합 구하기 (답 : 2500)
4. 아래와 같이 출력되도록 프로그램을 작성하세요.
♡♡♡♡♡
♡♡♡♡
♡♡♡
♡♡
♡
5. 아래와 같이 출력되도록 프로그램을 작성하세요.
- ♡ 하나는 공백문자 2개에 해당합니다.
♡
♡♡
♡♡♡
♡♡♡♡
♡♡♡♡♡