题解 | #KiKi定义电子日历类#
KiKi定义电子日历类
https://www.nowcoder.com/practice/e4c67097cdb242d9a3f38b7cfe839396
#include <stdio.h>
#include<malloc.h>
typedef struct TDate TDate;
//定义3个函数指针
typedef void (*INIT)(TDate* date) ;
typedef void (*SET)(TDate* date, int y, int m, int d);
typedef void (*SHOW)(TDate* date) ;
struct Functions {
INIT init;
SET set;
SHOW show;
};
typedef struct TDate {
int Year;
int Month;
int Day;
struct Functions* functions;
} TDate;
void init(TDate* date) {
date->Day = 0;
date->Month = 0;
date->Year = 0;
}
void set(TDate* date, int y, int m, int d) {
date->Day = d;
date->Month = m;
date->Year = y;
}
void show(TDate* date) {
printf("%d/%d/%d", date->Day, date->Month, date->Year);
}
struct Functions functions = {
.init = init,
.set = set,
.show = show
};
int main() {
TDate* date = malloc(sizeof(TDate));
int d, m, y;
scanf("%d %d %d", &y, &m, &d);
date->functions = &functions;
functions.init(date);
functions.set(date, y, m, d);
functions.show(date);
return 0;
}
#C#0基础学C 文章被收录于专栏
0基础学C,从算法开始
