본문 바로가기

Report

C과제(3)

1. 다음 질문들에 맞는 if문의 조건식을 구성하세요.

1) N이 0보다 크거나 같다.   
if(N>=0)

2) N이 -5보다 작거나 5보다 크다.   
if(N<-5||N>5)

3) N이 0보다 크거나 같고 10보다 작거나 같다.
if(N>=0&&N<=10)

4) ch는 대문자이다.       
if(ch>=65&&ch=<90)
if(ch>='A'&&ch=<'Z')

5) ch는 소문자이다.       
if(ch>=97&&ch=<122)
if(ch>='a'&&ch=<'z')

6) N이 K와 같거나 M보다 크다.    
if(N==K||N>M)


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

#include <stdio.h>

int main()
{
  char a;
  printf("input : ");
  scanf("%c" , &a);

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


3. 키보드로부터 소문자를 입력 받으면 대문자로, 대문자를 입력 받으면 소문자로 변환하세요.
출력)  알파벳 입력   : 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;
}

4. 정수의 자릿수를 구하세요.
출력)  정수 입력 : 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;
}


[도전] 피보나치 수열이란 112358, … 과 같이 앞의 연속된 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;  
}


'Report' 카테고리의 다른 글

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