1 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:55:25 ] あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。 【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう. ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク):() [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 【前スレ】 C/C++の宿題を片付けます 102代目 pc11.2ch.net/test/read.cgi/tech/1197132472/
453 名前:デフォルトの名無しさん [2008/01/22(火) 19:40:07 ] [1] 授業単元:プログラミングU [2] 問題文:任意の数(最大10個)の整数を入力した後、 それらの最小公倍数と最大公約数を関数内で求め、mainの中で表示プログラムを作成すること。 [ 3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン:Microsoft Visual Studio [3.3] 言語: C [4] 期限: 2008/1/25 [5] その他の制限:
454 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 20:40:54 ] >>452 ありがとうございました。 助かります!
455 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:03:49 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク):霰の計算 問題文 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5862.txt [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: (2008年1月23日12:00まで [5] その他の制限: 入出力と計算部分は関数化します。 よろしくお願いいたします。
456 名前:455 mailto:sage [2008/01/22(火) 21:08:18 ] すみません問題文が一部文字化けしていました。 誤 1?n?10000の範囲 ↓ 正 1≦n≦10000の範囲 です。宜しくお願いいたします。
457 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:29:23 ] 250を見ながら入力していったら c:\documents and settings\sano takumi\my documents\visual studio 2005\projects\san\san.cpp(26) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? と出たのですがこれはどういうことでしょうか?
458 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:30:05 ] >'#include "stdafx.h"' をソースに追加しましたか? してないならしろ。
459 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:30:53 ] 佐野拓海か?せめてあげる内容は少し確認してからにしろ。どんまい。
460 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:04:23 ] 特定しました
461 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:14:05 ] >>455 >ちなみに1<=n<=10000の範囲で一番大きなf(n)の値を返すnは871であり、 >f(871)=178である。 n = 6171, f(6171) = 261 じゃないの?
462 名前:デフォルトの名無しさん [2008/01/22(火) 22:24:47 ] 1:情報処理 [2]穴埋めです [3]わかんないです。 [3.1] (Windows) [3.2] lc-86? C-pad?: [3.3] C言語: [4] 期限: 2008/1/24
463 名前:デフォルトの名無しさん [2008/01/22(火) 22:25:56 ] 問2 4個の変数 a 整数 b 実数 c 精度の高い実数 d 文字 を宣言し、それぞれに 適当なデータを代入する。 そして次のように画面表示 するプログラム a の値は ... です b の値は ... です c の値は ... です d の値は ... です @$--------------------- [解答] #include <stdio.h> #include <conio.h> void main(){ getch(); }
464 名前:デフォルトの名無しさん [2008/01/22(火) 22:27:09 ] 37から229までの整数を加算し その結果を表示するプログラム @$--------------------- [解答] #include <stdio.h> #include <conio.h> void main(){ for( ) { } printf( ); getch(); }
465 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:30:03 ] 山下さんおつかれさまです
466 名前:デフォルトの名無しさん [2008/01/22(火) 22:33:08 ] x = 0 から出発し、x の値を 0.001 づつ増加させることを 繰り返し、x^2 + 7x - 1 の値 が初めて正となった時点で 繰り返しを終了し、そのときの x の値を表示するプログラム @$--------------------- [解答] #include <stdio.h> #include <conio.h> void main(){ while( ) { } printf( ); getch(); }
467 名前:デフォルトの名無しさん [2008/01/22(火) 22:33:51 ] キーボードから整数を入力させ その数を x に代入する。 x が 100 より大きいとき、 「入力した数は 100 より大きい」 と表示し、x が 100 以下のとき、 「入力した数は 100 以下です」 と表示するプログラム @$--------------------- [解答] #include <stdio.h> #include <conio.h> void main(){ getch(); }
468 名前:デフォルトの名無しさん [2008/01/22(火) 22:38:11 ] キーボードからアルファベットを1文字入力させ、それが「a」のとき、「a です」「b」のとき、「b です」 「c」のとき、「c です」「d」のとき、「d です」「e」のとき、「e です」 と表示し、それ以外のとき「a,b,c,d,e 以外の文字」と表示するプログラム @$--------------------- [解答] #include <stdio.h> #include <conio.h> void main(){ switch( ) { } getch(); }
469 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:40:01 ] 死ねカス
470 名前:デフォルトの名無しさん [2008/01/22(火) 22:40:12 ] 問10 縦 100m、横 120mのグランド がある。 縦横それぞれ同じ長さ x だけ 長くして面積が 13000u と なるようにしたい。 x を少数点以下1桁までの精度 で求めるプログラム。 @$--------------------- [解答] #include <stdio.h> #include <conio.h> void main(){ float x=0; while( ) { x = x + 0.01; } printf("縦横 %5.1f b広げればよい\n",x); getch(); }
471 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:42:01 ] >>462-470 問7 キーボードから実数を一つ入力させ、それを x に代入する。 x ≦ 100 のとき「A」、 100 < x ≦ 350 のとき「B」、 350 < x ≦ 600 のとき「C」、 600 < x のとき「D」と表示するプログラム 問8 1 + 4 + 9 + 16 + ・・・と加えて行き、 和が初めて 10000を超えたとき、 その和の値、および最後に加えた数を求めて表示するプログラム 問9 次に書かれた数の総和を求め、結果を表示するプログラム: 1 1+2 1+2+3 1+2+3+4 ・ ・ ・ 1+2+3+4+5+・・・+ 10
472 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:48:04 ] >>463 ,464,466,477 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5863.txt 丸投げスレだから問題丸投げはいい。でも>>1 に長いならうpろだ使えってかいてあるよね?
473 名前:455 mailto:sage [2008/01/22(火) 22:52:54 ] >>461 さん 問題文をそのまま記述したのですが、そうなりますかね? でも私には判断できないです....。
474 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:54:16 ] >>473 おそらく1〜1000の書き間違いだろ 気にするな
475 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:56:31 ] >>473 1から1000までの範囲にしといた #include <stdio.h> #define N 300 int f(int); int k=0,array[N]={0}; int main(void) { int n,a,b=0,c; for(n=1;n<=1000;n++) { a=f(n);k=0; if(a>b) { b=a; c=n; } } printf("%d %d\n\n",c,f(c)); for(n=0;n<=b;n++) printf("%d ",array[n]); return 0; } int f(int n) { array[k++]=n; if(n==1) return k-1; if(n%2==0) f(n/2); else f(3*n+1); }
476 名前:472 mailto:sage [2008/01/22(火) 23:01:36 ] >>472 の安価>>477 は>>467 の間違い >>468 ,470,471 >>471 の問9に関して題意が不明確なのでこっちで勝手に解釈した。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5864.txt >>472 含めすべてのプログラムの動作未確認、コンパイルもしていない。 間違ってたらごめんちゃい。
477 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:06:23 ] 兄です。KRDで弟がお世話になっています。特定しましたんでヨロシク!
478 名前:461 mailto:sage [2008/01/22(火) 23:08:43 ] >>473 >>474 が言ってるように、1〜1000なら正しい。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5865.txt
479 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:11:57 ] Lets to the best today! マジで?
480 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:17:31 ] >>470 #include <stdio.h> #include <conio.h> #include <math.h> void main(){ float x=0; while(0) { x = x + 0.01; } x=floor((-110+10*sqrt(131.0))*10+0.5)/10; printf("縦横 %5.1f b広げればよい\n",x); getch(); }
481 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:20:33 ] 明日もビジネスマナー研修頑張ってください by兄
482 名前:455 mailto:sage [2008/01/22(火) 23:28:36 ] すみませんでした!私の書き間違いでした。 1≦n≦10000の範囲で大きな関数を求めることは正しいのですが、 ちなみに〜の下りの問題文の方では皆さんのおっしゃる通り 「1≦n≦1000の範囲」においてはnは871でした。 >>474 さん よく確認してから記述するよう以後気を付けます。すみませんでした。 >>475 さん>>478 さん ありがとうございます!今自分でもプログラムを組んでいたのですが、 教えて頂いたプログラムを参考にして正しく実行できました。 本当に助かりました。
483 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:45:52 ] >>480 x = -110 + sqrt(13100);
484 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:55:24 ] >>483 >>480 さんの、顔に、泥を、塗るな!!!!。
485 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:56:56 ] >>484 なんで、そんな、しゃべり方、なの?
486 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 00:22:45 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5868.txt [3] 環境 [3.1] OS:windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:1/25 [5] その他の制限:なし よろしくお願いします
487 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 00:28:45 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5869.txt [3.1] OS:windows [3.2] コンパイラ名とバージョン:visual studio 2005 [3.3] 言語:C [4] 期限:1月25日 [5] その他の制限: どなたかよろしくお願いします
488 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 00:36:44 ] [1] 授業単元: プログラミング入門 [2] 問題文(含コード&リンク): コマンドラインから入力された文字列に小文字のアルファベット が含まれていた場合は全て大文字に変換し、文字列を昇順にソー トして表示するプログラムを作成して下さい パラメータ文字列が2つ以上入力されなかった場合には、エラー メッセージうぃ表示して終了させて下さい sample One usage : sample STRING1 STRING2 [STRING3 ... ] sample matsui ichiro ** String data ** matsui ichiro ** Changed string ** ICHIRO MATSUI sample sample1 sample2 sample3 ** String data ** sample3 sample2 sample1 ** Changed string ** SAMPLE1 SAMPLE2 SAMPLE3 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:Visual C++ 2005 [3.3] 言語: C [4] 期限:1月24日 お願いしますm(_ _)m
489 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 00:53:53 ] >>487 #include<stdio.h> #define MAX 5 int main(){ int a[MAX]={1},i,j; for(i=1;i<=30;i++){ for(j=0;j<MAX;j++) a[j]*=i; for(j=0;j<MAX-1;j++) a[j+1]+=a[j]/10000000, a[j]%=10000000; } for(i=0;i<MAX;i++) printf("%08d",a[MAX-i-1]); printf("\n"); return 0; }
490 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 01:10:09 ] 【時間切れ】 (1/22) >335 【未解決問題】 >>488 1/24 >>404 1/25 >>453 1/25 >>486 1/25 >>395 1/27 23:59 pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31 >79 無期限 >144 無期限 問題文>148
491 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 01:11:10 ] >>490 まとめおつん
492 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 01:16:21 ] >>487 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5871.txt
493 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 04:03:32 ] >>488 #include <stdio.h> #include <ctype.h> #include <stdlib.h> #include <string.h> int cmp( const void * l, const void * r ) { return strcmp( *((char **)l), *(( char **)r) ); } int main( int argc, char **args ) { int i; if ( argc < 3 ) { fprintf( stderr, "usage: sample STRING1 STRING2 [STRING3 ... ]\n" ); exit( 1 ) ; } argc --; args ++; puts( "** String data **" ); for ( i = 0; i < argc; ++i ) puts( args[ i ] ); puts( "** Changed string **" ); qsort( args, argc, sizeof( char * ), cmp ); for ( i = 0; i < argc; ++i ) { char *p; for ( p = args[ i ]; *p != '\0'; ++p ) putchar( toupper( *p ) ); puts(""); } return 0; }
494 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 04:48:22 ] >>453 #include <stdio.h> #define N 10 int get_gcd( int m, int n ) { return ( m < n ) ? get_gcd( n, m ) : ( n == 0 ) ? m : ( m % n == 0 ) ? n : get_gcd( n, m % n ); } int get_lcm( int m, int n ) { return ( m == 0 || n == 0) ? 0 : m * n / get_gcd( m, n ); } int main( int argc, char ** args ) { int nums[ N ] = {0}, i, l, gcd, lcm; puts( "input numbers. " ); for ( i = 0; i < N; ++i ) { scanf( "%d", &nums[ i ] ); if ( nums[ i ] < 1 ) { break ; } } l = i; gcd = lcm = nums[ 0 ]; for ( i = 1; i < l; ++i ) { gcd = get_gcd( gcd, nums[ i ] ); lcm = get_lcm( lcm, nums[ i ] ); } for ( i = 0; i < l; ++i ) { printf( "%d ", nums[ i ] ); } printf( "\nLCM:%d, GCD:%d\n", lcm, gcd ); return 0; } 10個入れるか,0以下の数を入れるかで入力をやめるようにしてみた
495 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 07:36:23 ] >>486 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5872.c
496 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 10:23:18 ] [1] 授業単元:プログラミング [2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5873.txt このプログラムを実行すると1つのxにつき100個の誤差付きのyが出てくるので それぞれのxにおけるyの平均値(=(狽凵j/100)を求めたい [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン:Visual C++ [3.3] 言語: C [4] 期限: 2008/1/24 [5] その他の制限: よろしくお願いします
497 名前:デフォルトの名無しさん [2008/01/23(水) 11:29:13 ] #include <stdio.h> #include <stdlib.h> void fileread(int,char *); void filewrite(int,char *); int main(int argc ,char *argv) { if(argc!=3){ printf("次回から引数を入力してください\n"); return 0; } fileread(argc,argv); filewrite(argc,argv); return 0; } void fileread(int argc,char *argv){ FILE *fp; char *buffer; fpos_t start_fpos; int filesize; if(!strcmp(argv[2],"r")){ fp=fopen(argv[1],"r"); fgetpos(fp,&start_fpos);
498 名前:デフォルトの名無しさん [2008/01/23(水) 11:29:44 ] fseek(fp,0,SEEK_END); filesize=ftell(fp); fsetpos(fp,&start_fpos); buffer=(char *)malloc(sizeof(char)*filesize); while(fgets(buffer,filesize,fp))printf("%s",buffer); free(buffer); } } void filewrite(int argc,char *argv){ FILE *fp; char *buffer,*stock; int buffer_size=1000,count=0; if(!strcmp(argv[2],"w")){ fp=fopen(argv[1],"w"); buffer=(char *)malloc(sizeof(char)*buffer_size); while(fgets(buffer,buffer_size,stdin)){ count++; stock=realloc(buffer,sizeof(char)*count); sscanf(buffer,&stock[count-1]); } fputs(stock,fp); free(buffer); } fclose(fp); }
499 名前:497 [2008/01/23(水) 11:33:24 ] >497-498 コンパイルエラーが出ます。 passing argument 1 of ‘fopen’ makes pointer from integer without a cast fopenの箇所が整数値を吐き出してるのだとは分かるのですが、 どう修正していいのか理解できません。ご教授ください。
500 名前:390 mailto:sage [2008/01/23(水) 11:53:55 ] >>437 大変参考になりました、ありがとう御座います。 strcmp()とstrcpy()については授業でそれを教えたから とにかくそれを使わせて習得させるという方針っぽいです。 構造体structも次回の講義で始めて習うという初歩っぷりですので 基礎的な部分から稚拙さが漂ってくるのかもしれませんが… structの勉強もできて非常にためになりました、多謝です
501 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 12:04:02 ] >>497 スレ違い. main( int argc, char * argv ) ;じゃなくて main( int argc, char * argv[] ) ; void fileread(int argc,char *argv) じゃなくて void fileread(int argc,char *argv[]) にしないと
502 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 12:38:41 ] >>496 #include <stdio.h> int main(int argc, char *argv[]) { int i, j; double x, y, sum; char buf[100]; FILE *fp; if (argc != 2) return 1; fp = fopen(argv[1], "r"); if (fp == NULL) return 1; for (i = 0, sum = 0.0; i <= 10; i++) { for (j = 0; j < 100; j++) { fgets(buf, sizeof(buf), fp); sscanf(buf, "%lf %lf\n", &x, &y); sum += y; } printf("%lf\t%lf\n", x, sum/100); } return 0; }
503 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 12:55:40 ] >>501 馬鹿発見。スレ違いと言う点には同意するので、どこら辺が馬鹿なのかは割愛。
504 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:13:10 ] >>503 501じゃないけど解説求む
505 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:15:49 ] そこだけ変えても意味がないってことだろ。根本的に作りがおかしいんだから。
506 名前:デフォルトの名無しさん [2008/01/23(水) 13:40:59 ] >>494 ありがとうございます。 因みにLCMが最大公約数でGCMが最小公倍数なんですかね?
507 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:42:12 ] >>506 いいえ。
508 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:42:41 ] >>506 lcm と gcd でググれば何の略か分かる
509 名前:デフォルトの名無しさん mailto:sage!=501 [2008/01/23(水) 16:17:14 ] >>503 fopenの引数が間違ってる、という説明に留めろという理解でよろしい? 確かに、 >main( int argc, char * argv ) ;じゃなくて >main( int argc, char * argv[] ) ; というのは先走り感が否めないが。
510 名前:395 mailto:sage [2008/01/23(水) 16:29:49 ] >>444 argument error と出てしまいます
511 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 16:33:20 ] プログラム実行時に data.txt を後に加えて実行すればおk
512 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 17:55:25 ] [1] 授業単元:プログラム入門 [2] 問題文:2つあるので下に書いていきます [3] 環境 [3.1] OS:Windows [3.2] gcc 3.4 [3.3] 言語:C [4] 期限: 明後日 1.0から1000までの数を1行に10個ずつカンマ区切りで表示する。 末尾にはカンマを加えない。 実行例 0,1,2,3,4,5,6,7,8,9 10,11〜〜〜〜 〜〜〜〜〜〜998,999 1000 2.文字列を入力して、その文字列の中にアルファベットと数字をそれぞれカウントして結果を表示する。 実行例 入力して:nurupo ga!!!!1111 アルファベットは8文字 数字は4文字 それ以外は4文字 2つも出してしまい、申し訳ないですがかなり切羽詰ってます。 プログラムに関しては先月始めたばかりで初心者中の初心者です、なのでそこまで難しいことは習ってないと思います。 ですが分からないのでお力を貸してください。
513 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:01:12 ] >>512 スペースは普通その他だろ
514 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:04:17 ] >>513 すいません、見落としてました。スペースもそれ以外に追加します。
515 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:34:24 ] >>512 #include<stdio.h> int main(void){ int i; for(i=0;i<=1000;i++){ if(i%10==0) printf("%d", i); else printf(",%d", i); if((i+1)%10==0) printf("\n"); } return 0; } #include<stdio.h> #include<ctype.h> int main(void){ char buf[256]; int i, alphanum=0, digitnum=0, othernum=0; printf("入力して:"); fgets(buf, sizeof(buf), stdin); for(i=0;buf[i]!='\0';i++){ if(isalpha(buf[i])) alphanum++; else if(isdigit(buf[i])) digitnum++; else othernum++; } printf("アルファベットは%d文字\n", alphanum); printf("数字は%d文字\n", digitnum); printf("それ以外は%d文字\n", othernum); return 0; }
516 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:41:40 ] >>515 >for(i=0;buf[i]!='\n';i++){ の方がいいかもNE!
517 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 18:48:57 ] >>515 、516 ありがとうございます。 今、外なんで家に帰ってから実行してみようと思います。
518 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 19:01:42 ] [1] 授業単元: C言語 [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5874.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:visual studio 2005 [3.3] 言語: C言語 [4] 期限: 今日中です。。。 [5] その他:長くてめんどくさいかもしれませんが、どうかよろしくお願い致します。
519 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 19:22:42 ] 1] C言語 [2] 台形公式を用いて∫0^2 √4-x^2 の近似値を求めるプログラミングを作成しなさい [3] 環境 [3.1] OS: Linux [3.3] 言語: (C言語 [4] 期限:明日 [5] その他の制限: お願いします
520 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 19:32:49 ] >>519 #include <iostream.h> void main(){cout << "どう見ても0です << endl;}
521 名前:デフォルトの名無しさん [2008/01/23(水) 20:47:29 ] >>519 #include <stdio.h> #include <math.h> #define E 0.00001 double TrapMethod(double (*f)(double), double a, double b, double e) { if (fabs(b - a) < e) return 0.5 * (f(a) + f(b)) * fabs(b - a); else { double t = 0.5 * fabs(b - a); return TrapMethod(f, a, a + t, e) + TrapMethod(f, a + t, b, e); } } double func(double x) { return sqrt(4 - x * x); } int main(void) { printf("%.10f\n", TrapMethod(func, 0.0, 2.0, E)); return 0; }
522 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 20:54:30 ] >>487 つ265252859812191058636308480000000
523 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 23:41:10 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5879.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:1/26 [5] その他の制限:特になし よろしくおねがいします
524 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 23:44:04 ] [1] 授業単元:C言語 [2] 問題文:ファイル中の文字数,単語数,行数をカウントするプログラムを作成せよ。 単語の切れ目はアルファベット以外の文字、行の終わりは改行文字またはファイルの終端とします。 この課題のソースファイルで動作確認しなさい。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:1/25 [5] その他の制限:特になし お願いします
525 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 23:53:51 ] >>523 #include <stdio.h> int main(void) { int i, j, n, num[] = {1000, 500, 100, 50, 10, 5, 1}; char roman[] = "MDCLXVI"; while(1) { printf("Input integer (0 quit) ====>"); scanf("%d", &n); if(n==0) break; printf("%d ====> ", n); for(i=0; n; i++) { int c = n / num[i]; for(j=0; j<c; j++) putchar(roman[i]); n %= num[i]; } putchar('\n'); } return 0; }
526 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:10:52 ] >>523 繰り返しでやってみた kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5881.txt
527 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:12:42 ] 去年と同じ問題だw
528 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:18:31 ] >>524 適当 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5882.txt
529 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:27:37 ] >>524 ミスあった >>528 修正 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5883.txt
530 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:31:13 ] >>526 勘違いしてたから修正 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5884.txt
531 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:45:02 ] [1] 授業単元:cprograming2 [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5885.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:VC 6.0 [3.3] 言語:C [4] 期限:2008/1/25 am 0:00 [5] その他の制限: 特に無し よろしくお願いします
532 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:31:43 ] 【時間切れ】 (1/23) >518 【未解決問題】 >>531 1/25 0:00 >>404 1/25 pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31 >79 無期限 >144 無期限 問題文>148
533 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:38:17 ] >>529 なんで、そんなに括弧で囲む必要があるんだい?
534 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:39:28 ] >>518 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5887.c すでに時間切れ 且つ なぜかリスト構造を使ってしまったけど、一応動いたのでうp
535 名前:デフォルトの名無しさん [2008/01/24(木) 01:39:57 ] [1] 授業単元:アルゴリズム2 [2] 問題文 最小全域木問題 で以下のコメント文の e[i] を、e[t[0]], ..., e[t[k - 1]]に加えても閉路ができない をどうやって書くのか分かりません。トレースの問題で躓いてしまいます。 プログラムが分かればトレース出来そうなのでよろしくお願いします。 void mst(int i, int k, int weight) { if (k == n - 1) { if (weight < best_weight) { best_weight = weight; 配列 best_tree に t をコピー; } } else if (i <= m) { if (e[i] を、e[t[0]], ..., e[t[k - 1]]に加えても閉路ができない){ t[k] = i; mst(i + 1, k + 1, weight + w[i]); } mst(i + 1, k, weight); } } [4] 期限:1/24 9am test..!
536 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:46:51 ] 一応情報はランダムにこんな感じで与えられます。 これをどう利用して記述して求めているのかが分かりません。 辺の番号 1 2 3 4 5 6 7 8 9 10 11 12 端点1 4 3 1 2 4 6 1 8 5 6 7 5 端点2 6 7 5 3 5 1 2 4 4 2 8 2 重み 9 16 13 8 7 12 10 5 11 15 4 2
537 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:56:17 ] >>533 データ(変数)を尊重し、できるだけそのデータが使われるときに、宣言し使う。 こうすることで、必要のないデータを他のブロックで誤って書き換えられることを防いでいる。 いわゆる、データ指向プログラミング。 >>529 fclose忘れてるな。別にいいけど。
538 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:05:12 ] >>534 ありがとうございます!!!
539 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:42:42 ] >>529 >>537 {NULL};が気になる。普通{0}じゃね?残りは0で埋められるわけだし。 NULLだとアドレスかと思ってしまうな まぁ実用上はまったく問題ないと思うけど
540 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:43:52 ] >>535 配列eのメンバがわからないことには何とも言えない。 つーか、ソースうp。
541 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:54:33 ] スイマセン 再うp。 まず、バックトラックによって、グラフGの最小全域木を求める 次のようなアルゴリズムを考えます。ここで、n はGの 頂点数、m は辺の数で、e[i] (i = 1, ..., m) はGのi番目の 辺を表し、w[i] はその重み(正整数)を表すものとします。 また、int 型の配列 t と best_tree は大域変数であるとします。 void mst(int i, int k, int weight) { if (k == n - 1) { if (weight < best_weight) { best_weight = weight; 配列 best_tree に t をコピー; } } else if (i <= m) { if (e[i] を、e[t[0]], ..., e[t[k - 1]]に加えても閉路ができない){ t[k] = i; mst(i + 1, k + 1, weight + w[i]); } mst(i + 1, k, weight); } } 関数mstへの呼び出しと戻りを「イベント」と呼ぶことにします。 n = 8, m = 12 であり、Gの頂点が 1, 2, ..., n であって、 Gの m 本の辺の各端点と重みが次のように与えられるとします。 辺の番号 1 2 3 4 5 6 7 8 9 10 11 12 端点1 6 7 5 4 3 1 6 7 8 4 5 2 端点2 7 5 4 3 1 2 4 3 6 8 3 8 重み 14 11 15 12 4 9 6 16 8 7 10 2
542 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 03:36:47 ] >>537 そこまでするならサブルーチン化した方がいいような気もするが。読みづらいしな。
543 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 04:12:22 ] >>531 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5888.txt ヘロンの公式は使ってないけど。眠い。
544 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 04:17:09 ] >>531 純粋な興味として聞きたいんだが、どうして座標が整数値で与えられているのにヘロンの公式を使うんだろう。
545 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 04:36:59 ] >>543 ちょ、間違ってる。
546 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 08:21:22 ] [1] 授業単元:C入門 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5876.txt [3] 環境 [3.1] OS:XP [3.2] コンパイラ名とバージョン:study C [3.3] 言語:C [4] 期限:今日の15時 [5] その他の制限:入門科目なので簡単なコードでお願いします。
547 名前:デフォルトの名無しさん [2008/01/24(木) 10:54:30 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):0<N <100,000,000の整数を入力したとき、Nの素因数分解結果を出力するプログラムを作成せよ。 [3.1] OS:XP [3.2] コンパイラ名とバージョン:bcc [3.3] 言語:C++ [4] 期限:1/25 15時 [5] その他の制限: 2から √Nまでの素数について、小さい順にNを割ってみて割り切れたらその素数aはNの素因数である。 割り算の結果N1についてa から √N1 までの素数について小さい順にN1を割り切れたらその素数b も Nの素数である。以上を割り算の結果Nxが素数になるまで繰り返す。Nx もNの素因数である。 ということを使ってやれと言われました。 簡単なコードでお願いします。
548 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 10:56:22 ] >>546 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5889.txt 入力チェックはしてない。
549 名前:デフォルトの名無しさん [2008/01/24(木) 11:24:20 ] q
550 名前:546 mailto:sage [2008/01/24(木) 12:25:04 ] >>548 助かりした 無事単位を取得できそうです ありがとうございました!
551 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 12:35:11 ] 単位wwwどんだけしょぼい大学だよ
552 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 13:04:35 ] 大学行ってないから基準が分からないんだね。
553 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 13:06:27 ] 本来なら大学は自分で勉強するべきとか考えないとすれば 90分×14回 = 21時間 だから、無理もない たったの二日で何が習得出来るって話だ
554 名前:548 mailto:sage [2008/01/24(木) 13:14:10 ] >>550 これで単位か・・・羨ましいような羨ましくないような。 >>547 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5891.txt
555 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:09:37 ] >>502 ちょっと解説してもらえませんか?
556 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:43:55 ] >>555 回答した本人じゃないが、 for (i = 0, sum = 0.0; i <= 10; i++) { for (i = 0, sum = 0.0; i <= 10; i++, sum=0.0) { にすれば問題ないのでは?
557 名前:デフォルトの名無しさん [2008/01/24(木) 15:30:11 ] >>550 ちょっWwおまWw どこの大学だよ それで単位認定って 笑った
558 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:33:44 ] 文系が理系をちょっとかじるようなゼミだとそんなもんじゃね?
559 名前:デフォルトの名無しさん [2008/01/24(木) 15:40:41 ] 【質問テンプレ】 [1] 授業単元:CG [2] 問題文(含コード&リンク):対戦型シューティングゲームを作ったんですけど、 もう1つのポットから、玉が出ないんです。どうしたら、出るようになるんでしょうか? 教えてください。あと、当たり判定も作ったんですが、これよりもっといいプログラムは ありますか? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5893.c [3] 環境 [3.1] OS: UNIX [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: Cで書いてあります [4] 期限: 今日の18時まで [5] その他の制限:なし
560 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:42:32 ] >>559 よくあるのはベクトルのノルムで判定する方法
561 名前:デフォルトの名無しさん [2008/01/24(木) 15:43:21 ] [1] 授業単元: プログラミング [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5892.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:BCC [3.3] 言語:C [4] 期限: 今日中 [5] その他の制限:特にないです。。。 お願いします。
562 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 16:51:24 ] >>561 ファイルに書き出すときのテキストのフォーマットは?
563 名前:デフォルトの名無しさん [2008/01/24(木) 18:13:49 ] >>562 txt形式でお願いします。
564 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 18:46:30 ] >>563 CSVとかそういうのを聞きたいんだと思うよ。 >>561 CSVにした。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5895.zip
565 名前:548 mailto:sage [2008/01/24(木) 18:47:07 ] >>561 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5894.txt
566 名前:548 mailto:sage [2008/01/24(木) 18:51:31 ] >>565 をちょっと修正。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5896.txt
567 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:03:53 ] >>564 >>565 ありがとうございます!
568 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:12:25 ] >>561 出遅れたけど載せておく kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5897.txt
569 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:23:16 ] >>568 ありがとうございます!本当に助かります。
570 名前:548 mailto:sage [2008/01/24(木) 19:40:44 ] >>566 にもミスがあったorz ex11_2.c内の24行目 誤)p = &pmemb[count]; 正)p = &pmemb[count++]; 度々申し訳ない。
571 名前:デフォルトの名無しさん [2008/01/25(金) 00:22:36 ] [1] 授業単元:プログラミング基礎 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5899.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2008年1月28日まで [5] その他の制限:配列まで習いました。 よろしくお願いします。
572 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 00:27:56 ] [1] 授業単元:データ構造 [2] 問題文(含コード&リンク): ソートに関する問題です。詳細は↓ ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5900.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VC 6 [3.3] 言語:C [4] 期限:1/31まで [5] その他の制限:なし よろしくお願いします。
573 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 02:08:46 ] >>571 入力されうる最大の値はないのかい? > (* ここに解答を書き加える *) って、他の場所に全く手を加えてはいけないのか分からないよ。 sqrt()のためにmath.hを入れたが、それ以外他の場所には記述を加えずに書いてみた。 割り切れるかのループを回すところで素数以外でも計算してるのが無駄だが、1000000以下の素数を列挙するのに10秒程度。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5901.txt
574 名前:573 mailto:sage [2008/01/25(金) 02:18:08 ] 無駄な部分があった。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5902.txt
575 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 02:35:02 ] 【時間切れ】 (1/24) >404 >535 >559 【未解決問題】 pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31 >>572 1/31 >79 無期限 >144 無期限 問題文>148
576 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 04:29:08 ] >>572 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5903.txt
577 名前:ラッセン沖縄 [2008/01/25(金) 05:16:32 ] [1]授業単元 プログラミングB [2]問題文 次の仕様を満たし、入力例の通りにして実行でき、更に、出力例の通りに出力されるようなCプログラムを作成せよ。(出力の空白や桁数にも留意せよ。) 仕様 三角形の底辺と高さ入力し、その面積を求める。 入力例 Z:\>(kadai) (カッコ内を 底辺=(3.0) 入力する)高さ=(4.5) 出力例* ----+----|----+----|----+----|----+----|----+----| 底辺=3.000, 高さ=4.500 面積=6.7500 (*目盛りは桁を示すためのもの。プログラムで出力するのではない。) [3]期限1/25 14時まで 急いでいます! よろしくお願いします。
578 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 07:18:51 ] [1] 授業単元: C言語 [2] 問題文: 今年のカレンダーを表示させる [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:visual studio 2005 [3.3] 言語: C言語 [4] 期限: 明日まで [5] 意味のある定数はマクロ define文 途中でreturn exit 外部変数は使わない。 ヨロシクお願いします
579 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 11:55:44 ] [1] 問題文: ボンバーマンが格子状(1ブロック1辺20m、マップは縦横それぞれ100ブロック)のマップを爆弾を避けてゴールまでたどり着き、その時間を計算し表示するプログラムを作りなさい。 爆弾の位置座標は既知であり、ボンバーマンの速度は4m/sとする。 [2] 環境 [2.1] OS: Windows [2.2] コンパイラ名とバージョン: Visual Studio [2.3] 言語: C++ [3] 期限: 2008年1月28日まで [4] その他の制限:無し 自分では全く手が出ませんでした…orz 先輩方のお力添えを頂ければ幸いです! 宜しくお願い致します( ´・ω・`)
580 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 12:03:46 ] 再度申し訳ありません。 スタート時にルートを決定するのではなく、ブロック毎に曲がれるか判断するみたいです。あとなるべく早くゴールにたどり着かないとダメみたいです(>_<)
581 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 12:16:56 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):短いのでここに書きます。 (1) wavファイルを解析し、音声データを読むためのプログラムを作成せよ。 (2) 音声データを半分に縮め、変換させるプログラムを書け。 (3) 音声データを反転させるプログラムをかけ。 [3] 環境 [3.1] OS: Linux [3.2] gcc [3.3] 言語: C [4] 期限: 2008年1月28日午前9時まで [5] その他の制限: 特にありません。 C初心者なので、どう手をつけたらいいのか全くイメージできません。 皆様方のご協力をお願いいたしますm(_ _)m なにとぞよろしくお願いいたします。
582 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 12:22:47 ] >>404 期限が切れてしまってますが、どなたかよろしくお願いします。
583 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 13:21:55 ] >>>>578 #include<stdio.h> int main(void){ int year, month, day, week, tmpm, tmpy, i; int daymax[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; year = tmpy = 2008; month = tmpm = 1; day = 1; if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) daymax[1] = 29; if (tmpm < 3) { tmpy--; tmpm += 12; } week = (tmpy + tmpy/4 - tmpy/100 + tmpy/400 + (13*tmpm+8)/5 + day) % 7; for(; month <= 12; day++, week++){ if(week == 7) week = 0; if(day == 1){ printf("\n***** %04d / %2d *****\n", year, month); for(i=0; i < week; i++) printf(" "); } printf(" %2d", day); if(day == daymax[month-1]){ putchar('\n'); day = 0; month += 1; continue; } if(week == 6) putchar('\n'); } return 0; }
584 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 14:56:31 ] >>582 その書き込みの50分後、 mixiの宿題スレに全く同じ問題を貼った奴が居る。 開発環境と期限は違うが、もしかしてお前さんか?
585 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 15:26:40 ] >>579 C++っての見逃して、思いっきりCで書いてしまった ほかにもっとうまいやり方あったと思うけど、一応できたので参考程度に見てください kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5904.c
586 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 15:32:33 ] >>585 printf("\ntime = %d\n", (weight_map[BLOCKNUM-1][BLOCKNUM-1]+1) * 5) を printf("\ntime = %d\n", (weight_map[BLOCKNUM-1][BLOCKNUM-1]) * 5) に修正してください
587 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 16:06:30 ] [1] 授業単元:C++プログラミング [2] 問題文: (処理の中身ではなく、ファイルの読み込みに関してなのですが) 1. フォルダ内に複数存在する "***.dat"(***は数字ではない)を読み込んでそれぞれについて同じ処理を行なう。 2. 処理の中でそれぞれのファイル名(***)とその処理結果(これは2つの数値です)をまとめて別の1つのファイルに出力する。 3. フォルダ内の全ての "***.dat" について処理し終わったらプログラムを終了する。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ:Visual Studio 2005 [3.3] 言語:C++ [4] 期限:1/28 AM10:00 上のようなことがしたいのですが、いい方法が思いつきません… どなたかよろしくお願いします。
588 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 16:22:49 ] コマンドラインからhoge *.datとでも入力して、 好きなように繰り返しをすればいい ここは丸投げスレなんだからもっと具体的に書け
589 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 17:38:07 ] >>588 ファイルは"(生徒の名前).dat"となっていて各教科のテストの点が書かれているのでそれを合計し 1つのファイルに全員の分を"生徒の名前:合計点 \n"みたいな感じで出力したいのですが、 おっしゃっている「コマンドラインから〜」というやり方がわからないんです。 すいません
590 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 18:29:04 ] >>589 #include <iostream> #include <fstream> void main(int argc, char *argv[]) { std::ofstream output( "output.dat" ); for(int i=1; i<argc; i++){ //argv[i]を読み込んで名前と合計点をoutputに書き出す。格納形式が分からんから書けん } cout << "オワタ" << endl; } 実行ファイルをhoge.exeとするとコマンドラインから hoge.exe *.dat と入力すればよい
591 名前:587,589 mailto:sage [2008/01/25(金) 19:04:28 ] >>590 >>588 をみて同じようなことをしたのですが、 Output.dat には "* : 0" としか出力されないんです… コマンドラインでワイルドカード使うために何か特別な作業が必要だったりしますか?
592 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 19:12:38 ] ファイルの書式も書かずに・・・
593 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 19:25:42 ] inputファイルには、"国語: 74"みたいに "(教科名):(半角スペース)(数値)"というのが7行ならんでいます。 すいません。
594 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 19:38:38 ] >>591 #include <stdio.h> int main(int argc, char *argv[]) { int i; for(i = 1; i < argc; i++) printf("%s\n", argv[i]); return 0; } これでも a.exe *.dat *.dat とかになる?
595 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 20:45:43 ] そもそもwinで実行引数にワイルドカードで一括指定ってできたっけ?
596 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 20:52:30 ] 標準ではできる。シェルによって対応がまちまちだからなあ
597 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 20:54:23 ] あと、>>587 は引数の形でなしにプログラム内でディレクトリを掘って探すのが題意かもね。指定されてないけど
598 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 20:59:39 ] >>596 そうだったか、それならワイルドカードで指定する際に カレントディレクトリに該当ファイル置いてないとかかね。
599 名前:デフォルトの名無しさん [2008/01/25(金) 21:54:47 ] @アルゴリズムとデータ構造 Aパズルの世界では、1 から 9 までの数字を 1 個ずつすべて使った数字(たとえば、123456789 とか 321654987)を 小町数 と呼ぶ。1 から 9 までの数字を順番に並べ、 数字の間に演算記号をつけて計算結果が 100 になるような計算式を求めることを 小町算 という。 加算と減算のみからなる小町算の解は、下記のようになる。 12-3-4+5-6+7+89 = 100 123-4-5-6-7+8-9 = 100 123-45-67+89 = 100 123+4-5+67-89 = 100 123+45-67+8-9 = 100 12+3-4+5+67+8+9 = 100 12+3+4+5-6-7+89 = 100 1+23-4+56+7+8+9 = 100 1+23-4+5+6+78-9 = 100 1+2+3-4+5+6+78+9 = 100 1+2+34-5+67-8+9 = 100 9から1までの数を降順に並べ、加算と減算のみで計算式を構成し、計算結果が 0 になるものを全て求めよ。 9 □ 8 □ 7 □ 6 □ 5 □ 4 □ 3 □ 2 □ 1 = 0 上の問題を解くプログラムを作成しなさい。 3、 3,1 windows 2 gcc 3 C 4、明日の午後8時まで 5、特にないです。 よろしくお願いします^
600 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 22:20:15 ] >>262 です 遅れてすいませんやっと発言ができました(プロバがアク禁食らってました) 本当に感謝ですー ありがとうございました!
601 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 22:47:19 ] >>599 ソフ開試験の午後1問5に同じ問題がある ttp://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2007h19_1/2007h19h_sw_pm1_qs.pdf ttp://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2007h19_1/2007h19h_sw_pm1_ans.pdf
602 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 22:54:45 ] >>599 int main(void) { puts("98+7-65-43+2+1"); puts("98-76+5+4-32+1"); puts("98-7-6-54-32+1"); puts("9+8+7+6+5-4-32+1"); puts("9+8+7+6-54+3+21"); puts("9+8-76-5+43+21"); puts("9-87+6+54-3+21"); return 0; }
603 名前:デフォルトの名無しさん [2008/01/25(金) 23:11:16 ] [1] 授業単元: C言語 [2] 問題:関数 f は f=√x * √(1 - 2.5 * 10^-5 * x^2)で表される。 xの初期値4.0から0.5刻みで20.0まで変化させたときの xとfの値をExcelに出力せよ。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: Visual C++ 2005 [3.3] 言語: C [4] 期限: 2008年1月27日 [1] 授業単元: C言語 [5] その他の制限:出力はcsvファイル可。
604 名前:591 mailto:sage [2008/01/25(金) 23:30:58 ] >>594 そのプログラムでやってみても *.dat となりますね・・・ >>598 のせいだ!と思ったので、.exeのあるディレクトリに .datを全部移してみたのですが、 それでも結果は変わらなかったです。 これはもう手書きで1個1個ファイル指定していくしかないんでしょうか・・・
605 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 23:32:43 ] カレントディレクトリの意味分かってるか? 一度exeのあるパスまでcdコマンドで移動してから実行しないとダメだぞ。
606 名前:591 mailto:sage [2008/01/25(金) 23:42:57 ] あ、それはさすがに・・・。 すいません
607 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 23:44:26 ] >>599 #include<stdio.h> int calc(char *str){ int ret=0, value, idx; while(sscanf(str, "%d%n", &value, &idx)>0){ ret+=value; str+=idx; } return ret; } char *top(char *str){ while(*--str); return str+1; } void check(char *work, int depth){ if(depth<=0){ *work='\0'; if(calc(top(work))==0) puts(top(work)); return; } *work++='0'+depth; if(depth>1){ *work='+';check(work+1, depth-1); *work='-';check(work+1, depth-1); } check(work, depth-1); } int main(void){ char str[20]=""; check(str+1, 9); return 0; }
608 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 23:54:23 ] >>584 mixiはやっていないので、私ではないです。
609 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 23:58:54 ] >>591 Windows のコマンドプロンプトはワイルドカードを展開しないようだ 解決案 1.コマンドプロンプトで動作するシェル(bash とか)を一段かませる 2.実行ファイルのスタートアップルーチンでワイルドカードを展開するコンパイラ(ライブラリ)を使う 3.dir /b の結果を実行ファイルに渡す 4.自力でファイル検索ルーチンを作る 5.手作業でやる
610 名前:591 mailto:sage [2008/01/26(土) 00:13:33 ] >>609 そうですか。 わかりました。 1,2,4は今の自分には荷が重そうなので とりあえず "dir /b > temp.dat" で temp.dat を読ませる感じにしようかと思います。 ありがとうございます。 他の方もありがとうございました。
611 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 00:46:38 ] 【時間切れ】 (1/25) >577 【未解決問題】 >>603 1/27 >>581 1/28 9:00 pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31 >79 無期限 >144 無期限 問題文>148 >404 期限切れだがやって欲しい
612 名前:599 mailto:sage [2008/01/26(土) 01:18:08 ] >>601 本当ですね。参考にします。 >>607 非常に助かりました。ありがとうございます^^
613 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 01:18:46 ] >>599 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5905.txt
614 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 02:15:02 ] [1] 授業単元:プログラミング [2] 問題文 3問あります kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5908.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:Visual C++ 2005 [3.3] 言語: C [4] 期限: 1月28日 午前8時まで [5] その他の制限:特にないですが 考察も書かないといけないので何をやっているか軽い注訳をつけてくれるとありがたいです(これはなくても構いません)
615 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 02:22:27 ] >>614 課題1と課題2は現行スレで見た気がするぞ。
616 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 02:37:23 ] >>615 本当ですか? ちょっと探してみます レス番のあてつけとか出来ませんか
617 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 03:07:10 ] >>404 つくりかけで忘れていた。もう見れたもんじゃない。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5909.zip
618 名前:478 mailto:sage [2008/01/26(土) 03:18:22 ] >>616 それぐらい自分で探してくれ・・・と言いたい所だが、 自分がうpした課題1だけ。
619 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 03:20:41 ] >>618 本当にありがとうございます(´;ω;`)
620 名前:デフォルトの名無しさん [2008/01/26(土) 08:00:09 ] 前スレの231と同じ+αなのですが、落ちちゃって見れません、再度お願いできませんでしょうか?お願いしますorz 問題下[1]プログラミングU [2] (1) 次の学生の成績表を元に,出力結果のように合計点と平均点を出力するプログラムを作成せよ。ただし,for文を使うこと。 (成績表) 学籍番号 5001 5002 5003 数学 62 45 76 英語 75 65 93 国語 54 82 63 (出力結果) 数学の合計点=177点,数学の平均点=59.0点 英語の合計点=233点,英語の平均点=77.7点 国語の合計点=199点,国語の平均点=66.3点 (2) (1)で作成したプログラムを元に,学生別の合計点を出力するプログラムを作成せよ (出力結果) 学籍番号5001の合計点は,191点です。 学籍番号5002の合計点は,192点です。 学籍番号5003の合計点は,226点です。
621 名前:デフォルトの名無しさん [2008/01/26(土) 08:02:59 ] (3) (1)で作成したプログラムを元に,科目別の最高得点を表示するプログラムを作成せよ。 (出力結果) 数学の最高得点は70点です。 英語の最高得点は93点です。 国語の最高得点は82点です (4) (1)で作成したプログラムを元に,70点以上を得点した学生の人数を科目別に表示するプログラムを作成せよ。 (出力結果) 数学:1人 英語:2人 国語:1人 (5) (1)で作製したプログラムを元に、出力結果をユーザ関数を使って表示するプログラムを作成せよ。 (ユーザ関数の概要) main()関数から成績データを渡し、そのデータを(1)の(出力結果)どおりに表示する。 また、ユーザ関数はhyouji()とする。 (6) (1)で作製したプログラムを元に、次の構造体をつかって(出力結果)を表示するプログラムを作成せよ。 (構造体) typedef struct{ int no; int suugaku; int eigo; int kokugo; }seiseki;
622 名前:デフォルトの名無しさん [2008/01/26(土) 08:05:18 ] [3]環境 [3.1]XP [3.2]visual studio 2005 [3.3]C++ [4]今日中 [5]なし sageソコね、長文申し訳ないです、期間も短いので、困難かもしれませんが出来る限りでいいのでお願いできませんか?
623 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 08:06:33 ] 最後までsage損ねてる俺ばっかす・・・すいませんでしたorz
624 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 09:07:17 ] >>614 B #include <stdio.h> #include <math.h> main(int argc,char *argv[]) { int point,i=0; double x,y,old_x,old_y,distance=0.0; char line[1000]; FILE *fp; if(argc!=2){ printf("Usage: %s <filename>\n",argv[0]); exit(1); } if((fp=fopen(argv[1],"r"))==NULL){ printf("file can't open.\n"); exit(1); } while(fgets(line,999,fp)!=NULL){ if(sscanf(line,"%lf %lf",&x,&y)==1){ point=x;//データが1つしかない=点の数なのでpointに代入 continue; } if(i==0){ old_x=x; old_y=y; }//初回は以前の点がないので同じにする distance+=sqrt(((x-old_x)*(x-old_x))+((y-old_y)*(y-old_y)));//2点間の距離の公式 old_x=x; old_y=y;//前回座標の保存 i++; } printf("point = %d distance = %lf\n",point,distance); } 前回の点から今回の点まで移動した距離の合算でいいんだよね?
625 名前:デフォルトの名無しさん [2008/01/26(土) 12:05:11 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5910.zip kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5911.zip [3] 環境 [3.1] OS:windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:1/26 [5] その他の制限:なし 分かりません、よろしくお願いします。
626 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 12:40:18 ] zipの場合は簡単に説明を書いてくれ 落として解凍するのダルいし
627 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 12:55:02 ] なぜzipなんだ・・・やる気うせる ウィルス恐いよ〜・゚・(つД`)・゚・。
628 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:17:54 ] ウィルス恐いよ〜(笑)
629 名前:625 [2008/01/26(土) 13:37:03 ] 内容は点電荷の電位を計算して、電荷の分布と電位の関係を求めるとありました。 もしかしたらこんな課題やらせるようなスレじゃなかったりして(汗) ZIPは安心して、ウィルスなんかないから(´∀`)
630 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:38:13 ] 俺は電磁気学は興味ないからやってないしな。 力学なら余裕なんだがすまんね
631 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:40:10 ] >>624 そうです、ありがとうございました
632 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:55:33 ] 電磁気しらんで方程式くそくらえ、電磁気のラウンド微分はどうし様
633 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:57:47 ] へん微分と数論は違うんだからね、ふん
634 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:31:59 ] (´∀`)
635 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:47:17 ] X+とX++の違いをわかる奴は天才だろ
636 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:49:25 ] バグを作らないグループとバグをツクリヤスイグループってあるわ、人のいうこと聞かない
637 名前:デフォルトの名無しさん [2008/01/26(土) 15:31:15 ] [1] 授業単元:離散数学 [2] 問題文(含コード&リンク): 格子点上に置かれた任意の4点を結ぶ最小の直線スタイナーツリーを見つけるプログラムを作成せよ。 候補が複数ある場合は、それらを全て表示させるようにさせよ。 [3.1] OS:XP [3.2] コンパイラ名とバージョン:bcc [3.3] 言語:C [4] 期限:2/7 [5] その他の制限: 直線スタイナー木とは、碁盤上の縦横の線の交点に点を置き、 置いた全ての点を、碁盤の直線に沿って作る線分によって結ぶネットワークの事です。 例 www.dotup.org/uploda/www.dotup.org2826.jpg.html 閉路(ある点を出て、またその点に帰ってくる道がある状態)を作ってはいけません。 その直線スタイナー木の中で、最も距離の短いものを探せというものです。 もちろん、答えは複数候補ある場合が圧倒的に多いです。 とりあえず、自分で4点の座標を適当に置いてやれ、という事です。 どんなに泥臭い方法でも構わないので、ご協力お願いします。
638 名前:579 mailto:sage [2008/01/26(土) 16:00:26 ] >>585 さん 本当にありがとうございます!
639 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:06:02 ] [1] 授業単元:プログラミング論 [2] 問題文(含コード&リンク): <問題1> 1からnまで加算して、その和が1000を超えるのはnがいくつのときか。 また、そのときの合計はいくつになるか。 <問題2> 1から30までの整数の中から奇数だけを取り出して配列に格納し、 その合計を求めるプログラムを作れ。 <問題3> 10個のデータをキーボードから入力し、合計を求めるプログラム を作れ。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:LCC-Win32 [3.3] 言語:C [4] 期限:2/5 [5] その他の制限:なし お願いします。
640 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:26:34 ] おまいら、マジデ、ノードが増えたら手におえなくなるという答えを期待している先生を 裏切るんだな
641 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:41:54 ] >>639 問題1 #include <stdio.h> int main(void) { int i, sum; for(i=sum=0;sum<=1000;sum+=++i); printf("%d, %d\n", i, sum); return 0; }
642 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:43:18 ] まあ動的計画法でも使うんだろうな。
643 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:56:39 ] >>639 2 #include <stdio.h> int main(void) { int odd[30/2+30%2] = {0}, n, i; for(i=n=0;n<=30;++n) { if(1 == n%2) { odd[i++] = n; } } for(i=n=0;i<sizeof(odd)/sizeof(int); ++i) { n+=odd[i]; } printf("%d¥n", n); return 0; }
644 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:58:50 ] ちなみにodd eyeなのは狙ってやった。
645 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 17:08:39 ] そこでORアルゴリズム
646 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 19:07:34 ] >>620 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5913.txt 組んだ後にC++だと気づいたorz なんでCだけど・・・一応うpしておきます。
647 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 19:58:08 ] >>639 <問題3> 整数限定で。 #include <stdio.h> #include <limits.h> int main(void) { int sum=0, i; char sz[LINE_MAX]; const char * psz; for(i=1; i<=10;) { while(1) { printf("input %d:", i); if(fgets(sz, sizeof(sz), stdin)) { int nTmp = strtol(sz, &psz, 10); if('¥n' == *psz && sz != psz) { sum += atol(sz); ++i; break; } } printf("error¥n"); } } printf("sum = %d¥n", sum); return 0; }
648 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 19:59:40 ] すまん、パッチ。 - sum += atol(sz); + sum += nTmp;
649 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 23:26:00 ] >>637 出力フォーマットが分からないと何とも。 あと入力されうる点の上下限値は示されてないのか。 4点からの最短共有点を列挙するプログラムを書いたので好きに変えてくれ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5914.txt 入力フォーマットは雰囲気で把握してくれ。
650 名前:デフォルトの名無しさん [2008/01/27(日) 00:11:26 ] [1] デジタル画像処理 [2] 直線補間法を用いて、[256x256]画素の画像を、[512x512]画素の画像になるよう 拡大するプログラムの作成 [3.1] Linux [3.2] gcc [3.3] C言語 [4] 明後日までです 制限はないです! お願いします。
651 名前:デフォルトの名無しさん [2008/01/27(日) 00:12:38 ] [1] デジタル画像処理 [2] 直線補間法を用いて、[256x256]画素の画像を、[512x512]画素の画像になるよう 拡大するプログラムの作成 [3.1] Linux [3.2] gcc [3.3] C言語 [4] 明後日までです 制限はないです! お願いします。
652 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 00:32:44 ] 【時間切れ】 (1/26) >625 【未解決問題】 >>603 1/27 >>614 1/28 8:00 残:課題2 >>581 1/28 9:00 >>650 1/29 pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31 >79 無期限 >144 無期限 問題文>148
653 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:28:32 ] >>603 #include <stdio.h> #include <math.h> double f(double x) { return sqrt(x)*sqrt(1.0-2.5e-5*x*x); } main() { double x; FILE *fp; if((fp=fopen("dat.csv","w"))==NULL){ printf("file can't open\n"); exit(1); } fprintf(fp,"x,f\n"); for(x=4.0;x<=20.0;x=x+0.5){ fprintf(fp,"%lf,%lf\n",x,f(x)); } fclose(fp); }
654 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:11:07 ] >>583 スイマセン、ポインタも使わないという条件を書くのを 忘れていました。 もう一度お願いしてもいいでしょうか?
655 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:15:38 ] >>654 条件後付けして再度やってくれって・・・。 つか、”ちゃんとソース見た"のか?
656 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:16:43 ] >>654 #include<stdio.h> int main(void){ int year, month, day, week, tmpm, tmpy, i; int daymax[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; year = tmpy = 2008; month = tmpm = 1; day = 1; if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) daymax[1] = 29; if (tmpm < 3) { tmpy--; tmpm += 12; } week = (tmpy + tmpy/4 - tmpy/100 + tmpy/400 + (13*tmpm+8)/5 + day) % 7; for(; month <= 12; day++, week++){ if(week == 7) week = 0; if(day == 1){ printf("\n***** %04d / %2d *****\n", year, month); for(i=0; i < week; i++) printf(" "); } printf(" %2d", day); if(day == daymax[month-1]){ putchar('\n'); day = 0; month += 1; continue; } if(week == 6) putchar('\n'); } return 0; }
657 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:27:44 ] ワロタ
658 名前:デフォルトの名無しさん [2008/01/27(日) 17:23:15 ] >>581 (1)の問題のみ www.aki7.com/cgi/up/file/whakei.zip
659 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:56:42 ] OS Mac言語C言語 課題 13.3 キーボードから 5 個の英単語を入力し、辞書順に並べ替えて表示するプログラムを作成せ 但し、 ? main関数内で単語を入力し、並び替える作業を関数 Sort 内で行なう ? 関数 Sortは戻り値がなく、入力した配列 wordを引数に持つ ? 結果の表示は main関数内で行なう ? 完全に辞書順にするのは難しいため、1 文字目のみを見て並び変えれば良いものとする ? 入力する単語は apple、peach、banana、grape、melonとせよ 自分で製作したのですが、無理でした。 基本これに、似た形を作ってもらって。 間違えも指摘してください。 #include<stdio.h> #define N 5 void Sort(char input[][]); main() { int i; char array[N[6];
660 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:58:01 ] printf("Input %d numbers\n", N); for(i=0; i<N; i++) { printf("array[%d] = ", i); scanf("%s", (array+i)); } Sort(array); printf("Sort result.\n"); for(i=0; i<N; i++) { printf("array[%d] = %s\n", i, array[i]); } } void Sort(char input[][]) { int i, j; char temp; for(i=1; i<N; i++) { for(j=N-1; j>=i; j--) { if(input[j-1][0] > input[j][0]) { temp = input[j-1]; input[j-1] = input[j]; input[j] = temp; } } } }
661 名前:デフォルトの名無しさん [2008/01/27(日) 18:32:35 ] >>583 ってポインタ使ってないよね?
662 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:55:05 ] >>656 printf()って、引き数にポインタをとるんですよね? ポインタを使わないでくださいって書いているんですけど読めないんですか?
663 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:55:54 ] >>659 >間違えも指摘してください。 「間違え」ではなくて、「間違い」ですね。
664 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:08:53 ] 一次配列の中身をランダムに置換して更に、それを 逆置換するプログラムを教えてください。 ある係数を渡すことで毎回同じ並びになるようにして 暗号のように使えるようにしないといけないみたいです。 例えば「1」という係数を渡すと [3 2 4 1]を[2 4 1 3]にシャッフルして それをもう一度[3 2 4 1]に戻したいです
665 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:25:04 ] >>664 > 一次配列の中身をランダムに置換して更に、それを逆置換する ・一次配列って一次元配列ってこと? ・ランダムに置換の,「ランダムに」ってどの程度のことを言っているの?
666 名前:664 mailto:sage [2008/01/27(日) 19:36:22 ] >>665 すみません「元」が抜けてましたね。 ランダムがどの程度か…そこまで指定されてないんですが 簡単な規則性が無ければ良いと思います。
667 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:38:22 ] >>664 #include <stdio.h> #include <stdlib.h> #include <string.h> #define ARRAY_SIZE 32 void shift(int *p, int v) { int *buf = (int*)malloc(sizeof(int)*v+1); memcpy(buf, p, sizeof(int)*v); memmove(p, p+v, sizeof(int)*ARRAY_SIZE); memcpy(p+(ARRAY_SIZE-v), buf, sizeof(int)*v); } void print(int *p) { int i = 0; printf("array[%d] = {", ARRAY_SIZE); do { printf("%d", p[i]); } while (++i < ARRAY_SIZE && putchar(',')); printf("}\n"); } int main () { int i, in, array[ARRAY_SIZE]; for (i = 0; i < ARRAY_SIZE; ++i) array[i] = i; print(array); scanf("%d", &in); shift(array, in%=ARRAY_SIZE); print(array); shift(array, ARRAY_SIZE-in); print(array); return 0; }
668 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:39:11 ] 例の > [3 2 4 1]を[2 4 1 3]にシャッフルして これがモロ規則性あるからその通りに作った。
669 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:54:07 ] >>659 Sort関数内に printf("%d,%d\n",i,j); を追加して、ちゃんとソートが行われているかどうか確認するといい
670 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:03:38 ] >>664 #include<stdio.h> #include<stdlib.h> typedef struct tag_dataset{int index, data;}dataset_t; void swap_int(int *a, int *b){int c;c=*a;*a=*b;*b=c;} void swap_dataset(dataset_t *a, dataset_t *b){dataset_t c;c=*a;*a=*b;*b=c;} void encode(int data[], int datanum, int seed){ int i; srand(seed); for(i=0;i<datanum;i++) swap_int(&data[i], &data[rand()%(i+1)]); } void decode(int data[], int datanum, int seed){ int i; dataset_t *tmp; srand(seed); tmp=malloc(sizeof(*tmp)*datanum); for(i=0;i<datanum;i++) tmp[i].index=i; for(i=0;i<datanum;i++) swap_dataset(&tmp[i], &tmp[rand()%(i+1)]); for(i=0;i<datanum;i++) tmp[i].data=data[i]; for(i=0;i<datanum;i++) data[tmp[i].index]=tmp[i].data; free(tmp); } void prt(int data[], int datanum){ int i; for(i=0;i<datanum;i++) printf(" %d", data[i]); printf("\n"); } int main(void){ int data[]={1,2,3,4, 5, 6, 7, 8, 9, 10}, datanum=sizeof(data)/sizeof(data[0]); encode(data, datanum, 0); prt(data, datanum); /* 0 の部分が乱数seed */ decode(data, datanum, 0); prt(data, datanum); /* 0 の部分が乱数seed */ return 0; }
671 名前:581 mailto:sage [2008/01/27(日) 20:12:35 ] >>658 さん 解析サンプルまで付けてくださってありがとうございます(T_T) 本当に困っていたので助かりました!! これを元に(2)と(3)にも挑戦します・・・ でも期限には絶対間に合う予感がしない・・・orz
672 名前:670 mailto:sage [2008/01/27(日) 20:13:10 ] >>664 >>670 を書き直した #include<stdio.h> #include<stdlib.h> void swap(int *a, int *b){int c;c=*a;*a=*b;*b=c;} void encode(int data[], int datanum, int seed){ int i; srand(seed); for(i=0;i<datanum;i++) swap(&data[i], &data[rand()%(i+1)]); } void decode(int data[], int datanum, int seed){ int i, *tmp; srand(seed); tmp=malloc(sizeof(int)*datanum); for(i=0;i<datanum;i++) tmp[i]=rand()%(i+1); for(i=datanum-1;i>=0;i--) swap(&data[i], &data[tmp[i]]); free(tmp); } void prt(int data[], int datanum){ int i; for(i=0;i<datanum;i++) printf(" %d", data[i]); printf("\n"); } int main(void){ int data[]={1,2,3,4, 5, 6, 7, 8, 9, 10}; int datanum=sizeof(data)/sizeof(data[0]); encode(data, datanum, 0); /* 0 の部分が乱数seed */ prt(data, datanum); decode(data, datanum, 0); /* 0 の部分が乱数seed */ prt(data, datanum); return 0; }
673 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:13:23 ] [1] 授業単元: cプログラミング入門」 [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5918.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:c言語 [4] 期限:1/31まで [5] その他の制限;特になし どうかよろしくお願い致します。
674 名前:659 mailto:sage [2008/01/27(日) 20:14:55 ] 自分でもう一度やってみたけど。分けわからなくなってきた。 もう本当に無理っぽい。 誰か、答えを教えてください。
675 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:38:56 ] 死ねカス
676 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:53:40 ] [1] 授業単元:C言語演習 [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5919.txt [3.1] OS:Linux [3.2] コンパイラ名:gcc [3.3] 言語:C言語 [4] 期限:1月28日中 [5] その他の制限:特にありません。 よろしくお願いします!
677 名前: ◆LnG.2EAY0A mailto:sage [2008/01/27(日) 21:01:19 ] 【質問テンプレ】 [1] 授業単元:C言語 [2] 問題文(含コード&リンク):以下のゲームプログラムで、最初に設定する石の数を ファイル操作を使って一括設定できるようにする。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5920.txt [3] 環境 [3.1] OS:WindowsVista [3.2] コンパイラ名とバージョン:VC 6 [3.3] 言語:C [4] 期限:2008年01月28日午前まで [5] その他の制限:ファイル操作を習う所まで授業で進みました。 自分でも試行錯誤してみたのですが中々うまく行かず・・・ 皆さんの知恵をお借りしたいと思います、よろしくおねがいします。
678 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:08:28 ] >>659 ここは宿題スレだ。 組んで欲しいならテンプレ使って正式に頼め。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5921.txt ギャーギャー騒がれると目障りだし、これ持って去りな。
679 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:36:04 ] >>678 なんというツンデレw
680 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:55:48 ] >>676 showpidがおかしくないか? #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/wait.h> int main() { pid_t pid; int i, status, flg = 0; for (i = 0; i < 10; ++i) { if ((pid = fork()) < 0) { fprintf(stderr, "error\n"); exit(1); } if (pid == 0) { execv("showpid", NULL); exit(1); } else { if (flg == 0) { flg = 1; printf("I am a parent with pid = %d.My child is %d.\n",getpid(),pid); } waitpid(pid, &status, 0); } } return 0; }
681 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:57:02 ] ## showpid ## #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main() { printf("I am a child with pid = %d,My parent pid is %d.\n",getpid(),getppid()); exit(EXIT_SUCCESS); }
682 名前:664 mailto:sage [2008/01/27(日) 22:07:09 ] >>870 助かりました☆ ありがとうございます!
683 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:08:13 ] >>870 やるじゃん
684 名前:637 [2008/01/27(日) 22:08:40 ] >>649 ありがとうございます! あとはなんとかしてみようと思います。
685 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:16:07 ] 簡単なゲームを作れといわれたのですがわかりません 誰か助けてください
686 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:16:43 ] >>685 >>677
687 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:50:20 ] >>686 むつかしくてわかりません、もっと簡単なのお願いします ポーカーとかでいいです
688 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:52:28 ] >>687 頭は大丈夫か?
689 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:57:01 ] ポーカーの方がよっぽど難しい罠
690 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:00:12 ] >>687 まあ何も考えずに>>677 の問題文にあるソースをコピってコンパイルして動かしてみろ そして中身を理解しろ ポーカーはそれからだ
691 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:05:29 ] オセロ作るスレってのがあったな
692 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:06:59 ] >>676 当方で確認した環境は Vine Linux 4.2 (kernel 2.6.16.36), 処理系は gcc 3.3.6 です。 showpid; kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5922.txt tentimes: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5923.txt 関係ないが、 espio.air-nifty.com/espio/ によると、鳥インフルエンザがインドではやっているらしい。1400 人超えたとか超えないとか。 それにしても日本ではなぜ報道されないのか?
693 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:07:04 ] 釣りだろ
694 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:14:30 ] >>673 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5924.txt
695 名前:692 mailto:sage [2008/01/27(日) 23:21:19 ] >>680 確かに提示されたshowpidはおかしいですね。私もひっかかってしまった。
696 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 00:00:31 ] 【時間切れ】 (1/27) なし 【未解決問題】 >>614 1/28 8:00 残:課題2 >>581 1/28 9:00 残:課題2、3 >>677 1/28 午前まで >>650 1/29 pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31 >79 無期限 >144 無期限 問題文>148
697 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 01:05:26 ] オレも早くせっくるしたい、by20歳
698 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 02:54:34 ] >>614 (>>696 1行目) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5925.txt
699 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 03:04:20 ] [1] 授業単元:C演習 [2] 問題文(含コード&リンク): /*ガウスの消去法プログラム*/ #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<math.h> #define A(x,y) a[(x)*(L+1)+y] void output(double *a, int, int); int gauss(double*a,double*x,int L,int n,double eps,int isw) main(){ double amax,awap; int i,j,k,l,m,ii,irow; if(isw==1) output(a, L, n){ for(m=0;m<n-1;m++){ amax=fabs(A(m,m)); irow=m; for(i=m+1;i<n;i++){ if(amax<fabs(A(i,m))){ amax=fabs(A(i,m)); irow=i;} if(amax<=eps){ return(0);} if(m!=irow){ for(l=m;l<n+1;l++){ 続く [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: cresent [3.3] 言語: C++ [4] 期限: 1月28日11:00まで
700 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 03:18:16 ] >>699 見難い。 出直して来い。
701 名前:673 mailto:sage [2008/01/28(月) 07:23:48 ] <<694ありがとうございます!参考にします。
702 名前:デフォルトの名無しさん [2008/01/28(月) 10:56:13 ] [1] 授業単元:データ構造とアルゴリズム [2] 問題文(含コード&リンク): 配列に整数を100個蓄える。 (1)蓄える整数は関数randによって与えられるものとし、 この配列をバブルソートによってソートした結果を出力するプログラムを作成せよ。 (2)また、上の問題を選択ソートを使用したプログラムに変更せよ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 1月29日 よろしくお願いします
703 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 11:26:39 ] >>702 ありきたりで申し訳ないが #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 100 #define SWAP(type, x, y) do{type tmp = x; x = y; y = tmp;}while(0) // バブルソート void bsort(int *a, int n){ int i, j; for(i = 0; i < n - 1; i++) for(j = i + 1; j < n; j++) if(a[i] > a[j]) SWAP(int, a[i], a[j]); } // 選択ソート void ssort(int *a, int n){ int i, j, min; for(i = 0; i < n - 1; i++){ min = i; for(j = i + 1; j < n; j++) if(a[min] > a[j]) min = j; SWAP(int, a[i], a[min]); } } int main(void){ int i, a[N]; srand((unsigned)time(NULL)); for(i = 0; i < N; i++) a[i] = rand()%100; for(i = 0; i < N; i++) printf("%4d", a[i]); printf("\n"); bsort(a, N); // ssort(a, N); for(i = 0; i < N; i++) printf("%4d", a[i]); }
704 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 11:42:15 ] >>702 #include <stdio.h> #include <stdlib.h> #include <time.h> //バブルソート int main(void){ int i,j,num[100],temp; srand(time(NULL)); for(i=0;i<100;i++)num[i]=rand(); for(i=99;i>0;i--){ for(j=0;j<i;j++) if(num[j]>num[j+1]){ temp=num[j]; num[j]=num[j+1]; num[j+1]=temp;}}} for(i=0;i<100;i++)printf("%d\n",num[i]); return 0; } //選択ソート int main(void){ int i,j,num[100],min,temp; srand(time(NULL)); for(i=0;i<100;i++)num[i]=rand(); for(i=99;i>0;i--){ min=i; for(j=0;j<i;j++)if(num[min]>num[j])min=j; temp=num[min]; num[min]=num[i]; num[i]=temp;} for(i=0;i<100;i++)printf("%d\n",num[i]); return 0; }
705 名前: ◆HXgzCCSIaM mailto:1 [2008/01/28(月) 13:00:19 ] 1] 授業単元:プログラミング演習T [2] 問題文(含コード&リンク): 構造体を用いて加減算を行う。 以下の空白(oooo)を埋めよ。 #include <stdio.h> struct { /* 構造体の宣言 */ struct{ int a; int b; }keisan; int main( void ) { int wa, sa; /* 変数の宣言 */ scanf( "%d, %d", &keisan.a, &keisan.b ); /* 入力 */ wa= oooo ; /* 加算 */ sa= oooo ; /* 減算 */ printf( "和は%d 差は%d\n", wa, sa ); /* 出力 */ return 0; [3] 環境 [3.1] OS: WindowsXP [3.2] VC 5.5 [3.3] 言語: (C) [4] 期限: 無期限 [5] その他の制限: 特になし 途中まで自分で埋めたのですが、oooo部分が違うと指摘されました。 よろしくお願いします。
706 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 13:20:35 ] >>705 wa = keisan.a + keisan.b sa = keisan.a - keisan.b
707 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 13:27:12 ] >>705 scanfの中も違う scanf( "%d %d", &keisan.a, &keisan.b); /* 入力 */
708 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 13:39:04 ] 合ってるんじゃね?
709 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 13:44:44 ] 問題は、出題の意図がどうであったか、だな。
710 名前: ◆HXgzCCSIaM mailto:1 [2008/01/28(月) 13:58:31 ] >706-709 ありがとうございます。問題部分はこれで解決しました。 甘えてもう1題 [2] 問題文(含コード&リンク): 2つの正の整数値a,bの最大公約数を出力するプログラムをユークリッドの互除法というアルゴリズムを用いて作成したい。 以下のプログラムの****部分に適切な処理をいれて,プログラムを完成させなさい。 #include <stdio.h> int main( void ) { int a, b; /* 変数の宣言 */ int m, n; scanf( "%d,%d", &a, &b );/* 2つの正の整数値を入力する */ m= a ; n= b ; while(m **** n){ /* ユークリッドの互除法を適用 */ if( m > n ) m = ***** ; else n = **** ; [3] 環境 [3.1] OS:WindowsXP [3.2] VC 5.5 [3.3] 言語: C言語 [4] 期限:無期限 [5] その他の制限: 特になし 同じく後半部分が解りませんでした。 よろしくお願いします。
711 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 14:12:14 ] >>710 while(m != n){ if(m > n) m = m - n; else n = n - m; }
712 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 14:13:21 ] #include <stdio.h> int main(void) { int a,b,m,n; scanf("%d %d",&a,&b); m=a; n=b; while(m*n) { if(m>n) m%=n; else n%=m; } printf("%dと%dの最大公約数は%dです",a,b,m+n); return 0; }
713 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 14:17:37 ] lcmやgcdの問題が多すぎ。
714 名前:デフォルトの名無しさん [2008/01/28(月) 15:16:02 ] 柴田望洋の本を使ってる授業多いNE。
715 名前: ◆HXgzCCSIaM mailto:1 [2008/01/28(月) 15:17:33 ] >711 ありがとうございます!助かりました。 >712 別の表記方法なんですね。 勉強になります。
716 名前:デフォルトの名無しさん [2008/01/28(月) 15:30:22 ] [1]プログラミング入門 [2]問題文 キーボードから月(1~12)を入力して、その月の日数を表示するプログラムを 完成させなさい [3]環境 [3.1] OS:WindowsXP [3.2] VC 5.5 [3.3] 言語: C言語 [4]期限:1月29日 [5]その他の制限特になし 初心者ですがよろしくおねがいします
717 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 15:35:48 ] >>716 #include <stdio.h> int main(void) { int month, Days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} scanf("%d", &month); printf("%d", Days[month - 1]); return 0; }
718 名前:デフォルトの名無しさん [2008/01/28(月) 17:27:31 ] [1]プログラミング演習U [2]問題文 sample.txt 0 1 2, 2 4 5, 3 4 2, 1 2 5, 2 2 2, 3 1 4, 1 1 2, 2 1 3, 3 5 4, 4 2 2, 上の外部テキストファイル(sample.txt)に書かれている座標データを読み込み、 1行ずつ順にx,y,zの配列に格納し、ちゃんと格納されたか出力してください。 [3]環境 [3.1] OS:WindowsXP [3.2] コンパイラ名:gcc [3.3] 言語: C言語 [4]期限:1月28日 17:00 [5]その他の制限特になし
719 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 17:32:35 ] 期限切れ
720 名前: ◆LnG.2EAY0A mailto:sage [2008/01/28(月) 18:21:22 ] 以前質問させてもらった>>677 です。 期限を01月28日と書きましたが、宿題の期限が伸びたので 図々しい様ですが、改めてお願いさせて頂いても良いでしょうか? 内容は変わりありません。 [1] 授業単元:C言語 [2] 問題文(含コード&リンク):以下のゲームプログラムで、最初に設定する石の数を ファイル操作を使って一括設定できるようにする。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5920.txt [3] 環境 [3.1] OS:WindowsVista [3.2] コンパイラ名とバージョン:VC 6 [3.3] 言語:C [4] 期限:2008年02月05日まで [5] その他の制限:ファイル操作を習う所まで授業で進みました。 自分でも試行錯誤してみたのですが中々うまく行かず・・・ 皆さんの知恵をお借りしたいと思います、よろしくおねがいします。
721 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 18:35:20 ] >>720 問題文の意図が明瞭でない。それだと答えようがない
722 名前: ◆LnG.2EAY0A mailto:sage [2008/01/28(月) 19:19:25 ] >>721 説明不足ですみませんでした。 問題文の元は、石取りゲームといって最初に全体の石の数・そこから一度に取れる数を設定しなければいけません、それが以下の部分です↓ printf("石を交互に取り、最後の1個を取った人が負けです\n"); while (1) { nOrder = 1; printf("石の数は(5以上100以下)=="); gets(answer); nStone = atoi(answer); if (nStone < 5 || nStone > 100) { printf("石の数が不正です\n"); continue; } while (1) { printf("一度に取れる石の数は(2以上)=="); gets(answer); nGet = atoi(answer); if (nGet >= nStone) { printf("一度に取れる石の数が多すぎます\n"); continue; } if (nGet < 2) { printf("一度に取れる石の数が少なすぎます\n"); continue; } break; } この部分で設定するのですが、最初の石の数・一度に取れる数を一度に設定できるようにしたいのです。例えば、 「一括設定を使いますか?→ y/n」→「難易度を選択して下さい→ 1:優しい 2:普通 3:難しい」 ここで1を入力すると、石の数と取れる数をファイルから読み込み、その設定でプレイする。といった感じです。 説明下手ですみません、追記させていただきました。
723 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 20:10:38 ] #include<stdio.h> #include<string.h> int main(void){ FILE *fp; char line[128], *p; int nStone, nGet, level, cnt; 〜省略〜 for(cnt=1; fgets(line, 128, fp) != NULL && cnt <= 3; cnt++){ if(level != cnt) continue; p=strchr(line, '\n'); if(p!=NULL) *p='\0'; sscanf(line, "%d %d", &nStone, &nGet); break; } 〜省略〜
724 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 21:08:06 ] [1]通信工学II [2]問題文(含コード&リンク): 次の文字送受信プログラム(IPv4専用)を、IPv4/v6デュアルスタックのプログラムに改良せよ。 クライアント:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5929.zip サーバー:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5930.zip [3]環境 [3.1] OS:Windows XP/Vista [3.2] コンパイラ名:Visual C++ 2005 SP1 [3.3] 言語:C++ [4]期限:1月31日 16:00 [5]その他の制限:特になし 丸投げですがよろしくお願いいたします。
725 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 21:15:27 ] なんかデカいのがきたな。
726 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 22:22:04 ] コメントそれなりについてるけど、このスレにしては確かにでかいな・・・ 変更が必要な箇所を明記してくれてるけど、専門外でさっぱりわかんねw
727 名前:デフォルトの名無しさん mailto:kokok [2008/01/28(月) 22:32:12 ] 素人でホントに困っています。よろしくお願いします 【質問テンプレ】 [1] 授業単元: 情報科学実習 [2] 問題文(含コード&リンク):() 問題> 次のような書式のファイルからデータを読み出して、標準体重の人の名前と 血液型一覧を別のファイルに出力せよ。ただし、classを用いること。また、 人のデータは必要によってメモリ割り当てすること *標準体重・・・まず。指数k=平均体重/(平均身長-100)を出す。 各人の理想体重は(身長-100)×kであり、標準体重は、理想体重の97〜103%。 ・データファイルの書式 一行目:人数 二行目以降:名前 血液型 身長 体重 ・データファイルの例 2 Mizumoto O 172 67 Otake A 170 62 [3] 環境 [3.1] OS: I Mac [3.2] コンパイラ名とバージョン: E macs [3.3] 言語:C++ [4] 期限: 2008年2月6日まで [5] その他の制限:繰り返し、条件式、配列、アドレス、ポインタ、スコープ、 クラスを習いました。
728 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 23:27:23 ] コンパイラ?
729 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 00:16:19 ] 【時間切れ】 (1/28) >581 >718 【未解決問題】 >>650 1/29 pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31 >>724 1/31 16:00 >>720 2/5 詳細>>722 >>727 2/6 >79 無期限 >144 無期限 問題文>148
730 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 00:33:26 ] >>727 この計算式通り計算すると理想体重が170付近になってしまいますが 理想体重でなくて理想身長の間違いではないでしょうか? 電卓で計算してみて下さい。
731 名前:730 mailto:sage [2008/01/29(火) 00:35:05 ] あ、ごめんなさい。私の間違いでした。
732 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 00:53:45 ] >>727 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5933.txt data2.datというファイルに結果を出力しています。
733 名前:デフォルトの名無しさん [2008/01/29(火) 01:33:25 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク) 入力された整数を配列に順次格納する(昇順になるように入力すること)。 0が入力された時に整数の入力を終了し、次に入力された数字を、二分探索によって 配列から探索し、その配列の添え字番号を出力するプログラムを作成せよ [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C言語 [4] 期限: 1月29日正午まで お願いします
734 名前:702 mailto:sage [2008/01/29(火) 01:44:08 ] >>703-704 ありがとうございました
735 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 02:21:02 ] >>733 #include <stdio.h> #include <stdlib.h> #define BUFFSIZE 32 #define ARRAYSIZE 256 int binary_search(int array[], int b, int e, int key) { int t = (e - b) / 2 + b; if (array[t] == key) return t; if (array[t] < key) return binary_search(array, t, e, key); if (array[t] > key) return binary_search(array, b, t, key); } int main(void) { int array[ARRAYSIZE]; char buff[BUFFSIZE]; int i; puts("Input Number(s)."); for (i = 0; i < ARRAYSIZE; ++i) { fgets(buff, BUFFSIZE, stdin); if (atoi(buff) == 0) break; array[i] = atoi(buff); } printf("Input Number. :"); fgets(buff, BUFFSIZE, stdin); printf("index: %d\n", binary_search(array, 0, i, atoi(buff))); return 0; }
736 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 02:59:26 ] gccは不思議だな。 停止性がなくとも止まってくれるのは何故だろう? printfとかを入れると止まらんけど。
737 名前:デフォルトの名無しさん [2008/01/29(火) 06:45:43 ] [1] 授業単元:データ構造とアルゴリズム設計 [2] 問題文(含コード&リンク) 名前と年齢を入力し、年齢をキーとして、ハッシュ(チェイン法)に登録する '-'を入力すると登録を終了し、次に入力された年齢を、ハッシュ法で検索し あればその名前を出力するプログラムを作成せよ。ハッシュ表の大きさは9とする [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2月1日まで よろしくお願いします。
738 名前:デフォルトの名無しさん mailto:kokok [2008/01/29(火) 08:03:26 ] >>732 ありがとうございます!!助かりました
739 名前:733 [2008/01/29(火) 08:55:01 ] >>735 ありがとうございました!
740 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 10:54:03 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5934.txt [3] 環境 [3.1] OS: Windows Xp [3.2] コンパイラ名とバージョン: Microsoft Visual Studio .NET 2003 [3.3] 言語: C [4] 期限: 1/29まで コンパイルするとエラーが出るのですが どこが間違っているのかわからなくなってしまいました。 よろしくお願いします。
741 名前:740 mailto:sage [2008/01/29(火) 10:59:25 ] 連投すいません 問題つけるの忘れてました 申し訳ありません これです kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5935.txt
742 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 11:31:24 ] 「エラーメッセージはコピペしてください。」 って>>1 に書いてある コンパイルを通したいだけなら、問題文よりコンパイラのメッセージをコピペしてくれよ
743 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 11:59:24 ] 回答者たちよ、実務では解決できるのかすら分からない難題に埋もれる中、 回答が出るよう作られた宿題回答で回帰逃避したい気持ちはよく分かるぞ。
744 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 12:36:05 ] 娯楽ってのはそういうもんだ
745 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 12:37:29 ] >>743 先生、回帰逃避がよく判らないです。
746 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 12:53:27 ] >>737 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5936.cpp
747 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 13:26:55 ] 前に回答して頂いた>>581 です。 期限が切れてしまいましたが、二月頭まで締切を伸ばしてもらったので、引き続き(2)と(3)の解答をお願いできませんか?? どうかよろしくお願いします…m(_ _)m
748 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 14:01:25 ] >>747 音声データを縮める、音声データを反転させる、の定義をしてくれたまえ。
749 名前:デフォルトの名無しさん [2008/01/29(火) 14:28:52 ] 718の者です。期限1/28の17:00までって書いたんですけど これは間違いで1/30の17:00までなのでよろしくお願いしますm(__)m
750 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:22:53 ] >>749 #include <stdio.h> #define DATAFILE "sample.txt" #define LINES 10 int main(void) { FILE *fp; char line[10]; int i = 0, x[LINES], y[LINES], z[LINES]; if (fp = fopen(DATAFILE, "r")) { while (fgets(line, sizeof(line), fp)) { sscanf(line, "%d%d%d", &x[i], &y[i], &z[i]); i++; } fclose(fp); for (i = 0; i < LINES; i++) printf("x[%d] = %d, y[%d] = %d, z[%d] = %d\n", i, x[i], i, y[i], i, z[i]); } return 0; }
751 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:17:12 ] [1] 授業単元:C言語I [2] 問題文(含コード&リンク):(元データ:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5937.txt 入.力画.像ファイ.ル名、出.力画.像ファイル名、縦、横の 縮.小率を実行時に与えることが出来るようにすること 以下の場合、エラーメッセージを標準エラーに出力し て、プログラムを終了させること ・正しくない縮.小率が入力された場合 ・入力ファイル名に存在しないファイルが指定された場合 ・すでに存在するファイル名が出.力画.像ファイル名に指定さ れた場合 [3] 環境 [3.1] OS:Linux OpenSuse [3.2] コンパイラ名とバージョン: すみません確認が分かりませんでした。cc でコンパイルしています。 [3.3] 言語: C [4] 期限: [2008年01月31日17:00まで] [5] その他の制限: 簡単な例について,プログラミングの基礎知識,変数と式,制御の流れ,関数,配列,文字列,ポインタ,構造体とユーザ定義型,ファイルです。 基本的に初心者からの講座ですので使えることは多くありません。元プログラムを見ていただければ程度が分かると思います。 問題文で不自然に'.'が入っているのは,万が一検索されたときの対策です。 気を悪く思ったかもしれません。すみません。 もしスレを監視していたら意味もないですが;
752 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:22:20 ] 丸投げしといて見つかりたくないか。そうか。
753 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:25:30 ] 姿勢が気に食わないな。
754 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:44:19 ] 完全に駄目元で言ってるな。
755 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:48:30 ] 問題文のコメントも文字化けしてワロタ。
756 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:50:57 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):除算計算のプロセス改良 詳細→(ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5938.zip) [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:visual C++ [3.3] 言語: C++ [4] 期限:2/4 [5] その他の制限: 演算子/使用不可。 ヒントが詳しくあり、その通りにするだけだと思うのですができず。 問題と試しに作ったのを同梱したので添削してもらえると助かります。
757 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:15:24 ] >>756 fdivrsub()内の1行目、if()の条件式 (powb <= a << (powb+powb)) を if ( a < ( powb+powb )) にしたらいいんじゃない?
758 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:25:32 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): ある海賊団(総員10名)が100枚の金貨を手に入れた。 そこでみんなで分けようとしたが、この海賊団には以下の分配ルールがある。 一番年長の海賊(ボス)が誰に何枚割り振るかを決める。 ボスも含めたみんながその割り振りに賛成か反対か投票をする。 半数以上の賛成で可決される。ただし、賛成が半数未満ならボスは処刑され、 新たなボスがまた分配方法を決める。(10人は年が違うので新ボスを誰にするかでもめることはない) と、決まるまでこれが繰り返される。 そしてこの海賊団員の特徴として、 みんな限りなく賢く、それぞれみんなが賢いことも知っている。 みんな自分の命は一番大事。次に大事なのは金貨。だが処刑は大好きで、 今のボスを処刑しても次のボスからもらえる金貨の枚数が同じだろうと思ったら、反対に票を投じる。 それぞれあまり仲はよくないので談合はしない。及び金貨の共有もしない。 さて、今のボスは自分がなるべくたくさん金貨がほしい場合、 何枚手に入れることができるだろうか? [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限:無期限 [5] その他の制限: なし
759 名前:758 mailto:sage [2008/01/29(火) 22:36:55 ] スレ違いなので取り下げます
760 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:59:20 ] [1]プログラミング入門 [2]問題文 座標(X_1 Y_1)にある自転車1が角度A_1(度)の方向にV_1(m/s)で進み、座標(X_2 Y_2)にある自転車2が角度A_2(度)の方向にV_2(m/s)で進んでいる。 二つの自転車が出会う点の座標(X_3 Y_3)と、経過時間Tを求めなさい。 X軸の正方向を0(度)とする。 座標1目盛り1(m)とする。 [3]環境 [3.1] OS:WindowsXP [3.2] Visual studio 2003 [3.3] 言語: C++ [4]期限:1月30日 [5]その他の制限特になし 丸投げで本当に申し訳ありません! 何卒宜しくお願い致します!(>_<)
761 名前:デフォルトの名無しさん [2008/01/29(火) 23:16:13 ] >>750 ありがとうございました!! ほんと助かりました。
762 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:46:06 ] >>760 向かい合って一直線に進んでるならまだしも、 ちょうどぶち当たるなんてこと、限りなく無いに等しいがそれでもいいの?
763 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:48:00 ] >>762 自転車の長さが100mくらいあるのかも知れないwww
764 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:05:32 ] 【時間切れ】 (1/29) >650 >740 【未解決問題】 >>760 1/30 pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31 >>724 1/31 16:00 >>751 1/31 17:00 >>581 2月頭 残:課題2、3 >>720 2/5 詳細>>722 >79 無期限 >144 無期限 問題文>148
765 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:08:06 ] まぁそのA1とA2が違う値ならぶつかるはずだけどなw
766 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:09:54 ] うはwと思ったらスピードが違うかったら一生交わらないww
767 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:13:37 ] >>765 点と点とが衝突するというのは、限りなく難しいと思う 自転車とやらの長さに依存する問題 長さが無限大の自転車だとほぼ確実に衝突するし、 長さが無限小の自転車だとほぼ確実に衝突しない
768 名前:760 mailto:sage [2008/01/30(水) 00:57:47 ] 申し訳ありません!直線の交点を求めて、それぞれがその交点にたどり着く時間T_1(秒)およびT_2(秒)を求める問題でした(>_<)
769 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 05:07:25 ] >>768 眠くてかなりやっつけだが、一応書いた。 交わらない位置関係の判定がいまいちかも分からん。 #include <iostream> #include <math.h> #define PI 3.1415926535897932384626433832795 #define RATE 1000 using namespace std; typedef struct DATA { double x, y, a, v, l; }; int main () { DATA a, b; cout << "X_1:"; cin >> a.x; cout << "Y_1:"; cin >> a.y; cout << "A_1:"; cin >> a.a; cout << "V_1:"; cin >> a.v; cout << "X_2:"; cin >> b.x; cout << "Y_2:"; cin >> b.y; cout << "A_2:"; cin >> b.a; cout << "V_1:"; cin >> b.v; a.l = (a.y - b.y) / tan((b.a - a.a) * PI / 180); b.l = (a.y - b.y) / sin((b.a - a.a) * PI / 180); if ((int)(a.a - b.a) % 180 == 0 || (int)(a.l*RATE) < 0 || (int)(b.l*RATE) < 0) { cout << "まじわらない"; return -1; } cout << "T_1 = "; if ((int)(a.l*RATE) == 0) cout << "0" << endl; else cout << a.l / a.v << endl; cout << "T_2 = "; if ((int)(b.l*RATE) == 0) cout << "0" << endl; else cout << b.l / b.v << endl; return 0; }
770 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 05:19:39 ] すまん、何か忘れてると思ったらx使ってなかったわwww × a.l = (a.y - b.y) / tan((b.a - a.a) * PI / 180); ○ a.l = (a.y - b.y) / tan((b.a - a.a) * PI / 180) + (b.x - a.x);
771 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 11:11:15 ] >>757 お礼が遅れて申し訳ありません ありがとうございました
772 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 12:28:43 ] >>720 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5940.cpp
773 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 14:45:26 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): ファイル中に自然数が10列記されている。 この数列中には0が1〜9個含まれている。 従って、0を区切りと考えれば。この数列中には数が最低1つは連続している(連続回数とよぶ)。 連続回数の最大を求め,その時の和を求めよ。 ただし、連続回数の最大が2つ以上ある時は和の大きい方を最大とする。 また、連続回数も和も同じであるときは考慮しなくてもよい。 例1)3,1,0,3,6,2,3,7,4,0であれば、最大連続数は6でその和は25である。 例2)3,1,0,2,2,0,03,0,0であれば、最大連続数は2でその和は4である。 [3] 環境 [3.1] OS:Vine Linux 4.2 [3.2] コンパイラ名とバージョン:gcc3.4 [3.3] 言語:C [4] 期限:[無期限] [5] その他の制限:なし むりやりならばできましたが、スマートなやり方があれば教えていただきたいです。
774 名前:デフォルトの名無しさん [2008/01/30(水) 16:29:15 ] >>773 その無理やりのソースを貼り付けよう!
775 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 16:41:46 ] >>773 自分も無理やりやってみた。 #include <stdio.h> #define N 10 int continuous(int *a, int from, int n){ int to; for(to = from; to < n && a[to] != 0; to++); return to; } int culsum(int *a, int from, int to){ int i, sum = 0; for(i = from; i < to; i++) sum += a[i]; return sum; } int main(void){ FILE *fp = fopen("data.txt", "r"); int i, next, cnt = 1, sum = 0, tmp, a[N]; if(!fp) return 1; for(i = 0; i < N; i++) fscanf(fp, "%d,", &a[i]); fclose(fp); for(i = 0; i < N; i++){ next = continuous(a, i, N); if(next - i >= cnt){ cnt = next - i; tmp = culsum(a, i, next); if(tmp > sum) sum = tmp; } i = next; } printf("cnt: %d\nsum: %d\n", cnt, sum); return 0; }
776 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 16:45:28 ] 部分だけ。 a[10]に数値読み込んでこんな感じかな? int i,j=0,max=0,temp=0,renzoku=0; for(i=0;i<10;i++) { while(a[i]&&i<10) { temp+=a[i]; i++; j++; } renzoku=(j>renzoku?j:renzoku); if(renzoku==j)max=(temp>max?temp:max); j=0; }
777 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 16:47:38 ] なにをもってスマートなんだろう
778 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 16:49:18 ] tempも0に戻そうぜ
779 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:00:22 ] ごめwww手抜きするといいことないねwwwww #include <stdio.h> int main(void) { int a[10],i,j=0,max=0,temp=0,renzoku=0; FILE *fp=fopen("data.txt","r"); if(!fp) return 1; for(i=0;i<10;i++)fscanf(fp,"%d,",&a[i]); fclose(fp); for(i=0;i<10;i++) { while(a[i]&&i<10) { temp+=a[i]; i++; j++; } renzoku=(j>renzoku?j:renzoku); if(renzoku==j)max=(temp>max?temp:max); j=temp=0; } printf("最大連続数:%d\n合計:%d",renzoku,max); return 0; }
780 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:21:21 ] >>773 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5942.c
781 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:33:36 ] >>773 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5943.txt
782 名前:デフォルトの名無しさん [2008/01/30(水) 17:40:24 ] ・0〜99の100個の数字から異なる30個を選び、配列COM[30]に 格納せよ。 ・次に異なる6個の数字を入力し、順番に配列MAN[6]に格納せよ。 ・ソート方法Aを用いて配列COM、MANの要素をそれぞれ小さい順に並べよ。 ・配列COMに含まれる配列MANの数字の個数countを求めよ。 ・最後に、配列COM、MANの全要素、変数countを result.outに書き込め。 ・出力形式は自由とするが、main関数内は10行以内にすること。 [ソート方法A] ・作業用の配列として、要素が100個のint型の配列Workを用意する。 ・配列Workの各要素は、0に初期化する。 ・ソートしたい配列xの要素を順番に読んで、Work[その値]を+1する。 ・作業3をすべてのxの要素について行った後、Workの要素を小さい方から順番に よんで、Workの値が0でなければ、xに書き戻します。 この課題が全然できません。助けて下さい。
783 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:51:36 ] >>773 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5944.txt
784 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:53:32 ] >>782 それ、【ヒント1】〜【ヒント3】も問題文にあるだろ?
785 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:22:57 ] >>782 作ったけど,PC移行中でコンパイラ入れて無くて試せない^p^
786 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 20:10:32 ] >>769 本当に有難う御座います!!
787 名前:デフォルトの名無しさん [2008/01/30(水) 20:37:58 ] [1] 授業単元: [2] 問題文(含コード&リンク):シェルソートは単純挿入法を改良し、ソートの効率を上げたものである。 全ての要素を1度にソートするのではなく、 間隔dをあけて要素を比較して大まかなソートを繰り返したのち、 最後にd = 1でソートを実行する。 データ数をnとしたときの、効率の良い間隔d[i]の計算法として、 Knuthによる次の式が知られている。 t = log2n - 1 (整数に切り捨て) d[t-1] = 1 d[i-1] = 2d[i] + 1 この式を使って、与えられた要素数nに対し t、配列dの値を計算する関数を作成しなさい。 n = 100としたときの、tおよびdの要素の値を画面に出力しなさい。 logの計算を行うには、math.hをインクルードする [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン:VS2005 [3.3] 言語: C [4] 期間:2/1まで [5] その他の制限: なし お願いします。
788 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:23:01 ] >>782 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5945.txt
789 名前:788 mailto:sage [2008/01/30(水) 21:25:57 ] ありゃ、main()関数が10行以下の制限忘れてた。 全部他の関数に移せってか。ちょっとまって。
790 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:26:06 ] >>782 >>694
791 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:35:02 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 直径1長さ1の円柱がある。体積をモンテカルロ法で計算せよ。 一辺が1の立方体を考え、3個の乱数で立方体内の点のxyz座標を発生させ,その点が物体の内部に落ちるかどうかを判定する。 内部に落ちる確率が体積に比例することから体積が見積もれる。 [3] 環境 [3.1] OS:windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2/1 [5] その他の制限:
792 名前:788 mailto:sage [2008/01/30(水) 21:38:18 ] >>782 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5947.txt すまんかった。
793 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:43:34 ] >>782 の問題は、内容から おそらく COMとMANに値を収める 部分を、共通関数化すれば得点高いと思う。 それを構成できるかも問うてる様に見える。 具体的には、配列代入関数として、入れたかどうかと、 配列が溢れた事を戻り値で返す。
794 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 22:05:45 ] >>793 >>673
795 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:52:16 ] #include <stdio.h> #include <stdlib.h> #include <math.h> int main(void) { double x, y, z; int iter[] = {10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 0}, i, j, k = 0, count; for (i = iter[k]; i; i = iter[++k]) { count = 0; for (j = 0; j < i; j++) { x = (double)rand() / RAND_MAX - 0.5; y = (double)rand() / RAND_MAX - 0.5; z = (double)rand() / RAND_MAX; if (sqrt(x * x + y * y) <= 0.5 && 0. <= z && z <= 1.) count++; } printf("ITER = %d, V = %f\n", iter[k], (double)count / iter[k]); } printf("Vの真の値 = %f\n", M_PI * 0.5 * 0.5); return 0; }
796 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:52:43 ] あ、>>795 は>>791 さんへです。
797 名前: ◆LnG.2EAY0A mailto:sage [2008/01/31(木) 02:04:32 ] >>772 >>723 お返事が送れて申し訳ありません、回答ありがとうございました! これでなんとか理解できそうです。
798 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 14:03:52 ] [1] プログラミング序論 [2] @./a.out arg1 arg2 ...の時、 argをアルファベット順にソーティングするquicksortのプログラムを作る。 A問題@をライブラリ関数qsort()を用いて作る。 qsort( void* base, int n_elem, int size, int (*compare)(void*, void*) ) base: 配列のアドレス n_elem: 要素数 size: 一要素のサイズ compare: 比較に使う関数。 Bライブラリ関数と同じ動きをする関数 msort( ...qsortと同じ引数... ) を作る。(アルゴリズムはクイックソート) [3] 環境 [3.1] Linux [3.2] gcc [3.3] C [4] 2008年2/5(火) [5] 制限は特にないです よろしくお願いしますm(__)m
799 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 16:57:21 ] >>798 とりあえず最後の問題だけやってみた。 これで満点とれなかったら教官の頭が悪い。 ( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5950.c
800 名前:ハム [2008/01/31(木) 18:54:12 ] 【質問テンプレ】 [1] 授業単元: プログラミング演習 [2] 問題文:(数独の問題作成の途中です。) 最初全てに0が入った2次元配列を、数字が全て埋まった状態にするプログラムを考えています。 どなたかお力をお貸し下さい。 [3] 環境 Visual Studio 2005 [3.1] OS: Windows/ XP [3.2] コンパイラ名とバージョン: わかりません [3.3] 言語: C言語 [4] 期限: ([2008年2月2日21:00まで] [5] その他の制限:初心者なので、簡単なコードでお願いします。
801 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:55:16 ] [1] プログラミング演習 [2]リンクリストを用いたスタックプログラムの作成 typdef struct box{ int cont; struct box next;}box1; typedef box1 *stack; スタックの仕様は↑とする。 ポップアップとプッシュダウンを行う関数 int pupup(stack S); void pushdown(stack S; int x); を作成せよ。 [3] 環境 [3.1] winXP [3.2] bcc [3.3] C [4] 2008年2/5(火) [5] 制限:問題文の仕様を使うこと。 アンダーフロー対策はしなくてよい よろしくおねがいします。
802 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:56:05 ] >>800 お前は日本語を書いている自信があるのか?
803 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:14:15 ] >>800 数独は、プログラムで解くのは簡単だけど作るのは難しいと思われ。 途中まで作ったのならそれを提示したまえ。 # つーか、初心者向けの内容じゃねぇぞ。
804 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:18:36 ] >>724 の者ですが、締め切りが2/2の12:00に伸びたのでどうかよろしくお願いします。 全然わからないので…
805 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:03:12 ] >>804 やだ。
806 名前:名無し募集中。。。 mailto:sage [2008/01/31(木) 21:08:17 ] >>805 お前に言ってねーよ。カス。 どうか分かる方お願いします。
807 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:09:57 ] >>806 やだってばー。
808 名前:名無し募集中。。。 mailto:sage [2008/01/31(木) 21:10:43 ] >>807 だからお前のような頭のヘボい奴には頼んでないから。 どうか頭の良い方お願いします。
809 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:15:17 ] >>808 馬鹿はスルーしろ
810 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:17:14 ] >>808 いちいち反応するな馬鹿
811 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:36:03 ] >>808 答えようかと思ったが、君のように裏表がある人間のために エディタ起動するのマンドクセ('A`)
812 名前:名無し募集中。。。 mailto:sage [2008/01/31(木) 21:37:32 ] >>811 お前に言ってねーよ。カス。 どうか分かる方お願いします
813 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:54:17 ] 誰もわかんねーのかよ。 単位やべーからお願い。
814 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:55:03 ] いさぎよく諦めろ
815 名前:名無し募集中。。。 mailto:sage [2008/01/31(木) 21:56:28 ] >>814 お前がやれ。命令だ。
816 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:00:14 ] 俺今他のやってる
817 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:41:07 ] >>801 問題がタコだな。 まず、その仕様じゃコンパイルすら通らない。 >pupup popupの間違いでは。 >アンダーフロー対策はしなくてよい オーバーフロー対策はどうなのよ。
818 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:43:33 ] 最近の人工無能は頭いいな
819 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:45:05 ] >>800 >数字が全て埋まった状態にするプログラム ほらよ memset(table, 1, sizeof(table));
820 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:57:33 ] >>817 オーバーフロウもアンダーフロウも対策しなくて大丈夫です。 ペーパーで提出する課題なのでかなり適当みたいです。 popupは自分も気になりましたが問題がpupupなのでそのままにしましたw
821 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:02:20 ] >>820 それだけじゃなくて、 typdef struct box{ int cont; struct box next;}box1; ↑じゃコンパイル通らないよ。 typdef struct box{ int cont; struct box *next;}box1; ↑こうしないと。 いいかげんそうな教官みたいだし、もう提出しなくてよいんじゃね?
822 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:06:48 ] タイポもあるな。
823 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:12:43 ] つーか、prevへのポインタ無しで、どうやってpopupするわけ? 一方通行じゃん。pushしか出来ねーーー
824 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:14:41 ] というか、nextがprevなのか。
825 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:29:21 ] >>795 ありがとうございます!
826 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:34:58 ] まぁ文句ばっかり言うのもあれなので。 typedef struct box{ int cont; struct box *next;}box1; typedef box1 *stack; int pupup(stack S) { box1 tmp = *S->next; free(S->next); S->next = tmp.next; return tmp.cont; } void pushdown(stack S, int x) { box1 *new_box = (box1 *)malloc(sizeof(box1)); new_box->cont = x; new_box->next = S->next; S->next = new_box; return; }
827 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:48:51 ] >>798 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5953.txt 2と3。
828 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:37:31 ] 昨日は規制の巻き添えを食らって、書きこめなかつた 【時間切れ】 (1/31) pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31 >>751 1/31 17:00 【未解決問題】 >>787 2/1 >>724 2/2 12:00 >>800 2/2 21:00 >>581 2月頭 残:課題2、3 >79 無期限 >144 無期限 問題文>148
829 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:39:09 ] ミス、>>798 は課題@が終わってません
830 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:42:04 ] >800 「数独(すうどく・SUDOKU)とは、3×3のブロックに区切られた9×9の正方形の枠内に1〜9までの数字を入れるペンシルパズルの一つである。」 123 456 789 456 789 123 789 123 456 234 567 891 567 891 234 891 234 567 345 678 912 678 912 345 912 345 678 でいいんじゃね?
831 名前:デフォルトの名無しさん [2008/02/01(金) 00:43:22 ] 解答 www.nicovideo.jp/watch/sm1308846
832 名前:581 mailto:sage [2008/02/01(金) 12:47:48 ] >>581 です。 (2)なのですが、音声データを半分に圧縮して再生できれば良いそうです。 実際の音声データとなる部分のbyte?を、一個飛ばしで読み込んでみて、と言われたのですが、さっぱりです…orz (3)は、音声データを読み込んで、逆再生できればOKだそうです。 よろしくお願いしますm(_ _)m
833 名前:デフォルトの名無しさん [2008/02/01(金) 13:26:02 ] >>787 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5956.txt
834 名前:デフォルトの名無しさん [2008/02/01(金) 13:32:09 ] >>832 半分削ったら復元無理じゃん あとまずは>>658 さんのテキストファイルをWavにするプログラム作れば 既にないぞうしてるかもしれないけど
835 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 13:38:12 ] 復元は要求されてなくね
836 名前:デフォルトの名無しさん [2008/02/01(金) 13:56:05 ] 再生するにはwavが作れないと駄目
837 名前:デフォルトの名無しさん [2008/02/01(金) 14:19:02 ] おもったんだがどんな楽器の音もテキストの数字の羅列のみで鳴らせるのか ちょっとおどろき
838 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:22:37 ] そらまあどんなデータだってバイナリじゃ0と1の集合なんだし、 音だろうと映像だろうと数字の羅列に対応させるのは簡単だぞ。
839 名前:デフォルトの名無しさん [2008/02/01(金) 14:25:39 ] でも人間がテンキーで打ち込みしてもオーケストラの音楽とかむりのはず
840 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:26:40 ] 最終的に鼓膜を震わせればいいんだから
841 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:29:07 ] 複雑な音楽は0と1だけじゃなくその間の音色がいくらでもある。 引き篭ってパソコン麦価かまってるとそんな当たり前のことも分からなくなるんだな。
842 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:30:59 ] この中で一番頭悪いのは>>841 でFA?
843 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:37:43 ] >>839 も加えておいてくれ。どっちもどっち
844 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:39:05 ] ドとド#の間にだって音があるんだよ。 カラオケの採点だと正確にドを出すのを高得点としているが、 人間の耳に入った場合は必ずしも正確なドが心地よいとは限らない。 ちょっとはずしてる加減がかわいいとかあるだろ? 音だけじゃなくリズムとか強弱とかもな。
845 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:41:34 ] >>841 でも人間の耳の分解能には限界があるだろ 1/3を0.0101010101010101で近似しても違いなんて分からない
846 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:50:16 ] >>845 そっちの問題より量子化の時の誤差の方が大きいだろ。
847 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:02:09 ] >>846 >>841 が「離散量では原理的に複雑な音楽を忠実に表現できない」という主張をした(と俺は理解した)から、 目盛を十分細かく取れば良い、という説明をしただけで、実際に音声をデジタルで扱う場合にどこが困難かは別の話だろ
848 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:15:18 ] >>841 よくわからんが、MIDIのことか? なつかしいな。
849 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:15:52 ] [1] プログラミング演習 [2]試験課題 優先順位付き四則演算 式を入れてください (123.4*(5.1+0.2)+(6+0.3)/(3.0−1.0)/5=? 答えは?です。 [3.1]WindowsXP [3.2]VS8.0 [3.3]C++ [4]2月5日 [5]構造体 調べてみましたがよくわかりませんでした。 よろしくお願いいたします。
850 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:18:41 ] >>849 メンバ関数とか使っていい?
851 名前:798 mailto:sage [2008/02/01(金) 16:36:21 ] >>799 さん >>827 さん お早い回答、見やすいプログラムありがとうございました^^ ・・・もし来週も行き詰ったら・・・よろしくお願いしますm(__)m
852 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:41:11 ] 850 はい、習っているので大丈夫です。
853 名前:デフォルトの名無しさん [2008/02/01(金) 17:37:34 ] >>849 けっして俺がつくったソースコードではないけど 頭のいい人はすごいねって思う。 fparserでググれば出てくるかもしれんが 圧縮してあげとく。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5958.lzh
854 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 17:40:56 ] >>800 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5957.txt とりあえず書いてみたが、あまり簡単でもスマートでもない。 出力だけはたぶん合ってそうだけども。
855 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 18:23:00 ] >>853 ありがとうございます、動きました。
856 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:43:00 ] >>724 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5959.zip VCないから、Cygwin/g++用に変更した。一応動いたのでうp 参考程度にどうぞ (運がよければVCでもそのままコンパイルできる。一応気にしてソース修正したつもり) IPv6環境ないからIPv6での動作確認はできなかった
857 名前: ◆sUfWYz9MSA [2008/02/01(金) 21:53:06 ] [1] 授業単元: 画像処理研究 [2] 問題文(含コード&リンク): 以下のようなcsvファイルをfopen()で読み込み, フーリエ変換したものをグラフで表示する. 400,97.98 400.5,98.13 401,98.31 401.5,98.49 ・・・ という","の左が700まである波形データです。 読み込んだデータを","区切りでプロンプトに書き出す ことはできているのですが,フーリエ変換がどうしてもできませんorz お手数ですが教えてもらえないでしょうか。 sample: yomiko-01.hp.infoseek.co.jp/cgi-bin/src/up0222.txt csvでupできなかったので.txtになってますスイマセン・・・ [3] 環境 [3.1] OS: Windows2000 [3.2] コンパイラ名とバージョン:Visual C++ 6.0 [3.3] 言語: どちらでも可 [4] 期限: できるだけ早くお願いします。 [5] その他の制限:学校から家に帰るのでコメント返信遅くなります・・・ どうかよろしくお願いします。
858 名前:デフォルトの名無しさん [2008/02/01(金) 22:24:48 ] [1] 授業単元:コンピュータ理論 [2] 問題文(含コード&リンク):n,kを入力したとき、0〜n-1の整数からk個選ぶ選び方をすべて出力する [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン:bcc32 [3.3] 言語:C言語 [4] 期限: 2月4日中 [5] 再帰的アルゴリズムを使うと簡単と言われました。 どうかよろしくおねがいします。
859 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 22:34:05 ] 順列を区別するかを書け。
860 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 22:37:07 ] 組み合わせです
861 名前:デフォルトの名無しさん [2008/02/01(金) 22:42:47 ] >>859 重複なしの組み合わせです。 n=5,k=3のときは 012 013 014 023 024 034 123 124 134 234 となるはずです。
862 名前:デフォルトの名無しさん [2008/02/01(金) 22:46:58 ] >>857 C言語によるアルゴリズム事典からそのままぱくったので あってるかどうかわからへんで〜 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5960.txt
863 名前:デフォルトの名無しさん [2008/02/01(金) 23:01:55 ] >>858 unsigned long combination(int n, int k) { int i, j; unsigned long a[17]; if (n - k < k) k = n - k; if (k == 0) return 1; if (k == 1) return n; if (k > 17) return 0; /* error */ for (i = 1; i < k; i++) a[i] = i + 2; for (i = 3; i <= n - k + 1; i++) { a[0] = i; for (j = 1; j < k; j++) a[j] += a[j - 1]; } return a[k - 1]; }
864 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 23:07:33 ] >>863 ワロタ
865 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 23:40:39 ] >>858 #include<stdio.h> #include<stdlib.h> void get_combination(int num, int chosenCnt); int *numary; int n, c; int main(int argc, char *argv[]){ if(argc != 3) return 1; n = atoi(argv[1])-1; c = atoi(argv[2]); if((numary = (int*)calloc(sizeof(int), c)) == NULL) return 1; get_combination(0, 1); free(numary); return 0; } void get_combination(int num, int chosenCnt){ int i; if(chosenCnt > c){ for(i=0; i < c; i++) printf(" %d", numary[i]); putchar('\n'); return; } for(i=num; i <= n; i++){ numary[chosenCnt-1] = i; get_combination(i+1, chosenCnt+1); } }
866 名前:858 [2008/02/01(金) 23:54:04 ] >>863 返答ありがとうございます。 コンパイル通るのですが、どうやったら表示できるかが分からず、 いろいろ試してみましたが出来ませんでした。orz... >>865 返答ありがとうございます。 ばっちり動きました。ありがとうございます。 助かりました。 後でプログラムをじっくり解読してみます。 本当にありがとうございました。
867 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 23:54:10 ] >>856 さま IPv4でもIPv6でも動きました! 本当にありがとうございました!
868 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 23:55:44 ] >>866 本気で何も分かってないな。まあ丸投げスレだからいいんだけど
869 名前:デフォルトの名無しさん [2008/02/02(土) 00:01:53 ] >>862 >>857 です。返事ありがとうございます! 今帰ってきたので、後で参考にさせてもらいます(o´・ω・)´-ω-)ペコリ
870 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 00:14:39 ] >>849 当方で確認した環境は WindowsXP, 処理系は cygwin(gcc 3.4.4) です。 >> 853 さんにならって、私がこの方面にのめりこむきっかけとなったソースを、そのままあげておきます。 なお、宿題の題意にあうように手直しはしていますが、小数点の処理は手抜きです。オリジナルを損ねたくなかったわけで、すみません。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5961.txt >>853 まったく頭のいい人はすごいですね。
871 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 00:27:55 ] 【時間切れ】 (2/1) >787 【未解決問題】 >>581 2月頭 残:課題2、3 >>798 2/5 残:課題1 >79 無期限 >144 無期限 問題文>148
872 名前:ハム [2008/02/02(土) 00:52:07 ] >>854 さん ありがとうございます! 熟読して、勉強させていただきます! 本当にありがとうございます!!
873 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 02:04:47 ] >>870 小数に対応できるようにfactor()の中身を>>870 が書き換えたんだよね? '('が来た後の exp0() を int で受けてるままだから このままだと丸まっちゃうよ
874 名前:870 mailto:sage [2008/02/02(土) 02:23:48 ] >>873 感謝です。訂正したものをあげておきます。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5963.txt
875 名前:853 [2008/02/02(土) 02:50:50 ] karetta.jp/book-node/cpuzzle-recursion/002797 こーいうページもあるけどね これをdoubleでやりとりするように変えた kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5964.txt をあげとこう
876 名前:デフォルトの名無しさん [2008/02/02(土) 02:54:00 ] >>874 早いねw もっというと現状のソースはちょっと精神分裂気味に見えるから double number(void) 作って↓みたいにしたほうが元のBNF通りかねえ? 他人の宿題だからどうでもいいかもだけど。 double factor(void){ if(isdigit(nextc){ /* F -> Num */ return number(); } else if(match('(')) { /* F -> (E) */ double v = exp0(); if(match(')')) return v; else error(); } else { error(); } }
877 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 10:06:19 ] >>876 そうすると、1桁しかあつかえないのでは? いや、現状が精神分裂気味なのはまったく同意です。オリジナルの美しい構造を残したいものです。
878 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 10:31:53 ] >>875 なるほど,ブランク読み飛ばし、単項のマイナスにも対応してますね。 ただし、このBNF はLL(1)文法であり、たかだか**1文字**先読みすればdeterministicにtop-downに解析できるわけで、その精神をソースにもりこみたいな、という意志がありまして...。
879 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 11:22:33 ] 83代目の575は評価されるべき
880 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 17:33:37 ] >>751 が叩かれてて質問者でもないし聞きづらかったんだけど、期限も切れているようだし>>751 を聞いていいかな?
881 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 17:41:13 ] いいとも!
882 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 19:12:13 ] [1] 授業単元:プログラミング初級 [2] 問題文(含コード&リンク): 1〜24まで穴埋め問題です ip.tosp.co.jp/i.asp?I=cgenger [3] 環境 [3.1] OS : windows [3.2] コンパイラ名とバージョン: Visual C++ 2005 [3.3] 言語: C言語 [4] 期限:2月4日
883 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:18:58 ] >>882 とりあえず22まで。間違ってても謝罪や賠償はしない。 1. int * 2. char * 3. char * 4. int ** 5. char ** 6. char ** 7. &cnt 8. &ch 9. &ch 10. pc 11. *pc 12. &ch 13. pch 14. *pch 15. argv[1] 16. pa 17. *(argv[2]) 18. *pa 19. &pc 20. &pch 21. **ppc 22. **pch
884 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:36:22 ] 23と24も。 最近C言語でプログラム書いていないんで、argvの仕様を調べなおしてた。 あと、実行時の引数の順序がわからんから、適当に書き換えてくれ。 23. *(pp+3) 24. **(pp+4)
885 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:22:32 ] >>883 ありがとう御座います
886 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:28:44 ] ttp://www.raw-paradise.com/
887 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:48:01 ] >>879 再掲載お願いできますでしょうか?
888 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 00:06:55 ] 結局751の画像は何を対象にしてたんだぜ?
889 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 00:38:36 ] >>581 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5968.c
890 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 01:29:14 ] 【時間切れ】 (2/2) なし 【未解決問題】 >>798 2/5 残:課題1 >>79 無期限 >>144 無期限 問題文>>148
891 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 02:44:30 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): input8500.txtには4桁の整数が8500個書かれている。 これら8500個の整数のうち、相異なる整数は何種類あるか求めなさい。 input8500.txt: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5969.txt [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2008年2月4日12:00まで [5] その他の制限: 制限は特にありません。宜しくお願いいたします。
892 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 03:30:01 ] >>891 #include <stdlib.h> #include <stdio.h> #include <string.h> int main(void){ int *table=(int*)calloc(sizeof(int), 10000, 0), i, x; FILE *in=fopen("input8500.txt","r"); for(i=0; i<8500; i++){ fscanf(in, "%d", &x); table[x]++; } for(i=x=0; i<10000; x+=table[i]?1:0, i++); printf("%d種類\n", x); } コンパイラ無いので,試してないけど動くんじゃね?
893 名前:デフォルトの名無しさん mailto:sage575さんゴメンナサイ [2008/02/03(日) 08:25:55 ] >>887 575 デフォルトの名無しさん sage 2007/02/22(木) 19:31:21 >>574 ほい。 #include<stdio.h> #include<stdlib.h> char buf[100],*src=buf; double atm(void); double mul(double r){return*src=='*'?++src,mul(r*atm()):*src=='/'?++src,mul(r/atm()):r;} double add(double r){return*src=='+'?++src,add(r+mul(atm())):*src=='-'?++src,add(r-mul(atm())):r;} double atm(void){ double r; while(isspace(*src))++src; if(*src == '(')++src,r = add(mul(atm())),++src; else r = strtod(src,&src); while(isspace(*src))++src; return r; } int main(){gets(src);printf("%f\n",add(mul(atm())));}
894 名前:デフォルトの名無しさん [2008/02/03(日) 17:42:29 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5973.txt [3] 環境 [3.1] OS:UNIX [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限:2月12日(火)16時20分まで [5] その他の制限:特になし。 よろしくお願いします。
895 名前:891 mailto:sage [2008/02/03(日) 18:08:31 ] >>892 ありがとうございます。コンパイルしてみたところ 5行目に、too many arguments to function `calloc' とエラーが出ました。calloc関数は使用したことがないため、 どこを直せばいいのか分かりません。 教えていただけないでしょうか。
896 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:11:24 ] それくらい仕様を見れば分かるだろ。
897 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:12:20 ] >>895 calloc(10000, sizeof(int))
898 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:45:29 ] >>894 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5974.c
899 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:53:57 ] [1] 授業単元:プログラミング実習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5975.txt [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:Visual Studio 2005 [3.3] 言語: C [4] 期限:2月5日 [5] その他の制限:特になし お願いします。
900 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:35:45 ] [1] 授業単元:課題3 [2] 問題文(含コード&リンク):月日を入力するとその日の星座を表示するプログラムを作成せよ。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: ? [3.3] 言語: C [4] 期限: 2008/2/6 [5] その他の制限: 特にありまさん
901 名前:891 mailto:sage [2008/02/03(日) 22:02:09 ] >>896 >>897 コンパイル通りました。ありがとうございました! 仕様良く読みます。
902 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:09:06 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 直径1長さ1の円柱がある。体積をモンテカルロ法で計算せよ。 一辺が1の立方体を考え、3個の乱数で立方体内の点のxyz座標を発生させ,その点が物体の内部 に落ちるかどうかを判定する。内部に落ちる確率が体積に比例することから体積が見積もれる。 [3] 環境 [3.1] OS:windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2/4 [5] その他の制限: 以前このスレで質問した問題なんですがコンパイルできなかったのでもう一度 おしえてもらえないでしょうか。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5976.txt printf("Vの真の値 = %f\n", M_PI * 0.5 * 0.5); のM_PIでエラーがでて しまいます。
903 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:22:43 ] >>900 #include <stdio.h> #include <stdlib.h> int main() { static const struct {int n; const char *s;} c[] = { {120, "みずがめ"}, {219, "うお"}, {321, "おひつじ"}, {420, "おうし"}, {521, "ふたご"}, {622, "かに"}, {723, "しし"}, {823, "おとめ"}, {923, "てんびん"}, {1024, "さそり"}, {1122, "いて"}, {1222, "やぎ"}, }; int i, m, d; char buf[256]; do { printf("月/日: "); if (fgets(buf, sizeof buf, stdin) == 0) return EXIT_FAILURE; } while (sscanf(buf, "%d / %d", &m, &d) != 2); for (i = 0; i < 12 && m * 100 + d >= c[i].n; i++) ; if (--i < 0) i = 11; printf("%s座\n", c[i].s); return EXIT_SUCCESS; }
904 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:27:41 ] >>902 上の方に #define M_PI 3.141592653589793238 とか書いときゃいいんじゃね?
905 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:30:10 ] >>902 printf("Vの真の値 = %f\n", M_PI * 0.5 * 0.5);のまえにでも #ifndef M_PI #define M_PI 3.14159265358979323846 #endif とでもしとけ てか、CygwinでもMinGWでもコンパイルは通るんだが
906 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:35:19 ] >>902 私の方でもコンパイル・実行しましたが、問題はありませんでした。 環境は WindowsXP/cygwin(gcc 3.4.4) です。 #include <math.h> の記述がありますから、M_PI には円周率が定義されているはずなのですが...。 gcc のインストールはどうやってしましたか?
907 名前:906 mailto:sage [2008/02/03(日) 22:40:29 ] >>902 そうそう、アップローダのソースは空白が全角になってました。これを半角に直してみてください。
908 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:41:48 ] VCとかでは定義されてなかったような気がする。関係ないけど バージョンによってはgccでも載ってなかったりするのか?
909 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:54:59 ] >>899 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5977.c
910 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:58:44 ] >>908 M_PI は、手元の gcc 2.6.3 for GO32/PC9801 の math.h には定義されていましたね。 bcc 5.5 でも OK, VC 6.0 の math.h にはありませんでした。
911 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 23:09:50 ] VC(7以上)なら #define _USE_MATH_DEFINES で使えたはずだが
912 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 23:10:52 ] >>900 #include<stdio.h> int main(void){ char *a[]={"いて","やぎ","みずがめ","うお","おひつじ","おうし","ふたご","かに","しし","おとめ","てんびん","さそり"}; unsigned int m,d; printf("月,日="); scanf("%d,%d",&m,&d); printf("%s座\n",a[(m+d*2/",*&*(,*0...,"[m%12])%12]); return 0; }
913 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:16:06 ] 3.141592653592
914 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:21:34 ] >>798 課題1。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5978.txt
915 名前:581 mailto:sage [2008/02/04(月) 03:47:38 ] >>889 さん ありがとうございますm(_ _)m さっきgccでコンパイル通そうとおもったら通らなかったのですが、どうすれば良いでしょうか??orz
916 名前:デフォルトの名無しさん [2008/02/04(月) 08:45:59 ] [1] 授業単元: プログラミング入門 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5980.txt [3] 環境 [3.1] OS:UNIX [3.2] gcc 3.4 [3.3] 言語: C [4] 期限:2月6日 [5] その他の制限: よろしくお願いします。
917 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 09:10:09 ] >>915 どんなエラーメッセージが出ていますか。
918 名前:デフォルトの名無しさん [2008/02/04(月) 09:34:59 ] [1] 授業単元:アルゴリズム [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5982.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: どちらでも可 [4] 期限: 2008年02月04日12:00まで [5] その他の制限:
919 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 10:44:49 ] >>916 ( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5983.c
920 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 10:47:51 ] >>918 ( ´∀`) yamaguchi.txt が落とせないんです。
921 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 10:54:17 ] >>916 ごめん。行頭に空白があったり、空行があったらバグっちゃう。 パッチ書きました。 ( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5984.txt
922 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 11:03:33 ] >>916 ごめん。add_word() の処理が冗長だった。 もう一回パッチあててくり。 ( ´∀`)つ ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5985.txt
923 名前:899 mailto:sage [2008/02/04(月) 11:06:04 ] >>909 ありがとうございました。
924 名前:デフォルトの名無しさん [2008/02/04(月) 11:07:56 ] >>920 yamaguchi.txtです kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5986.txt
925 名前:915 mailto:sage [2008/02/04(月) 11:26:36 ] >>917 さん コンパイル失敗時に出てきたエラーメッセージを直接コピペします。長いかも・・・。 2ch.c:6: parse error before `&' 2ch.c:17: parse error before `}' 2ch.c: In function `read_wave_file': 2ch.c:47: storage size of `chunk' isn't known 2ch.c:54: stray '\' in program 2ch.c:54: parse error before `)' 2ch.c:56: stray '\' in program 2ch.c:56: parse error before `)' 2ch.c:62: stray '\' in program 2ch.c:62: parse error before `!' 2ch.c:68: parse error before `else' 2ch.c:68: stray '\' in program 2ch.c: At top level: 2ch.c:76: parse error before `if' 2ch.c:78: parse error before `+' 2ch.c:78: warning: data definition has no type or storage class 2ch.c:81: warning: parameter names (without types) in function declaration 2ch.c:81: warning: data definition has no type or storage class 2ch.c:83: parse error before `if' 2ch.c: In function `write_wave_file': 2ch.c:92: storage size of `chunk' isn't known 2ch.c:98: stray '\' in program 2ch.c:98: parse error before `;' 2ch.c:102: stray '\' in program 2ch.c:102: parse error before `;' 2ch.c:105: stray '\' in program 2ch.c:105: parse error before `;' 2ch.c:110: stray '\' in program 2ch.c:110: parse error before `;'
926 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 11:39:00 ] >>925 5行目の最後(改行の直前)の'\'が消えてないか?
927 名前:デフォルトの名無しさん [2008/02/04(月) 12:35:58 ] >>922 ありがとうございました。
928 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:55:09 ] >>925 まさかとは思うが、改行コードが\r\nのままLinuxでコンパイルしていないか? 5行目末のバックスラッシュが\rをエスケープしてしまい、その後の\nをエスケープできなくなるぞ。
929 名前:デフォルトの名無しさん [2008/02/04(月) 14:43:27 ] [1] 授業単元: プログラミング入門 [2] 問題文(含コード&リンク):@0〜99の数字から異なる30個を選び、配列COM1[30]に格納せよ (時間で初期化,乱数を使用) A次に6個の異なる数を入力し配列COM2[6]に格納せよ B次にCOM1、COM2の数を小さい順に並び変えよ C次にCOM1とCOM2の両方に含まれる数の個数を求めよ D最後にCOM1とCOM2の全数字とCの個数を出力させよ [3] 環境 [3.1] OS:UNIX [3.2] gcc 3.4 [3.3] 言語: C [4] 期限:2月7日 [5] その他の制限: 宜しくお願いします。
930 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:59:57 ] >>929 >>788
931 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:24:53 ] >>929 ( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5990.c
932 名前:デフォルトの名無しさん [2008/02/04(月) 15:33:49 ] >>931 make_com1()は>>929 の@の『0〜99の数字から異なる30個を選び』を 満たしてないような・・・(重複するんじゃないの?) 通りがかりで失礼
933 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:57:58 ] >>929 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5992.txt 初心者だけどやってみた、一応ちゃんと動いた。 変数の名前とかだいぶ適当だけど勘弁。
934 名前:デフォルトの名無しさん [2008/02/04(月) 17:17:44 ] [1] 授業単元:C言語入門 [2] 問題文:キーボードから学籍番号を入力すると、 その学生の eメールアドレスを出力するプログラムを作成しなさい。 ただし、学籍番号は7桁の自然数とし、これ以外の文字列が打ち込まれた時には 「学籍番号は7桁の数字で入力して下さい」と出力して、終了するプログラムとすること。 例 学籍番号を入力して下さい:0032113 0032113@yahoo....など。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: visual studio [3.3] 言語: C++ [4] 期限: 2月4日 [5] その他の制限: 期限ギリギリで申し訳ないですが、お願いします。
935 名前:デフォルトの名無しさん [2008/02/04(月) 19:00:43 ] >>929 俺も作ってみた kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5993.txt
936 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:45:00 ] 100回入れ替えなくても30回で十分なやり方あるだろ……と思ってよく見たらその交換の仕方はダメだ
937 名前:935 [2008/02/04(月) 20:46:34 ] あぁ・・・VCで作ったから_tmainのままになってら・・・
938 名前:デフォルトの名無しさん [2008/02/04(月) 20:49:52 ] >>936 後学の為にダメな理由を詳しく教えてくれると嬉しい。
939 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:57:16 ] for( i = 0 ; i < sizeof(hoge)/sizeof(*hoge) ; i++ ) { // i番目の要素と乱数(0~99)番目の要素を交換 int rnd = rand() % 100 ; int tmp = 0 ; tmp = hoge[i] ; hoge[i] = hoge[rnd] ; hoge[rnd] = tmp ; } これだと数値が偏るから
940 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:58:56 ] [1] 授業単元:プログラミング [2] 問題文 input.txtの各行には100点満点の数学の試験の点数が書かれている。 これを0点台,10点台…,90点台,100点の11の階級に分け、どの階級に何人 が属するかを人数分の"*"で表すプログラムを書きなさい。出力の細かな形式は問わない。 input.txt: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5988.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Visual C [3.3] 言語:C [4] 期限:2月6日 [5] その他の制限: よろしくお願いします。
941 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:59:28 ] >>934 学籍番号とメールアドレスの関連はどうなってるんだ? それだけじゃ、苗字を入力して、下の名前を出力するプログラムって言うぐらい、意味不明だぞ。 どうやって作ったらいいのかサッパリ分からん。 学籍番号@yahoo.co.jpでいいのか?
942 名前:デフォルトの名無しさん [2008/02/04(月) 21:03:06 ] >>939 どう偏るの?
943 名前:934 [2008/02/04(月) 21:06:39 ] >>941 入力された学籍番号@yahoo.co.jp と、出力されるプログラムです。 ただし、学籍番号は7桁の自然数とし、これ以外の文字列が打ち込まれた時には 「学籍番号は7桁の数字で入力して下さい」と出力して、終了するプログラムとすること。 ↑ここがどのようにプログラムしたらいいのか分からないのです。
944 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:10:33 ] >>940 #include <stdio.h> int main(void) { FILE *fp; int i, j, a[11] = {0}, n; if((fp=fopen("input.txt", "r"))==NULL) return 1; while(fscanf(fp, "%d", &n)!=EOF) a[n/10]++; for(i=0; i<11; i++) { printf("%3d点台:", i*10); for(j=0; j<a[i]; j++) putchar('*'); putchar('\n'); } fclose(fp); return 0; }
945 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:11:47 ] >>942 ttp://pc11.2ch.net/test/read.cgi/tech/1187944110/513 ttp://pc11.2ch.net/test/read.cgi/tech/1187944110/532 ttp://pc11.2ch.net/test/read.cgi/tech/1187944110/534
946 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:18:28 ] >>940 ( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5994.c
947 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:26:44 ] >>942 単純化してhogeが3要素の場合を考えてみろ この場合、rand()%3が三回計算されるから、これが完全な乱数だと近似すれば、27通りが均等な確率で出る 一方、3要素を並べ換える方法の数は3!=6通りで、27は6の倍数じゃないから、6通りが公平に出ることはありえない
948 名前:デフォルトの名無しさん [2008/02/04(月) 21:41:46 ] >>945 ,>>947 ご丁寧な引用&説明ありがとう。
949 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:26:19 ] >>944 >>946 こんなに早くありがとうございました。
950 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:34:51 ] >>943 #include<iostream> using namespace std; int main(void){ string s; cout << "学生番号 : "; cin >> s; if(s.length() != 7){ cout << "7文字いれろぼけ" << endl; return 1; } for(string::iterator si = s.begin(); si != s.end(); si++){ if(!isdigit(*si)){ cout << "数字以外いれんなぼけ" << endl; return 1; } } cout << s.c_str() << "@yahoo.co.jp" << endl; return 0; }
951 名前:934 [2008/02/04(月) 22:56:17 ] >>950 ありがとうございます!
952 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:32:47 ] ちょっと早いけど次スレ立てました C/C++の宿題を片付けます 104代目 pc11.2ch.net/test/read.cgi/tech/1202135539/
953 名前:798 mailto:sage [2008/02/05(火) 01:09:34 ] >>914 さん 解説もつけていただき、ありがとうございました(^-^)/
954 名前:デフォルトの名無しさん [2008/02/05(火) 12:22:57 ] 文字列がランダムに入ったchar moji[i][255]があります moji[0〜i]で何種類の文字列があるか数える方法教えてください 例えばi=5だとして moji[0]="abc" moji[1]="bbb" moji[2]="abcdbbb" moji[3]="bbb" moji[4]="abc" なら答えは3種類です
955 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 12:39:17 ] >>954 ここは宿題スレ。よって、スレ違い。
956 名前:売国まるはん [2008/02/05(火) 13:11:47 ] パチンコスレで遠隔、ホルコン、サクラ、マネーロンダリングなどについて書き込むと渋谷マルハン社員やマルハンに依頼された ネット工作会社がスレ荒らしをしてスレが機能停止します。 ↓↓工作員の荒らしのやり方↓↓ 2008/01/10(木)ID:iA54nBU50 ■■■■マルハン総合スレッド 9■■■■money6.2ch.net/test/read.cgi/pachij/1187021165/783-784 【宮崎県都城市】パチ事情そのAmoney6.2ch.net/test/read.cgi/pachij/1187189246/658-659 【山と川】宮崎県児湯付近PART1【自然イパーイ】money6.2ch.net/test/read.cgi/pachij/1188235164/471-472 【基地外が大暴れ4】エスパス日拓総合スレ【18発目】money6.2ch.net/test/read.cgi/pachij/1188885488/401-410 2008/01/13(日)ID:1HLcWzUK0 【基地外が大暴れ4】エスパス日拓総合スレ【18発目】money6.2ch.net/test/read.cgi/pachij/1188885488/461-462 ■■■■マルハン総合スレッド 9■■■■money6.2ch.net/test/read.cgi/pachij/1187021165/809-810 【香川】パーラーグランドのスレ2【徳島】money6.2ch.net/test/read.cgi/pachij/1188315438/324 【延岡】宮崎県北情報PART3【日向】money6.2ch.net/test/read.cgi/pachij/1196865970/186 工作員に荒らされ機能停止したスレ ■■■■マルハン総合スレッド 9■■■■money6.2ch.net/test/read.cgi/pachij/1187021165/ 【山崎】MPT渋谷パート9【シャネル】money6.2ch.net/test/read.cgi/pachij/1197771701 【基地外が大暴れ4】エスパス日拓総合スレ【18発目】money6.2ch.net/test/read.cgi/pachij/1188885488 MPT渋谷はマルハン・パチンコ・タワー渋谷の略です。 パチンコ産業は荒らすことでレスとレスの間を空けて読む気をなくさせたり マネーロンダリング、さくら、ホルコン、遠隔、などの風評被害を最小限に抑えようとしてる。 新スレ→○○○マルハンパチンコタワー渋谷パート10○○○ ★★★★★このスレの解説★★★★★を読んでみるとよく判る。 money6.2ch.net/test/read.cgi/pachij/1201304777/52-54
957 名前:デフォルトの名無しさん [2008/02/05(火) 15:11:26 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):与えられたデータに対して季節調整を行うプログラムを作成しなさい。 <調整法> i年目、j月のデータを aij とする。 月平均 Mj 月平均の平均 M 調整のための指数 Sj = Mj / M 調整結果 aij / Sj <input.text> 40.0 37.7 51.8 45.9 45.2 45.4 62.0 40.8 42.1 49.1 51.5 93.4 42.6 39.5 53.4 47.6 47.0 47.5 63.5 42.2 42.9 51.1 51.8 94.7 43.3 39.8 53.6 48.5 48.3 47.5 65.9 42.8 43.7 53.2 52.9 97.0 44.9 42.3 55.0 50.7 48.6 48.9 68.8 43.3 46.2 54.2 54.6 100.5 47.5 42.8 57.7 52.6 51.0 50.9 71.4 45.0 47.3 56.8 56.7 102.7 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: Visual Studio 2005 [3.3] 言語:C++ [4] 期限:2月7日 [5] その他の制限: 結果は、画面に表示してください。 よろしくお願いします!
958 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:17:10 ] >>957 pc11.2ch.net/test/read.cgi/tech/1180856695/796-
959 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:22:47 ] [1]授業単元 C言語 [2]問題文 整数yを入力すると、y×yの正方形を描くプログラム ex)y=4のとき ・・・・ ・ ・ ・ ・ ・・・・ y=1のときは ・ y=2のときは ・・ ・・ でOK [3]環境 Windows、C [4]期限 2/6 9:30まで。なるべく早めにお願いします。
960 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:32:04 ] // >>959 2バイト文字にするのは自分でやってくれ。 #include <stdio.h> int main() { int y; scanf("%d", & y); if (y >= 1) { for (int xc = 0; xc < y; ++xc) { printf("."); } printf("\n"); } for (int yc = 0; yc < y - 2; ++yc) { printf("."); for (int xc = 0; xc < y - 2; ++xc) { printf(" "); } printf(".\n"); } if (y >= 2) { for (int xc = 0; xc < y; ++xc) { printf("."); } printf("\n"); } return 0; }
961 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:42:01 ] /* こんでいいじゃんw */ #include <stdio.h> int main() { int y, xc, yc; scanf("%d", & y); for (yc = 0; yc < y; ++yc) { for (xc = 0; xc < y; ++xc) { printf("%s", yc == 0 || yc == y - 1 || xc == 0 || xc == y - 1 ? "・" : " "); } putchar('\n'); } return 0; }
962 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 17:56:42 ] >>960-961 ありがとうございました。
963 名前:デフォルトの名無しさん [2008/02/05(火) 18:21:06 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): ・時計の長針と短針がなす角を求めるプログラム 時刻 h時 m分 (24時間制、mは整数)において、時計の長針と短針がなす角θ(0°≦θ≦180°) を計算するプログラムを書きなさい。 ただし、h、mを入力する部分、及びなす角θを計算する部分をそれぞれ関数化しなさい。 結果の出力はh、m、θが表示されていれば細かい様式は問わない。 ヒント:時計の長針は1時間で一周するということは、1分間あたり何度動くか。 同様に、時計の短針は12時間で一周するということは1時間当たり何度動くか。 また1分間あたり何度動くか。時計の長針は短針に比べて1分間にどれだけ多く動くか。 実行例 >clock.exe input h:22 input m:0 22:00 (60.0°) [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2008年2月6日12:00まで [5] その他の制限: 制限は特にありません。よろしくお願い致します
964 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 19:04:08 ] [1] 授業単元:プログラミング応用 [2] 問題文(含コード&リンク):ip.tosp.co.jp/i.asp?I=cgenger [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: Visual Studio 2005 [3.3] 言語:C++ [4] 期限:2月9日 [5] その他の制限: 宜しくお願いします
965 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:04:22 ] >>963 #include<stdio.h> #include<math.h> double calc_theta(int hour, int minute){ double degree_hour, degree_minute, theta; degree_hour=(hour+minute/60.0)*30.0; degree_minute=minute*6.0; theta=fmod(degree_hour-degree_minute, 360.0); if(theta<0.0) theta+=360.0; if(theta>180.0) theta=360.0-theta; return theta; } void get_value(int *pvalue, const char *message){ printf("%s", message); scanf("%d", pvalue); } void get_hour(int *phour){ get_value(phour, "input h:"); } void get_minute(int *pminute){ get_value(pminute, "input m:"); } int main(void){ int hour, minute; get_hour(&hour); get_minute(&minute); printf("\n%02d:%02d (%.1f°)\n", hour, minute, calc_theta(hour, minute)); return 0; }
966 名前:963 mailto:sage [2008/02/05(火) 20:50:26 ] >>965 さん 宿題でこれだけがどうしても分からなかったので、 本当に助かりました。 コードを見て理解することができました。 ありがとうございました!
967 名前:デフォルトの名無しさん [2008/02/05(火) 21:51:10 ] 【質問テンプレ】 [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6002.txt このプログラムにより1つのxに対して100個の誤差を含んだyが求められるので それぞれのxについて分散S=(1/100)*((yの平均値)-(yの値))を求めて fprintf(fp2,"%lf\t%lf\n",x,S);を使ってtxtファイルに書き出す [3] 環境 [3.1] Windows [3.2] Visual Studio 2005 [3.3] 言語:C [4] 期限:2月6日正午 問題文のプログラムに付け加える形でやってもらえるとありがたいです 時間短いですがどうかよろしくお願いします
968 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:54:27 ] 2乗が足りないな
969 名前:967 mailto:sage [2008/02/05(火) 23:10:36 ] あ、ほんとだ S=(1/100)*((yの平均値)-(yの値))^2 ですね
970 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:31:18 ] >>967 void main() { double X[2]; int flag=0; srand( (unsigned)time( NULL ) ); int i; long double x,y, sum_y, sum_y2, s; x=0; FILE *fp1, *fp2; fp1=fopen("file1.txt","w"); fp2 = fopen("file2.txt", "w"); for(x=0;x<=10;x++) { i=0; sum_y = sum_y2 = 0; while(i<100){ i=i+1; y=x*x+AddError(&flag,X)*0.05; sum_y+=y; sum_y2 += pow(y, (long double)2.0); fprintf(fp1,"%lf\t%lf\n",x,y); } s = -pow(sum_y, (long double)2.0)/10000 + sum_y2/100; fprintf(fp2, "%lf\t%lf\n", x, s); } fclose(fp1); fclose(fp2); }
971 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:37:07 ] >>954 std::set<std::string>(moji,moji+sizeof(moji)/sizeof(*moji)).size()
972 名前:デフォルトの名無しさん [2008/02/06(水) 00:14:18 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6003.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: Visual Studio [3.3] 言語: C [4] 期限: 2月7日 [5] その他の制限: おねがいします。
973 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 06:51:28 ] >>972 またその問題かいな。
974 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 07:31:03 ] >>973 !! もう誰かが質問してたってことですか! ぐへえ
975 名前:デフォルトの名無しさん [2008/02/06(水) 09:25:24 ] 【質問テンプレ】 [1] 授業単元:C++ [2] 問題文 テトラナッチ数列の問題で。 初項と第2項は0、第3項は1の値となるが第n項(n>3)び値Tnは以下の式で あらわせられる。 Tn=Tn-1+Tn-2+Tn-3 再起を利用した関数int tetra(int n)を作成しn=1から n=30までに各値を表示 させたい。以下の質問に答えよ @関数tetraを以下に記述せよ Amain関数を以下に記述せよ [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (borand5.5) [3.3] 言語: (/C++/) [4] 期限: 今日中
976 名前:975 [2008/02/06(水) 09:29:17 ] 追記で。 上記プログラムを何回実行したかを確認したいときどこをどのように変更したらよいか答えなさい。
977 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 09:53:54 ] >>975 #include <stdio.h> int tetra(int n) { if (n < 2) return 0; else if (n == 3) return 1; else return tetra(n - 4) + tetra(n - 3) + tetra(n - 2) + tetra(n - 1); } int main() { for (int i = 0; i <= 30; i++) printf("T%d : %d\n", i, tetra(i)); return 0; }
978 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 12:08:07 ] >>977 一個増えてるwww
979 名前:967 [2008/02/06(水) 13:14:45 ] >>970 こうじゃなくて、 ひとつのxについて 100個でてくるyの平均を出す ↓ 100個のyについてそれぞれ平均との差を出して二乗をとる ↓ それを100個分足してΣが出るので、それを100で割って分散を求める っていうのをそれぞれ1〜10について求めたいんですけれど・・・
980 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:49:32 ] (E[y] - y)^2=((E[y])^2-2E[y]y+y^2) 1/100*Σ((E[y]^2-2E[y]y+y^2)=E[y]^2-2E[y](1/100)Σy+(1/100)Σ(y^2) E[y]=(1/100)Σyだから ((1/100)Σy)^2-2((1/100)Σy)^2+(1/100)Σ(y^2) =-((1/100)Σy)^2+(1/100)Σ(y^2) だと思ったんだが,違ったのか
981 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:54:14 ] 間違ってるようでいて、合ってる。 N回分お得。
982 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:46:13 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク):課題作成 簡単なすごろく 20でゴール [3] 環境 [3.1] OS: (WindowsXP) [3.2] Visual studio 2005 8 [3.3] 言語: (C++) [4] 期限: 2月12日 最終課題ですごろくを作れと言われたのですが、基礎の基礎しか習ってないのでよくわかりません。 過去ログにあったプログラム例も試してみたのですが無理でした。 どなたかお願いします。
983 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:49:22 ] >>982 GUI付き?
984 名前:982 mailto:sage [2008/02/06(水) 21:02:41 ] GUIはないと思います・・多分。
985 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:15:05 ] すいません、詰まっています。教えてください。 「第6回 万年カレンダー(2) キーボードから年と月を入力し、その月のカレンダーを表示する。 」 #include <stdio.h> int is_bissextile(int year) { /* 閏年かどうか判定する関数 閏年なら1,そうでなければ0を返す */ int bis; if((year % 400) == 0 || ((year % 4) == 0 && (year % 100) != 0)){ bis = 1; } else { bis = 0; } /* 下のような書き方も可能 bis = ( year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)); */ 1日の曜日を計算する)
986 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:16:35 ] 2008年2月のカレンダーを表示する 2月1日が金曜日であることがわかっているものとする (課題では,前回のプログラムを使って1日の曜日を計算する) */ int year = 2008; int month = 2; int first_dow = 5; /* 1日は金曜日 */ int i; int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if(is_bissextile(year)) { /* 閏年なら,2月を29日までにする */ days[1] = 29; } printf(" %d年%2d月\n", year, month); printf("日 月 火 水 木 金 土\n");
987 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:26:58 ] for(i=0; i<first_dow; i++){ printf(" "); /* 最初の曜日の,1日の前の空白 */ } for(i=1; i<days[month-1]+1; i++){ printf("%2d ", i); /* 数字二桁と,二つの空白 */ if((first_dow + i) % 7 == 0){ printf("\n"); /* 土曜日になったら,改行 */ } } /* 最終日が土曜日以外だったら,最後に改行を入れる 土曜日の場合は,既に入っているので入れない */ if((first_dow + i)%7!=1) printf("\n"); }
988 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:52:24 ] >>985-987 わかりづれーなww >>985 と>>986 の間に return bis; } int main(void){ を追加すればいいだけじゃないのか?
989 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 10:56:35 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク):課題1:キーボードから文字列を入力し、その内容をファイルに保存するプログラムを作成しなさい。 なお、文字列の最大長は256バイトとし、プログラムの終了条件は、文字データの入力がないときとする。 課題2:課題1で作成されたファイルを読み込み、画面に表示するプログラムを作成しなさい。 [3] 環境 [3.1] OS: (WindowsXP) [3.2] Visual studio 2005 [3.3] 言語:C [4] 期限: 2月14日 課題が2つもありますがどうかよろしくお願いします
990 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 10:59:20 ] 連続投稿すみません。課題1の最後の分に「すなわち、次の入力とする「C:\>Enter」」を追加します。
991 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 11:41:11 ] >>988 ごめんなさいちょっとミスしましたw えっと、この日本語を全てプログラムにしないとダメなのですが、分からないんです jbbs.livedoor.jp/bbs/read.cgi/game/33978/1163833286/313n- 問題こちらです、よろしくお願いします。
992 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 11:42:11 ] >>991 特定したwwwwww
993 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 11:43:37 ] え、ちょ、何がですか?怖いです
994 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 12:00:44 ] >>989 初心者ですが作ってみました。 //課題1 #include <stdio.h> #include <string.h> #define CHARMAX 256 int main(void) { int i=0; char str[CHARMAX]; FILE *fp=fopen("data.txt","w"); if(!fp) return 1; do{ fgets(str, CHARMAX, stdin); i += int(strlen(str)); if(i > CHARMAX){ printf("入力文字数オーバー"); break; } fputs(str, fp); }while(str[0]!='\n'); return 0; }
995 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 12:01:04 ] //課題2 #include <stdio.h> #define CHARMAX 256 int main(void) { char str[256]; FILE *fp=fopen("data.txt", "r"); if(!fp) return 1; while(!feof(fp)){ fgets(str, CHARMAX, fp); printf("%s", str); } return 0; }
996 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:14:20 ] >>982 こんなんでいいんでしょうか。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6014.txt
997 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:34:05 ] >>994 問題の解釈違いかも知れんが、入力制限はトータルではなくて毎回個別でいいんじゃないか? それなら、fgets()任せで済むことだし。
998 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:39:15 ] >>997 ああ、確かに文字列一個当たりの最大値っぽいですね。 指摘ありがとうございます。 //課題1 #include <stdio.h> #define CHARMAX 256 int main(void) { char str[CHARMAX]; FILE *fp=fopen("data.txt","w"); if(!fp) return 1; do{ fgets(str, CHARMAX, stdin); fputs(str, fp); }while(str[0]!='\n'); return 0; } 課題2は同じで大丈夫ぽいかな。
999 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:47:22 ] う
1000 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:48:02 ] め
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。