/// @file exam_1_8.c
/// @brief
/**
exam_1_8 * 定义一个枚举变量,其枚举元素为人民币的面值。要求输出枚举元素字符串。
*/
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <crtdbg.h>
#include <conio.h>
typedef enum e_Face_Value_Of_RMB
{
e_Face_Value_Of_RMB_yuan_100 = 0,
e_Face_Value_Of_RMB_yuan_50,
e_Face_Value_Of_RMB_yuan_20,
e_Face_Value_Of_RMB_yuan_10,
e_Face_Value_Of_RMB_yuan_5,
e_Face_Value_Of_RMB_yuan_2,
e_Face_Value_Of_RMB_yuan_1,
e_Face_Value_Of_RMB_jiao_5,
e_Face_Value_Of_RMB_jiao_2,
e_Face_Value_Of_RMB_jiao_1,
e_Face_Value_Of_RMB_fen_5,
e_Face_Value_Of_RMB_fen_2,
e_Face_Value_Of_RMB_fen_1,
}E_FACE_VALUE_OF_RMB;
#define STR(x) #x
#define CASE_RMB_FACE_VALUE(x, y) \
case x: \
{ \
strcpy(y, STR(x)); \
} \
break
char* fnGetString_RmbFaceValue(E_FACE_VALUE_OF_RMB eIn, char* pcMsgBuf);
int main(int argc, char *argv[ ], char *envp[ ])
{
int eIndex = e_Face_Value_Of_RMB_yuan_100;
char cMsgBuf[260] = {'\0'};
for (eIndex = e_Face_Value_Of_RMB_yuan_100; eIndex <= e_Face_Value_Of_RMB_fen_1; eIndex++)
{
printf("%s\n", fnGetString_RmbFaceValue((E_FACE_VALUE_OF_RMB)eIndex, cMsgBuf));
}
/**
e_Face_Value_Of_RMB_yuan_100
e_Face_Value_Of_RMB_yuan_50
e_Face_Value_Of_RMB_yuan_20
e_Face_Value_Of_RMB_yuan_10
e_Face_Value_Of_RMB_yuan_5
e_Face_Value_Of_RMB_yuan_2
e_Face_Value_Of_RMB_yuan_1
e_Face_Value_Of_RMB_jiao_5
e_Face_Value_Of_RMB_jiao_2
e_Face_Value_Of_RMB_jiao_1
e_Face_Value_Of_RMB_fen_5
e_Face_Value_Of_RMB_fen_2
e_Face_Value_Of_RMB_fen_1
END, press any key to quit
*/
printf("END, press any key to quit\n");
getchar();
return 0;
}
char* fnGetString_RmbFaceValue(E_FACE_VALUE_OF_RMB eIn, char* pcMsgBuf)
{
_ASSERT(NULL != pcMsgBuf);
switch (eIn)
{
CASE_RMB_FACE_VALUE(e_Face_Value_Of_RMB_yuan_100, pcMsgBuf);
CASE_RMB_FACE_VALUE(e_Face_Value_Of_RMB_yuan_50, pcMsgBuf);
CASE_RMB_FACE_VALUE(e_Face_Value_Of_RMB_yuan_20, pcMsgBuf);
CASE_RMB_FACE_VALUE(e_Face_Value_Of_RMB_yuan_10, pcMsgBuf);
CASE_RMB_FACE_VALUE(e_Face_Value_Of_RMB_yuan_5, pcMsgBuf);
CASE_RMB_FACE_VALUE(e_Face_Value_Of_RMB_yuan_2, pcMsgBuf);
CASE_RMB_FACE_VALUE(e_Face_Value_Of_RMB_yuan_1, pcMsgBuf);
CASE_RMB_FACE_VALUE(e_Face_Value_Of_RMB_jiao_5, pcMsgBuf);
CASE_RMB_FACE_VALUE(e_Face_Value_Of_RMB_jiao_2, pcMsgBuf);
CASE_RMB_FACE_VALUE(e_Face_Value_Of_RMB_jiao_1, pcMsgBuf);
CASE_RMB_FACE_VALUE(e_Face_Value_Of_RMB_fen_5, pcMsgBuf);
CASE_RMB_FACE_VALUE(e_Face_Value_Of_RMB_fen_2, pcMsgBuf);
CASE_RMB_FACE_VALUE(e_Face_Value_Of_RMB_fen_1, pcMsgBuf);
default:
_ASSERT(0);
}
return pcMsgBuf;
}