C菜鸟在垃圾篓里写东西
用我半个月所学的C知识写的208个日语假名的罗马音练习程序,废话不多说,直接上代码。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
typedef struct words { //定义一个结构体存储208个平片假名以及其读音
char word[20];
char pho[20];
}words_t; //重命名这个结构体
words_t* val(words_t* s); //先声明一系列自定义函数
words_t* disorder(words_t* p);
void mistake(words_t* k);
void q_quit();
int main(void)
{
words_t* all = NULL, * dis_all = NULL; //声明两个指针用来传址,传vla函数写入的208假名内容
all = val(all); //数组做返回值,只能用指针形式,val函数在最下面
dis_all = disorder(all); //打乱数组内元素的顺序
mistake(dis_all); //答题208次并进行对比,将错误进行记录,循环结束后打印至屏幕
q_quit(); //按"q"才退出程序
free(all); //给被malloc的heap堆空间以自由
all = NULL; //给予自由后还要置为空
return 0;
}
words_t* disorder(words_t* p) //打乱顺序
{
/*for (size_t z = 0; z < 208; z++)
{
printf("%s %s\n", p[z].word, p[z].pho);
}*/
srand(time(NULL));
words_t temp[10] = {0};
for (size_t i = 0; i < 208; i++)
{
int pro = rand() % 208;
//printf("%d\n", pro);
temp[0] = p[0];
p[0] = p[pro];
p[pro] = temp[0];
}
/*for (size_t z = 0; z < 208; z++)
{
printf("%s %s\n", p[z].word, p[z].pho);
}*/
return p;
}
void mistake(words_t* k)
{
words_t temp[10] = { 0 };
words_t mis_s[208] = { 0 }; //初始化一个数组来存错误内容
int y = 0;
for (size_t i = 0; i < 208; i++)
{
printf("%d/208", i+1);
printf(" 输入罗马音 %s:", k[i].word);
scanf("%s", temp);
int j = strcmp(temp, k[i].pho);
//printf("%d", j);
if (j == 0)
{
printf("正确!\n");
}
else
{
printf("错误!\n");
strcpy(mis_s[y].word, k[i].word);
strcpy(mis_s[y].pho, k[i].pho);
y++;
}
}
printf("错误集:");
for (size_t i = 0; i < y; i++)
{
printf("%s ", mis_s[i].word);
}
printf("\n\n错误集输出完毕\n\n");
}
void q_quit()
{
char a;
printf("请输入q退出\n");
scanf("%c", &a);
while (a!='q')
{
scanf("%c", &a);
}
}
words_t* val(words_t* s) //给结构体赋值,即写入208内容;内容传回主函数是以数组形式,用指针做返回值
{
s = malloc(208 * sizeof(words_t)); //申请heap空间存放
if (s == NULL)
{
printf("malloc失败\n");
}
else
{
strcpy(s[0].word, "ア");
strcpy(s[0].pho, "a");
strcpy(s[1].word, "イ");
strcpy(s[1].pho, "i");
strcpy(s[2].word, "ウ");
strcpy(s[2].pho, "u");
strcpy(s[3].word, "エ");
strcpy(s[3].pho, "e");
strcpy(s[4].word, "オ");
strcpy(s[4].pho, "o");
strcpy(s[5].word, "カ");
strcpy(s[5].pho, "ka");
strcpy(s[6].word, "キ");
strcpy(s[6].pho, "ki");
strcpy(s[7].word, "ク");
strcpy(s[7].pho, "ku");
strcpy(s[8].word, "ケ");
strcpy(s[8].pho, "ke");
strcpy(s[9].word, "コ");
strcpy(s[9].pho, "ko");
strcpy(s[10].word, "サ");
strcpy(s[10].pho, "sa");
strcpy(s[11].word, "シ");
strcpy(s[11].pho, "shi");
strcpy(s[12].word, "ス");
strcpy(s[12].pho, "su");
strcpy(s[13].word, "セ");
strcpy(s[13].pho, "se");
strcpy(s[14].word, "ソ");
strcpy(s[14].pho, "so");
strcpy(s[15].word, "タ");
strcpy(s[15].pho, "ta");
strcpy(s[16].word, "チ");
strcpy(s[16].pho, "chi");
strcpy(s[17].word, "ツ");
strcpy(s[17].pho, "tsu");
strcpy(s[18].word, "テ");
strcpy(s[18].pho, "te");
strcpy(s[19].word, "ト");
strcpy(s[19].pho, "to");
strcpy(s[20].word, "ナ");
strcpy(s[20].pho, "na");
strcpy(s[21].word, "ニ");
strcpy(s[21].pho, "ni");
strcpy(s[22].word, "ヌ");
strcpy(s[22].pho, "nu");
strcpy(s[23].word, "ネ");
strcpy(s[23].pho, "ne");
strcpy(s[24].word, "ノ");
strcpy(s[24].pho, "no");
strcpy(s[25].word, "ハ");
strcpy(s[25].pho, "ha");
strcpy(s[26].word, "ヒ");
strcpy(s[26].pho, "hi");
strcpy(s[27].word, "ウ");
strcpy(s[27].pho, "hu");
strcpy(s[28].word, "ヘ");
strcpy(s[28].pho, "he");
strcpy(s[29].word, "ホ");
strcpy(s[29].pho, "ho");
strcpy(s[30].word, "マ");
strcpy(s[30].pho, "ma");
strcpy(s[31].word, "ミ");
strcpy(s[31].pho, "mi");
strcpy(s[32].word, "ム");
strcpy(s[32].pho, "mu");
strcpy(s[33].word, "メ");
strcpy(s[33].pho, "me");
strcpy(s[34].word, "モ");
strcpy(s[34].pho, "mo");
strcpy(s[35].word, "ラ");
strcpy(s[35].pho, "ra");
strcpy(s[36].word, "リ");
strcpy(s[36].pho, "ri");
strcpy(s[37].word, "ル");
strcpy(s[37].pho, "ru");
strcpy(s[38].word, "レ");
strcpy(s[38].pho, "re");
strcpy(s[39].word, "ロ");
strcpy(s[39].pho, "ro");
strcpy(s[40].word, "ヤ");
strcpy(s[40].pho, "ya");
strcpy(s[41].word, "ユ");
strcpy(s[41].pho, "yu");
strcpy(s[42].word, "ヨ");
strcpy(s[42].pho, "yo");
strcpy(s[43].word, "ワ");
strcpy(s[43].pho, "wa");
strcpy(s[44].word, "ヲ");
strcpy(s[44].pho, "o");
strcpy(s[45].word, "ン");
strcpy(s[45].pho, "nn");
//----------------片假名46音
strcpy(s[46].word, "あ");
strcpy(s[46].pho, "a");
strcpy(s[47].word, "い");
strcpy(s[47].pho, "i");
strcpy(s[48].word, "う");
strcpy(s[48].pho, "u");
strcpy(s[49].word, "え");
strcpy(s[49].pho, "e");
strcpy(s[50].word, "お");
strcpy(s[50].pho, "o");
strcpy(s[51].word, "か");
strcpy(s[51].pho, "ka");
strcpy(s[52].word, "き");
strcpy(s[52].pho, "ki");
strcpy(s[53].word, "く");
strcpy(s[53].pho, "ku");
strcpy(s[54].word, "け");
strcpy(s[54].pho, "ke");
strcpy(s[55].word, "こ");
strcpy(s[55].pho, "ko");
strcpy(s[56].word, "さ");
strcpy(s[56].pho, "sa");
strcpy(s[57].word, "し");
strcpy(s[57].pho, "shi");
strcpy(s[58].word, "す");
strcpy(s[58].pho, "su");
strcpy(s[59].word, "せ");
strcpy(s[59].pho, "se");
strcpy(s[60].word, "そ");
strcpy(s[60].pho, "so");
strcpy(s[61].word, "た");
strcpy(s[61].pho, "ta");
strcpy(s[62].word, "ち");
strcpy(s[62].pho, "chi");
strcpy(s[63].word, "つ");
strcpy(s[63].pho, "tsu");
strcpy(s[64].word, "て");
strcpy(s[64].pho, "te");
strcpy(s[65].word, "と");
strcpy(s[65].pho, "to");
strcpy(s[66].word, "な");
strcpy(s[66].pho, "na");
strcpy(s[67].word, "に");
strcpy(s[67].pho, "ni");
strcpy(s[68].word, "ぬ");
strcpy(s[68].pho, "nu");
strcpy(s[69].word, "ね");
strcpy(s[69].pho, "ne");
strcpy(s[70].word, "の");
strcpy(s[70].pho, "no");
strcpy(s[71].word, "は");
strcpy(s[71].pho, "ha");
strcpy(s[72].word, "ひ");
strcpy(s[72].pho, "hi");
strcpy(s[73].word, "ふ");
strcpy(s[73].pho, "hu");
strcpy(s[74].word, "へ");
strcpy(s[74].pho, "he");
strcpy(s[75].word, "ほ");
strcpy(s[75].pho, "ho");
strcpy(s[76].word, "ま");
strcpy(s[76].pho, "ma");
strcpy(s[77].word, "み");
strcpy(s[77].pho, "mi");
strcpy(s[78].word, "む");
strcpy(s[78].pho, "mu");
strcpy(s[79].word, "め");
strcpy(s[79].pho, "me");
strcpy(s[80].word, "も");
strcpy(s[80].pho, "mo");
strcpy(s[81].word, "ら");
strcpy(s[81].pho, "ra");
strcpy(s[82].word, "り");
strcpy(s[82].pho, "ri");
strcpy(s[83].word, "る");
strcpy(s[83].pho, "ru");
strcpy(s[84].word, "れ");
strcpy(s[84].pho, "re");
strcpy(s[85].word, "ろ");
strcpy(s[85].pho, "ro");
strcpy(s[86].word, "や");
strcpy(s[86].pho, "ya");
strcpy(s[87].word, "ゆ");
strcpy(s[87].pho, "yu");
strcpy(s[88].word, "よ");
strcpy(s[88].pho, "yo");
strcpy(s[89].word, "わ");
strcpy(s[89].pho, "wa");
strcpy(s[90].word, "を");
strcpy(s[90].pho, "o");
strcpy(s[91].word, "ん");
strcpy(s[91].pho, "nn");
//----------------平假名46音,共92
strcpy(s[92].word, "が");
strcpy(s[92].pho, "ga");
strcpy(s[93].word, "ぎ");
strcpy(s[93].pho, "gi");
strcpy(s[94].word, "ぐ");
strcpy(s[94].pho, "gu");
strcpy(s[95].word, "げ");
strcpy(s[95].pho, "ge");
strcpy(s[96].word, "ご");
strcpy(s[96].pho, "go");
strcpy(s[97].word, "ざ");
strcpy(s[97].pho, "za");
strcpy(s[98].word, "じ");
strcpy(s[98].pho, "ji");
strcpy(s[99].word, "ず");
strcpy(s[99].pho, "zu");
strcpy(s[100].word, "ぜ");
strcpy(s[100].pho, "ze");
strcpy(s[101].word, "ぞ");
strcpy(s[101].pho, "zo");
strcpy(s[102].word, "だ");
strcpy(s[102].pho, "da");
strcpy(s[103].word, "ぢ");
strcpy(s[103].pho, "ji");
strcpy(s[104].word, "う");
strcpy(s[104].pho, "zu");
strcpy(s[105].word, "で");
strcpy(s[105].pho, "de");
strcpy(s[106].word, "ど");
strcpy(s[106].pho, "do");
strcpy(s[107].word, "ば");
strcpy(s[107].pho, "ba");
strcpy(s[108].word, "び");
strcpy(s[108].pho, "bi");
strcpy(s[109].word, "ぶ");
strcpy(s[109].pho, "bu");
strcpy(s[110].word, "べ");
strcpy(s[110].pho, "be");
strcpy(s[111].word, "ぼ");
strcpy(s[111].pho, "bo");
strcpy(s[112].word, "ぱ");
strcpy(s[112].pho, "pa");
strcpy(s[113].word, "ぴ");
strcpy(s[113].pho, "pi");
strcpy(s[114].word, "ぷ");
strcpy(s[114].pho, "pu");
strcpy(s[115].word, "ぺ");
strcpy(s[115].pho, "pe");
strcpy(s[116].word, "ぽ");
strcpy(s[116].pho, "po");
//----------------平假名25浊音,共117
strcpy(s[117].word, "ガ");
strcpy(s[117].pho, "ga");
strcpy(s[118].word, "ギ");
strcpy(s[118].pho, "gi");
strcpy(s[119].word, "グ");
strcpy(s[119].pho, "gu");
strcpy(s[120].word, "ゲ");
strcpy(s[120].pho, "ge");
strcpy(s[121].word, "ゴ");
strcpy(s[121].pho, "go");
strcpy(s[122].word, "ザ");
strcpy(s[122].pho, "za");
strcpy(s[123].word, "ジ");
strcpy(s[123].pho, "ji");
strcpy(s[124].word, "ズ");
strcpy(s[124].pho, "zu");
strcpy(s[125].word, "ゼ");
strcpy(s[125].pho, "ze");
strcpy(s[126].word, "ゾ");
strcpy(s[126].pho, "zo");
strcpy(s[127].word, "ダ");
strcpy(s[127].pho, "da");
strcpy(s[128].word, "ヂ");
strcpy(s[128].pho, "ji");
strcpy(s[129].word, "ヅ");
strcpy(s[129].pho, "zu");
strcpy(s[130].word, "デ");
strcpy(s[130].pho, "de");
strcpy(s[131].word, "ド");
strcpy(s[131].pho, "do");
strcpy(s[132].word, "バ");
strcpy(s[132].pho, "ba");
strcpy(s[133].word, "ビ");
strcpy(s[133].pho, "bi");
strcpy(s[134].word, "ブ");
strcpy(s[134].pho, "bu");
strcpy(s[135].word, "ベ");
strcpy(s[135].pho, "be");
strcpy(s[136].word, "ボ");
strcpy(s[136].pho, "bo");
strcpy(s[137].word, "パ");
strcpy(s[137].pho, "pa");
strcpy(s[138].word, "ピ");
strcpy(s[138].pho, "pi");
strcpy(s[139].word, "プ");
strcpy(s[139].pho, "pu");
strcpy(s[140].word, "ペ");
strcpy(s[140].pho, "pe");
strcpy(s[141].word, "ポ");
strcpy(s[141].pho, "po");
//----------------片假名25浊音,共142
strcpy(s[142].word, "きゃ");
strcpy(s[142].pho, "kya");
strcpy(s[143].word, "きゅ");
strcpy(s[143].pho, "kyu");
strcpy(s[144].word, "きょ");
strcpy(s[144].pho, "kyo");
strcpy(s[145].word, "しゃ");
strcpy(s[145].pho, "sha");
strcpy(s[146].word, "しう");
strcpy(s[146].pho, "shu");
strcpy(s[147].word, "しょ");
strcpy(s[147].pho, "sho");
strcpy(s[148].word, "ちゃ");
strcpy(s[148].pho, "cha");
strcpy(s[149].word, "ちう");
strcpy(s[149].pho, "chu");
strcpy(s[150].word, "ちょ");
strcpy(s[150].pho, "cho");
strcpy(s[151].word, "にゃ");
strcpy(s[151].pho, "nya");
strcpy(s[152].word, "にゅ");
strcpy(s[152].pho, "nyu");
strcpy(s[153].word, "にょ");
strcpy(s[153].pho, "nyo");
strcpy(s[154].word, "みゃ");
strcpy(s[154].pho, "mya");
strcpy(s[155].word, "みゅ");
strcpy(s[155].pho, "myu");
strcpy(s[156].word, "みょ");
strcpy(s[156].pho, "myo");
strcpy(s[157].word, "りゃ");
strcpy(s[157].pho, "rya");
strcpy(s[158].word, "りゅ");
strcpy(s[158].pho, "ryu");
strcpy(s[159].word, "りょ");
strcpy(s[159].pho, "ryo");
strcpy(s[160].word, "ひゃ");
strcpy(s[160].pho, "hya");
strcpy(s[161].word, "ひゅ");
strcpy(s[161].pho, "hyu");
strcpy(s[162].word, "ひょ");
strcpy(s[162].pho, "hyo");
strcpy(s[163].word, "ぎゃ");
strcpy(s[163].pho, "gya");
strcpy(s[164].word, "ぎゅ");
strcpy(s[164].pho, "gyu");
strcpy(s[165].word, "ぎょ");
strcpy(s[165].pho, "gyo");
strcpy(s[166].word, "じゃ");
strcpy(s[166].pho, "ja");
strcpy(s[167].word, "じゅ");
strcpy(s[167].pho, "ju");
strcpy(s[168].word, "じょ");
strcpy(s[168].pho, "jo");
strcpy(s[169].word, "びゃ");
strcpy(s[169].pho, "bya");
strcpy(s[170].word, "びゅ");
strcpy(s[170].pho, "byu");
strcpy(s[171].word, "びょ");
strcpy(s[171].pho, "byo");
strcpy(s[172].word, "ぴゃ");
strcpy(s[172].pho, "pya");
strcpy(s[173].word, "ぴゅ");
strcpy(s[173].pho, "pyu");
strcpy(s[174].word, "ぴょ");
strcpy(s[174].pho, "pyo");
//----------------平假名33拗音,共175
strcpy(s[175].word, "キャ");
strcpy(s[175].pho, "kya");
strcpy(s[176].word, "キュ");
strcpy(s[176].pho, "kyu");
strcpy(s[177].word, "キョ");
strcpy(s[177].pho, "kyo");
strcpy(s[178].word, "シャ");
strcpy(s[178].pho, "sha");
strcpy(s[179].word, "シュ");
strcpy(s[179].pho, "shu");
strcpy(s[180].word, "ショ");
strcpy(s[180].pho, "sho");
strcpy(s[181].word, "チャ");
strcpy(s[181].pho, "cha");
strcpy(s[182].word, "チュ");
strcpy(s[182].pho, "chu");
strcpy(s[183].word, "チョ");
strcpy(s[183].pho, "cho");
strcpy(s[184].word, "ニャ");
strcpy(s[184].pho, "nya");
strcpy(s[185].word, "ニュ");
strcpy(s[185].pho, "nyu");
strcpy(s[186].word, "ニョ");
strcpy(s[186].pho, "nyo");
strcpy(s[187].word, "ミャ");
strcpy(s[187].pho, "mya");
strcpy(s[188].word, "ミュ");
strcpy(s[188].pho, "myu");
strcpy(s[189].word, "ミョ");
strcpy(s[189].pho, "myo");
strcpy(s[190].word, "リャ");
strcpy(s[190].pho, "rya");
strcpy(s[191].word, "リュ");
strcpy(s[191].pho, "ryu");
strcpy(s[192].word, "リョ");
strcpy(s[192].pho, "ryo");
strcpy(s[193].word, "ヒャ");
strcpy(s[193].pho, "hya");
strcpy(s[194].word, "ヒュ");
strcpy(s[194].pho, "hyu");
strcpy(s[195].word, "ヒョ");
strcpy(s[195].pho, "hyo");
strcpy(s[196].word, "ギャ");
strcpy(s[196].pho, "gya");
strcpy(s[197].word, "ギュ");
strcpy(s[197].pho, "gyu");
strcpy(s[198].word, "ギョ");
strcpy(s[198].pho, "gyo");
strcpy(s[199].word, "ジャ");
strcpy(s[199].pho, "ja");
strcpy(s[200].word, "ジュ");
strcpy(s[200].pho, "ju");
strcpy(s[201].word, "ジョ");
strcpy(s[201].pho, "jo");
strcpy(s[202].word, "ビャ");
strcpy(s[202].pho, "bya");
strcpy(s[203].word, "ビュ");
strcpy(s[203].pho, "byu");
strcpy(s[204].word, "ビョ");
strcpy(s[204].pho, "byo");
strcpy(s[205].word, "ピャ");
strcpy(s[205].pho, "pya");
strcpy(s[206].word, "ピュ");
strcpy(s[206].pho, "pyu");
strcpy(s[207].word, "ピョ");
strcpy(s[207].pho, "pyo");
//----------------平假名33拗音,共208
}
return s; //返回指针,把内容传出去
}