추억이 새록새록 난다 ... 하아 ....
#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
0