본문 바로가기

Report

C과제

키보드로부터 한 문자를 입력 받아서 입력 문자에 해당하는 아스키 코드값을 출력하세요.

출력)    문자 입력 : A

           : 65

 

#include <stdio.h>

 

int main()

{

        char a;

        printf("input : ");

        scanf("%c" , &a);

 

        printf("output : %d\n", a);

        return 0;

}

 

 

키보드로부터 소문자를 입력 받으면 대문자로, 대문자를 입력 받으면 소문자로 변환하세요.

출력)    알파벳 입력   : a

           대문자로 변환 : A

 

알파벳 입력   : 1

           알파벳을 입력하세요.

 

알파벳 입력   : B

           소문자로 변환 : b

 

알파벳 입력   : (엔터)

           프로그램 종료!

 

#include <stdio.h>

 

void abc(char c);

int main()

{

           char c;

           for(;;)

           {

                     printf("input : ");

                     scanf("%c" , &c);

                    

                     fflush(stdin);

                     if(c == '\n')

                     {

                                printf("프로그램 종료!\n");

                                break;

                     }

                     abc(c);           //(c)는 변수;

           }

           return 0;

}

void abc(char c)

{

          if(c>='A' && c<='Z')

           {

                     printf("output : %c\n", c+32);

           }

 

           else if(c>='a' && c<='z')

           {

                     printf("output : %c\n", c-32);

           }

 

           else

           {

                     printf("알파벳을 입력하세요.\n");

           }

           return;

}

 

정수의 자릿수를 구하세요.

출력)    정수 입력 : 325

            자 릿 수 : 3

 

정수 입력 : -1

           종료하시겠습니까?(Y/N) : n

 

정수 입력 : 4589

            자 릿 수 : 4

 

정수 입력 : -1

           종료하시겠습니까?(Y/N) : y

           프로그램 종료!

 

#include <stdio.h>

 

int main(void)

{

           int a;

           int i = 1;

           char ch;

 

           for(;;)

           {

                     printf("정수 입력: ");

                     scanf("%d", &a);

                     if(a>=0&&a<10)

                     {

                                printf("자 릿 수 : %3d\n", i);

                     }

 

                     if(a >= 10)

                     {

                                for(a ;a >= 10;)

                                {

                                          a = a/10;

                                          i++;

                                }

                                printf("자 릿 수 : %3d\n", i);

                    

                     }

                     fflush(stdin);

                    

                     if(a < 0)

                     {

                               printf("종료하시겠습니까?(Y/N): ");

                    

                                scanf("%c", &ch);

                    

                                if(ch == 'y'||ch =='Y')

                                {        

                                          printf("프로그램 종료!\n");

                                          break;

                                }

                     }                             

           i=1;     

           }

           return 0;

}

 

 

[도전] 피보나치 수열이란 1, 1, 2, 3, 5, 8, … 과 같이 앞의 연속된 2개 항을 합한 수열이다.

피보나치 수열의 일반식 : an+2 = an + an+1

 

입력 받은 항 개수만큼의 피보나치 수열의 합을 구하여라.

(항 개수를 9로 입력받으면 합 Sum = 1+1+2+3+5+8+13+21+34)

 

출력)

**** 피보나치 수열의 합 ****

항의 개수 입력 : 5

피보나치 수열 5개 항의 합은 12

 

항의 개수 입력 : -1

종료하시겠습니까?(Y/N) : y

프로그램 종료!

 

#include <stdio.h>

 

int main(void)

{

           int iNum1 = 0;

           int iNum2 = 1;

           int iNum3;

           int i;

           int a;

           int sum = 0;

           char ch;

 

           printf("**** 피보나치 수열의 합 ****\n");

           for(;;)

           {

                     printf("항의 개수 입력 : ");

                     scanf("%d", &i);

                     if(i>0)

                     {

                                printf("1, ");

                                for(a=0;a<i-1;a++)

                                {

                                iNum3 = iNum1+iNum2;  

                                sum = sum+iNum3;        //sum += iNum3;

                                printf("%d, ", iNum3);

                               

                                iNum1 = iNum2;

                                iNum2 = iNum3;

                                }

                                printf("피보나치 수열 %d개 항의 합은 %d\n", i, sum+1);

                                iNum1 = 0;

                                iNum2 = 1;

                                sum = 0;

                     }

                     fflush(stdin);

                    

                     if(i<0)

                     {

                     printf("종료하시겠습니까?(y/n): ");

                     scanf("%c", &ch);

                                if(ch == 'y')

                                {        

                                printf("프로그램 종료!\n");

                                break;

                                }

                     }

           }

           return 0;         

}


정수를 입력 받아 절대값을 출력하세요.

출력)    정수 입력 : -1

           절대값 출력 : 1

 

정수 입력 : 2

           절대값 출력 : 2

 

#include <stdio.h>

 

int main()

{

           int a = 0;

           printf("정수입력 : ");

           scanf("%d", &a);

          

           if(a<0)

           {

                     printf("절대값 출력 : %d\n", -a);

           }

           else if(a>=0)

           {

                     printf("절대값 출력 : %d\n", a);

           }

           return 0;         

}

 

 

문제에 나온 그림대로 출력하세요. (중첩 for문 사용)

1)

*
            *

                *

                    *

                        *

 

#include <stdio.h>

 

int main()

{

           int a, b;

          

           for(a=0;a<5;a++)

           {

                     for(b=0;b<a;b++)

                     {

                                printf("\t");

                     }

                     printf("*\n");

           }

           return 0;         

}

 

2)

*

                 *

             *

         *

     *

 

#include <stdio.h>

 

int main()

{

           int a, b;

          

           for(a=0;a<5;a++)

           {

                     for(b=5;b>a;b--)

                     {

                                printf("\t");

                     }

                     printf("*\n");

           }

           return 0;         

}

 

출력할 줄의 개수를 입력받은 후 직삼각형을 다음과 같이 출력하세요.

줄 개수 입력 : 5

*

* *

* * *

* * * *

* * * * *

 

#include <stdio.h>

 

int main()

{

           int a, b;

           int i;

           printf("줄개수 입력 : ");

           scanf("%d", &i);

          

           for(a=0;a<i;a++)

           {

                     for(b=0;b<a;b++)

                     {

                                printf("*");

                     }

                     printf("*\n");

           }

           return 0;         

}

 

다음과 같은 형태로 문자열이 출력되는 프로그램을 작성하시오.

           A

           A         B

           A         B         C

           A         B         C         D

           A         B         C         D         E

 

#include <stdio.h>

 

int main()

{

           int a, b;

          

           for(a=0;a<5;a++)

           {

                     for(b=0;b<=a;b++)

                     {

                     if(b==0)

                                {

                                          printf("A ");

                                }

                           if(b==1)

                                {

                                          printf("B ");

                                }

                if(b==2)

                                {

                                          printf("C ");

                                }

                if(b==3)

                                {

                                          printf("D ");

                                }

                if(b==4)

                                {

                                          printf("E ");

                                }

                     }

                     printf("\n");

           }

           return 0;         

}

정수 N을 입력 받아 2의 보수를 취한 값을 출력하세요.

출력)    정수 입력 : 1

           2의 보수 출력 : -1

 

#include <stdio.h>

 

int main()

{

           int a;

           int b=0;

           printf("please enter is integer : ");

           scanf("%d", &a);

          

           b = ~(a-1);

           printf("complement of 2 : %d\n", b);

                    

           return 0;

}

 

 

초 입력시 분과 초로 변환하는 프로그램을 작성하세요.

출력)    Input Seconds :  100

           Output :  1 min 40 sec

 

Input Seconds :  80

           Output :  1 min 20 sec

 

Input Seconds :  -1

           프로그램 종료!!!

 

#include <stdio.h>

 

int main()

{

           int a=0;

           int b=0;

           int c=0;

 

           printf("Input Seconds : ");

           scanf("%d", &a);

           b = a/60;

           c = a%60;

          

           printf("Output : %d min %d sec\n", b, c);

           return 0;

}

 

 

10진수 0부터 16까지의 정수를 8진수로 출력합니다. 출력에는 10진수와 8진수의 대응관계를 반드시 포함시킵니다. printf함수의 %o플래그를 사용할 수 없습니다.

출력)  10진수  8진수

-------------------

            0        0

            1        1

            2        2

            3        3

            4        4

            5        5

            6        6

            7        7

            8        10

            9        11

           10        12

           11        13

           12        14

           13        15

           14        16

           15        17

           16        20

 

#include <stdio.h>

 

int main()

{

           int a;

           int b=0;

          

           printf("10진수     8진수\n");

           printf("----------------\n");

           for(a=0;a<=16;a++)

           {

                     b=((a/8)*10+(a%8));

                     printf("%d         %d\n", a, b);

           }

           return 0;

}

 

 

키보드로부터 최대 세 자리의 정수를 입력 받습니다. 자릿수들의 합계는 얼마입니까?

출력)    입력(3자리) : 123

           자릿수 합계 : 6

 

입력(3자리) : 620

           자릿수 합계 : 8

 

입력(3자리) : -1

           프로그램 종료!!

 

#include <stdio.h>

 

int main()

{

           int a = 0;

           int s = 0;

          

           printf("number is enter : ");

           scanf("%d", &a);

           s = ((a/100)+(a%100/10)+(a%10));

          

           if(s>=0)

           {

                     printf("number is sum %d\n", s);

           }

 

           else if(s<0)

           {

                     printf("program is out!!\n");

           }

          

           return 0;

}

'Report' 카테고리의 다른 글

C과제(3)  (0) 2011.06.27
C과제(2)  (0) 2011.06.27
iNum은 왜 다른 변수와 달리 -1로 출력이 되는가  (0) 2011.03.27