//▩ C언어를 이용한 필수 기초 알고리즘 - 제어 반복문의 활용 1
/***********************************************
1. 100~999 사이에 7의 배수의 갯수와 합을 구하는
프로그램을 작성하세요.
답 : 128, 70336
***********************************************/
//▷ 7의 배수를 한줄에 10개씩 출력하는 프로그램을 작성하세요.
/*****************************************************
2. 100~999 사이에 7의 배수가 아닌 수들의 갯수와 합을
구하는 프로그램을 작성하세요.
답 : 772, 424214
******************************************************/
/*
#include <stdio.h>
#include <conio.h>
void main()
{
long int i,cnt,sum,nmg;
long int cnt2,sum2;
cnt=sum=cnt2=sum2=0L;
for(i=100; i<=999; i++)
{
nmg = i%7;
if(nmg)
{// 7의 배수가 아닐때
sum2 += i;
cnt2++;
}
else
{// 7의 배수 일때
if(cnt==0)
{
printf("==발견된 7의 배수들==\n");
}
printf("%d ", i);
sum += i;
cnt++;
if(cnt%10==0)
{// 10줄씩 출력
printf("\n");
}
}
}
printf("\n 7의 배수의 갯수: %5ld\n 합 : %5ld\n",cnt,sum);
printf("\n 7의 배수아닌수의 갯수: %5ld\n 합 : %5ld\n",cnt2,sum2);
getch();
}
}
*/
/*****************************************************
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);
max=min=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]);
}
max=min=tbl[0];//첫번째 데이터로 최대,최소값 초기화
for(i=1;i<5;i++)
{
if(max<tbl[i]) max=tbl[i];
if(min>tbl[i]) min=tbl[i];
}
range=max-min;//범위
printf("\n\n 입력받은 수의 범위 : %5d\n",range);
getch();
}
*/
/*****************************************************
5. 하나의 수를 입력받아 양수, 음수 인지
출력하는 프로그램 작성하세요.
*****************************************************/
/*****************************************************
6. 하나의 수를 입력받아 부호를 무조건 양수로 바꾸어
출력하는 프로그램을 작성하세요.
*****************************************************/
/*
#include <stdio.h>
#include <conio.h>
void main()
{
int i;
printf("** 수를 입력해주세요 **\n");
scanf("%d",&i);
if(i<0)
{//음수 일때
printf("당신이 입력한 수는 음수 입니다\n");
i*=-1;//부호 반전
}
else
{//0, 양수 일때
printf("당신이 입력한 수는 양수 입니다.\n");
}
printf("절대값 : %d",i);
getch();
}
*/
/*****************************************************
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);
ave=(kor+eng+mat)/3;//평균
printf("점수의 평균은 %d입니다.\n", ave);
switch(ave/10) {
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. 대문자 X 를 입력할 때 까지 입력된 글자에 따라
메뉴를 출력하는 프로그램을 작성하세요.
*****************************************************/
/*
#include <conio.h>
void main() {
char c;
do {
printf("메뉴 코드를 입력하세요 : ");
c=getch();
putchar(c);
if(c>=97) c -= 32;//소문자입력시 대문자로 변환
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;
for(a=1; a<=3; a++)
{
for(b=1; b<=3; b++)
{
if(a==b) continue;
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
*****************************************************/
/*
#include <stdio.h>
#include <conio.h>
void main()
{
int i,j;
int k=1;
for(i=1; i<=5; i++)
{
for(j=1; j<=i; j++)
{
printf("%2d ",k++);
if(j>=i) printf("\n");
}
}
getch();
}
*/
/*****************************************************
4. 제어문을 이용하여 아래와 같이 출력되는
프로그램을 제작해 보세요.
3
6 9
12 15 18
21 24 27 30
33 36 39 42 45
*****************************************************/
/*
#include <conio.h>
#include <stdio.h>
void main()
{
int i,j;
int m=0;
for(i=1; i<=5; i++)
{
for(j=1; j<=i; j++)
{
printf("%2d ",m+=3);
}
printf("\n");
}
getch();
}
*/
/*****************************************************
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, o,cnt,k;
cnt=0,k=1;
for(i=5; i>=1; i--){
for(j=1; j<=5; j++){
if(i>j){
printf(" ");
}else{
cnt=cnt+1;
printf("%5d", cnt);
}
}
printf("\n");
}
for(i=1; i<=5; i++)
{//다른방법
for(o=1; o<=5-i; o++)
{
printf(" ");
}
for(j=1; j<=i; j++)
{
printf("%5d",k++);
}
printf("\n");
}
getch();
}
*/
/*****************************************************
6. 제어문을 이용하여 아래와 같이 출력되는
프로그램을 제작해 보세요.
15
14 13
12 11 10
9 8 7 6
5 4 3 2 1
*****************************************************/
/*
#include <stdio.h>
#include <conio.h>
void main()
{
int i, j, cnt=16;
for(i=5; i>=1; i--)
{
for(j=1; j<=5; j++)
{
if(i>j)
{
printf(" ");
}else{
cnt=cnt-1;
printf("%2d ", cnt);
}
}
printf("\n");
}
getch();
}
*/
//▩ 제어 반복문의 활용 3
//▶ 구구단 출력하기
/*****************************************************
1. 2단만 출력
*****************************************************/
/*
#include <stdio.h>
#include <conio.h>
void main(){
int i;
for(i=1; i<=9; i++){
printf("2*%d=%d\n", i, 2*i);
}
getch();
}
*/
/*****************************************************
2. 3단식 출력하기
*****************************************************/
/*
#include <stdio.h>
#include <conio.h>
void main()
{
int k, i, p;
for(k=1; k<=7; k+=3)
{
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, (k+2)*i);
}
printf("\n---------------------------------------------------------\n");
p=getchar();
}
getch();
}
*/
/*****************************************************
3. 배열을 이용하여 구구단 출력하기
*****************************************************/
/*
#include <stdio.h>
#include <conio.h>
void main()
{
int k, i, a[9][9], 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] = (k+3)*(i+1);
}
}
for(k=0; k<=8; k=k+3)
{
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)
*****************************************************/
/*
#include <stdio.h>
#include <conio.h>
void main()
{
int i;
int sum=0;
for(i=1; i<=100; i++)
{
if(i%2==0)
sum+=i;
}
printf("sum : %d",sum);
getch();
}
*/
/*****************************************************
▷ 1부터 100까지 홀수의 합 구하기 (답 : 2500)
*****************************************************/
/*
#include <stdio.h>
#include <conio.h>
void main()
{
int i;
int sum=0;
for(i=1; i<=100; i++)
{
if(i%2!=0)
sum+=i;
}
printf("sum : %d",sum);
getch();
}
*/
/*****************************************************
4. 아래와 같이 출력되도록 프로그램을 작성하세요.
♡♡♡♡♡
♡♡♡♡
♡♡♡
♡♡
♡
*****************************************************/
/*
#include <stdio.h>
#include <conio.h>
void main()
{
int i,j;
for(i=5; i>=1; i--)
{
for(j=1; j<=i; j++)
{
printf("♡");
}
printf("\n");
}
getch();
}
*/
/*****************************************************
5. 아래와 같이 출력되도록 프로그램을 작성하세요.
- ♡ 하나는 공백문자 2개에 해당합니다.
♡
♡♡
♡♡♡
♡♡♡♡
♡♡♡♡♡
*****************************************************/
/*
#include <stdio.h>
#include <conio.h>
void main()
{
int i,j;
for(i=5; i>=1; i--)
{
for(j=1; j<=5; j++)
{
if(i>j)
{
printf(" ");
}
else
{
printf("♡");
}
}
printf("\n");
}
getch();
}
*/