5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

回文プログラミング in C

1 :トリッキーの1:2001/07/31(火) 00:56
こちらの方が熱くなりそうなので、プログラマ板から引っ越しました。

回文、というと「たけやぶやけた」みたいな物を指しますが、
それをC言語上で書くことは可能でしょうか?

有名な物で、↓の様な物がありますが、
http://www.jelks.nu/misc/geek/palindrome_c.html
これは行ごとに回文であるだけで、全体は回文ではありません。

Lispでは可能なのですが、果たして、Cで書くことが出来るでしょうか。
一応ルールとして、
・C++特有の書き方は禁止(例えば//など)
という風にしましょう。

腕に覚えがある人、時間のある人、トライしてみて下さい。
ちなみに私は1通り方法を思いついたけれど、コンパイラ依存の可能性が高そうです。

2 :デフォルトの名無しさん:2001/07/31(火) 00:58
/* 終 */

3 :デフォルトの名無しさん:2001/07/31(火) 01:35
; int gnol ; char trohs ; short rahc ; long tni ;

4 :デフォルトの名無しさん:2001/07/31(火) 01:43
なるほど

main(){}//
//{}()nima

は駄目なのね

5 :デフォルトの名無しさん:2001/07/31(火) 01:44
ma -> am

逝ってきます

6 :デフォルトの名無しさん:2001/07/31(火) 01:54
むずくないか?
本当に出来るのか?
出来ないことを証明出来そうな気がするのだが

7 :デフォルトの名無しさん:2001/07/31(火) 02:23
おいおい
せっかくトリッキースレ残ってるんだから、そっちでやろうよ

8 :デフォルトの名無しさん:2001/07/31(火) 02:26
トリッキースレは完全に荒れたYO!
途中まではかなり面白いスレだったのにNE!

9 :デフォルトの名無しさん:2001/07/31(火) 02:53
出来たよ。

int printf(const char /* YMMUD enifed#
} ;)"n\!!hc2 ,olleH"(ftnirp { )(niam tni
;)... ,tamrof */* format, ...);
int main() { printf("Hello, 2ch!!\n"); }
#define DUMMY */ rahc tsnoc)ftnirp tni

10 :デフォルトの名無しさん:2001/07/31(火) 03:30
>>9
すげー
処理系依存ちゃうし

11 :9:2001/07/31(火) 03:48
mainの戻り値忘れてたよ。

int printf(const char /* YMMUD enifed#
} ;0 nruter ;)"n\!!hc2 ,olleH"(ftnirp { )(niam tni
;)... ,tamrof */* format, ...);
int main() { printf("Hello, 2ch!!\n"); return 0; }
#define DUMMY */ rahc tsnoc)ftnirp tni

12 :9:2001/07/31(火) 04:05
>>10
gccは通った。VC、BCBはリンクで失敗。

13 :9:2001/07/31(火) 04:12
これでいい? 処理系依存はしないよ。
ナンカ詰まらんが(^^;

#include <stdio.h> /* YMMUD enifed#
} ;0 nruter ;)"n\!!hc2 ,olleH"(ftnirp { )(niam tni
/*/
int main() { printf("Hello, 2ch!!\n"); return 0; }
#define DUMMY */ >h.oidts< edulcni#

14 :トリッキーの1:2001/07/31(火) 09:56
なるほど、/*/は盲点でした。

ちなみにコメントも似たような方法です。

/* 回文プログラム */
#define co int main(){return 0;}
#define oc /##*
co oc
*##/ co enifed#
};0 nruter{)(niam tni oc enifed#
/* ムラグロプ文回 */

VCでは確認したけれど、
手元にgccなどが無いので、コンパイルできるかどうか不明

15 :トリッキーの1:2001/07/31(火) 09:57
じゃ、コメントを利用しない方法って無いですか?
俺は無いと確信しているのですが……

16 :デフォルトの名無しさん:2001/07/31(火) 11:38
>>15
やっぱり不可能なんじゃない?

17 :デフォルトの名無しさん:2001/07/31(火) 12:13
S-JIS漢字を使うってのはだめ?
バイト単位での回文だとして。

18 :デフォルトの名無しさん:2001/07/31(火) 12:32
>>17
S-JIS漢字でバイト単位の回文って、プログラムでなくても
すごいと思う(笑)

19 :デフォルトの名無しさん:2001/07/31(火) 14:18
COM(MS-DOSの奴)でバイト単位の回文なら可能そう。
エLヘ!ヘLエ

20 :デフォルトの名無しさん:2001/07/31(火) 14:41
>>9
すごい。感服。

>>14
gcc(2.95.x)では通らなかったよ。3行目のdefineでコケ。

21 :デフォルトの名無しさん:2001/07/31(火) 14:45
>>18
いやSJIS の2バイト目が '\\' になってるようなやつとかを
うまく利用してできないかなぁと

22 :トリッキーの1:2001/07/31(火) 14:59
>>20
をを、gccだと#define中に/##*が使えないんだ。情報tnx。
とすると、たぶん/##/も使えないな。ま〜まず使わないからいいけど。

それ以前に、##が無いんだろうか??

23 :20:2001/07/31(火) 15:48
>>22
##はあるよ

24 :デフォルトの名無しさん:2001/07/31(火) 16:09
token ## tokenしか認められてないんだろ

25 :デフォルトの名無しさん:2001/07/31(火) 16:12
しかし #define xx */ は通るんだよね。一貫性ないな。

26 :9:2001/08/02(木) 22:59
>>15
コメント使わないでできた!

char *x = "Hello, 2ch!! n\"
\n a enifed#
} ;0 nruter ;)x(ftnirp { )(niam tni
>h.oidts< edulcni#
;";
#include <stdio.h>
int main() { printf(x); return 0; }
#define a n\
"\n !!hc2 ,olleH" = x* rahc

gccでコンパイルできた。VCでは出来ず。

27 :通りすがりの人:2001/08/04(土) 10:46
>>26 なるほど。

28 :デフォルトの名無しさん:2001/08/10(金) 03:17
トリッキーだのぅ。

29 :デフォルトの名無しさん:2001/08/11(土) 12:23
ところで回文にする理由は?

30 :デフォルトの名無しさん:2001/08/11(土) 23:22
>>26
ぢゃ、次は完全に全てのコンパイラに対応するべし

>>29
考えるのが面白いから。

31 :デフォルトの名無しさん:2001/08/12(日) 02:22
回文じゃないけどこんなん見つけた。

http://www.layer-8.com/sce/view_src.php3?argSrcId=94

すごいけどプリプロセッサにたよりまくり・・・

32 :デフォルトの名無しさん:2001/08/12(日) 02:23
続き。

説明
http://www.layer-8.com/sce/smp_detail.php3?argCatId=1&argSubCat=23&argSmpId=94

33 :デフォルトの名無しさん:2001/08/12(日) 10:45
>>31
#define ee ;printf("%lf\n",__);}
,__); がとっても顔文字に見えるッス
なんかちょっと可愛いし

34 :デフォルトの名無しさん:2001/08/19(日) 17:16
てすと
a    a

35 :デフォルトの名無しさん:2001/08/19(日) 17:18
てすと
b&nbsp;&nbsp;&nbsp;&nbsp;b

8 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)