第二个c程序,日语208音练习

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;              //返回指针,把内容传出去
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值