曾经写过,但和很多其他文章一起随着独立博客炸掉了,丢失了一些宝贵数据,不过源程序还在。“留得青山在,不怕没柴烧”。
先上代码吧。
for windows
#include<bits/stdc++.h>
//#define TJ
using namespace std;
const char sm[100][10]={
"b",
"c",
"d",
"f",
"g",
"h",
"j",
"k",
"l",
"m",
"n",
"p",
"r",
"s",
"t",
"v",
"w",
"x",
"y",
"z",
"sh",
"th",
"ck",
"ph",
"pr",
"br",
"cr",
"dr",
"tr",
"gr",
"kr",
"qu",
"wr",
"wh",
"ch"
},ym[100][10]={
"a",
"e",
"i",
"o",
"u",
"ei",
"oi",
"ui",
"ea",
"ee",
"ao",
"io",
"uo",
"au",
"ou",
"ar",
"er",
"ir",
"or",
"ur"
},mw[100][10]{
"m",
"n",
"b",
"p",
"c",
"d",
"f",
"g",
"h",
"k",
"l",
"s",
"t",
"v",
"w",
"x",
"y",
"z",
"sh",
"ch",
},mw_g[100][10]={
"ly",
"sa",
"na",
"la",
"ry",
"ny",
"my",
"ma",
"line",
"lia",
"mia",
"nia",
"ria"
};
const int ns=35,ny=20,nm=10,nm_g=13;
const int nns=20,nny=5;
char res[100];
int main(){
#ifdef TJ
freopen(".in","r",stdin);
freopen(".out","w",stdout);
#endif
srand(time(0));
puts("Do you want to get a name for girl?[Y/N]");
char cz=getchar();
while(cz!='N'&&cz!='Y')cz=getchar();
bool bb=(cz=='Y');
getchar();
while(1){
memset(res,0,sizeof res);
int n=rand()%4+1,a,b;
if(n==4&&rand()%3)n=rand()%4;
bool k=rand()&1;
if(n==1||bb)k=1;
while(n--)
strcat(res,sm[a=(rand()%4?rand()%(ns-nns)+nns:rand()%nns)]),strcat(res,ym[b=(rand()%4?rand()%(ny-nny)+nny:rand()%nny)]),printf("%s %s\n",sm[a],ym[b]);
if(k&&!bb)strcat(res,mw[rand()%nm]);
else if(k&&bb)strcat(res,mw_g[rand()%nm_g]);
if(!bb)
if(k&&(a=rand()%5)==0)strcat(res,"e");
else if(k&&a==1)strcat(res,"y");
if(res[strlen(res)-1]=='i')res[strlen(res)-1]='y';
res[0]=res[0]-'a'+'A';
puts(res);
getchar();
system("cls");
// Sleep(100);
}
return 0;
}
for linux
#include<bits/stdc++.h>
//#define TJ
using namespace std;
const char sm[100][10]={
"b",
"c",
"d",
"f",
"g",
"h",
"j",
"k",
"l",
"m",
"n",
"p",
"r",
"s",
"t",
"v",
"w",
"x",
"y",
"z",
"sh",
"th",
"ck",
"ph",
"pr",
"br",
"cr",
"dr",
"tr",
"gr",
"kr",
"qu",
"wr",
"wh",
"ch"
},ym[100][10]={
"a",
"e",
"i",
"o",
"u",
"ei",
"oi",
"ui",
"ea",
"ee",
"ao",
"io",
"uo",
"au",
"ou",
"ar",
"er",
"ir",
"or",
"ur"
},mw[100][10]{
"m",
"n",
"b",
"p",
"c",
"d",
"f",
"g",
"h",
"k",
"l",
"s",
"t",
"v",
"w",
"x",
"y",
"z",
"sh",
"ch",
},mw_g[100][10]={
"ly",
"sa",
"na",
"la",
"ry",
"ny",
"my",
"ma",
"line",
"lia",
"mia",
"nia",
"ria"
};
const int ns=35,ny=20,nm=10,nm_g=13;
const int nns=20,nny=5;
char res[100];
int main(){
#ifdef TJ
freopen(".in","r",stdin);
freopen(".out","w",stdout);
#endif
srand(time(0));
puts("Do you want to get a name for girl?[Y/N]");
char cz=getchar();
while(cz!='N'&&cz!='Y')cz=getchar();
bool bb=(cz=='Y');
getchar();
while(1){
memset(res,0,sizeof res);
int n=rand()%4+1,a,b;
if(n==4&&rand()%3)n=rand()%4;
bool k=rand()&1;
if(n==1||bb)k=1;
while(n--)
strcat(res,sm[a=(rand()%4?rand()%(ns-nns)+nns:rand()%nns)]),strcat(res,ym[b=(rand()%4?rand()%(ny-nny)+nny:rand()%nny)]),printf("%s %s\n",sm[a],ym[b]);
if(k&&!bb)strcat(res,mw[rand()%nm]);
else if(k&&bb)strcat(res,mw_g[rand()%nm_g]);
if(!bb)
if(k&&(a=rand()%5)==0)strcat(res,"e");
else if(k&&a==1)strcat(res,"y");
if(res[strlen(res)-1]=='i')res[strlen(res)-1]='y';
res[0]=res[0]-'a'+'A';
puts(res);
getchar();
system("clear");
// Sleep(100);
}
return 0;
}
这里放出一些已经随机出来的。
原文 | 音译 | 含义(源语言) |
---|---|---|
Briwhio | 布里维奥 | 酿造(威尔士语) |
Crafuo | 克拉福 | None |
Mioh | 米奥 | 三王(瑞典语) |
Kribruo | 克里布鲁 | 筛选(世界语) |