언어 자료구조 알고리즘/디딤돌 C언어

[정답] 41. 반복문(while, do while, for)

언제나휴일 2016. 4. 30. 16:33
반응형

[정답] 41. 반복문(while, do while, for)


반복문(while, do while, for)


기본 연습
1.
수를 입력받은 작은 ~ 사이의 모든 수의 합을 구하는 프로그램을 작성하시오.
 
:
// 수를 입력받은 작은 ~ 사이의 모든 수의 합을 구하는 프로그램
#include <stdio.h>
int main(void)
{
    int a, b;
    int sum;
    printf(" 개의 정수 입력:");
    scanf_s("%d%d", &a, &b);
    if (a > b)//a b보다 크면
    {
        // 수를 교환
        int temp = a;
        a = b;
        b = temp;
    }
 
    printf("%d ~ %d =", a, b);
    for (sum = 0; a <= b; a++)
    {
        sum += a;
    }
    printf("%d\n", sum);
   
 
    return 0;
}


2. 1부터 100 사이에 있는 모든 6 배수를 출력하는 프로그램을 작성하시오.
 
:
//1부터 100 사이에 있는 모든 6 배수를 출력하는 프로그램
#include <stdio.h>
int main(void)
{
    int n;
    for (n = 1; n <= 100; n++)
    {
        if (n % 6 == 0)//6으로 나누어서 나머지가 없으면
        {
            printf("%d ", n);
        }
    }
    printf("\n");
 
    return 0;
}
 

3. 자리의 정수를 입력받아 입력받은 수의 단을 출력하는 프로그램을 작성하시오.
:
자리의 정수를 입력하시오.
7
7*1 = 7   7*2 = 14   7*3 = 21
7*4 = 28 7*5 = 35   7*6 = 42
7*7 = 49 7*8 = 56   7*9 = 63
:
//3. 자리의 정수를 입력받아 입력받은 수의 단을 출력하는 프로그램
//:
// 자리의 정수를 입력하시오.
//7
//7 * 1 = 7   7 * 2 = 14   7 * 3 = 21
//7 * 4 = 28 7 * 5 = 35   7 * 6 = 42
//7 * 7 = 49 7 * 8 = 56   7 * 9 = 63
#include <stdio.h>
int main(void)
{
    int n;
    int i;
    printf(" 자리의 정수를 입력하세요.\n");
    scanf_s("%d", &n);
    if ((n <= 0) || (n> = 10))
    {
        printf("잘못 입력하였습니다.");
    }
    else
    {
        for (i = 1; i <= 9; i++)
        {
            printf("%d*%d= %2d ", n, i, n*i);
            if (i % 3 == 0)
            {
                putchar('\n');
            }
        }
    }
    return 0;
}

 

 

4. 다음을 반복하는 프로그램을 작성하시오.
“I:
추가 D: 삭제 S:검색 L:전체 출력 E:종료 화면에 출력
하나의 문자를 입력받음
입력받은 문자가 ‘i’ 혹은 ‘I’ 때는 추가, ‘d’ 혹은 ‘D’ 때는 삭제 , ‘s’ 혹은 ‘S’ 때는 검색, ‘l’,
L’
때는 전체 출력이라고 화면에 출력
(
, E 누르면 프로그램을 종료)
:
//다음을 반복하는 프로그램
//하나의 문자를 입력받아 ‘i’ 혹은 ‘I’ 때는 추가, ‘d’ 혹은 ‘D’ 때는 삭제,
//‘s’ 혹은 ‘S’ 때는 검색, ‘l’, ‘L’ 때는 전체 출력이라고 화면에 출력
//, E 누르면 프로그램 종료
#include <stdio.h>
int main(void)
{
    char key='\0';
    while (key!='E')
    {
        printf("I:추가 D:삭제 S:검색 L:전체 출력\n");
        printf("메뉴 선택:");
        scanf_s(" %c", &key, 1); //엔터를 스킵하기 위해 앞에 공백을 포함
        switch (key)
        {
        case 'i': case 'I': printf("추가\n"); break;
        case 'd': case 'D': printf("삭제\n"); break;
        case 's': case 'S': printf("검색\n"); break;
        case 'l': case 'L': printf("전체 출력\n"); break;
        case 'E': break;
        default: printf("잘못 선택하셨네요.\n");  break;
        }
       
    }
    return 0;
}
 

 

5. 개의 양의 정수를 입력받아 공약수의 합을 계산하는 프로그램을작성하시오.
:
// 개의 정수를 입력받아 공약수의 합을 계산
#include <stdio.h>
int main(void)
{
    int a, b;
    int n;
    int sum=0;
    printf(" 개의 정수 입력:");
    scanf_s("%d%d", &a, &b);
 
    if (a > b)//a b보다 크면
    {
        // 수를 교환
        int temp = a;
        a = b;
        b = temp;
    }
    printf("%d %d 공약수:",a,b);
    for (n = 1; n <= a; n++)
    {
        if ((a%n == 0) && (b%n == 0))//n a b 약수일
        {
            sum += n;
            printf("%d ", n);
        }
    }
   
    printf("\n%d %d 공약수의 :%d\n",a,b, sum);
 
    return 0;
}

 

6. 개의 양의 정수를 입력받아 공배수를 작은 순서부터 차례대로 10개를 출력하는 프로그램을 작성하시오.
:
// 개의 정수를 입력받아 공약수 10개를 차례대로 출력
#include <stdio.h>
int main(void)
{
    int a, b;
    int n;
    int count = 0;
    printf(" 개의 정수 입력:");
    scanf_s("%d%d", &a, &b);
 
    if (a > b)//a b보다 크면
    {
        // 수를 교환
        int temp = a;
        a = b;
        b = a;
    }
    printf("%d %d 공약수를 차례대로 (최대)10 출력\n", a, b);
    for (n = 1; (n <= a)&&(count<10); n++)
    {
        if ((a%n == 0) && (b%n == 0))//n a b 약수일
        {
            count++;
            printf("%d ", n);
        }
    }
    printf("\n");
   
 
    return 0;
}

7. ‘a’문자에서 ‘z’문자 사이의 모든 문자와 아스키 코드 값을 출력하는 프로그램을 작성하시오.
:
//소문자의 아스키 코드값을 출력
#include <stdio.h>
int main(void)
{
    char ch;
    for (ch = 'a'; ch <= 'z'; ch++)
    {
        printf("%c:%d\n", ch, ch);
       
    }
    return 0;
}


본문 41. 반복문 (while, do while, for)


반응형