☆C言語☆

[ リスト ]

課題 フラグで戻る

/***********************************************************************
*  kadai116
* ラベリングをするプログラム作成
* (ノーヒント!!)
* (問題は、ソース上に定義してもよいです)
*
* 作成日:  2008年12月13日
* 更新日:    2008年12月23日 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 b;	/* マーク縦 */
	int c;	/* マーク横 */
	int e;	/*          */
	int f;	/*          */
	int t;
	
	
	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");
	}

	s = '0';
	t = 0;
	for(i=0;i<13;i++){
		for(m=0;m<18;m++){
			if(a[i][m]!='0'){
				if(g[i-1][m]=='0' || g[i][m-1]=='0'){
					s++;
					t=1;
				}
				b = i;
				c = m;
				if(a[b][c]!='0'){
					g[b][c] = s;
					while(g[b][--c]!='0'){
						g[b][c+1] = g[b][c];
						e = b;
						f = c;
						while(a[--e][f]!='0'){
							g[e+1][f] = g[e][f];
						}
					}
					b = i;
					c = m;
					while(g[--b][c]!='0'){
						g[b+1][c] = g[b][c];
						e = b;
						f = c;
						while(a[e][--f]!='0'){
							g[e][f+1] = g[e][f];
						}
					}
				}
				
			}else{
				g[i][m] = '0';
				t=0;
			}
		}
		if(t==1){
			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



ちがうの。
まだフラグが未完成。


考えてきには・・・
ラベルが飛んでしまう可能性をなくしたかったの

だから一度ラベルが変わった時点でもう一度最初から流したかった
考えてたら寝てしまって・・・(; ;)


今晩もう一度構想を擬似言語で表現します


半日お待ちください m(_ _)m

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

もっと見る

[PR]お得情報

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

その他のキャンペーン


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

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

みんなの更新記事