☆C言語☆

[ リスト ]

/***********************************************************************
*  kadai116
* ラベリングをするプログラム作成
* (ノーヒント!!)
* (問題は、ソース上に定義してもよいです)
*
* 作成日:  2008年11月21日
* 更新日:    2009年01月31日 pm 11:30
* 備考 :
************************************************************************/


main( )
{
	char a[13][18+1] = { 	{"000000000000000000"},	/* 0 */
				{"000010101010100000"},	/* 1 */
				{"000010101010100000"},	/* 2 */
				{"000010101010100000"},	/* 3 */
				{"000111111111110000"},	/* 4 */
				{"011111111111111110"},	/* 5 */
				{"000111111111110000"},	/* 6 */
				{"000010101010100000"},	/* 7 */
				{"000010101010100000"},	/* 8 */
				{"000010101010100000"},	/* 9 */
				{"011000000000001010"},	/* 10 */
				{"011000000000111110"},	/* 11 */
				{"000000000000000000"}	};	/* 12 */
	int i;	/* 縦 */
	int m;	/* 横 */
	char s;	/* ラベル */
	int f;	/* 繰り返しフラグ */
	char r;	/* ラベルの退避 */
	
	
	char g[13][18+1] = { 	{"000000000000000000"},	/* 0 */
				{"000000000000000000"},	/* 1 */
				{"000000000000000000"},	/* 2 */
				{"000000000000000000"},	/* 3 */
				{"000000000000000000"},	/* 4 */
				{"000000000000000000"},	/* 5 */
				{"000000000000000000"},	/* 6 */
				{"000000000000000000"},	/* 7 */
				{"000000000000000000"},	/* 8 */
				{"000000000000000000"},	/* 9 */
				{"000000000000000000"},	/* 10 */
				{"000000000000000000"},	/* 11 */
				{"000000000000000000"}	};	/* 12 */

	

	for(i=0;i<13;i++){
		for(m=0;m<18;m++){
			if(a[i][m]=='0'){
				printf(" ");
			}else{
				printf("%c",a[i][m]);
			}
		}
		printf("\n");
	}

	i = 0;
	m = 0;
	s = '0';
	f = 0;
	r = '0';
	while(i<13){
		while(m<18){
			if(a[i][m]!='0'){
				r = g[i][m];
			}
			if(a[i][m]!='0' && g[i][m]=='0'){
				if(a[i-1][m]!=0 && a[i][m-1]!=0){
					if(a[i-1][m] <= a[i][m-1]){
						g[i][m] = g[i-1][m];
						g[i][m-1] = g[i-1][m];
					}
					if(g[i][m-1] < a[i-1][m]){
						g[i][m] = g[i][m-1];
						g[i-1][m] = g[i][m-1];
					}
				}
				if(a[i-1][m]!=0 || a[i][m-1]!=0){
					if(a[i-1][m]!=0){
						g[i][m] = g[i-1][m];
					}
					if(a[i][m-1]!=0){
						g[i][m] = g[i][m-1];
					}
				}else{
					g[i][m] = ++s;
				}
				f = 1;
			}else{
				if(r+1!=s){
					s = r+1;
					g[i][m] = s;
					f = 1;
				}else{
					f = 0;
				}
			}
			if(f==0){
				m += 1;
			}else{
				m = 0;
			}
		}
		if(f==0){
			i += 1;
		}else{
			i = 0;
		}
	}


	for(i=0;i<13;i++){
		for(m=0;m<18;m++){
			if(g[i][m]=='0'){
				printf(" ");
			}else{
				printf("%c",g[i][m]);
			}
		}
		printf("\n");
	}


}



イメージ 1



あれ???
おかしぃなぁ。。。

閉じる コメント(1)

顔アイコン

前進してますか?! ・・・今一番の励みみのお言葉です(泣)ありがとうございます!!

月夜、課題クリアに向けて絶対頑張ります☆

2009/2/1(日) 午後 0:11 月夜


よしもとブログランキング

もっと見る

[PR]お得情報

話題の新商品が今だけもらえる!
ジュレームアミノ シュープリーム
プレゼントキャンペーン
ふるさと納税サイト『さとふる』
11/30まで5周年記念キャンペーン中!
Amazonギフト券1000円分当たる!

その他のキャンペーン


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事