- 1 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 23:00:49 .net]
- 7行×79文字なら言語は問いません。
過去作品は、もしかしたら>>2-10あたりに。 前スレ pc11.2ch.net/test/read.cgi/tech/1142467359/ part4 pc8.2ch.net/test/read.cgi/tech/1051703369/ part 3 pc2.2ch.net/tech/kako/1033/10331/1033143528.html part 2 pc3.2ch.net/tech/kako/1018/10188/1018840143.html part 1 pc.2ch.net/tech/kako/984/984182993.html
- 75 名前:72 mailto:sage [2008/07/09(水) 23:17:19 .net]
- あーそうかCでも&&は左から評価なのか
勉強になった
- 76 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 23:17:48 .net]
- >>70
size_t(*r)()=fread; とはできるが、もう少し使用回数が多くないと得にはならないな。
- 77 名前:71 mailto:sage [2008/07/09(水) 23:20:19 .net]
- #include<stdio.h>
int*s,*d,y;main(c,v)char**v;{long W,*t,x,a;unsigned char h[54],f[3];fread(h,1, 54,s=fopen(v[1],"rb"));W=*(t=(long*)&h[18]);a=4-W*3%4;fwrite(h,1,54,d=fopen(v[2 ],"wb"));++t;for(;y++<*t;a-4&&fread(h,1,a,s))for(x=W;x--;fwrite(f,1,3,d))fread( h,1,3,s),f[0]=f[1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;} これならいいか
- 78 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 23:21:05 .net]
- yもいつのまにかintにされてるんだが。
- 79 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 23:29:28 .net]
- >>77>>78
じゃあyもlongにして、あとtも消せる? #include<stdio.h> int*s,*d;main(c,v)char**v;{long W,x,y,a;unsigned char h[54],f[3];for(fread(h,1, 54,s=fopen(v[1],"rb")),W=*(long*)&h[18],fwrite(h,1,54,d=fopen(v[2],"wb")),a=4-W *3%4;y++<*++&W;a-4&&fread(h,1,a,s))for(x=W;x--;fwrite(f,1,3,d))fread(h,1,3,s),f [0]=f[1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
- 80 名前:79 mailto:sage [2008/07/09(水) 23:30:33 .net]
- すまんなんでもない
- 81 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 23:32:05 .net]
- >>79
お前ちゃんと走らせてるのか? 出力が同じになることぐらい確認しとけよ。
- 82 名前:79 mailto:sage [2008/07/09(水) 23:32:56 .net]
- 実は今出先なのでCのコンパイラがなかった
すます
- 83 名前:71 mailto:sage [2008/07/09(水) 23:43:43 .net]
- 面倒だからみんなlongで
#include<stdio.h> long*s,*d,y;main(c,v)char**v;{unsigned char h[54],f[3];long *t=&h[18],x,a;fread (h,1,54,s=fopen(v[1],"rb"));a=4-*t*3%4;fwrite(h,1,54,d=fopen(v[2],"wb"));for(;y ++<t[1];a-4&&fread(h,1,a,s))for(x=*t;x--;fwrite(f,1,3,d))fread(h,1,3,s),f[0]=f[ 1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
- 84 名前:71 mailto:sage [2008/07/10(木) 00:13:01 .net]
- #include<stdio.h>
unsigned char h[54],f[3];long*s,*d,y,*t=h+18,x,a;main(c,v)char**v;{fwrite(h,1, fread(h,1,54,s=fopen(v[1],"rb")),d=fopen(v[2],"wb"));for(a=4-*t*3%4;y++<t[1];a- 4&&fread(h,1,a,s))for(x=*t;x--;fwrite(f,1,3,d))fread(h,1,3,s),*f=f[1]=f[2]=77*h [2]+150*h[1]+29**h>>8;}
- 85 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 00:49:30 .net]
- いい流れだ
- 86 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 09:14:57 .net]
- おまえらそんな可読性の高いコード書いてて恥ずかしくないの?
- 87 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 11:00:43 .net]
- >>86 恥なんかあったら、コードは掛けんよ(笑
- 88 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 16:10:20 .net]
- JavascriptでBase64エンデコード
<script>S=String.fromCharCode;c='0123456789+/=';for(i=122;64<i;i-=i-97?1:7)c=S( i)+c;document.write(eval('l=v.length;for(i=p=0;i<l;){for(n=0,j='+(/[^+/-9=A-Z]/ i.test(v=unescape(encodeURI(prompt(r=''))))?'3;j--;l<i&&p--)n=n<<8|v.charCodeAt (i++);for(j=4;j--;)r+=c.charAt(n>>6*j&63)}p?r.slice(0,p)+(p+1?"==":"="):r':'4;j --;t-64||p--)n=n<<6|(t=c.indexOf(v.charAt(i++)))&63;for(j=3;j--;)r+=S(n>>8*j&25 5)}decodeURIComponent(escape(r.slice(0,p)||r))')))</script> ほぼ限界だと思うんだが、どうなんだろう pやcharAtが冗長な気もするけど・・・
- 89 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 16:18:39 .net]
- お、79文字に収まった
<script>S=String.fromCharCode;c='0123456789+/=';for(i=123;65<i;)c=S(i-=i-97?1:7 )+c;document.write(eval('l=v.length;for(i=p=0;i<l;){for(n=0,j='+(/[^+/-9=A-Z]/i .test(v=unescape(encodeURI(prompt(r=''))))?'3;j--;l<i&&p--)n=n<<8|v.charCodeAt\ (i++);for(j=4;j--;)r+=c.charAt(n>>6*j&63)}p?r.slice(0,p)+(p+1?"==":"="):r':'4;\ j--;t-64||p--)n=n<<6|(t=c.indexOf(v.charAt(i++)))&63;for(j=3;j--;)r+=S(n>>8*j&\ 255)}decodeURIComponent(escape(r.slice(0,p)||r))')))</script>
- 90 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 19:05:50 .net]
- <body id=D onKeyDown=K=event.keyCode-38 onload='Z=X=[B=A=12];(Y=function(){for(
C=[q=c=i=4];f=i--*K;c-=!Z[h+(K+6?p+K:C[i]=p*A-(p/9|0)*145)])p=B[i];for(c?0:K+6? h+=K:t?B=C:0;i=K=q--;f+=Z[A+p])k=X[p=h+B[q]]=1;h+=A;if(f|B)for(Z=X,X=[l=228],B= [[-7,-20,6,h=17,-9,3,3][t=++t%7]-4,0,1,t-6?-A:2];l--;)for(l%A?l-=l%A*!Z[l]:(P+= k++,c=l+=A);--c>A;)Z[c]=Z[c-A];for(S="";i<240;S+=X[i]|(X[i]=Z[i]|=++i%A<2|i>228 )?i%A?"■":"■<br>":"_");D.innerHTML=S+P;Z[5]||setTimeout(Y,i-P)})(h=K=t=P=0)'
- 91 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:04:11 .net]
- >>35の方が少し短い
- 92 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:17:17 .net]
- innerHTMLのほうがいい罠
- 93 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:34:04 .net]
- innerTextとかIEだけじゃん 環境依(Ry
- 94 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:58:39 .net]
- Firefoxで動くから問題ない
- 95 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:44:19 .net]
- Firefoxじゃ動かんだろ
- 96 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 16:18:26 .net]
- うごくよ
- 97 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 16:54:21 .net]
- どちらもIEとFirefoxで動いたが、
OperaとSafariではどちらも動かなかった。
- 98 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 17:18:11 .net]
- Mozilla Firefox 2.0.0.6,
Mozilla Firefox-3.0 3.0a8, どっちでも動かないんだが・・・
- 99 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 18:49:10 .net]
- Firefox では動かないよ
まあそんなことはどうでもいいけど、<br> を \n にするだけのために innerText を使うのはいただけない
- 100 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 20:43:48 .net]
- htaで動けばおk
- 101 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 00:26:40 .net]
- W3C DOMで採択されていないinnerTextを使うなんて…なぜ標準厨が湧かないんだ!!
- 102 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 01:08:18 .net]
- JScript標準ですがなにか
- 103 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 01:37:02 .net]
- >>101
マジレスするとinnerHTMLもW3C DOM非準拠。 HTML5待ちだよ。
- 104 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 15:16:14 .net]
- まさかJScriptなんて言葉が出てくるとはな
- 105 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 18:33:10 .net]
- 出てきても何も問題は無い
- 106 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 15:01:55 .net]
- C++で正規表現エンジン?らしきものをやってみました
10行ですが、これ以上は厳しい・・・ #include <iostream> struct a{a*b;char*c,*d;int e,f,g;};struct{int h(a*i,char*j,char*&k){a l={i,k,0, 99,99,1};return(*k-')'&&*k-'|'?(m(0,0,k),*k=='*'||*k=='+'&&++l.f||(l.f=1,*k== '?')?(l.g=*++k-'?')||++k:(l.e=0),l.d=k,i=&l,0):!(j&&(k=i->c,i->b)))||n(i,j,k);} int n(a*i,char*j,char*&k){a l=*i,o=l;return j?l.e<l.f--?m(&l,j,o.c):l.f<0?h(l.b ,j,o.d):l.g&&m(&l,j,o.c)||h(l.b,j,o.d)||!l.g&&m(&l,j,o.c):h(0,0,k);}int m(a*i, char*j,char*&k){int p=*k++;if(p=='('||(p=j&&(p=='$'?!*j:((p-'.'?p==*j:*j)&&++j) )&&n(i,j,k),0))while(!((p=h(i,j,k))&&j||*k++-'|'));return p;}}q;int main(int r, char**s){return 2<r&&q.h(0,s[2],s[1]=(char*)(std::string("(.*?")+s[1]+")"). c_str())&&std::cerr<<"ktkr.\n";} コマンドラインの引数に”正規表現”と”マッチ対象の文字列”をこの順番で与えて実行すると マッチした場合だけ”ktkr”と出力します。使えるメタ文字: . $ ? ?? * *? + +? ( | ) ^はグローバル変数を使わないと実装出来なそうだったので却下しました・・・
- 107 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 15:04:50 .net]
- あとCのソースを七行×79文字の形式に変換してくれるスクリプトを書きました
もし役に立てるのでしたら幸いです xxx.s97.xrea.com/x/7amigos/7amigos.cgi
- 108 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 15:39:36 .net]
- >>106
#include <iostream> typedef char*x;struct a{a*b;x c,d;int e,f,g;};struct{int h(a*i,x j,x&k){a l={i, k,0,99,99,1};return(*k-')'&&*k-'|'?(m(0,0,k),*k=='*'||*k=='+'&&++l.f||(l.f=1,*k =='?')?(l.g=*++k-'?')||++k:(l.e=0),l.d=k,i=&l,0):!(j&&(k=i->c,i->b)))||n(i,j,k) ;}int n(a*i,x j,x&k){a l=*i,o=l;return j?l.e<l.f--?m(&l,j,o.c):l.f<0?h(l.b,j,o. d):l.g&&m(&l,j,o.c)||h(l.b,j,o.d)||!l.g&&m(&l,j,o.c):h(0,0,k);}int m(a*i,x j,x& k){int p=*k++;if(p=='('||(p=j&&(p-'$'?(p-'.'?p==*j:*j)&&++j:!*j)&&n(i,j,k),0))\ while(!((p=h(i,j,k))&&j||*k++-'|'));return p;}}q;int main(int r,x*s){return 2<r &&q.h(0,s[2],s[1]=(x)(std::string("(.*?")+s[1]+")").c_str())&&std::cerr<<"ktkr\ .\n";}
- 109 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 15:40:49 .net]
- >>107
二文字の演算子が分解される…
- 110 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 23:17:04 .net]
- 9行目にバグがありました、、、
#include <iostream> typedef char*x;struct a{a*b;x c,d;int e,f,g;};struct{int h(a*i,x j,x&k){a l={i, k,0,99,99,1};return(*k-')'&&*k-'|'?(m(0,0,k),*k=='*'||*k=='+'&&++l.f||(l.f=1,*k =='?')?(l.g=*++k-'?')||++k:(l.e=0),l.d=k,i=&l,0):!(j&&(k=i->c,i->b)))||n(i,j,k) ;}int n(a*i,x j,x&k){a l=*i,o=l;return j?l.e<l.f--?m(&l,j,o.c):l.f<0?h(l.b,j,o. d):l.g&&m(&l,j,o.c)||h(l.b,j,o.d)||!l.g&&m(&l,j,o.c):h(0,0,k);}int m(a*i,x j,x& k){int p=*k++;if(p=='('||(p=j&&(p-'$'?(p-'.'?p==*j:*j)&&++j:!*j)&&n(i,j,k),0))\ while(!((p=h(i,j,k))&&j||*k++-'|'));return p;}}q;int main(int r,x*s){return 2<r &&q.h(0,s[2],s[1]=(x)(std::string("(.*?(")+s[1]+"))").c_str())&&std::cerr<<"ktkr\ .\n";} >>108 なるほど。char*が多いのは気になってたのですが、typedefとは。不覚でした >>109 根本的ではないっぽいですが、とりあえず直してみました
- 111 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 10:28:38 .net]
- Part5で9行正規表現はあったね。メタ文字は少なかったけど。
- 112 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 08:34:58 .net]
- バグとSTL取ったら伸びてしまいました・・・。
その代わりVC++でもコンパイルできる様になりました。これ以上はもう無理そうなので最後にします。 #include <stdio.h> typedef char*a;struct b{b*c;a d,e;int f,g,h;}i={0,0,0,0,1,1};struct{int j(a&k, a l=0,b*m=0){b n={m,k,0,99,99,1};return(*k&&*k-')'&&*k-'|'?(o(k,0,0),*k=='*'||* k=='+'&&++n.g||(n.g=1,*k=='?')?(n.h=*++k-'?')||++k:(n.f=0),n.e=k,m=&n,0):!(l&&( k=m->d,m->c)))||p(k,l,m);}int p(a&k,a l,b*m){b n=*m,q=n;return l?n.f<n.g--?o(q. d,l,&n):n.g<0?j(q.e,l,n.c):n.h&&o(q.d,l,&n)||j(q.e,l,n.c)||!n.h&&o(q.d,l,&n):j( k);}int o(a&k,a l,b*m){int r=*k++;if(r=='('||(r=l&&(r=='$'?!*l:((r-'.'?r==*l:*l )&&++l))&&p(k,l,m),0))while(!((r=j(k,l,m))&&l||(j(k),*k++-'|')));return r;}}s; int main(int t,a*u){for(char v[99]="(",*w=v;*w?(*++w=*u[1]++,1):s.o(*u=v,u[2]++ ,&i)?(puts("ktkr."),0):*u[2];);return 0;} >>111 あれがなければこの挑戦もなかったですね、、、 そこまで縮められるなんて夢にも思わなかったと思うので(日本語でおk)
- 113 名前:前すれ969 mailto:sage [2008/07/26(土) 22:53:38 .net]
- UTF-16BEのテキストファイルをUTF-8に変換
Winの人は(ry #include <stdio.h> FILE*i,*o;int a,b;int F(int c){return putc(128|c%64,o);}int main(int c,char**v) {if(c>2&&(i=fopen(v[1],"r"))&&(o=fopen(v[2],"w")))for(;a=getc(i),a-EOF;((a=a<<8 |getc(i))>>11!=27)?a<128?putc(a,o):a<2048?(putc(192|a>>6,o),F(a)):(putc(224|a>> 12,o),F(a>>6),F(a)):(b=getc(i)%4,c=getc(i),a=64+a%1024,putc(240|a>>8,o),F(a/4), F(a<<4|b*4|c>>6),F(c)));return i&&fclose(i),o&&fclose(o),o?0:!!fprintf(stderr,c <3?"usage: %s input output\n":"fairu wo hirakenaijanaika! itteyoshi!!\n",*v);} エンディアンを自動判定するのは難しそうだな… それから、前スレ969のプログラム(UTF-8→UTF-16)を4文字ほど短縮した #include <stdio.h> FILE*i,*o;int l,p,t[]={0,192,224,240},r=65536;void P(int p){putc(p>>8,o);putc(p %256,o);}int main(int c,char**v){if(c>2&&(i=fopen(v[1],"r"))&&(o=fopen(v[2],"w" )))for(fputs("\xfe\xff",o);(c=getc(i))-EOF;(p-=r)>=0?P(p/1024+55296),P(56320+p% 1024):P(p+r))for(p=c-t[l=(c&224)-192?(c&240)-224?(c&248)-240?0:3:2:1];l--;p=p<< 6|getc(i)%128);return i&&fclose(i),o&&fclose(o),o?0:!!fprintf(stderr,c<3?"usag\ e: %s input output\n":"fairu wo hirakenurupoaijanaika! itteyoshi!!\n",*v);} あと、俺以外の人が変数の型を省いて短縮するのはいいけど、 stderrを省いて実行時に落ちるようになるのはやめてくれ むしろ、落ちるくらいなら無駄なメッセージ出力を無くしてしまった方がいい
- 114 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 18:44:02 .net]
- 正直、セキュリティやデバッグ目的で冗長なコードを実装するのは
七行プログラミングとしてどうかと思うがな。 短縮よりも機能や安定性を優先しようと思えば、いくらでも出来るわけで。 七行未満になったなら、糞メッセージを表示するより不正なEOF判定でも入れておけ。
- 115 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 19:40:05 .net]
- 「〜はやめたほうがいい」
「〜はどうかと思う」 なんかは、自分のコードに反映させればいい。 規律と可能性は背反するものだし、正解はないだろう。
- 116 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 20:13:02 .net]
- 他人のオナニーに注文つけるのは無粋ってもんだ
- 117 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 19:40:42 .net]
- 今いいこと言った
- 118 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 21:42:56 .net]
- すげーオナニーを見せてくれるとうれしい!?
- 119 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 22:46:10 .net]
- 要は称えあってれば満足なんですね
mixiとかオススメ
- 120 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 22:53:57 .net]
- 卑屈なのが文面から滲み出てくるなあ
一種の言語調教なんだから楽しくやろうぜ?
- 121 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 23:14:10 .net]
- 他人にオナニー見せてるわけだからAV女優並にある程度注文つけられても仕方ないだろ。
- 122 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 00:41:23 .net]
- え?あいつらタダであんなことやってんの?
それtも>>121が金払ってくれるって話か?
- 123 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 05:10:32 .net]
- はいはい釣り釣り
- 124 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 01:40:38 .net]
- カッコの付け方やスペースの入れ方の違いで一生罵り合える人種に
注文付けるななんて中東を平和にするより無茶
- 125 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 16:31:11 .net]
- #include <windows.h>
void _(long*A,HWND B,int C,int D,int E){if(GetWindowRect(B,(RECT*)A),A[2]-=A[0 ]+=26,A[3]-=A[1]+=99,SetForegroundWindow(B)){}while(E>2?Sleep(E),keybd_event(( char)(C>2?E-C:C?88+C:160),0,3-2*D,0),!~(C-=D=!D)?E=0,1:1:(E-->0?SendMessage(B, 513+!E,E,((47+D*16)<<16)+20+C*16),1:++C-A[2]/16?SetCursorPos(A[0]+C*16,A[1]+D* 16),GetPixel(GetDC(0),0,0)==0xFFFFFF?E=2:1:++D-A[3]/16?C=-1:0)){}}void main(){ if(_((long*)malloc(16),FindWindow("マインスイーパ",0),5,1,93),exit(0),0){}}
- 126 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 16:58:54 .net]
- >>113
nurupo
- 127 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 17:05:54 .net]
- 少しだけ残るのね
- 128 名前:デフォルトの名無しさん [2008/08/14(木) 08:48:24 .net]
- NOP
NOP NOP NOP NOP NOP NOP
- 129 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 21:33:07 .net]
- HLT
- 130 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 10:45:58 .net]
- RDTSC
MOV ECX,EAX STI HLT RDTSC SUB EAX,ECX RET
- 131 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 13:16:23 .net]
- >>130
無意味な事を無駄なく実行するそのコードの有様に感動したw
- 132 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:41:07 .net]
- STIとHLT間のクロック数の計測?
何がすごいのかわからない(たぶん俺の知識がなくて)
- 133 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 15:33:55 .net]
- >>132
STIの後にHLTすると、割り込み許可状態で待機する。まぁOS作ってないと分からんわな。 つまりあれだ、アクセラレータか何かの設定をしたあとSleep(-1);して、 叩き起こされたところでその間に何クロック分の時間が経ったかを計算してるようなもん (しかし2GHzのマシンでさえ2秒強でオーバーフローする!)
- 134 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 22:27:39 .net]
- インラインアセンブラとかじゃ動かない?
- 135 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 00:10:56 .net]
- >>133
解説してくれたのにわるいが、それくらいはわかるんだ。 結局何がすごいの?
- 136 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 00:32:51 .net]
- >>135
あとは感性の問題だからあまり気にするな すごいと思う人がいれば、何も思わない人がいる。それだけだ
- 137 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 00:42:12 .net]
- 自作自演だったんだろ
突っ込んでやるなよ
- 138 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 02:42:01 .net]
- オーバーヘッドが少ないとか、そういう事じゃないの?
>>131の話からすると。
- 139 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 02:58:57 .net]
- >>134
インラインアセンブラだとHLTもSTIも無いだろうな。RDTSCもあるかどうか あなたがどんな特殊な/一般的な環境を持っているかは知らないけど。 >>135 明らかに無意味な事を無駄なく7行で表現するにはセンスが必要だと思うが 凄いとは思わんな
- 140 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 10:35:16 .net]
- >>139
> インラインアセンブラだとHLTもSTIも無いだろうな。RDTSCもあるかどうか それはない
- 141 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 11:59:07 .net]
- なかったらgasでコンパイルできない
- 142 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 12:31:25 .net]
- MSCのインラインアセンブラはDBとかの疑似命令に対応してなかったけどな
- 143 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 17:06:22 .net]
- アセンブラとインラインアセンブラの区別がつかない人が居るスレはここですか?
- 144 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 17:07:36 .net]
- インラインアセンブラにそれがなかったらgasでコンパイルできないのか、そうか
gasでコンパイルできないのか。
- 145 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 04:27:37 .net]
- っていうかインラインの命令って下請けのアセンブラに丸投げなんじゃないの?
- 146 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 10:25:21 .net]
- コンパイラによる。
GCCは丸投げするからなんでも通る。MSCは自前。
- 147 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 19:22:42 .net]
- 逆ポーランド記法な有理数電卓
入力は99文字まで、スタックの大きさは10まで もういじりたくないorz #include <stdio.h> typedef int I;abs(I);G(a,b){for(;b&&(a%=b)&&(b%=a););return abs(a+b);}I s[20],* p=s+20,*q=s+18,g;char f[100],*i=f;long strtol(I*,I**,I);main(){for(fgets(f,100, stdin);*i;++i)47<*i&&*i<58?*--p=1,*--p=strtol(i,&i,0),--i:*i-32&&*i-10?*i-47?*i -42?*i-45?*i-43?0:(p[2]=p[2]*p[1]+p[3]**p,p[3]*=p[1]):(p[2]=p[2]*p[1]-p[3]**p,p [3]*=p[1]):(p[2]*=*p,p[3]*=p[1]):(p[2]*=p[1],p[3]*=*p),(p+=2,g=G(*p,p[1]),p[1]< 0?g=-g:0,*p/=g,p[1]/=g):0;for(;p-q-2;q-=2)printf("%d/%d\t",*q,q[1]);puts("");}
- 148 名前:デフォルトの名無しさん [2008/09/10(水) 11:09:57 .net]
- #include<stdio.h>
#include<stdlib.h> G(a,b){for(;b?a%=b:0;)b%=a;return a+b;}int*v,*u,*r,s[20],*p=s+20,*q=s+18,g,f[25] ;char*i=f;main(c){for(fgets(f,100,stdin);c=*i;++i)47<c&&c<58?*--p=1,*--p=strtol( i,&i,0),--i:(v=p+1,r=p+2,u=p+3,c%=6)-2&&c-4?c-5?c?c-3?c-1||(*r=*r**v+*u**p,*u*=* v):(*r=*r**v-*u**p,*u*=*v):(p[2]*=*p,*u*=*v):(*r*=*v,*u*=*p),(p+=2,g=G(*p,*u),g* *u<0?g=-g:0,*p/=g,*u/=g):0;for(;p-q-2;q-=2)printf("%d/%d\t",*q,q[1]);puts("");} ↑適当に縮めてみました。gccで通るコードでよければ3・4行くらいで書けそうですね。
- 149 名前:デフォルトの名無しさん [2008/09/12(金) 02:01:15 .net]
- 7行では無い、2行コードですが7行スレへ行けと言われたので・・・
C/C++の宿題スレに書いたものをそのまま転載します。 [1] 授業単元:C/C++(.c/.cpp最小ファイルサイズを目指せ!!) [2] 問題文(含コード): int型のsin,cosテーブルを"sincos.cpp"というファイル名で出力 警告の有無は問わず。 コード:main.c<とりあえずココまで短くなりました> :以下コード f;i;main(){for(f=fopen("sincos.cpp","w");i<450;i++)fprintf(f,"%c%6d,%s",i%10? 32:9,(int)(sin(i*3.141592653589793/180)*65536),i%10<9?"": "\n");fclose(f);} これより短くせよ。但し、出力結果は同じになるように。 [3] 環境 [3.1] Windows [3.2] VisualStudio2005 [3.3] C/C++どちらでも可 ちなみにReleaseで.exeに出力しています。
- 150 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 04:41:15 .net]
- ちょうてけとー
f;i;main(x){for(f=fopen("sincos.cpp","w");i<450;i++)fprintf(f,"%c%6d,%s",i%10 ?32:9,x=sin(i*atan(1)/45)*65536,"\n"+(i%10<9));fclose(f);} あと、 もともとプロトタイプ宣言とか省いて 超コンパイラ依存なコードになってるんだから、 もうぶっちゃけfcloseも省いてよくね?
- 151 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 08:38:26 .net]
- >>150
宿題の相手までしてやる必要はないよ。 調子に乗った教えて君が増えたら困る。
- 152 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 09:06:53 .net]
- 流れブッタ切りですまんが、、、
#include<math.h> して M_PI 使ったほうが短いし、解り易いと思うんだ。
- 153 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:38:16 .net]
- #include<math.h>+M_PI
3.141592653589793 atan(1)*4 どうみてもincludeは長いです.
- 154 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:53:11 .net]
- 本当なら
#include<math.h>+atan(1)*4 なんじゃないの
- 155 名前:デフォルトの名無しさん [2008/09/12(金) 12:36:42 .net]
- 603 :デフォルトの名無しさん [↓] :2008/09/11(木) 19:55:20
>>595 う〜ん、直値は見なかったことにしよう kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7710.c
- 156 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 15:00:40 .net]
- __FILE__
- 157 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 15:26:38 .net]
- M_PIはプリプロセッサだから無理だけど
atanはリンカで無理やり打ち込める
- 158 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 18:44:32 .net]
- M_PIもプリプロセッサのオプションで…
- 159 名前:デフォルトの名無しさん [2008/09/12(金) 22:20:52 .net]
- atan(1)*4は気づかなかったw
ちなみにM_PIは #define _USE_MATH_DEFINES #include<math.h> M_PI ってなるから長い・・・
- 160 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 01:21:22 .net]
- そんなオプションが要るのか…w
Cは言語仕様と関係ない部分で挙動が変わりすぎて困るね。 C++なら普通におこられるだけだけど。
- 161 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 21:59:32 .net]
- オプションで、とか言い出したら /Dm=main() つけて、とかそういうことになっちゃう
- 162 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 22:34:06 .net]
- 有名どころでは
#include "/dev/tty" とか
- 163 名前:デフォルトの名無しさん [2008/09/22(月) 23:14:16 .net]
- >>162
目からウロコを射出した 昔の人は天才的なバカだな
- 164 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 23:42:30 .net]
- なるほどなー
「標準入力をコンパイルしたい時は /dev/tty を include しよう」 alohakun.blog7.fc2.com/blog-entry-460.html
- 165 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 20:45:02 .net]
- __FILE__ をうまく使ってファイル名でプログラム書くって技もあったような。
- 166 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:26:36 .net]
- 画期的すぎる
- 167 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 01:45:02 .net]
- みつけた。これだ。
www.ioccc.org/1993/lmfjyh.c > char*_=__FILE__; で、これのファイル名を(ダブルクォートも含めて)次のようにする。 ";main(){puts("Hello World!");}char*C=".c そうすると、 > char*_="";main(){puts("Hello World!");}char*C=".c"; とかになるわけだ。
- 168 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 03:31:23 .net]
- ファイル名に*が使えないOSでは[]とかか
- 169 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 06:15:54 .net]
- test
- 170 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 17:46:09 .net]
- #include <stdio.h>
#include <stdlib.h> #include <stdint.h> #define N 100 int main(int c,char**v){uintmax_t m=1,n=1,o=1,i,p;for(c=c>1?atoi(v[1]):10;c;--c ,o=n+=m+=n,putchar('\n'))for(putchar('0'+(p=o/m)),putchar('.'),i=1;i<N;++i)put\ char('0'+(p=(o=(o-p*m)*10)/m));return 0;}
- 171 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 05:59:01 .net]
- メインとは
「人生オワタ\(^o^)/」で 重大エラー
- 172 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 09:22:00 .net]
- >>170 何の結果を出しているのか解説キボンヌ
- 173 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 15:48:06 .net]
- これだろ。
ja.wikipedia.org/wiki/%E9%BB%84%E9%87%91%E6%AF%94
- 174 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 20:14:42 .net]
- #include <stdio.h>
#include <stdlib.h> #include <stdint.h> #define N 100 uintmax_t m=1,n=1,o=1,i;int main(int c,char**v){for(c=c>1?atoi(v[1]):10;c--;o=n +=m+=n)for(printf("\n%d.",o/m),i=1;i++<N;)o=(o-o/m*m)*10,printf("%d",o/m);retu\ rn 0;} あんまり変えずに縮めてみた。
- 175 名前:174 mailto:sage [2008/11/18(火) 20:16:54 .net]
- n+=m+=n;
この文の繰り返しでフィボナッチ数が生成されるのに感動をおぼえた。
|

|