RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'2013/05'에 해당되는 글 1
2013/05/15  ㅋㅋ 잼있는 과제.  
추억이 새록새록 난다 ... 하아 ....

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define PI 3.141592;

// pointerFuntion 준말
typedef void (*pF)(char *str);

void act_1( char *str )
{
        int intValue = 0;
        printf("거리 입력 ? (킬로미터) ");
        scanf("%d", &intValue);
        printf("%d킬로미터는 %f마일입니다.\n" , intValue , (float)(intValue / 1.609344));

    return;
}

void act_2( char *str )
{
        int intValue = 0;
        float area, dulre;
        printf("반지름 ? ");
        scanf("%d", &intValue);
        area= intValue * intValue * PI;
        dulre= 2 * intValue * PI;
        printf("반지름이 %d인 원의 둘레 : %f\n" , intValue , dulre);
        printf("반지름이 %d인 원의 넓이 : %f\n" , intValue , area);

    return;
}

void act_3( char *str )
{
        int maxValue , intValueArray[3];
        for(int i = 0;i < 3;i++)
        {
            printf("%d번째 값을 입력해주세요. " , (i+1));
            scanf("%d", &intValueArray[i]);
        }

        // 삼항연산자 이용.
        maxValue = intValueArray[0] > intValueArray[1] ? intValueArray[0] : intValueArray[1];
        maxValue = maxValue > intValueArray[2] ? maxValue : intValueArray[2];
        
        printf("세가지( %d , %d , %d )중에서 제일큰 값은 %d입니다.\n" , intValueArray[0] , intValueArray[1] , intValueArray[2] , maxValue);

    return;
}

void act_4( char *str )
{    
        char ch;
        float floatValue = 0;
        printf ("위에문자를 입력하세요.(P 이면 pound -> kg, K 이면 kg -> pound) ? ");
        ch = getchar();

        // 소문자로 무조건 교환
        if( 'A' <= ch && ch <= 'Z' )
            ch += 32;

        switch( ch )
        {
            case 'p' :
                printf("파운드 입력 값은 ? ");
                scanf("%f", &floatValue);
                printf("%.2f파운드는 %f킬로그램입니다.\n" , floatValue , (floatValue * 0.453592));
                break;
            case 'k' :
                printf("킬로그램 입력 값은 ? ");
                scanf("%f", &floatValue);
                printf("%.2f킬로그램은 %f파운드입니다.\n" , floatValue , (floatValue * 2.204623));
                break;
            default :
                printf ("'%c'문자열은 p 와 k 의 문자가 아닙니다.\n" , ch);
                break;
        }
        
    return;
}

// functionArray 준말
void (*fA[4])( char *str) = {act_1 , act_2 , act_3 , act_4};

// functionExcute 준말
pF fE(int i)
{
    return fA[i];
}

void main(void)
{
        int form = 0;
        char ch;
    
        printf ("====== 다음중 계산식을 고르시오 =====\n\n");
        printf ("1. 킬로미터 => 마일 계산\n");
        printf ("2. 반지름 => 원의 둘레,넓이 계산\n");
        printf ("3. 세가지의 숫자중 큰값 계산\n");
        printf ("4. 킬로그람 => 파운드 또는 파운드 => 킬로그람 계산\n\n");
        printf ("위에 숫자중 계산하고 싶은 항목을 고르시오 (숫자하나) ");

        ch = getchar();
        fflush(stdin); // 개행문자 비우기. 또는 getchar() 한번더 실행해도 된다.
        form = (int)ch - 48; // 48을 빼주는 이유는 숫자의 기본 캐릭터 코드 넘버가 숫자 + 48이기 때문.
        if(!( form > 0 && form <= 4 ))
        {
            printf("숫자 5이상 입력하지마시오.\n실행이 종료됩니다.\n");
            system("pause");
            return;
        }
 
        fE(--form)("test");
        system("pause");

    return;    

}
2013/05/15 17:48 2013/05/15 17:48
이 글에는 트랙백을 보낼 수 없습니다
웅쓰:웅자의 상상플러스
웅자의 상상플러스
전체 (379)
게임 (5)
영화 (2)
기타 (23)
맛집 (5)
영어 (2)
대수학 (3)
형태소 (5)
Hacking (9)
Linux (112)
HTML (48)
Application_developing (48)
Web_developing (102)
Window (11)
«   2013/05   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
  1. 2016/01 (1)
  2. 2015/12 (3)
  3. 2015/10 (3)
  4. 2015/03 (2)
  5. 2015/01 (4)