1 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 09:02:39 ] 7行×79文字なら言語は問いません。 過去作品は、もしかしたら>>2-20 あたりに。 前スレ 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
313 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:18:47 ] #include <unistd.h> #include <fcntl.h> char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643" "134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46" "894449991335566116611; 113344 4445454;;;9998886664441111111",c[]="888888822" "2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422" "4224224224444";int x[99],d,i,j=32,k=8000,l=8;m(a,b,s){char r[4096];for(j=s;j\ --;)r[j]=(!(j%a)+!(j%b))*32;write(d,r,s);}main(){float s=110;while(j<99) x[j+\ +]=k/(s*=1.0595);d=open("/dev/dsp",2);for(i=0;a[i];m(x[a[i]],x[b[i]],60*c[i]- 96),++i);} >>312 もうちょっと 後はデータをファイルに持たせるとか…か
314 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:21:34 ] >>311-313 dsp1.cpp:7: error: expected constructor, destructor, or type conversion before '(' token dsp1.cpp:7: error: expected `,' or `;' before '(' token dsp1.cpp: In function `int main()': dsp1.cpp:7: warning: converting to `int' from `float' dsp1.cpp:10: error: `m' undeclared (first use this function) dsp1.cpp:10: error: (Each undeclared identifier is reported only once for each function it appears in.) dsp1.cpp:10:11: warning: no newline at end of file って、出る('A`)
315 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:25:41 ] m(a,b,s){ 多分、この書き方なんですけど、これってCでいいんですか?
316 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:31:09 ] >>284 に戻るけど… using System;using System.IO;class Program{static void Main(string[]args){try{ int i=int.Parse(args[1]);byte[]h=new byte[]{82,73,70,70,36,0,(byte)i,0,87,65, 86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,68,172,0,0,1,0,8,0,100,97,116 ,97,0,0,(byte)i,0};using(FileStream f=new FileStream(args[0],FileMode.Create)) {f.Write(h,0,44);h=new byte[i*65536];Random r=new Random(DateTime.Now.Second); r.NextBytes(h);f.Write(h,0,i*65536);}}catch{Console.Write("Error");}}} 使い方: hoge.exe savepath length 長さは(0〜255)*65536Bでつ。
317 名前:デフォルトの名無しさん [2007/01/28(日) 12:56:06 ] >>302 require"base64";require'zlib';require"Win32API";$o=Win32API.new("kernel32","B\ eep",%w(i i),'v');def b(x,y,z)(0...z/50).map{$o.call x,25;$o.call y,25}end;b= "eJybzHSYgYnhMdMOIMnPvISBBci+A2RPBpN5TN+AIhA2RPwt42GgiBZYfR6Y\nnMwE0uUNZnODSY\ iaHYwg9e1gMpMRZA6EDREHqQGxD4PVfIOqYWLwZFwCJiEm\n08NthYyqjGxAtiojSOQwAwcDAE8gP\ SA=\n";d=Zlib::Inflate.inflate(Base64.decode64(b)).unpack("S*");(0...d.size/3 ).map{|i|i*=3;b d[i],d[i+1],d[i+2]*100} ワーイ。rubyで、6行できたよー。
318 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 13:14:40 ] >>314 C++じゃなくてCで >>315 暗黙に int とみなされる
319 名前:デフォルトの名無しさん [2007/01/28(日) 13:38:54 ] >>318 なったよw
320 名前:デフォルトの名無しさん [2007/01/28(日) 13:41:13 ] >>313 データをファイルに持たせるのはルール違反
321 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 13:54:52 ] beep ついてねーよヽ(`Д´)ノウワァァン ということで cygwin 専用 beep エミュ。 音程が合わない時は BASE_FREQを適当に調整してください。 #include <windows.h> #include <stdio.h> #define BASE_FREQ8000 WINAPI BOOL Beep(DWORD freq, DWORD time){int t,tf,dt;static FILE *fp=0;if(!fp) fp=fopen("/dev/dsp","wb");if(!freq||freq>BASE_FREQ/2)tf=0x7fffffff;else tf= BASE_FREQ/2/freq;for(t=0;t<time*BASE_FREQ/1000;t++){dt=((t/tf))%2?127:0;fwrite (&dt,1,1,fp);}fflush(fp);return TRUE;}
322 名前:321 mailto:sage [2007/01/28(日) 14:31:09 ] 無駄が多すぎた。 #include <windows.h> #include <stdio.h> FILE *p;WINAPI BOOL Beep(DWORD f, DWORD m){int B=4000,t=0,g,d;p=p?p:fopen("/de" "v/dsp","wb");g=!f||f>B?(1<<31)-1:B/f;for(;t<m*B/500;t++){d=t/g%2?127:0;fwrite( &d,1,1,p);}fflush(p);return TRUE;}
323 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 16:23:05 ] Cの&& ||ってショートサーキット評価だっけ?
324 名前:デフォルトの名無しさん [2007/01/28(日) 16:26:07 ] そうだぜ
325 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 16:32:51 ] thx もう少し縮められそうだ
326 名前:305 mailto:sage [2007/01/28(日) 16:54:21 ] おー、なんか皆がんばっとる!('ω`*) 徹夜して作った甲斐がありました!
327 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:24:11 ] 標準入力からMMLを読んでビープで再生する A-G: 音符; R: 休符 (数値を後置して長さ, ドットを後置して付点) Tn: Tempo; Ln: Length On: Octave (n=0-7); >: Octave+; <: Octave- #include <stdio.h> #include <windows.h> int r,c,d,n,j,a,o=4,l=4,t=120,f[84],g[]={0,2,3,5,7,8,10};w(a){ungetc(a,stdin); }y(){return getchar();}float s=27.5;q(int*p){for(r=0;'0'<=(d=y())&&d<='9';)r=r *10+d-'0';w(d);r?*p=r:0;}main(){for(;j<84;j++,s*=1.0595)f[j]=s;while((c=y())!= EOF)c+=c<'a'||'z'<c?0:'A'-'a','A'<=c&&c<'H'||c=='R'?c-'R'?a=g[c-'A']+12*o,(d=y ())=='+'||d=='#'?a+=a!=83:d=='-'?a-=!!a:w(d):0,n=l,q(&n),j=120000*((d=y())-'.' ?w(d),2:3)/t/n,c-'R'?Beep(f[a],j):Sleep(j):c=='L'?q(&l):c=='O'?q(&o),o=o>7?7:o :c=='T'?q(&t):c=='>'?o+=o!=7:c=='<'?o-=!!o:0;}//9行47桁 俺の力ではこれ以上短くできない…orz
328 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:35:05 ] あら。一行78文字になってた #include <stdio.h> #include <windows.h> int r,c,d,n,j,a,o=4,l=4,t=120,f[84],g[]={0,2,3,5,7,8,10};w(a){ungetc(a,stdin);} y(){return getchar();}float s=27.5;q(int*p){for(r=0;'0'<=(d=y())&&d<='9';)r=r*\ 10+d-'0';w(d);r?*p=r:0;}main(){for(;j<84;j++,s*=1.0595)f[j]=s;while((c=y())!=E\ OF)c+=c<'a'||'z'<c?0:'A'-'a','A'<=c&&c<'H'||c=='R'?c-'R'?a=g[c-'A']+12*o,(d=y() )=='+'||d=='#'?a+=a!=83:d=='-'?a-=!!a:w(d):0,n=l,q(&n),j=120000*((d=y())-'.'?w( d),2:3)/t/n,c-'R'?Beep(f[a],j):Sleep(j):c=='L'?q(&l):c=='O'?q(&o),o=o>7?7:o:c== 'T'?q(&t):c=='>'?o+=o!=7:c=='<'?o-=!!o:0;}
329 名前:デフォルトの名無しさん [2007/01/28(日) 17:56:04 ] ソース解読するための 整形ツールって無いですか?
330 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:56:22 ] 時代が20年くらい巻き戻ったな、このスレ
331 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:56:33 ] GNU Indentは?
332 名前:デフォルトの名無しさん [2007/01/28(日) 18:31:01 ] >>331 いけました。サンクス
333 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 21:03:16 ] >>329 過去スレに7行のもあった希ガス
334 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 22:42:27 ] 'A' とかは数字の即値で書いたほうが短そう
335 名前:デフォルトの名無しさん [2007/01/28(日) 22:48:24 ] >>284 BSD系って君が言ったから OSXは、/dev/dspねぇ。。
336 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 22:50:04 ] >>334 上でも出てるがそりゃ邪道だ
337 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:04:34 ] >>335 多分あるよ。 FreeBSD5のカーネル付近から/dev/以下は自動的に作られるから。 ls -l /dev/dsp ってやってみて それでもnot foundならkldload snd_driverでカーネルにサウンドドライバロードさせてみて で、 ls -l /dev/dsp
338 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:19:02 ] >>336 そんなん言ったら数字とか英字の判断は、 C的にはisdigitとかisalphaを使うべきとこだよ。 >'0'<=(d=y())&&d<='9'; isdigit(d=y()); こっちのほうが圧倒的に短いし。
339 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:23:16 ] #includeディレクティブが一行食うから よほど文字種判別ばかりやってるコード じゃないと短くはならんでしょ
340 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:30:01 ] >>338 テレックスで用いられるようなアルファベットが連続していない文字コードを考慮すると 'A'<=c&&c<'H'||c=='R' は 'A'==c||'B'==c||'C'==c||'D'==c||'E'==c||'F'==c||'G'==c||'R'==c ないし !('A'-c||'B'-c||'C'-c||'D'-c||'E'-c||'F'-c||'G'-c||'R'-c) と書かないといけないのか。 流石にこのスレ的にはつらいな
341 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:31:26 ] !('A'-c&&'B'-c&&'C'-c&&'D'-c&&'E'-c&&'F'-c&&'G'-c&&'R'-c) だた
342 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:58:46 ] >>339 うちの環境だと #include<stdio.h> すれば問題なかった……っていうと、 これも邪道かなー。正しくは #include<ctype.h> だし。 どのみち環境に対して何の仮定もおかないで書くのはつらい。 mainでreturnしないのも本来問題あるわけだし。 まー、最終的には個人の裁量だから、この話題はヤメにしよう。宗教論争になりそうだ。
343 名前:デフォルトの名無しさん [2007/01/29(月) 00:15:11 ] print"第一数字(半角数字で入力してください):";i=gets.to_i;print"第二数字(半角数\ 字で入力してください):";j=gets.to_i;puts"\n足し算:%g + %g = %g"%[i,j,i+j],"引\ き算:%g - %g = %g"%[i,j,i-j],"掛け算:%g * %g = %g"%[i,j,i*j],"べき算:%g の %g\ 乗 = %g"%[i,j,i**j] ワーイ、rubyで4行、け言語できたよー。
344 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 03:05:51 ] >>343 毛言語とはまた怪訝な言語じゃの
345 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 13:22:28 ] めそ
346 名前:デフォルトの名無しさん [2007/01/29(月) 13:39:59 ] モキュ
347 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 08:57:38 ] 和音に挑戦しようと思ったんじゃが 乗り遅れたか
348 名前:デフォルトの名無しさん [2007/01/30(火) 11:13:16 ] キー押して音鳴らすようなの作れそうじゃね?
349 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 22:38:47 ] 今更ながら>>305 に感動
350 名前:305 mailto:sage [2007/02/01(木) 01:13:43 ] 本体部分を50バイト削減ー。 でもデータ作成に挫折った。キリのいいところまで入らない。 #include <windows.h> char a[]=" 747:7:@:@C@AC@ACCCCCC<7<7HFHLOMLJLMLHJCJCJLMOQOMLMOTOMHHLMOOHJLMOQ" "QTSQOOOOONMMMLLLJHGEGEC",b[]=" 747747:7:@:>@:>@>7542<7<7<<77<77>>>77 >7>>77 >>" ">77<<<777<7<<7:77755<<<55789:;<=>?@ABCCC>>>7 ",c[]="1822822822222222<<6666666" "62442642222426624422224222222266426622242642422222222222222222228";float f(i) {return i?f(i-1)*1.0595:55;}main(i,t){for(i=t=0;c[i]&&(t--||(t=c[++i]-*c));Be\ ep(f(b[i]-*b),40))Beep(f(a[i]-*a),40);}
351 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:18:38 ] (t--||(t=c[++i]-*c)って鼻から悪魔出ないか?
352 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:23:55 ] ||は副作用ぶった切るから大丈夫だよ
353 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:29:56 ] f()を数えてなかった……。訂正、10バイト削減。
354 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:30:37 ] >>351 --が前置演算子だと動かないね。
355 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:50:03 ] 本当に20年前に戻った気がするな・・・
356 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 03:11:00 ] >>351 鼻から悪魔が出る って表現気に入った
357 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 10:56:16 ] >>356 常套句。鼻から悪魔で検索してみろ
358 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 11:48:49 ] なるほど。生まれる前から言われてた言葉だったのか。 勉強になるなぁ。
359 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 12:03:57 ] 351は鼻から悪魔が出るんじゃないかな。
360 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 18:29:14 ] 出ないでない
361 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 18:30:34 ] 351なら出ても仕様違反ではないけどな
362 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 18:45:17 ] どこが悪いの?
363 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 18:52:07 ] >>361 > c[i]&&(t--||(t=c[++i]-*c)) ||はsequence pointだからt--とt=c[++i]-*cはこの順に値の変更が行われることが保証されてる
364 名前:305 mailto:sage [2007/02/01(木) 23:42:07 ] 副作用完了点とか意識してなかったわ('д`)
365 名前:デフォルトの名無しさん [2007/03/04(日) 18:06:55 ] int puts(const char*);int main(void){return puts("age")<0;}
366 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 18:12:19 ] かなりの趣味スレですね
367 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 18:19:55 ] ageるからには何かネタないの?
368 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 18:24:12 ] >>365 ネタもなしにあげとはずいぶんなおまーんこですね ↑この一文を解釈して動くプログラミング言語を作ってくれ
369 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 19:13:21 ] 宣言だけ書いとけば、使ったライブラリを勝手にリンクしてくれる、と解釈。 つまりincludeの省略か。 しかしそんなもん俺に作れるわきゃーない。
370 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 19:16:36 ] Cの話なら、#includeしなくても直にプロトタイプ宣言すれば済むじゃん?
371 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 21:44:22 ] (・д・)どのCの話だ?
372 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 21:53:15 ] #includeディレクティブとリンカがどのライブラリをリンクするかは関係ないでs
373 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 22:58:55 ] #DEFINE ネタもなしにあげとはずいぶんなおまーんこですね main(){return(0);}
374 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 23:02:34 ] このスレではreturnに括弧つけるのは許されないだろ、常識的に考えて…
375 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 04:16:30 ] って言うか生きてたんだなおまいら。
376 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 07:42:48 ] main関数でreturnしなかった場合、 戻り値は0になると決められているから、 return(0);は書く必要すらない。 -10文字
377 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 01:23:37 ] どんな処理系だそれは。 % cat test.c #include <stdio.h> main(void){printf("hello, world\n");} % gcc -ansi -pedantic test.c % ./a.exe hello, world % echo $? 13 それとも、言ってるのはこういう意味じゃない?
378 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 01:27:49 ] >>377 gcc -std=c99 -pedantic test.c
379 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 01:35:29 ] 99じゃしょうがないな
380 名前:デフォルトの名無しさん [2007/05/01(火) 07:42:12 ] age
381 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 15:53:57 ] WinMainって int WINAPI WinMain(HMODULE,HMODULE,LPSTR,int) これじゃだめなのかな bcc5.5.1とvc8.0では一応通ったんだけど
382 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 17:33:41 ] HINSTANCEもHMODULEも意味のない構造体へのポインタだから大丈夫だろ。
383 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 18:55:53 ] 全く問題ない
384 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 12:56:16 ] 動けばいいってんなら、HWNDでもいいし、void*でもいいだろ。
385 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:00:03 ] 綺麗に書くなんて下の下だな 短く書け。ただし環境依存するな。
386 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:05:28 ] >>385 長いし環境依存だし、しかも纏めようとしてる辺りが気に入らない (´・ω・`) で?
387 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:08:16 ] HWND環境依存じゃないだろ? 今手元にヘッダファイル無いけど…
388 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:16:48 ] 帰り値も 必要ないんじゃないのか?
389 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:19:25 ] main型の返り値に関しては微妙だな
390 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 14:20:55 ] HWNDとかいう時点で十分に環境依存な気がするんだが、これは言ったらダメか。
391 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 15:07:24 ] WinMainな時点でWindows前提なんだから議論の余地はないだろうが
392 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 15:14:24 ] (´・ω・`) で?
393 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:45:18 ] このスレでの環境依存というのはそういう意味ではなくて、 開発環境に依存するコードを書くなって事じゃないかな。 #includeなくても動く環境とか、main関数でreturnがいらない環境とか、 そういう環境もあるけど、それに依存するコードは駄目だよって意味じゃない?
394 名前:デフォルトの名無しさん [2007/05/02(水) 17:55:57 ] (д)゚ ゚
395 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 17:57:14 ] 結論を出す必要は無いんだよ。 思ったようにコード書けばいいじゃない。
396 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 18:16:13 ] 今までこのスレ(過去スレ含)に出てきたコードを見てると 修正を加えないとコンパイルさえ通らないのばかり よってセーフ
397 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 18:33:02 ] 大事なのは面白い事
398 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 20:34:19 ] アウトセーフ決めるのは自分だし。 その限界の中でどれだけ短く出来るかが面白い。
399 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 22:55:14 ] コンパイルが通らないようなのは全然駄目だと思うが、 全然駄目なのを発表するのは自由なんじゃないの? 多くの人に評価されたいなら、コンパイルくらい通して欲しいね
400 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 00:05:35 ] まぁ試した、というか動く処理系を明記して欲しいわな。
401 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 13:58:47 ] コメントも7行に入るんですか?
402 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 14:46:07 ] すみません あの #include<stdio.h> #include<windows.h> int a = 1; int main() { while(a) { printf("1〜8どうぞ\n0は終了\n---------"); scanf("%d", &a); switch(a) { case 1: ::Beep(262, 300);break; case 2: ::Beep(294, 300);break; case 3: ::Beep(330, 300);break; case 4: ::Beep(349, 300);break; case 5: ::Beep(392, 300);break; case 6: ::Beep(440, 300);break; case 7: ::Beep(494, 300);break; case 8: ::Beep(523, 300);break; } } return 0; } これ7行にするとコンパイルできないんですよ どうしたらいいですか?
403 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 14:58:40 ] その7行にしたほうのコードを見せなきゃわからんだろ
404 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 15:12:47 ] #include<stdio.h>#include<windows.h>int a = 1; int main(){ while(a){ printf("1〜8どうぞ\n0は終了\n---------");scanf("%d", &a);switch(a){ case 1: ::Beep(262, 300);break;case 2: ::Beep(294, 300);break; case 3: ::Beep(330, 300);break;case 4: ::Beep(349, 300);break; case 5: ::Beep(392, 300);break;case 6: ::Beep(440, 300);break; case 7: ::Beep(494, 300);break;case 8: ::Beep(523, 300);break;}}return 0;} >>402 をそのまま短くしたんですけどエラーがたくさんでるんですよ
405 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 15:14:24 ] 実になんと言うこともないがプリプロセッサはつなげられない #include<stdio.h> #include<windows.h> int a=1;int main(){while(a){printf("1〜8どうぞ\n0は終了\n---------" );scanf("%d",&a);switch(a){case 1:Beep(262,300);break;case 2:Beep (294,300);break;case 3:Beep(330,300);break;case 4:Beep(349,300); break;case 5:Beep(392,300);break;case 6:Beep(440,300);break;case 7: Beep(494,300);break;case 8:Beep(523,300);break;}}return 0;}
406 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 15:16:57 ] そうだったんですかっ! ありがとうございます。
407 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:14:08 ] #pragma warning(push, 0); #include <ntddk.h> #define F(f) KeServiceDescriptorTable->s[*(PULONG)((PUCHAR)f+1)] typedef struct{PVOID* s;PULONG c;ULONG t;PUCHAR a;}SDT;long (NTAPI *O)(HANDLE, long);extern SDT* KeServiceDescriptorTable;long NTAPI N(HANDLE h,long s){ DbgPrint("Exit%d",s);return O(h,s);}NTSYSAPI long NTAPI ZwTerminateProcess( HANDLE,long);void U(PDRIVER_OBJECT d){InterlockedExchange(&F(ZwTerminateProcess ),O);}long D(PDEVICE_OBJECT d,PIRP i){i->IoStatus.Status=0;IoCompleteRequest(i, 0);return 0;}long DriverEntry(PDRIVER_OBJECT d,PUNICODE_STRING r){int i;for(i=0 ;i<27;++i)d->MajorFunction[i]=D;d->DriverUnload=U;O=InterlockedExchange(&F( ZwTerminateProcess),N);return 0;} // 実行テスト環境 Win2k(build2195)SP4 // ビルド環境 WinXP VC8 + Windows DDK 3790.1830 -> Win2k Checked Build C_ASSERT(sizeof(SDT) == 16); // prgma pack(1)
408 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:14:41 ] 11行 orz 一応32bit Win2K(とたぶんXP)のNt(Zw)TerminateProcessをフクーするドライバ ビルドしてテストできる環境は少ないと思うから面白くないかもしれない ZwCloseとかのフックならntddk.hで宣言されてるので宣言文いらないし、 さらに環境を絞ったハードコードやら、アンインストール時に修復しない青画面直行OK仕様ならもっと削れる けど、この内容では俺にはもうむりぽ
409 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:23:52 ] #include<stdio.h> #define B 102400 typedef unsigned char y;unsigned char b[B];int e(FILE *fp,y *i,int m){int r,c; int x;x=0;while(x<m) {x=g(i,x,m,0xff,&r,&c);fputc(r,fp);fputc(c,fp);}return 0;} int g(y *i,int x,int m,int l,int *r,int *c){int p;p=x;*r=1;*c=i[p];p++; while(p<m && *c==i[p] && *r<l ) {p++;(*r)++;}return p;}int main(char *a[]){ FILE *_i,*_o;int i,c;_i=fopen(a[1],"rb");i=0;while(i<B && (c=fgetc(_i))!=EOF) { b[i]=c;i++;}fclose(_i);_o=fopen(a[2],"wb");e(_o,b,i);fclose(_o);} >>405 作った初心者ですが ハフマン法圧縮なんですけど作ってみました どうしてもあと1行減らす方法が思いつかないんですけどどうしたらいいと思いますか? 目が潰れそうです
410 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:34:09 ] 普通のプログラミングのときの習慣を忘れればいろいろ短くなる気が
411 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:40:00 ] B を const にすりゃ いけるんじゃないの?
412 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:10:04 ] #include<stdio.h> typedef unsigned char y;unsigned char b[102400];int e(FILE *fp,y *i,int m){ int r,c;int x;x=0;while(x<m) {x=g(i,x,m,0xff,&r,&c);fputc(r,fp);fputc(c,fp);} return 0;}int g(y *i,int x,int m,int l,int *r,int *c){int p;p=x;*r=1;*c=i[p]; p++;while(p<m && *c==i[p] && *r<l ) {p++;(*r)++;}return p;}int main(char *a[]) {FILE *x,*z;int i,c;x=fopen(a[1],"rb");i=0;while(i<102400 && (c=fgetc(x))!=EOF) { b[i]=c;i++;}fclose(x);z=fopen(a[2],"wb");e(z,b,i);fclose(z);} ちょっと短くなりました
413 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:29:25 ] 先ほどの>>409 の>>405 ではなく>>404 でした