将下面的C++程序改为C语言程序或者汇编语言的程序,在单片机上能运行 的

ClareTung 2017-09-07 02:39:25
class ChkBloodType{
public:
vector<string> chkBlood(string father,string mother){
map<pair<string,string>,vector<string> > m;
m[make_pair("O", "O")] = { "O" };
m[make_pair("A", "O")] = { "A", "O" };
m[make_pair("A", "A")] = { "A", "O" };
m[make_pair("A", "B")] = { "A", "AB", "B", "O" };
m[make_pair("A", "AB")] = { "A", "AB", "B" };
m[make_pair("B", "O")] = { "B", "O" };
m[make_pair("B", "B")] = { "B", "O" };
m[make_pair("B", "AB")] = { "A", "AB", "B" };
m[make_pair("AB", "O")] = { "A", "B" };
m[make_pair("AB", "AB")] = { "A", "AB", "B" };
if(m.find(make_pair(father,mother))!=m.end())
return m[make_pair(father,mother)];
else
return m[make_pair(mother,father)];
}
};
int main(){
ChkBloodType obj;
vector<string> result = obj.chkBlood("O",B);
return 0;
}
...全文
119 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Monkey_D_ding 2017-09-07
  • 打赏
  • 举报
回复
这个就不知道了
呔妖怪来嘛 2017-09-07
  • 打赏
  • 举报
回复
引用 2 楼 qq_36135928 的回复:
代码能运行,可是对我来说有点复杂
甲方你好,甲方再见~~
ClareTung 2017-09-07
  • 打赏
  • 举报
回复
代码能运行,可是对我来说有点复杂
zarelaky 2017-09-07
  • 打赏
  • 举报
回复
两套方案,代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_CHILDEN_BLOOD 5

struct _pair{
	const char* father;
	const char* mother;
};

struct _m{
	struct _pair k;
	const char* c[MAX_CHILDEN_BLOOD];
} m[] = {
	{{"O","O"}, {"O", NULL}},
	{{"A","O"}, {"A","O", NULL}},
	{{"A","A"}, {"A", "O", NULL}},
	{{"A","B"}, {"A","AB","B","O", NULL}},
	{{"A", "AB"}, {"A","AB","B", NULL}},
	{{"B","O"}, {"B", "O", NULL}},
	{{"B","B"}, {"B","O", NULL}},
	{{"B", "AB"},{"A","AB","B", NULL}},
	{{"AB", "O"}, {"A", "B", NULL}},
	{{"AB","AB"}, {"A","AB","B", NULL}}
};


struct _m2 {
	const char* pair;
	const char* c[MAX_CHILDEN_BLOOD];
} m2[] = {
	{"OO", {"O", NULL}},
	{"AO", {"A","O", NULL}},
	{"AA", {"A", "O", NULL}},
	{"AB", {"A","AB","B","O", NULL}},
	{"AAB", {"A","AB","B", NULL}},
	{"BO", {"B", "O", NULL}},
	{"BB", {"B","O", NULL}},
	{"BAB",{"A","AB","B", NULL}},
	{"ABO", {"A", "B", NULL}},
	{"ABAB", {"A","AB","B", NULL}}
};

const char** m_check_blood_type(const char* father, const char* mother) {
	int i = 0;
	for (i; i < sizeof(m)/sizeof(m[0]); ++i) {
		struct _m* p = m+i;
		if (0 == strcmp(p->k.father, father) &&
			0 == strcmp(p->k.mother, mother) ||
			0 == strcmp(p->k.father, mother) &&
			0 == strcmp(p->k.mother, father) 
			) {
			return p->c;
		}
	}
	return NULL;
}

const char** m2_check_blood_type(const char* father, const char* mother)  {
	char key[16] = { 0 };
	char key2[16] = { 0 };
	int i ;
	strcpy(key, father);
	strcat(key, mother);

	strcpy(key, mother);
	strcat(key, father);
	for (i = 0; i < sizeof(m2)/sizeof(m2[0]); ++i) {
		struct _m2* p = m2+i;
		if (0 == strcmp(key, p->pair) || 0 == strcmp(key2, p->pair)) {
			return p->c;
		}
	}
	return NULL;
}
void print_children_types( const char** p ) {
	while (p && *p) {
		printf("%s,", *p);
		++p;
	}
	printf("\n");
}
int main() {
	const char** result2, **p2;
	const char** result,**p;
	result  = m_check_blood_type("O","B");
	p =  result;
	printf("f=O, m=B:\n");
	print_children_types(p);

	result2 = m2_check_blood_type("O", "B");
	p2 = result2;
	print_children_types(p2);	
	return 0;
}

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧