トップ 一覧 Farm 検索 ヘルプ RSS ログイン

2002dc1.cの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
 
 
 #define N 38
 #define NK 26
 
 char *kan[]={"a","b","c","d","e","f","g","h","i","j","k","l","m","n",
 				"o","p","q","r","s","t","u","v","w","x","y","z",
 				"ld", "mb", "mp", "nc", "nd", "ng", "nt", "nw", "ps", "qu", "cw", "ts"};
 
 int nkan[N][N]={0};
 
 int main(void)
 {
 	int i,j,k,n,p;
 	int len, flag, no, max;
 	char buf[100],nimoji[3];
 /*
 	for(i=0; i<N; i++)
 		printf("%s ", kan[i]);
 	printf("\n");
 */
 	
 	gets(buf);
 	n=atoi(buf);
 	
 	for(i=0; i<n; i++){
 		gets(buf);
 		
 		len=strlen(buf);
 		p=0;
 
 //		printf("%s (%d)\n", buf, len);
 
 		while(p<len){
 //			printf("%d\n",p);
 			nimoji[0]=buf[p];
 			nimoji[1]=buf[p+1];
 			nimoji[2]='\0';
 			if(buf[p]==' '){
 				p++;
 			}else{
 				flag=0;
 				for(j=NK; j<N; j++){	// kanglish2文字と比較する
 					if(!strcmp(nimoji,kan[j])){ // 1文字がkanglish2文字と同じだったら
 						p++;p++;
 						nimoji[0]=buf[p];
 						nimoji[1]=buf[p+1];
 						nimoji[2]='\0';
 						for(k=NK; k<N; k++){
 							if(!strcmp(nimoji,kan[k])){ // 次の2文字がkanglish2文字と同じだったら
 								nkan[j][k]++;
 								flag=1;
 							}
 						}
 						if(!flag){	// 1文字目kanglish2で、2文字目kanglish2 じゃないとき
 							nimoji[1]='\0';
 							for(k=0; k<NK; k++){
 								if(!strcmp(nimoji,kan[k])){ // 次の2文字がkanglish1文字と同じだったら
 									nkan[j][k]++;
 									flag=1;
 								}
 							}
 						}
 					}
 				}
 				if(!flag){	//1文字目kanglish2じゃないとき
 					nimoji[1]='\0';
 					flag=0;
 					for(j=0; j<NK; j++){	// kanglish1文字と比較する
 						if(!strcmp(nimoji,kan[j])){ // 1文字がkanglish1文字と同じだったら
 							p++;
 							nimoji[0]=buf[p];
 							nimoji[1]=buf[p+1];
 							nimoji[2]='\0';
 							for(k=NK; k<N; k++){
 								if(!strcmp(nimoji,kan[k])){ // 次の2文字がkanglish2文字と同じだったら
 									nkan[j][k]++;
 									flag=1;
 								}
 							}
 							if(!flag){	// 1文字目kanglish2で、2文字目kanglish2 じゃないとき
 								nimoji[1]='\0';
 								for(k=0; k<NK; k++){
 									if(!strcmp(nimoji,kan[k])){ // 次の2文字がkanglish1文字と同じだったら
 										nkan[j][k]++;
 									}
 								}
 							}
 						}
 					}
 				}
 
 			}
 		}
 	}
 	
 	for(i=0; i<N; i++){
 		no=0;
 		max=0;
 		for(j=0; j<N; j++){
 			if(nkan[i][j]>max){
 				max=nkan[i][j];
 				no=j;
 			}
 		}
 		printf("%s %s %d\n", kan[i], kan[no], max);
 	}
 
 	return 0;
 }