1 名前:デフォルトの名無しさん [2007/09/21(金) 08:46:37 BE:340816166-2BP(12)] あなたが解けない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++の宿題を片付けます 95代目 pc11.2ch.net/test/read.cgi/tech/1187944110/
264 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 08:00:20 ] >>263 ファイルのリネームをしろってこと? コピーを作れってこと?
265 名前:デフォルトの名無しさん [2007/09/25(火) 08:22:33 ] >>264 ファイルのコピーを作って リネームしろってことだと思います。
266 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 08:27:28 ] >>265 Cygwin?MinGW?
267 名前:デフォルトの名無しさん [2007/09/25(火) 08:29:16 ] >>266 すみません書き忘れでした cygwinです
268 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 08:33:16 ] >>263 複数拡張子(a.txt.bak) や拡張子無しはどうすれば?
269 名前:デフォルトの名無しさん [2007/09/25(火) 08:35:42 ] >>268 とくにその辺は指定がないので 気にしなくて(ないものと考えて) 良いと思われます
270 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 08:41:06 ] >>263 #include<stdio.h> #include<stdlib.h> #include<string.h> int main(int c,char**v){ char com[256]="./tmp.bat "; strcat(com,v[1]); FILE*fp=fopen("tmp.bat","w"); fprintf(fp,"%s","cp %1 tmp\nren tmp %~n1.abc.%~x1"); fclose(fp); system("chmod 744 tmp.bat"); system(com); system("rm tmp.bat"); return 0; }
271 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 09:32:18 ] >>263 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4966.c
272 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 09:35:48 ] >>263 ちょい訂正。拡張子は . 以下3文字まで対応、だと思う。それ以外は知らん。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4967.c
273 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 09:40:50 ] あと、きんもぉ〜☆クソースなんで、あしからずw
274 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 10:14:27 ] >>263 #include <stdio.h> #include <string.h> #include <assert.h> int main(int argc, char **argv) { char outname[256]; char *dot; if( argc != 2 ){ printf("Usage:%s filename",argv[0]); return 1; } if( (dot = strrchr(argv[1], '.')) == NULL ){ strcpy( outname, argv[1]); strcat( outname, ".abc" ); }else{ int i; for( i=0 ; argv[1][i] != *dot ; i++){ outname[i] = argv[1][i]; } outname[i] = '\0'; strcat(outname, ".abc"); strcat(outname, dot); } if( rename( argv[1], outname ) == -1){ perror("Error"); return 1; } return 0; }
275 名前:274 mailto:sage [2007/09/25(火) 10:20:17 ] assert消し忘れた
276 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 10:51:49 ] >>265
277 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 10:58:40 ] ってことだと思います ~~~~~~~~~~~~~~~~~~~~~
278 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 11:06:43 ] >>265
279 名前:デフォルトの名無しさん [2007/09/25(火) 11:13:33 ] たくさんのレスありがとうございました 大変参考になりましたm(__)m
280 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 13:13:52 ] >>263 #include<stdio.h> #include<string.h> int main(int argc, char *argv[]){ char *src_orig, dest_orig[FILENAME_MAX+1], *src, *dest, *ptr; if(argc==2) src_orig=argv[1]; else src_orig="test.txt"; src=src_orig; dest=dest_orig; ptr=strrchr(src, '\\'); if(ptr==NULL) ptr=strrchr(src, '/'); if(ptr!=NULL) dest+=sprintf(dest, "%.*s", ptr-src+1, src), src=ptr+1; ptr=strrchr(src, '.'); if(ptr==NULL) ptr=src+strlen(src); sprintf(dest, "%.*s.abc%s", ptr-src, src, ptr); printf("%s -> %s\n", src_orig, dest_orig); if(rename(src_orig, dest_orig)!=0){ printf("Error : rename failed. %s -> %s\n", src_orig, dest_orig); } return 0; }
281 名前:デフォルトの名無しさん [2007/09/25(火) 13:21:39 ] 1] 授業単元: C [2] 問題文 機能の異なる加工機械が三種類M1・M2・M3(一台ずつ)があり、それぞれ加工経路の異なる三種類の製品A・B・Cの発注がランダムに来る。 発注が来てからスケジュールを行い、何日で完成するかを出すプログラムを作りなさい。 ただし、製品Aの加工順路はM1⇒M2⇒M3、加工時間はM1:5M2:10 M3:15時間 製品Bの加工順路はM2⇒M3⇒M1、加工時間はM1:10M2:15 M3:5時間 製品Cの加工順路はM3⇒M1⇒M2、加工時間はM1:15M2:5 M3:10時間 発注が来た時点で、使用したい加工機械が他の製品を加工中だった場合、その製品の加工が終了してから、 加工を開始するものとする。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:Borland C++ Compiler 5.5 [3.3] 言語: C [4] 期限: 9/25 [5] その他の制限: なし よろしくお願いします。
282 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 13:25:41 ] >>263 #include<stdio.h> char *addext(char *cs, int size, char *org, char *ext) { char *p; for (p = org; *p != '.' && *p != '\0'; p++) continue; strncpy(cs, org, (p - org)); strncpy(cs + (p - org), ext, strlen(ext)); strncpy(cs + (p - org) + strlen(ext), p, strlen(p)); return cs; } int copy(char *from, char *to) { FILE *src = fopen(from, "r"); if (!src) return -1; FILE *dst = fopen(to, "w"); int c, n; for (n = 0; (c = getc(src)) != EOF; n++) { putc(c, dst); } fclose(src); fclose(dst); return n; } int main(int argc, char **argv) { int size = 256; char dst[size], *src = argv[1]; if (1 < argc && 0 < copy(src, addext(dst, size, src, ".abc"))) { printf("copy `%s' -> `%s'", src, dst); } }
283 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 13:31:05 ] >>281 最短日数を答えるんだよね?アルゴリズムとか書いてない?
284 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 13:32:48 ] >>281 1日24時間で計算し、常に稼動しているものとしておk? 入力するデータ形式はどんな感じ? 加工途中で追加の発注が割り込む可能性はある? 発注の最小時間単位は1時間?1分?1秒? 絶対遵守の納期設定はある?
285 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 13:34:22 ] >>263 人気杉w
286 名前:281 [2007/09/25(火) 13:40:41 ] >283 アルゴリズムですか。。。 発注が着たら前詰めで、割り付けていくとしか書いてないんですけど。。。 例えば、製品Aの発注が来た時点で、M1が使用中で3時間後にその作業が終了するなら、 発注が来て三時間後に製品Aの加工を開始するって意味だと思うんですけど。。。 もちろん次のM2がまた使用中ならその作業が終了してから、M2での製品Aの加工を開始するって意味です。 よろしくお願いします。
287 名前:281 [2007/09/25(火) 13:48:32 ] >284 1日24時間で計算し、常に稼動しているものとしておk? ⇒大丈夫です。 加工途中で追加の発注が割り込む可能性はある? ⇒他の製品の発注が来ることはありますが、同じ製品の追加はないです。 早く来た発注がを最優先でお願いします。 発注の最小時間単位は1時間?1分?1秒? ⇒一時間でお願いします。 絶対遵守の納期設定はある? ⇒ありません。
288 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 13:50:01 ] 発注のタイミングや回数はどうやって決まるの?
289 名前:281 [2007/09/25(火) 13:55:37 ] >288 発注のタイミングは、ランダムでお願いします。 終了条件書き忘れてました。各製品5回、発注が来たら終了でお願いします。 よろしくお願いします。
290 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 14:10:38 ] >>281 仮に下のような2つの発注があった場合、解はどうなる? #発注時(単位:時) 製品種別 注文コード(便宜上勝手に決めた) 0 製品A 000A 15 製品C 015C 経過時間順に 0 000A発注 000A-M1開始 5 000A-M1終了 000A-M2開始 15 000A-M2終了 000A-M3開始 015C発注 015C-M3開始 <- 発注時間と加工開始時間が重なる時リスケジューリングが先? 000A-M3 が優先になるか 015C-M3 が優先になるのかどっち? 000A-M3 が優先の時、総時間 60時間 015C-M3 が優先の時、総時間 55時間
291 名前:281 [2007/09/25(火) 14:22:06 ] >290 000Aの発注が先なので、000Aを優先でお願いします。 よろしくお願いします。
292 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 14:59:28 ] up.nm78.com/dl/37741.jpg を表示するプログラムを教えて。
293 名前:デフォルトの名無しさん [2007/09/25(火) 15:56:53 ] rand()%51にすれば、50までの数字が出ますけど、 例えば、ランダムで90〜110の数字を出すためにはどうしたらいいですか? 誰か教えてください。
294 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 16:01:35 ] >>293 スレ違いだが、 90〜110 -> 90 + 0〜20
295 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 16:02:16 ] >>293 rand()%21 にすると乱数の範囲は ???〜??? になります それに ??? を足すと乱数の範囲は ???〜??? になります
296 名前:デフォルトの名無しさん [2007/09/25(火) 16:10:53 ] >>294 51を90〜110 -> 90 + 0〜20 に書き換えればいいってことですか?
297 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 16:36:38 ] aho
298 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 17:16:19 ] (rand()%21) + 90 分かったら消えろ
299 名前:253 [2007/09/26(水) 00:56:25 ] >>254 書き込まれているデータは例えば3次元整数ベクトルでしたら 1 2 3 4 5 6 のような数字のみであり、 1行目をベクトルa、2行目をベクトルbとしてそれを認識し内積を求め、 その結果を別のもう1つのファイルに書き込む。 と言ったイメージであると思います(問題には質問時に書いた事以上は 書かれていなかったのであくまで私の考えですが)。 ですから、おそらく問題にあるn次元の「n」は1つの行に書かれた数値の数 で決定し、データ(数値)はファイルの先頭から書かれているという条件があるので、 1行目と2行目を読み込むだけで、内積を求めるための要素は揃うという事だと思います。 申し訳ないのですが再度よろしくお願いします。
300 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 01:21:52 ] その解釈はねーよ。nは最初に置いてあるって書いてるんだから 3 1 2 3 4 5 6 もしくは 3 1 2 3 4 5 6 のどっちかだろ。ってわけでその話は>>257 でおしまい
301 名前:デフォルトの名無しさん [2007/09/26(水) 01:25:09 ] 科学技術系のライブラリで、C++のやつはありますか?? fortranとかだと結構見かけるんだけれども、C++はほとんど無い気がします。勿体無いですよね??
302 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 01:35:10 ] スレ違い
303 名前:デフォルトの名無しさん [2007/09/26(水) 01:39:14 ] [1] 授業単元: [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4970.txt [3] 環境 [3.1] OS: (Windows) [3.2] [3.3] 言語: (C) [4] 期限: 9/26 [5] その他の制限: なし よろしくお願いします。
304 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 01:41:16 ] 他人の書いたコードの穴埋めは、自分で書くより辛いのう。
305 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 01:55:23 ] >>303 【1】 (1) 38行目でFp2を閉じている。「Fp2」 (2) 起動時に指定された2つめをファイル名として与える。「argv[2]」 (3) 一つめのファイルを開くのには成功している。この時点で閉じなければならないのは「Fp1」 (4) strerrorはエラー番号を引数にしてエラーメッセージへのポインタを返す関数。「(errno)」 (5) strcmpは同じ文字列であれば0を返す。ここは同じでないときに-1を返す処理なので「0」 ただし4がそれで良いのかどうかは自信なし(汗
306 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 02:00:22 ] >>281 期限過ぎてしもた 思ったよりもずっと難しかったし、1回全部作り直したのに見通しがよくならないし… ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4971.c 使うには標準入力から下のような文字列を与える 発注時間(整数で単位は hour) 製品種別(A,B or C)) 0 A 14 C 15 A 15 B EOFで発注を終了 ./a.out -v のようにコマンドラインオプション -v をつけると詳細表示
307 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 02:03:42 ] >>306 に追記 発注順序はソート済みとする
308 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 02:28:36 ] >>303 【2】 memcmpでは\0が出現しても処理が継続される。 単純に置き換えても機能しない場合がある。 (ような気がする。fgetsで取得した文字数が指定以下だった場合、残りは'\0'でパディングされるんだったか?) 79行目を次の7行に置き換える。 loop: nrtn = memcmp(szdat1, szdat2, 1); if(*szdat1 == '\0' || *szdat2 == '\0') goto loop_end; szdat1++; szdat2++; goto loop; loop_end:
309 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 03:46:09 ] >>306 むずいな……。 指針でも書いてくれないと追い辛いっす。
310 名前:デフォルトの名無しさん mailto:age [2007/09/26(水) 03:56:58 ] _____ (すた☆らき)  ̄ ̄\| ̄ www.freewebs.com/premiumtv/?X3/?STV=%E3%82%89%E3%81%8D+%E3%81%99%E3%81%9F
311 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 07:22:30 ] >>309 >>306 に以下の3つの注文を与えるだけで、バグが発覚した…orz 0 B 0 C 0 A データの流れはコマンドラインオプション -v をつけて表示される内容が全て。 簡単に説明すると -v オプションで表示される内容の内、 加工機械が加工を開始することが出来るのは一番左の中括弧の工程のみ 但し >>306 は加工が終わるたびに全工程を前詰めにしている (batch_restruct) が、 machine_t の process_t* を連動させていないためにバグってます
312 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 08:39:29 ] >>281 >>306 の修正版 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4973.c
313 名前:デフォルトの名無しさん [2007/09/26(水) 12:16:23 ] なにかIOCCC風な高度のテクニックを使っているプログラムを教えてください。 お題はなんでもいいです。
314 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 12:22:53 ] >>313 IOCCC見てくればいいじゃん
315 名前:よこ ◆2LEFd5iAoc [2007/09/26(水) 12:27:16 ] 【質問テンプレ】 [1] 授業単元:システム演習 [2] 問題文(含コード&リンク):行列の乗算のプログラムを作ってみよ。大きな行列要素(1000×1000)でも実行できるように作っておくこと。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: ([2007年09月26日17:00まで] [5] その他の制限: 制限はないです。お願いします。
316 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 12:47:39 ] >>315 #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct tag_matrix_t{ int column, row; double **data, *data_area; }matrix_t; matrix_t *matrix_alloc(int column, int row){ matrix_t *matrix; int x, y; matrix=malloc(sizeof(matrix_t)); matrix->column=column; matrix->row=row; matrix->data_area=malloc(sizeof(double)*column*row); matrix->data=malloc(sizeof(double*)*column); for(y=0;y<column;y++) matrix->data[y]=&matrix->data_area[y*row]; for(x=0;x<row;x++) matrix->data[0][x]=0.0; for(y=1;y<column;y++) memcpy(matrix->data[y], matrix->data[0], sizeof(double)*row); return matrix; } matrix_t *matrix_mul(matrix_t *a, matrix_t *b){ matrix_t *c; int i, j, k, x; if((x=a->row)!=b->column) return NULL; c=matrix_alloc(a->column, b->row); for(i=0;i<a->column;i++) for(j=0;j<b->row;j++) for(k=0;k<x;k++) c->data[i][j]+=a->data[i][k]*b->data[k][j]; return c; }
317 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 12:59:34 ] >>315 が見えない。 どっかで暴れてた糞コテか?
318 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 13:15:15 ] >>315 はトリップ #1111 安直だからどこかで誰かが使ったんでしょう
319 名前:デフォルトの名無しさん [2007/09/26(水) 13:36:18 ] [1] 授業単元:基本プログラミング [2] 問題文(含コード&リンク):30個以下の非負の数値データを入力したあとそれらのデータをそのまま出力する。次に1行あけて(改行を出力して)から今度は大きい順に出力する。 データ入力はキーボードから行い、適当な数値を数個入力したところでEOFを示すCtrl−Dを入力する。また、入力される数値データは必ず非負であると仮定してよい(つまりエラーチェックは不要)ただし30個以上の入力は受け付けないようにする。 プログラムは以下のステップで作成すること。 a:30個以下の数値入力データを配列に格納し、そのまま出力するプログラムを作成する。 b:n個の配列データを大きい順に出力するために、以下のことをn回繰り返す。 b1:配列データから最大値を持つ配列要素を探し、その添字を覚えておく。 b2:b1で覚えた添字のデータを出力し、同時にその要素に-1を代入する。 実行例 input number:1 2 3 4 6 32 34 56 21 11 1 2 3 4 6 32 34 56 21 11 56 34 32 21 11 6 4 3 2 1 [3] 環境 [3.1] OS:Windows [3.3] 言語:C++ [4] 期限:明日 よろしくお願いします
320 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 14:27:41 ] >>319 #include <iostream> const int sanju=30;class hairetsu {private: int arr[sanju]; int n; void nyuuryoku(); void shutsuryoku() const; int b1() const; void b2(int);public: void a(); void b();}; void hairetsu::a(){ nyuuryoku(); shutsuryoku();} void hairetsu::nyuuryoku(){ int i; for(i=0; i<sanju; ++i){ if(!(std::cin >> arr[i])) break; } n=i-1;} void hairetsu::shutsuryoku() const { for(int i=0; i<=n; ++i){ std::cout << arr[i] << ' '; }} void hairetsu::b(){ for(int i=0; i<=n ; ++i){ b2(b1()); }} int hairetsu::b1() const { int i,index=0; for(i=1;i<=n;++i){ if(arr[i]>arr[index])index=i; } return index;} void hairetsu::b2(int index){ std::cout << arr[index] << ' '; arr[index]=-1;}int main(){ hairetsu h; h.a(); std::cout << std::endl; h.b();}
321 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 15:41:15 ] >>319 #include <iostream> using namespace std; int main() { int array[30], n = 0; while (n < 30 && cin >> array[n]) ++n; for (int i = 0; i < n; ++i) { // a cout << array[i] << ' '; } cout << endl << endl; for (int i = 0; i < n; ++i) { // b int k = 0; // index of maximum element for (int j = 0; j < n; ++j) // b1 if (array[j] > array[k]) k = j; cout << array[k] << ' '; // b2 array[k] = -1; } cout << endl; }
322 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 16:20:58 ] >>320 >>321 ありがとうございました
323 名前:デフォルトの名無しさん [2007/09/26(水) 19:41:12 ] 1 授業問題 2 ポインタ int data[10] ={10,20,30,40,50,60,70,80,-999} このようなint配列があります 配列の内容を実行結果のように表示するプログラムを作りなさい -999になれば処理を終了します ポインタを固定して表示させる処理とポインタを変化させて表示させる処理の2つ作成しなさい この内容がわからないので教えて下さいお願い致します
324 名前:デフォルトの名無しさん [2007/09/26(水) 19:43:02 ] ちなみに999}の最後に:がつきます 宜しくお願い致します
325 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 19:43:38 ] >>323 テンプレ読んでからやりなおせ。アホ。
326 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 19:46:31 ] >>325 お前、来なくて良いよ。アホとか書くな、アホっ
327 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 19:47:52 ] >>323 >>1 を読め。
328 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 19:49:22 ] >>327 お前が >>323 を読まなきゃ良いだろ
329 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 19:50:04 ] >>328 読まなくていいものを書き込むな。
330 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 19:50:24 ] >>329 オマエモナー
331 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 19:50:42 ] >>330 >>1 を読め。
332 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 19:50:53 ] まあ携帯だろうからそこは大目に見ようも 日本語はもうちょっと上手く使わないとね…
333 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 19:50:55 ] テンプレ利用しろよ。
334 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 19:51:41 ] >>323 のようなやつはマナーを知らんな。
335 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 19:51:43 ] >>331 >>330 を読むな
336 名前:デフォルトの名無しさん [2007/09/26(水) 19:52:07 ] お前ら、テンプレ読まない奴はスルーしろ。
337 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 19:52:26 ] >>334 のような奴はスルーを知らんなw
338 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 19:52:57 ] >>323 駄目な奴は何をやっても駄目
339 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 19:57:24 ] >>331 >>329 >>327 <お前らが >>1 を読め。 > 気に入らない質問やその他や発言はスルーの方向で。
340 名前:デフォルトの名無しさん [2007/09/26(水) 20:15:19 ] 323 ですが すいませんバージョンとかわかりません でも 一応大丈夫なんじゃないんですか?教えて貰えたら光栄ですバカでもアホでもわからないので教えてもらえれば光栄なのでお願い致しますあとWindoを使ってることはわかります宜しくお願い致します
341 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 20:19:30 ] 323ですが、僕はアホです。っていうか涙目みたいな・・・っていうか俺ってマジやばいから。 俺怒らすと怖いですよ(ぉ っていうか、俺の友達なら知ってることだけどな。 お前ら知らんだろ。
342 名前:デフォルトの名無しさん [2007/09/26(水) 20:23:19 ] ちなみに私は341ではないですなんせ・・・この点々は使ったことないです誰か教えてくださいお願いします
343 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 20:30:30 ] >>341 あのなぁ、お前みたいな茶化したりする騙りなんてバレバレなんだよ。 なんでそう質問者をバカにするだけで質問に答える能力が無いくせに このスレで、でけぇ面してんだ?鬱陶しいんだよ、他の回答者からしてみてもお前は
344 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 20:30:46 ] >>323 #include<stdio.h> int main(void){ int data[10]={10,20,30,40,50,60,70,80,-999}; int *ptr, i; for(i=0,ptr=data;*(ptr+i)!=-999;i++) printf("%d\n", *(ptr+i)); for(ptr=data;*ptr!=-999;ptr++) printf("%d\n", *ptr); return 0; }
345 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 20:31:32 ] >>344 もっと分かりやすく書けや。気に入らん奴は回答せんでええって。 俺、怒らすと怖いよ。
346 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 20:32:55 ] >>323 マルチポストかよ!試験は実力で受けろカス! ttp://pc11.2ch.net/test/read.cgi/tech/1188748806/970
347 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 20:33:07 ] オレはツレから「キレたら怖い奴」って良く言われる それは自覚してるけど狼の血は止められない
348 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 20:41:59 ] >>347 オオカミ少年乙
349 名前:デフォルトの名無しさん [2007/09/26(水) 20:49:42 ] 344さんありがとうございました 恩にきります また宜しくお願いいたします
350 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 20:52:43 ] 切られたなり!
351 名前:デフォルトの名無しさん [2007/09/26(水) 21:18:41 ] [1] 授業: 教科書 [2] OS Windows VC60 [3]問題 int data[10] ={5,8,10,2,1,14,35,6,12}: 配列中の最大値と最小値を表示するプログラムをポインタを使用して作成するプログラムが解らないので教えて貰えませんか? 期限9月27木曜です
352 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 21:21:31 ] >>351 10分くらいするとマルチポストし始めるのでしょうか?
353 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 21:40:43 ] >>351 #include<stdio.h> int cmp_big(int a, int b){ return a>b; } int cmp_small(int a, int b){ return a<b; } int *search(int arr[], int arr_size, int (*cmp)(int,int)){ int i, index=0; for(i=1;i<arr_size;i++) if(cmp(arr[i], arr[index])>0) index=i; return &arr[index]; } int main(void){ int data[10]={5,8,10,2,1,14,35,6,12}; printf("maximum : %d\n", *search(data, sizeof(data)/sizeof(data[0]), cmp_big)); printf("minimum : %d\n", *search(data, sizeof(data)/sizeof(data[0]), cmp_small)); return 0; }
354 名前:デフォルトの名無しさん [2007/09/26(水) 21:53:00 ] 352さんありがとうございました
355 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 21:54:15 ] 976 名前:デフォルトの名無しさん[] 投稿日:2007/09/26(水) 21:21:46 [1] 授業単元: 教科書 [2] OS Windows [3]問題 int data[10] ={5,8,10,2,1,14,35,6,12}: 配列中の最大値と最小値を表示するプログラムをポインタを使用して作成するプログラムが解らないので教えて貰えませんか? 【初心者歓迎】C/C++室 Ver.42【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1188748806/
356 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 21:54:31 ] >>353 こういうプログラムはいいな。 このまま提出したら質問主が疑われそうなもの。
357 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 21:59:29 ] 疑われるって?
358 名前:デフォルトの名無しさん [2007/09/26(水) 22:00:59 ] >>305 >>308 感謝っす!
359 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 22:02:21 ] maximum → 最大値 minimum → 最小値 でいいんじゃね
360 名前:デフォルトの名無しさん [2007/09/26(水) 22:05:48 ] [1] 授業: 教科書 [2] OS Windows [3]問題 double data[5] ={10.8,20.3,30,6.40,10.4,2.12}: 配列の全要素の合計と平気を求めるプログラムをポインタを使って作成しなさい 誰か宜しくお願いします ちなみに初心者です
361 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 22:06:54 ] いまさらだけど、[1] 授業: 教科書。ワロタwww
362 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 22:18:34 ] >>360 #include<stdio.h> double get_average(double arr[], int arr_size){ double *ptr, average=893; int i; ptr=arr; for(ptr=arr,i=0;i<arr_size;i++,ptr++) average=(average*i+*ptr)/(i+1); return average; } double get_sum(double arr[], int arr_size){ double *ptr; ptr=arr; return *ptr+((arr_size>0)?get_sum(ptr+1, arr_size-1):0); } int main(void) { double data[]={10.8,20.3,30,6.40,10.4,2.12}; printf("sum : %f\n", get_sum(data, sizeof(data)/sizeof(data[0]))); printf("average : %f\n", get_average(data, sizeof(data)/sizeof(data[0]))); return 0; }
363 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 22:20:45 ] 親切なな人だね。 さすがにこれ以上は勘弁って感じだよ。
364 名前:デフォルトの名無しさん [2007/09/26(水) 22:21:08 ] もぅすこし初心者的なのはありませんか?ワガママですみませんが宜しくお願いします
365 名前:デフォルトの名無しさん [2007/09/26(水) 22:23:34 ] スレタイと直接関係ないんですけど FOX-toolkitの話ってどこに行けば聞けますか?
366 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 22:24:00 ] >>364 マルチしてんじゃねえよ
367 名前:>>281 1/4 mailto:sage [2007/09/26(水) 22:27:07 ] struct machine { struct product *p; int value; }; struct product { struct machine *ms[4]; struct product *original; }; struct machine *createm() { return (struct machine *)calloc(1, sizeof(struct machine)); } struct product *createp(struct machine *first, struct machine *second, struct machine *last) { struct product *p = (struct product *)calloc(1, sizeof(struct product)); p->ms[0] = first;p->ms[1] = second;p->ms[2] = last;p->original = p; return p; } struct product *clonep(struct product *original) { if (!original) return 0; struct product *p = (struct product *)calloc(1, sizeof(struct product)); *p = *original; return p; } struct product *clonep_at_random(struct product **ps, int size) { return clonep(ps[rand() % size]); } int n_completed(struct product *original, struct product **ps, int size) { int i, n = 0; for (i = 0; i < size; i++) { if (ps[i]->original == original && !ps[i]->ms[0]) n++; } return n; }
368 名前:>>281 2/4 mailto:sage [2007/09/26(水) 22:27:50 ] int n_existed(struct product *original, struct product **ps, int size) { int i, n = 0; for (i = 0; i < size; i++) { if (ps[i]->original == original) n++; } return n; } struct product *waitingproduct(struct machine *m, struct product **ps, int size) { int i; for (i = 0; i < size; i++) { if (ps[i]->ms[0] == m) { return ps[i]; } } return 0; } void shift(struct machine **ms) { ms[0] = ms[1];ms[1] = ms[2];ms[2] = ms[3]; } int main() { struct machine *ms[4]; ms[0] = createm();ms[1] = createm();ms[2] = createm();ms[3] = 0; struct product *p, *ps[4]; ps[0] = createp(ms[0], ms[1], ms[2]); ps[1] = createp(ms[1], ms[2], ms[0]); ps[2] = createp(ms[2], ms[0], ms[1]); ps[3] = 0; int values[][3] = {{5, 10, 15}, {10, 15, 5}, {15, 5, 10}}; int i, n, maxsize = 64, size = 0; struct product *products[maxsize]; for (n = 0; ; n++) {
369 名前:>>281 3/4 mailto:sage [2007/09/26(水) 22:28:31 ] // 289:各製品5回、発注が来たら終了でお願いします。 // = 各五個完成したら終了? if ( 5 <= n_completed(ps[0], products, size) && 5 <= n_completed(ps[1], products, size) && 5 <= n_completed(ps[2], products, size) ) break; // 289:各製品5回、発注が来たら終了でお願いします。 // = 終了の条件とは別に、発注の回数も各五回? // 287:他の製品の発注が来ることはありますが、同じ製品の追加はないです。 // = 作業中でない製品タイプの発注のみが来る? p = clonep_at_random(ps, 4); if (p && ( (p->original == ps[0] && 5 <= n_existed(ps[0], products, size)) || (p->original == ps[1] && 5 <= n_existed(ps[1], products, size)) || (p->original == ps[2] && 5 <= n_existed(ps[2], products, size)) || (ms[0]->p && ms[0]->p->original == p->original) || (ms[1]->p && ms[1]->p->original == p->original) || (ms[2]->p && ms[2]->p->original == p->original) )) { free(p);p = 0; } // 受注 if (p && size < maxsize) products[size++] = p; // 各機械が処理する製品を決定 for (i = 0; i < 3; i++) { if (!ms[i]->p && (ms[i]->p = waitingproduct(ms[i], products, size))) { ms[i]->value = values[(&ms[i] - &ms[0])][((void *)ms[i]->p->original - (void *)ps[0]) / sizeof(struct product)]; } } // 処理直前の状態。 char cs[] = {'A', 'B', 'C', 'Q'};
370 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 22:30:14 ] その長さなら>>1 のうpロダを使って欲しい
371 名前:>>281 4/4 mailto:sage [2007/09/26(水) 22:30:56 ] printf("%3d",n); for (i = 0; i < 3; i++) { if (ms[i]->p) { printf(" [%c:%d]", cs[((void *)ms[i]->p->original - (void *)ps[0]) / sizeof(struct product)], ms[i]->value); } else { printf(" []"); } } printf("\n"); // 処理と処理済処理 for (i = 0; i < 3; i++) { if (ms[i]->p) { ms[i]->value--; // 加工 if (ms[i]->value <= 0) { shift(ms[i]->p->ms); ms[i]->p = 0; } } } } printf("%dh", n); } // 根本的に何か勘違いしているような気もする。
372 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 22:33:06 ] >>370 すんまそん。
373 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 22:33:25 ] >>364 簡単にしてみた #include<stdio.h> double get_average(double arr[], int arr_size){ double average=0; int i; for(i=0;i<arr_size;i++,arr++) average=(average*i+*arr)/(i+1); return average; } double get_sum(double arr[], int arr_size){ return *arr+((arr_size>0)?get_sum(arr+1, arr_size-1):0); } int main(void){ double data[]={10.8,20.3,30,6.40,10.4,2.12}; printf("sum : %f\n", get_sum(data, 6)); printf("average : %f\n", get_average(data, 6)); return 0; }
374 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 22:45:06 ] >>355 >>360 添え字演算子はポインタ演算のシンタックスシュガーにすぎないんだから、 結局[]だってポインタ使ってるじゃないですか! って反抗するのもよいって本で言ってた。
375 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 22:46:04 ] >>374 「言ってた」って子供の絵本か!
376 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 22:50:12 ] >>313 Short Coding というのがあるよ。 有名な例だと、 main(n){gets(&n);putchar(n%85+5);} これをコンパイルして実行して、 1 2 とか 3 6 と入力すれば、足される。
377 名前:デフォルトの名無しさん [2007/09/26(水) 22:59:22 ] [1] 授業 [2] OS Windows [3]問題 double data[5] ={10.8,20.3,30,6.40,10.4,2.12}: 配列の全要素の合計と平気を求めるプログラムをポインタを使って作成しなさい 誰か宜しくお願いします ちなみに初心者です
378 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 23:03:25 ] >>377 >>373 のどこが分からないのか説明してくれ
379 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 23:15:30 ] >>378 もう放置で…
380 名前:デフォルトの名無しさん [2007/09/26(水) 23:19:19 ] どなたか>>377 をお願いします
381 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 23:20:50 ] >>380 マルチポスト
382 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 23:24:31 ] [1] 授業 [2] OS Windows [3]問題 double data[5] ={10.8,20.3,30,6.40,10.4,2.12}: 配列の全要素の戦闘力と攻撃力を求めるプログラムをポインタを使って作成しなさい 誰か宜しくお願いします ちなみに小心者です
383 名前:fubu ◆dFztVLlF36 mailto:sage [2007/09/26(水) 23:26:35 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): atoi関数と同様の処理をする関数を作成しなさい [3] 環境 [3.1] OS: (Windows2000) [3.2] コンパイラ名とバージョン: CPad forBorland C++Compiler Ver2.31 [3.3] 言語: (C/C++ どちらでも可) [4] 期限: ([2007年09月28日10:00まで] [5] atoiは文字列を10進数に変換する処理をするということはわかるのですが、 関数の自作というのがわかりません、、よろしくお願いします!!
384 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 23:26:42 ] クマー
385 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 23:31:40 ] >>383 int my_atoi(const char *str){int n;sscanf(str,"%d",&n);return n;}
386 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 23:35:13 ] int mein_atoi(const char *str){return atoi(str);}
387 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 23:44:47 ] int my_atoi(const char *str){return (int)strtod(str, NULL);}
388 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 23:46:19 ] >>386 ちょw
389 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 23:48:28 ] int my_atoi(const char *str){int n;istringstream i(str);i>>n;return n;}
390 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 23:53:34 ] 空気を読まずにマトモなやつを #include<ctype.h> int atoi_(const char*str){ int sign = 0; int value= 0; while(isspace(*str))++str; if(*str == '+')++str; else if(*str == '-')sign = 1,++str; for(;isdigit(*str);++str){ value *= 10; value += *str-'0'; } if(sign)value = -value; return value; }
391 名前:デフォルトの名無しさん [2007/09/26(水) 23:56:16 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 下に記入します [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C++ [4] 期限: 9月27日21時 [5] その他の制限:制限などは問題文にあるとおりです。 問題 char型の配列を使用し、ABCDEFGHIJKLMNというリテラルで初期化しておく。その後、 整数kを入力すると、k>0ならば文字列を右にk個巡回シフト、k<0なら左にk個巡回 シフトするプログラムを作成せよ。kはEOF入力まで繰り返し入力できるようにすること。 【実行例】どれだけシフトしますか--> 3 LMNABCDEFGHIJK どれだけシフトしますか--> 4 HIJKLMNABCDEFG どれだけシフトしますか--> -7 ABCDEFGHIJKLMN どれだけシフトしますか--> 17 LMNABCDEFGHIJK どれだけシフトしますか--> (EOF入力で終了) ちなみに実行例を見ればわかると思いますが、シフトは毎回ABC〜から始めるのではなく 前の結果から巡回シフトを開始します。 わかるかたよろしくお願い致します。
392 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 00:00:13 ] 夏休みの宿題を今からかよって感じだな
393 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 00:05:45 ] int myatoi(const char *cs) { int a = 1, b = 0; const char *c = cs; if (*c == '-') { a *= -1; c++; } for (; *c != '\0'; c++) { if (*c >= '0' && *c <= '9') b = (b * 10) + *c - '0'; else break; } return a * b; }
394 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 00:07:06 ] >>391 #include<string.h> #include<iostream> using namespace std; int main(){ char s[]="ABCDEFGHIJKLMN"; int size = strlen(s); char*end = s + size; int shift; while(cout << "どれだけシフトしますか--> ",cin>>shift){ shift %= size; if(shift < 0)shift += size; rotate(s,end-shift,end); cout << s << endl; } cout<<endl; }
395 名前:394 mailto:sage [2007/09/27(木) 00:10:00 ] あ、いけね。#include<algorithm>忘れてた。
396 名前:デフォルトの名無しさん [2007/09/27(木) 00:25:40 ] [1] 授業単元: リスト [2] 問題文: 問:対称に並んだ文字列を検出する関数 与えられた文字リストの中の数字(1桁)に対応する数をnとして、 その数字の前後 n文字が対称的である部分を見つけ、複製して返す関数mirror_ima ge()を作成せよ。 ここで「対照的」とは文字リストのi(i=1,2,...)番目の要素a(i)が 数字であり、それに対応 する数をnとすれば、条件a(i-1)=a(i+1),a(i-2)=a(i+2),...a(i-n )=a(i+n)を全て満たす事である。 対称的である部分が複数ある場合には、それらの内の最も長いもの を返すこと。 ただし最長の部分が複数ある場合には、そのいずれかを返せばよい 。 対称的な部分がなければ空リストを返す事。 関数mirror_image()のプロトタイプ宣言は以下の通りである。 struct node *mirror_image(struct node*); 他の関数はこれで御願いします↓ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img /4974.txt
397 名前:デフォルトの名無しさん [2007/09/27(木) 00:27:44 ] 他の関数はこれで御願いします↓ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4974.txt このプログラムに、例えばP1P、abcde3edcxyad、ba1ax4xa1af、ab2 ba2abを与えると、 それぞれ(P1P)、(cde3edc)、(a1ax4xa1a)、(ab2ba)又は(ba2ab)が 印字される。 また、USA、P2P、short5trohなどを与えると()が印字される。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 9月27日12:00まで [5] その他の制限: リストを配列にコピーするのは御法度です。 よろしくおねがいします。
398 名前:デフォルトの名無しさん [2007/09/27(木) 01:18:40 ] [1] 授業: 教科書 [2] OS Windows [3]問題 double data[5] ={10.8,20.3,30,6.40,10.4,2.12}: 配列の全要素の合計と平気を求めるプログラムをポインタを使って作成しなさい 誰か宜しくお願いします ちなみに初心者です
399 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 01:22:55 ] 次からテンプレに「テンプレすら埋めれない池沼はお帰りください」って書こうぜ
400 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 01:26:37 ] ポインタは危険だから気をつけろよ。 #include <stdio.h> int main(void) { int i; double data[5] ={10.8, 20.3, 30, 6.40, 10.4, 2.12}, max = 0; char *p; for (i = 0; i < 5; i++) { max += data[i]; } p = "max = %f, average = %f\n"; printf(p, max, max / 5); return 0; }
401 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 01:28:58 ] 危険なのはレーザーポインタ ポインタ自身はそこまで危険じゃない
402 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 01:29:04 ] 問題文を読み返して思ったが double data[5] ={10.8,20.3,30,6.40,10.4,2.12}: だと変だな。 最後のコロンは置き換えたが、要素数が間違っているのまでは気づかなかった。 適当に修正してくれよ。
403 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 01:32:15 ] >>399 テンプレに沿わない質問に答える気がないならお前が答えなくて良いよ うっとうしいんだよ
404 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 01:37:14 ] テンプレに沿わない質問がうっとおしい
405 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 01:41:43 ] >>401 が>>400 にマジレスしているのがかわいらしい
406 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 01:44:05 ] >>403 無能乙www
407 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 01:58:34 ] >>399 が無能だろ。俺は普通に答えているわ、ボケが
408 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 02:08:18 ] 文字列いじる程度の簡単な奴だけだろw ちょっと難しいのになると出てこないくせに
409 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 02:10:24 ] テンプレに従ってなくても答えられるけど、従ってくれたほうが読みやすいことが多いね
410 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 02:24:52 ] 408 名前:デフォルトの名無しさん 投稿日:2007/09/27(木) 02:08:18 文字列いじる程度の簡単な奴だけだろw ちょっと難しいのになると出てこないくせに ↑なんだこいつ?きめぇ。初歩的なもの以外、答えていないと思ってんのか? お前がテンプレに沿った質問の仕方をしていないからって、答えないよと言っているだけで テンプレに沿っていないけど初歩的ともいえる問題に答えることすら出来ないんだろ?w gdgd言うなら別に答えなくて良いっつってんじゃん、ここはお前が主のスレじゃねーよ 答える側は任意
411 名前:デフォルトの名無しさん [2007/09/27(木) 02:26:46 ] double data[5] ={10.8,20.3,30,6.40,10.4,2.12}; int main() { int last_index = sizeof(data)/sizeof(data[0]); if (last_index-5)printf("This program is abnormal\n");// 平気か調べる。 for (double *p=data,sum=0.0;p!=data[last_index];p++){ sum+=*p; } char output_string[1024]; sprintf(output_string,"sum=%f,avg=%f",sum,sum/(float)last_index); puts(output_string); return 0; } 死ね!
412 名前:デフォルトの名無しさん [2007/09/27(木) 02:49:45 ] [1] 授業: 教科書 [2] OS Windows [3]問題 double data[5] ={10.8,30,6.40,10.4,2.12}: 配列の全要素の合計と平気を求めるプログラムをポインタを使って作成しなさい 誰か宜しくお願いします ちなみに初心者です
413 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 03:01:06 ] いいかげんこのネタやめろw
414 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 03:02:22 ] >>396 node の定義や必要そうな include もこちらで補うのかい?
415 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 05:56:53 ] >>396 #include <stdio.h> #include <stdlib.h> #include <ctype.h> struct node { char element; struct node *next; }; int check(struct node *p, struct node *mid) { int i, j, n = mid->element - '0'; struct node *temp; for(i=0, temp = p; temp!=mid; i++, temp=temp->next); if(i!=n) return 0; for(i=0; i<n; i++, temp=temp->next) if(temp->next==NULL) return 0; for(i=0; i<n; i++, p=p->next) { for(temp=mid, j=0; j<n-i; j++, temp=temp->next); if(p->element != temp->element) return 0; } return 1; }
416 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 05:59:16 ] 続き struct node* mirror_image(struct node *list) { struct node *p, *buf = NULL, *temp, *ret = (struct node*)malloc(sizeof(struct node)); int max = 0; ret->next = NULL; for(p=list->next; p!=NULL; p=p->next) { for(temp=p->next; temp!=NULL; temp=temp->next) { if(isdigit(temp->element) && temp->element - '0' > max) { if(check(p, temp)) { buf = p; max = temp->element - '0'; } } } } if(buf) { int i, l = 2 * max + 1; for(i=0, temp = ret; i<l; i++, buf = buf->next) { temp = temp->next = (struct node*)malloc(sizeof(struct node)); temp->element = buf->element; } temp->next = NULL; } return ret; }
417 名前:デフォルトの名無しさん [2007/09/27(木) 07:02:54 ] >>396 眠いのに朝からやってやったお(^ω^) ループ文なしでやってみたお。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4980.c
418 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 07:11:59 ] - '0' とか意味無かったお・・・。冗長すぎワロタ欝出し脳
419 名前:デフォルトの名無しさん [2007/09/27(木) 11:01:25 ] >>365
420 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 11:09:09 ] >>396 1/2 char *createcs(struct node *list) { char *cs = 0; int i = 0; struct node *p; for (i = 0, p = list->next; p; i++, p = p->next) continue; cs = (char *)malloc(sizeof(char) * (i + 1)); for (i = 0, p = list->next; p; i++, p = p->next) cs[i] = p->element; cs[i] = '\0'; return cs; }
421 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 11:09:41 ] >>396 2/2 struct node *mirror_image(struct node *list) { char *cs = createcs(list); struct node *mirror = 0; int i, j, n, maxn_index = -1; for (i = 0; i < strlen(cs); i++) { if (!isdigit(cs[i])) continue; n = cs[i] - '0'; if (i < n || (strlen(cs) - 1 - i) < n) continue; // 無理 if (n < cs[maxn_index] - '0') continue; // 無駄 for (j = 0; j < n; j++) { // n個チェック if (cs[i - (j + 1)] != cs[i + (j + 1)]) break; } if (n == j && cs[maxn_index] - '0' < n) maxn_index = i; } cs[maxn_index + (cs[maxn_index] - '0') + 1] = '\0'; if (0 < maxn_index) { mirror = initclist(&cs[maxn_index - (cs[maxn_index] - '0')]); } else { mirror = (struct node *)calloc(1, sizeof(struct node)); } free(cs); return mirror; }
422 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 11:12:47 ] >リストを配列にコピーするのは御法度です
423 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 11:20:08 ] (ノ∀`) アチャー
424 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 11:22:00 ] >>396 リストの先頭が空って、なんか気持ち悪くない?
425 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 13:34:59 ] [1] 授業単元: プログラミング技術 [2] 問題文(含コード&リンク): 四則演算を関数としてもっているプログラム。 実数と整数の両方に対応し、式と結果を表示。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Borland C++ Compiler 5.5 [3.3] 言語:C [4] 期限:10月1日 [5] その他の制限:scanfを使用、関数はPlus(float a,float b)。 main関数では2つの数字を入力、関数Plusを呼び出し。 考えでは↓ 実数では、float c; c=a+b; 整数では、int d; d=(int)a+(int)b; 最後にprintfを使って表示します。 宜しくお願いします<(_ _)>
426 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 13:52:40 ] >>425 #include <stdio.h> float Plus(float,float); int main() { float a,b; printf("1つ目=>"); scanf("%f",&a); printf("2つ目=>"); scanf("%f",&b); printf("float:%f\nint:%d",Plus(a,b),(int)Plus((int)a,(int)b)); return 0; } float Plus(float a,float b) { return a+b; } C++でもいいなら関数オーバーロードを使った方がいいと思うよ
427 名前:デフォルトの名無しさん [2007/09/27(木) 15:00:40 ] [1] ファイル入出力 [2] 引数で渡された文字列をファイルに出力する関数を作り、入力した文字列をファイルに出力する。 [3] 環境 [3.1]WindowsXP [3.2]BorlandC++ [3.3]C++ #include <stdio.h> #include <string.h> void sdata(char str); void main(void) { char str[128]; scanf("%s",str); } void sdata(char str) { FILE *fp; fp = fopen("Return.txt","w"); fwrite(str,sizeof(str),1,fp); } 一応自分でこんな感じかなみたいのはあるんですが…ここからよく分からないのです。
428 名前:425 mailto:sage [2007/09/27(木) 16:14:56 ] >>426 さん ありがとうございます。 四則の問題があるので、Plus()関数に int s; printf("1.+ 2.- 3.* 4./ =>"); scanf("%d",&s); if(1==s){return a+b; }else if(2==s){ return a-b; }else if(3==s){ return a*b; }else if(4==s){ return a/b; } と追加してみたら 1つ目=>4 2つ目=>2 1.+ 2.- 3.* 4./ =>4 1.+ 2.- 3.* 4./ =>3 float:8.000000 int:2 と出力されました。 1.+ 2.- 3.* 4./ =>のところを1回だけ表示するにはどうすると良いでしょうか?
429 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 16:55:26 ] [1] 授業単元: プログラミング技術 [2] 問題文(含コード&リンク):読み込んだ整数の段数を持つピラミッドを表示するプログラム 例:3 * *** ***** [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Borland C++ Compiler 5.5 [3.3] 言語:C [4] 期限:10月1日 [5] その他の制限:scanf,forを使用
430 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 17:04:03 ] #include <stdio.h> int main(void) { int i, j, n; scanf("%d", &n); for(i=0; i<n; i++) { for(j=0; j<n-1-i; j++) putchar(' '); for(j=0; j<2*i+1; j++) putchar('*'); putchar('\n'); } return 0; }
431 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 17:25:37 ] >>428 >int s; >printf("1.+ 2.- 3.* 4./ =>"); >scanf("%d",&s); をPlus関数からmain関数に移し、Plus関数は新たに引数としてsを受け取るようにする
432 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 17:27:04 ] >>429 #include<stdio.h> int main(int c,int v){ if(c==1){ scanf("%d",&v); main(v+1,v); } else{ int i; if(c!=2)main(c-1,v); for(i=0;i<v-c+3/2;i++)printf(" "); for(i=0;i<2*c-3;i++)printf("*"); printf("\n"); } return 0; }
433 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 17:36:09 ] >>429 #include <stdio.h> int padd(int n, char c) { if (!n) return; putchar(c);padd(n - 1, c); } void pyramid(int n, int m, char c) { if (n <= m) return; padd(n - m - 1, ' '); padd(2 * m + 1, c); puts(""); pyramid(n, m + 1, c); } int main() { int n; scanf("%d", &n); pyramid(n, 0, '*'); }
434 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 17:36:19 ] >>428 関数名が悪い #include <stdio.h> #include <stdlib.h> float calc(float,float,int); int main() { int i,s; float a,b; char mode[]="+-*/"; printf("1つ目の数=>");scanf("%f",&a); printf("2つ目の数=>");scanf("%f",&b); printf("演算子\n"); for(i = 0;i < sizeof(mode)-1;i++){ printf("%d.%c\n",i+1,mode[i]); } printf("=>");scanf("%d",&s); printf("%f %c %f = %f",a,mode[s-1],b,calc(a,b,s)); return 0; } float calc(float a,float b,int s) { switch(s){ case 1:return a+b; case 2:return a-b; case 3:return a*b; case 4:if(b == 0){printf("0では割れない");exit(1); }else{return a/b;} default:printf("演算子指定が正しくない");exit(1); } }
435 名前:425 mailto:sage [2007/09/27(木) 18:23:54 ] >>431 さん、>>434 さん ありがとうございました。
436 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 20:34:23 ] test
437 名前:デフォルトの名無しさん [2007/09/27(木) 23:08:36 ] [1] 授業単元: [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4982.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限: 9月28日18:00まで [5] その他の制限: 特にないです どちらか1つだけでも結構ですので、どうぞよろしくお願いします
438 名前:fubu ◆dFztVLlF36 mailto:sage [2007/09/27(木) 23:20:04 ] >>390 ありがとうございますつД`)
439 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 23:29:36 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク):構造体(詳細は下記) [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC [3.3] 言語: (C/C++ どちらでも可) [4] 期限: [9/30] [5] 問題文 「本」の商品名、価格、ページ数を10冊分入力し、 10冊分の価格の昇順・降順にソートするプログラムを作成しなさい。 よろしくお願いします
440 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 23:48:59 ] >>439 それぞれの限界値は指定しないのか?
441 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 23:51:00 ] >>439 #include<iostream> #include<string> #include<algorithm> using namespace std; struct bk{ string n;int v,p; void r(){cin>>n>>v>>p;} void w(){cout<<n<<" "<<v<<" "<<p<<endl;} bool operator<(const bk&b)const{return v<b.v;} }; int main(){ bk b[10]; for(int i=0;i<10;i++)b[i].r(); sort(b,b+10); for(int i=0;i<10;i++)b[i].w(); return 0; }
442 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 23:51:31 ] >>437 1つ目 改行が多いって言われたのでこっちで kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4983.c
443 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 00:14:32 ] >>440 すいません… 商品名[10]、価格[4]、ページ数[3]を入れるのを失念しておりました… ですので、 >>441 ありがとうございます!! こちらのソースを元になんとか自分で考えてみます。
444 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 00:45:51 ] >>437 2つ目 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4984.txt
445 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 01:20:44 ] >>437 先越されたけど2つ目 君の瞳に映った僕に乾杯 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4985.c
446 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 07:35:42 ] ----【即系サイト×優良サイト=即会い即やり!】----------------------- 優良出会い系サイトと即出会えるサイトを併用して使い、即会いライフを楽しんでいます。 これが面白いほど会える☆ 会った後は・・・ 俺の場合、出会い系サイト3つで女の子と週2〜3で出会えてます。 これ以外にもお気にの女の子とは週1で会ってます。 今回は皆さんにも出会いを楽しんでもらいたいので、俺が使っている 登録後一日以内に出会えたサイトを紹介するブログ始めました。 皆も休日にエンジョイしてください! ↓↓↓ 【即出会えるサイト紹介ブログ】 deaigets.blog97.fc2.com/ --------------------------------------------------------------------
447 名前:437 [2007/09/28(金) 09:35:59 ] >>442 >>444 >>445 本当にありがとうございます 助かりました
448 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 11:20:28 ] 任意の長さの文字列(英字のみ)データをファイルから読み込み、辞書順に並べ替えて 最終結果のみを表示するプログラムを作成する宿題なんですが、ファイルを読み込もうと するところでなぜか止まってしまいます。原因がよくわからないので助けてください…。 Cテキスト kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4986.txt 読み込みファイル用テキスト(これじゃなくてもOK) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4987.txt 細かい指定は、 ・英字の大文字小文字に関しては凝らなくていい ・データ最大数は1000 ・文字列の最大長は64 ・データは改行で区切られている
449 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 11:28:03 ] >>448 そういうときは、色々な変数の値をprintfで吐き出すと良いよ > scanf("%s,in_filename");
450 名前:448 mailto:sage [2007/09/28(金) 12:01:37 ] なんというくだらないミス\(^O^)/ 申し訳ありませんでした……
451 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 12:50:24 ] ファイル読めない時のエラーメッセージもだしとけよ
452 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 15:00:32 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): /****memo.txt********/ atsusa a ts u s a au a u awatadashii a w a t a d a sh i i awa a w a /*********************/ このmemo.txt というファイルがあるとして、 このファイルを読み込み、右の「a,ts,u,s,a」という単位で かかれてある右の列(2列目)を(atsusaを1列目、a,ts,u,s,aを2列目) a ts u s a と表示できるようにしなさい。 [3] 環境 [3.1] OS:LINUX [3.3] 言語:C [4] 期限:早いほうがいいです [5] その他の制限:なし
453 名前: ◆EtzJSByuaQ mailto:sage [2007/09/28(金) 16:43:58 ] 【質問テンプレ】 [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):圧力P一定の下、温度変化量ΔTしたとき、1molの理想気体のガス容積の変化量ΔVを算出する関数を作成しなさい [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:CPad for Borland C++Compiler ver2.31 [3.3] 言語:C++ [4] 期限:2007年09月28日20時くらいまで 本当にわからなくて困っています。よろしくお願い致します。
454 名前: ◆vLIz8KOkPM [2007/09/28(金) 17:29:14 ] [1] 授業単元: プログラミング演習 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 9月29日(土)午後9時まで [5] その他の制限: ポインタ、構造体、配列、関数まで習ったので、この範囲内でお願いします。 [2] 問題文(含コード&リンク): **発展課題**について【下に、発展課題の問題文、自分の作成したプログラムをのせます】、 各口座のデータをバイナリファイルに保存する機能(口座データが変更される度にfwriteで) 各口座のデータをバイナリファイルから読み込む機能(プログラム起動時に1 回のみfreadで)を追加せよ.実行例を下に示す。 % ./kadai13 口座データ読込み(1:ファイルから2:初期値を使用)? 1 口座番号を入力してください: 9012 暗証番号を入力してください: 0123 引出し額を入力してください: 20000 ありがとうございました.残高は518600 円です 口座データ保存(1:ファイルへ2:保存しない)? 1 口座番号を入力してください: ← 口座番号入力に戻る 発展課題の問題については>>455 それに対する自分のプログラムは>>456
455 名前: ◆vLIz8KOkPM [2007/09/28(金) 17:29:46 ] ****************発展課題の問題文**************** ATM(Automated Teller Machine; 現金自動預け払い機) システムを実現するプログラムを作成する. 最初に,氏名,口座番号,暗証番号,預金残高を要素とする構造体を定義し,512 人分の口座が作成可能なようにせよ. また,初期値として次のように構造体の内容を設定せよ. • 田中太郎の口座番号は1234 で,預金残高を1,234,560 円に設定する. • 山田花子の口座番号は5678 で,預金残高を 987,600 円に設定する. • 鈴木一郎の口座番号は9012 で,預金残高を 538,600 円に設定する. • 暗証番号は口座番号に1111 を足して10000 で割った余りに設定する. このとき引出しの機能を実現せよ。具体的には,口座番号の入力,暗証番号の入力と確認,支払額の入力,預金残高の更新をするプログラムを作成せよ. 実行例を以下に示す % ./kadai10 口座番号を入力してください: 5000 ← 存在しない 暗証番号を入力してください: 0123 口座番号または暗証番号が間違っています. 口座番号を入力してください: 9012 暗証番号を入力してください: 5555 ← 間違っている 口座番号または暗証番号が間違っています. 口座番号を入力してください: 9012 暗証番号を入力してください: 0123 引出し額を入力してください: 1000000 ← 預金額より多い 預金額が不足しています. 口座番号を入力してください: 9012 暗証番号を入力してください: 0123 引出し額を入力してください: 20000 ありがとうございました.残高は518600 円です. 口座番号を入力してください: ← 始めに戻る
456 名前: ◆vLIz8KOkPM [2007/09/28(金) 17:35:06 ] **********発展課題について自分が作成したプログラム*************** #include<stdio.h> #include<string.h> #define MAC 256 main(){ char save[MAC]; int account; int code; int draw; int i; struct{ char name[MAC]; int account; int code; int balance; }ATM[500]; strcpy(ATM[0].name,"田中太郎"); ATM[0].account=1234; ATM[0].code=(ATM[0].account+1111)%10000; ATM[0].balance=1234560; strcpy(ATM[1].name,"山田花子"); ATM[1].account=5678; ATM[1].code=(ATM[1].account+1111)%10000; ATM[1].balance=987600; strcpy(ATM[2].name,"鈴木一郎"); ATM[2].account=9012; ATM[2].code=(ATM[2].account+1111)%10000; ATM[2].balance=538600; printf("あなたの口座番号を入力して下さい:"); fgets(save,MAC,stdin); sscanf(save,"%d",&account); for(i=0;i<=500;i++){ if(account==ATM[i].account) break; } if(account!=ATM[i].account){ printf("そのような口座は存在しません.\n"); } else{ printf("暗証番号を入力して下さい:"); fgets(save,MAC,stdin); sscanf(save,"%d",&code); for(i=0;i<=500;i++){ if(code==ATM[i].code) break; } if(code==ATM[i].code){ printf("%s 様ですね.\n",ATM[i].name); printf("引出し金額を入力して下さい:"); fgets(save,MAC,stdin); sscanf(save,"%d",&draw); if(draw<0){ printf("ERROR!!\n"); } else if(draw>ATM[i].balance){ printf("金額が不足しています.\n"); } else if(draw<=ATM[i].balance){ printf("預金残高は %d 円です.\n",ATM[i].balance-draw); }} else if(code!=ATM[i].code){ printf("認証に失敗しました.\n"); }} return(0); }
457 名前: ◆vLIz8KOkPM [2007/09/28(金) 17:40:24 ] 長文で申し訳ないですが、是非ともよろしくお願いします。m(_ _)m
458 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 18:00:37 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク):文字列AB、CD、EF、GHがある。キーボードから文字を入力しこの文字列があればそれを取り出す。 全部取り出したら終了する。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン: BCC5.5 [3.3] 言語:C [4] 期限: 2007/10/1 [5] その他の制限:実行例 現在:AB、CD、EF、GH 文字を入力してください:AB ABはありました。 現在:CD、EF、GH 文字を入力してください:TR TRはありません。 現在:CD、EF、GH 文字を入力してください: ・ ・ ・ 現在:GH 文字を入力してください:GH GHはありました。 これで終了します。
459 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 18:46:37 ] #include <stdio.h> #include <string.h> int main(void){ char *a[]={"AB","CD","EF","GH"},b[9],c[]="現在:%s",d[]="、%s",*e;int i; while(1){ e=c; for(i=0;i<sizeof(a)/sizeof(a[0]);++i){ if(a[i]){ printf(e,a[i]); e=d; } } if(e==c) break; printf("\n文字を入力してください:"); scanf(" %8[^\n]",b); for(i=0;i<sizeof(a)/sizeof(a[0]);++i){ if(a[i] && !strcmp(a[i],b)){ printf("%sはありました。\n",b); a[i]=0; goto found; } } printf("%sはありません。\n",b); found:; } puts("これで終了します。 "); return 0; }
460 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 19:02:44 ] gotoかよw
461 名前:デフォルトの名無しさん [2007/09/28(金) 21:50:48 ] [1]授業単元:プログラミング演習 [2]問題文:ポインタをつかって@変数aのアドレスを獲得する。A変数bのアドレスを変数aのアドレスの4バイト後方におきたい。B変数aのアドレスの4バイト後方に(a+90)の値を代入する。CA、Bの結果をprintf文で出力。 [3]環境 [3.1]Windows、Visual stdio Japan2005 (注)エラーが出ると思いますが、結果は出ます。 お願いします。
462 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 21:58:40 ] 変数の型は?
463 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 22:12:58 ] 一気に宿題されすぎでおれの宿題が答えられてないな。。。 おれも片付けに参加しようかね。
464 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 22:16:59 ] どれ?
465 名前:デフォルトの名無しさん [2007/09/28(金) 22:48:52 ] >>459 >>460 blogs.wankuma.com/jitta/archive/2007/09/27/98335.aspx blogs.wankuma.com/jitta/archive/2007/09/28/98562.aspx
466 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 23:10:13 ] >>452 どの程度自由度があるかわかんね. "memo.txt"というファイル名に対して,a ts u saを表示するだけでいいの? それとも,そのコメント風の部分も評価しなきゃいけないの?
467 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 23:28:39 ] goto文使うとプログラム読みにくくなるしループとか抜け出すならbreakとかあるからな。 俺も極力使うなって言われたけど中にはそっちの方が分かりやすいって人もいるんじゃない?
468 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 23:35:31 ] >467 この例だと分かりにくいぞw 判定ループは関数化して、戻り値で ありました/ありません 表示だろ、普通。
469 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 23:58:10 ] 条件判定部にsizeof(a)/sizeof(a[0])なんて書いてるのみると、 深い考えがあってgoto使ってるようには見えないけどな
470 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 00:05:25 ] goto無しで作ってみるか?
471 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 00:18:17 ] >>470 横槍で良く分かってないけど、コレで良いか? for(i=0;i<sizeof(a)/sizeof(a[0]);++i){ if(a[i] && !strcmp(a[i],b)){ printf("%sはありました。\n",b); a[i]=0; break; } } if(i==sizeof(a)/sizeof(a[0])) printf("%sはありません。\n",b);
472 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 00:22:35 ] それだと、最後のifがムダだって言いたいんだろ
473 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 00:37:36 ] じゃあこうか? char *format; ・・・ format = "%sはありません。\n"; for(i=0;i<sizeof(a)/sizeof(a[0]);++i){ if(a[i] && !strcmp(a[i],b)){ a[i]=0; format = "%sはありました。\n"; break; } } printf(format,b);
474 名前:452 mailto:sage [2007/09/29(土) 00:39:29 ] /****memo.txt********/ atsusa a ts u s a au a u awatadashii a w a t a d a shi i awa a w a /*********************/ ちょっといろいろ考えてたんだけど。 このファイルを読み込み、右の「a,ts,u,s,a」という単位で かかれてある右の列(2列目)を(atsusaを1列目、a,ts,u,s,aを2列目) a ts u s a という風な形で、ファイル"output1.txt"と出力するようにしなさい。 ってのがいいかな。 ”atsusa a ts u s a”のスペースがくるたびに改行して配列にいれて、その1つ目を無視して2つ目から 配列にいれて出力すればいんだけどどう書けばいいのかわからなくて。
475 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 00:48:16 ] フラグ使って一つ目のスペースがくるまで飛ばせば?
476 名前:デフォルトの名無しさん [2007/09/29(土) 01:01:46 ] >>461 型はintの整数です。
477 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 01:05:30 ] 変数bのアドレスは宣言時に決まるから、aのアドレスを得てからその4バイト後ろをbのアドレスにするってのは無理
478 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 01:17:52 ] >>474 ファイルのフォーマットが今ひとつ分かんないので、チョー手抜き。 1行は254文字以下、行末にスペースが無い、単語間のスペースが1つという条件。 #include <stdio.h> #include <string.h> int main() { FILE *ifp, *ofp; char line[256]; char *pos; if((ifp = fopen("memo.txt", "r")) == NULL) { return 1; } if((ofp = fopen("output1.txt", "w")) == NULL){ fclose(ifp); return 1; } while(fgets(line, 256, ifp) != NULL){ if((pos = strchr(line, ' ')) != NULL){ for(pos++;*pos != '\0';pos++){ if(*pos == ' '){ fprintf(ofp, "\n"); } else{ fprintf(ofp, "%c", *pos); } } } } fclose(ifp); fclose(ofp); return 0; }
479 名前:デフォルトの名無しさん [2007/09/29(土) 03:43:34 ] [1] 授業単元:C言語基礎 [2] 問題文(含コード&リンク): ファイルにN×Nの整数行列が2つ書き込まれている。この2つの行列積を求め、 解を違うファイルに書き込みなさい。 ただし、2つのN×N整数行列のデータは 3 1 2 3 5 6 7 1 2 3 3 2 1 3 4 5 6 7 8 のように書き込まれているとする。 (先頭の値で次元Nを指定している。) [3] 環境 [3.1] OS: (Linux) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C言語) [4] 期限: 07年9月30日まで [5] その他の制限:入力ファイル、出力ファイルはともに任意のファイル名を 指定できるようにする。 「257」の方のプログラムが見た感じ似ていたので、挑戦してみたのですが やはり無理でした…
480 名前:459 mailto:sage [2007/09/29(土) 04:58:00 ] 何か夜中にいろいろやりとりあったみたいやね。 とりあえず>>458 はgotoまずかったらテキトーに直しといて。 1番いいのは>>468 だけど、>>471 か>>473 に置き換えてもいいんじゃないかな。 講師がソースろくすっぽ見ないってんなら関係ないけど。
481 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 05:17:34 ] >>476 型が int なら int a, b; int b, a; のいずれか(環境依存)で a の4バイト後ろに b が配置されるけど題意の様に 『a のアドレスを得てから』は無理だな 出題者は &b = (&a)++; が可能だとでも思ってるのかな
482 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 05:39:05 ] >>474 strtok() 使えば簡単じゃね?禁止されてるなら char buf[100]; // に "atsusa a ts u s a\n" が入ってると考えてね char *top, *ptr; top = strchr( buf, ' ' ); if( top ) { top++; while( 1 ) { ptr = strchr( top, ' ' ); if( ptr ) *ptr = '\n'; else break; } printf( "%s", top ); } で出力できると思うけど、区切りの ' ' が複数連続すると余計な改行が発生するから30点くらい?
483 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 07:11:26 ] >>479 >>316 に追加で int main(void){ FILE *fp_in, *fp_out; int N=0, column, row; matrix_t *a, *b, *c; fp_in=fopen("ファイル", "r"); if(fp_in==NULL) return 1; fp_out=fopen("違うファイル", "w"); if(fp_out==NULL){ fclose(fp_in); return 1; } fscanf(fp_in, "%d", &N); a=matrix_alloc(N, N); b=matrix_alloc(N, N); for(column=0;column<N;column++) for(row=0;row<N;row++) fscanf(fp_in, "%lf", &a->data[column][row]); for(column=0;column<N;column++) for(row=0;row<N;row++) fscanf(fp_in, "%lf", &b->data[column][row]); c=matrix_mul(a, b); for(column=0;column<N;column++){ for(row=0;row<N;row++) fprintf(fp_out, " %.0f", c->data[column][row]); fprintf(fp_out, "\n"); } fclose(fp_in); fclose(fp_out); return 0; }
484 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 07:39:15 ] >>474 #include<stdio.h> int main(void) { char buf[1000]; FILE *fp=stdin; int is_top=1; while(1) { if(fscanf(fp, "%[^ \t\n]", buf)==1){ if(!is_top) printf("%s\n", buf); is_top=0; } else if(fscanf(fp, "%[ \t]", buf)==1) { } else if(fscanf(fp, "%1[\n]", buf)==1) { is_top=1; } else { break; } } return 0; }
485 名前:デフォルトの名無しさん [2007/09/29(土) 11:44:39 ] >>454->456をお願いしますm(__)m
486 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 11:47:41 ] >>453 double dv(double p,double dt){return 8.314/p*dt;}
487 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 12:05:27 ] >>485 456の動きが455の表示の例と違うんだけど、それは無視して良いんかな?
488 名前:479 [2007/09/29(土) 12:19:43 ] >>483 matrix_t *a, *b, *c; 部分でエラーが出てしまいます。 あと、ファイル指定は>>257 の方のような、キーボードから行える形にしてもらいたいのですが・・・ よろしくお願いします。
489 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 12:31:35 ] >>488 >>483 をよく読んでから >>257 の必要な部分をコピペでおk あと、変数名はどちらか合わせないといけない
490 名前:479 [2007/09/29(土) 14:50:00 ] >>489 すみません。そのプログラムを作成してもらえないでしょうか? 力不足でプログラムを応用して完成することが無理なんです・・・
491 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 14:51:56 ] それをやらなければ身につかんだろうが
492 名前:デフォルトの名無しさん [2007/09/29(土) 14:52:51 ] [1] 授業単元: [2] 問題文(含コード&リンク): 下記 [3] 環境 [3.1] OS: (Windows) [3.2] [3.3] 言語: (C) [4]9/29 かなりの初心者でさっぱりです。ヨロシク願いします。 以下のプログラムは、入力された10個の数値を引き算し、その結果を表示するプログラムです。 9〜11行目を別の関数(関数名はFuncDev)とし、修正しなさい。 ただし、グローバル変数は使わないこと。また、FuncDev内のローカル変数名は任意とする。 FuncDev関数は以下の定義とする。 int FuncDEv(void) FuncDev関数の戻り値は、画面入力されたint型データとする。 #include<stdio.h> void main(void); void main(void) { int n1,n2; int nt; nt=0; for(n1=0;n1<10;n1++){ printf("0-9の数値を入力:"); scanf("%d,&n2"); nt-=n2; } printf("結果%dです"nt); }
493 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 15:03:33 ] #include<stdio.h> int FuncDev(void) { int n2; printf("0-9の数値を入力:"); scanf("%d", &n2); return n2; } void main(void) { int n1,n2; int nt; nt=0; for(n1=0;n1<10;n1++){ n2= FuncDev(); nt-=n2; } printf("結果%dです", nt); }
494 名前: ◆vLIz8KOkPM [2007/09/29(土) 16:11:51 ] >487 456のプログラムで大丈夫です。よろしくお願いしますm(__)m
495 名前:474 mailto:sage [2007/09/29(土) 17:37:56 ] >478、484 ありがとうございました。 ちょっと作り替えて表示できました。 表示できたこの a ts u s a a u a w ... とできたのですが、これを a a a ts u w u a s t a a d a と言う風にchar型の二次元配列に格納したいんですけど。 このあとに列単位で違う関数に送りたいんですけど可能ですかね。
496 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 17:40:46 ] >>494 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4991.txt
497 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 17:45:48 ] >>461 >エラーが出ると思いますが、結果は出ます。 こういうこと? #include <stdio.h> int main(){ int a , *b; printf("a?>"); scanf("%d" , &a); b = &a + 1; printf("Address:a=>%d , b=>%d\n" , &a , b); *b = a + 90; printf("Value:a=>%d , b=>%d" , a , *b); return 0; } まあ、bのアドレスがaの4バイト先にあるわけじゃないけど、出題者はこういうことを言いたいんじゃね? エラー出ないけどw
498 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 19:23:14 ] >>495 #include <stdio.h> #include <string.h> int main(int argc, char *argv[]){ FILE *fp; int row = 0, col = 0, max_col = 0, i, j; char buf[128], *p, str[128][128][3] = {0}; if(argc < 2 || (fp = fopen(argv[1], "r")) == NULL) return 0; while(fgets(buf, sizeof(buf), fp) != NULL){ p = strtok(buf, " \n"); while((p = strtok(NULL, " \n")) != NULL) strcpy(str[row][col++], p); row++, col = 0; } fclose(fp); for(i = 0; i < row; i++){ for(j = 0; str[i][j][0] != '\0'; j++) ; if(j > max_col) max_col = j; } for(j = 0; j < max_col; j++){ for(i = 0; i < row; i++) if(str[i][j][0] != '\0') printf("%2s ", str[i][j]); else printf("%*c", 3, 32); printf("\n"); } return 0; }
499 名前: ◆vLIz8KOkPM [2007/09/30(日) 01:55:24 ] >>496 お返事遅れてすみません… お陰様で助かりました。大変ありがとうございましたm(__)m
500 名前:452 mailto:sage [2007/09/30(日) 02:29:03 ] >>495 作ってくれたのはありがたいんですけど、少々考え直しまして。 めんどくさいけど大量にファイルを出力してから、それを入力したほうが 作ってあるプログラムにあわせやすいので。 そこでちょっとまた疑問がでまして。 a ts u s a a w a a u というファイル(例えばalpa_file.txt)があるとして、この何もかかれていない 行にきたら、それまでの文字をファイル出力して、また次の行にいき、すすんでいって、何もかかれてない行にきたら また違うファイルに出力みたいにしたいんですけど。
501 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 02:46:25 ] ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4992.txt 長くなったのでロダの方へ上げました どうか皆様の知恵をお願いします
502 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 07:16:59 ] >>501 >>1 嫁。 【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 <略> ・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。 ということでお前はもう質問禁止な方向に。
503 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 07:34:39 ] >>502 >>1 嫁。 > 気に入らない質問やその他や発言はスルーの方向で。 ということでお前はもう回答禁止な方向に。
504 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 08:46:53 ] 無限ループの予感。
505 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:39:56 ] >>503 >>1 嫁。 > 気に入らない質問やその他や発言はスルーの方向で。 ということでお前はもう回答禁止な方向に。 >>504 こうですかわかりません><
506 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 15:41:30 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):口頭で説明されたので問題文はありません。 入力した2文字のアルファベット4組(たとえば ae、bd、ac、ab)を アルファベット順(上の例だったら ab、ac、ae、bd)に表示せよ また数字でも同じことをせよ(3、4、2、1→1、2、3、4) あとリスト構造を使えとか言ってました [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:学校のはよくわからんです [3.3] 言語:C [4] 期限: 2007年10月3日まで [5] その他の制限:とくにないです よろしくおねがいします
507 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 15:50:16 ] >>506 「リスト構造を使え」というのは、その問題に関しては何か不自然。 もういちど問題を確認することをお勧めする。
508 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 16:01:02 ] リストのソートだろ?普通じゃね?
509 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 16:11:52 ] >>508 要素数がたった4つに固定されていたら、 リストを使う意味は全く無いと思うけど。 俺は、要素数4つというのは単に説明の例で、 本当はもっと多いか不明のどちらかだと予想してる。
510 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 17:03:59 ] >>509 すみません、聞いてみたら4つで固定とは言ってなかったとです。
511 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 17:55:31 ] C言語で、二重ループを用いた20行以上のプログラムと二重ループと配列を使った20以上のプログラムをレポートで出されたのですが、何か知っていたら教えてください。 始まりの部分は、 #include<stdio.h> int main(void) { でお願いします 携帯からですいません
512 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 18:04:41 ] >>511 知るか(笑)
513 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 18:45:52 ] どんだけ漠然としてるんだwwww
514 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 18:45:59 ] >>506 , >>510 入力はキーボードから。EOF (CTRL-D など)で入力終了。 エラーチェックは特にしていない。挿入ソート。 二文字文字列バージョン: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4994.c 整数値バージョン: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4995.c
515 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 18:54:29 ] >>501 P^-1 は手で計算してよろしい?それとも プログラム上で計算しないとダメ? あと #include <stdio.h> だけど C++ でいいの?
516 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 19:43:45 ] >>514 面白いな
517 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 20:32:33 ] >>501 #include<stdio.h> int main(void){ int i, j, n, num[9+1]; while(1) { printf("行数(1-9):"); scanf("%d", &n); if(1<=n && n<=9) break; printf("\nエラー\n"); } num[0]=num[1]=1; for(i=0;i<n;i++) { num[i+1]=0; for(j=i;j>=0;j--) num[j+1]+=num[j]; for(j=0;j<=i+1;j++) printf(" %d", num[j]); printf("\n"); } return 0; }
518 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 20:38:28 ] 言語間違えた orz #include<iostream> int main(void){ int i, j, n, num[10]; while(1){ std::cout << "行数(1-9):"; std::cin >> n; if(1<=n && n<=9) break; std::cout << std::endl << "エラー" << std::endl; } num[0]=num[1]=1; for(i=0;i<n;i++){ num[i+1]=0; for(j=i;j>=0;j--) num[j+1]+=num[j]; for(j=0;j<=i+1;j++) std::cout << num[j] << " "; std::cout << std::endl; } return 0; }
519 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 21:42:56 ] >>500 日本語でおk 少し長い文章を書くと内容がめちゃくちゃになるようなので 何をしたいのか最初から箇条書きで書き直し
520 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 21:48:50 ] >>515 自分で計算してOKです そして言語ですが、確認したらCでもC++でも可能との事 問題文のソース例はCの場合でした
521 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 21:49:34 ] >>511 >>517
522 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 21:57:28 ] サンクス!
523 名前:500 mailto:sage [2007/09/30(日) 22:01:09 ] 以下のファイル(file1.txt)があるとします。 このファイルをfgetsで読み込んで、文字が書かれてない行にきたら それまで読み込んだ文字を違うファイル(output_file1.txt)に出力します。 出力したらまた元のファイルの読み込みを始めます。そして文字が書かれてない行に きたら、また違う別のファイル(output_file2.txt)に出力します。 読み込むファイルfile1.txtが a ts u s a a w a a u とすると 出力するファイルoutput_file1.txtに a ts u s a また次の出力するファイルoutput_file2.txtに w a と出力できるようにしたいということです。すみません説明できなくて
524 名前:500 mailto:sage [2007/09/30(日) 22:02:17 ] >また次の出力するファイルoutput_file2.txtに >w >a でなくて a w a です
525 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 22:25:40 ] fout=0として書き込む前にチェックするのが普通だろうが、まあいいや。 #include <stdio.h> int main(void){ char buff[256];int i=1; FILE *fin=fopen("file1.txt","r"),*fout=fopen("output_file1.txt","w"); while(fgets(buff,sizeof(buff)/sizeof(buff[0]),fin)){ if(buff[0]=='\n'){ fclose(fout); sprintf(buff,"output_file%d.txt",++i); fout=fopen(buff,"w"); }else{ fputs(buff,fout); } } fclose(fout);fclose(fin); return 0; }
526 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 22:29:03 ] >>523-524 重要なのは どんな入力に対して どんな出力が必要か を明記する事であって、ころころ変わるあなたの考える処理方法ではない 仮に、読み上げソフトか何かに与えて、同時発音させるのが目的ならば あなたの考えはあと何回も変わるだろうし… もう少し、何の為に何をどうしたいのかを整理して出直してきて下さい [user]$ awk -f a.awk < memo.txt #!/bin/awk -f BEGIN{count=1} !/^$/ && NF>1{ filename=sprintf("output_file%d.txt", count); for(i=2;i<=NF;i++) print $i>> filename count=count+1; }
527 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 23:02:45 ] 未回答&&期限内の問題ってある?
528 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 23:06:49 ] >>527 Hello Worldを表示せよ
529 名前:500 mailto:sage [2007/09/30(日) 23:14:39 ] 525 ありがとさん
530 名前:デフォルトの名無しさん [2007/09/30(日) 23:16:12 ] [1] 授業単元: C言語基礎 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4998.txt [3] 環境 [3.1] OS: Windows [3.3] 言語: C言語 [4] 期限:10月1日午前1時まで [5] その他の制限:C言語を習い始めてまだ3ヶ月程度です よろしくおねがいします
531 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 23:23:48 ] >>530 課題1 #include <stdio.h> int main( void ) { int year; int check; scanf( "%d", &year ); if ( year % 400 == 0 ) { check = 1; } else if ( year % 100 == 0 ) { check = 0; } else if ( year % 4 == 0 ) { check = 1; } else { check = 0; } if ( check == 0 ) { printf( "閏年ではありません" ); } else { printf( "閏年です" ); } return 0; }
532 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 23:33:35 ] >>530 課題2(むりやりswitch使った悪い例) #include <stdio.h> int main( void ){ const char * const tv_name[] = { "HBC", "NHK総合", "STV", "NHK教育", "TVH", "UHB", "HTB", }; int channel; scanf( "%d", &channel ); switch ( channel ) { case 1: channel = 0; break; case 3: channel = 1; break; case 5: channel = 2; break; case 12: channel = 3; break; case 17: channel = 4; break; case 27: channel = 5; break; case 35: channel = 6; break; default: channel = -1; break; } if ( channel != -1 ) { printf ( "%s", tv_name[ channel ] ); } return 0; }
533 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 23:35:40 ] 遅れたorz #include <stdio.h> int main(void){ int input; char *channel=NULL; scanf("%d",&input); switch (input){ case 1:channel="HBC";break; case 5:channel="STV";break; case 12:channel="NHK教育";break; case 17:channel="TVH";break; case 27:channel="UHB";break; case 35:channel="HTB";break; default:channel="砂嵐";break; } printf("%s\n",channel); return 0; }
534 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 23:39:37 ] #include <stdio.h> int main(void) { int a; printf("西暦を入力してください。"); scanf("%d",&a); if((a % 4 == 0 && a % 100 != 0) || a % 400 == 0) printf("%d年は閏年です。\n ",a); else printf("%d年は閏年じゃありません。\n",a); return(0); }
535 名前: ◆AsDEGV.0To [2007/10/01(月) 00:02:45 ] [1] 授業単元:コンピュータとプログラミング [2] 問題文(含コード&リンク): 年月日(YYYY MM DD)と10個の整数値をキーボードから入力し、それにの値を バイナリファイルに保存するプログラムを作成すること。それぞれの値の形は、 年(short),月(short),日(short),入力した整数値(int)とすること。 [3] 環境 [3.1] OS: Windows [3.3] 言語: C言語 [4] 期限:2007年10月01日01:10まで [5] その他の制限:ポインタ・ファイル入出力迄はやっています。 宜しくお願いします。
536 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 00:14:46 ] バイナリで保存しなきゃだめなの?
537 名前:530 [2007/10/01(月) 00:19:17 ] >>531 >>532 >>533 >>534 ありがとうございます
538 名前: ◆4Jr51i3qWE [2007/10/01(月) 00:21:27 ] >>536 バイナリと指定されています
539 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 00:26:59 ] >>535 #include<stdio.h> int main(void) { short year, month, day; int i, value[10], value_num=sizeof(value)/sizeof(value[0]); FILE *fp; printf("年:"); scanf("%hd", &year); printf("月:"); scanf("%hd", &month); printf("日:"); scanf("%hd", &day); for(i=0;i<value_num;i++) { printf("%2d番目の数値入力:", i+1); scanf("%d", &value[i]); } fp=fopen("binary.dat", "wb"); if(fp==NULL) return 1; fwrite(&year, sizeof(year), 1, fp); fwrite(&month, sizeof(month), 1, fp); fwrite(&day, sizeof(day), 1, fp); fwrite(value, sizeof(value[0]), value_num, fp); fclose(fp); return 0; }
540 名前:デフォルトの名無しさん [2007/10/01(月) 00:29:37 ] チョン、さっさと死ねや
541 名前: ◆4Jr51i3qWE [2007/10/01(月) 00:30:38 ] >>539 有難うございました。
542 名前:デフォルトの名無しさん [2007/10/01(月) 00:32:55 ] チョン、さっさと死ねや
543 名前:デフォルトの名無しさん [2007/10/01(月) 00:33:43 ] チョン、さっさと死ねや
544 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 00:34:18 ] キョンかと思った俺はハルヒ厨
545 名前: ◆4Jr51i3qWE [2007/10/01(月) 00:56:01 ] 2番目の問題もお願いします。 [1] 授業単元:コンピュータとプログラミング [2] 問題文(含コード&リンク): 年月日(YYYY MM DD)と10個の整数値をキーボードから入力し、それにの値を バイナリファイルに保存するプログラムを作成すること。それぞれの値の形は、 年(short),月(short),日(short),入力した整数値(int)とすること。 上記の問題で作成したファイルを読み込んで、内容をディスプレイに順番に表示するプログラムを作成する事。 [3] 環境 [3.1] OS: Windows [3.3] 言語: C言語 [4] 期限:2007年10月01日01:55まで [5] その他の制限:ポインタ・ファイル入出力迄はやっています。 連続になりますが、お手数掛けます。
546 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 01:01:45 ] >>545 #include<stdio.h> int main(void) { short year, month, day; int i, value[10], value_num=sizeof(value)/sizeof(value[0]); FILE *fp; fp=fopen("binary.dat", "rb"); if(fp==NULL) return 1; fread(&year, sizeof(year), 1, fp); fread(&month, sizeof(month), 1, fp); fread(&day, sizeof(day), 1, fp); fread(value, sizeof(value[0]), value_num, fp); fclose(fp); printf("%d %d %d\n", year, month, day); for(i=0;i<value_num;i++) { printf("%2d番目の数値:%d\n", i+1, value[i]); } return 0; }
547 名前: ◆4Jr51i3qWE [2007/10/01(月) 01:04:48 ] ありがとうございます。
548 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 02:05:28 ] [1] 授業単元: [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4999.txt [3] 環境 [3.1] OS: windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 10月1日23:00まで [5] その他の制限: よろしくお願いします
549 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 02:28:59 ] >>548 キリ番げとw kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5000.txt 参考にしろってプログラムがひどすぎる。 減算、除算のところに副作用があるから修正したいならしといて。
550 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 05:51:27 ] >>501 , >>520 (1),(2),(3) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4996.c
551 名前:デフォルトの名無しさん [2007/10/01(月) 10:23:57 ] 授業単元:C 問題文(含コード&リンク): 2000分を時間に換算するプログラムを作成しなさい int min=2000; 実行画面 33時間20分です
552 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 10:34:12 ] >>551 テンプレ書けハゲ
553 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 10:37:25 ] >>551 #include<stdio.h> int main(void){ int min=2000; printf("%d時間%d分です",min==2000?33:0,min==2000?20:0); return0; }
554 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 11:03:21 ] [1] 授業単元:独習Cによる自主勉強 [2] 問題文:下記コメント [3] 環境 [3.1] OS: windowsXP [3.2] コンパイラ名とバージョン:BCC5.5 [3.3] 言語: C [4] 期限:特に無し [5] その他の制限:くだらない問題ですみません /*任意の数(ただし32767個まで)のdouble型を入力でき、それらの値を入力の たびにディスクファイルに書き込むプログラムを作成してください。この ファイルの名前はvaluesとします。また、入力された値の個数を監視し、それを countという名前のファイルに書き込むものとする*/
555 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 11:04:57 ] int main(void) { FILE *fp1,*fp2; int count=0; double value; char str[20]; if((fp1=fopen("values","wb"))==NULL){ printf("ファイルが開けません\n"); exit(1);} if((fp2=fopen("count","wb"))==NULL){ printf("ファイルが開けません\n"); exit(1);} do{ if((gets(str))==0){ printf("エラーが発生しました\n"); exit(1);} if((value=atof(str))==0.0)break; if(fwrite(&value,sizeof value,1,fp1)!=1){ printf("書き込みエラー\n"); exit(1);} count++; }while(count<32767); if(fwrite(&count,sizeof count,1,fp2)!=1){ printf("書き込みエラー\n"); exit(1);} fclose(fp1); fclose(fp2);}
556 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 11:06:16 ] って↑のコードを作ってコンパイルして実行したのですが 正常にファイルが出来ません。
557 名前:デフォルトの名無しさん [2007/10/01(月) 11:12:40 ] [1] 授業単元: [2] 問題文(含コード&リンク): [3] 環境 OS: WindowsL コンパイラ名とバージョン: 言語:C 問題:台形の面積を求めるプログラムを作成しなさい int a = 3; int b = 4; int h = 5; 実行画面 面積 = 17.50
558 名前:557のスレ主です [2007/10/01(月) 11:16:21 ] 面積の上辺 aは3 下辺 bは4 高さ hは5です
559 名前:デフォルトの名無しさん [2007/10/01(月) 11:21:47 ] [1] 授業単元: [2] 問題文(含コード&リンク):休み期間中に108問ある問題を終らせるには、毎日平均何問解けばよいか計算するプログラムを作成しなさい int day = 29; 実行画面 3問:8日 4問:21日
560 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 11:55:04 ] >>559 三つも問題くれて有難う
561 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 11:57:19 ] >>557 #include<stdio.h> int main(){ int a=3, b=4, h=5; printf("面積=%lf",a==3&&b==4&&h==5?17.50:0); return 0; }
562 名前:デフォルトの名無しさん [2007/10/01(月) 12:03:26 ] [1] 授業単元:カプセル化 [2] 問題文(含コード&リンク): 下記のソースをカプセル化に。 [3] 環境 [3.1] OS: XP [3.2] コンパイラ名とバージョン: VC [3.3] 言語: C++
563 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 12:09:22 ] >>453 です >>486 さん解答ありがとうございます。 質問なんですがこれいがいに#includeとか他に付け足す文字ってありますか…??
564 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 12:33:15 ] >>563 ないから書いてないのだろう
565 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 12:35:04 ] >>563 >486じゃないが、その課題で作成するのは関数だけなんだろ。 他につけたしちゃ拙いじゃないか。
566 名前: ◆vLIz8KOkPM [2007/10/01(月) 13:21:31 ] >>454 の問題に対して、>>496 の解答をいただいたのですが、 以下のエラー、バグがでます・・・ 直していただけないでしょうか?お願いします % gcc -o k13 k13.c k13.c: 関数 `main' 内: k13.c:89: 警告: 互換性のないポインタ型からの引数 1 個の `printf' を渡します k13.c:91: 警告: 互換性のないポインタ型からの引数 1 個の `printf' を渡します k13.c:92: 警告: 互換性のないポインタ型からの引数 1 個の `printf' を渡します k13.c:93: 警告: 互換性のないポインタ型からの引数 1 個の `printf' を渡します k13.c:94: 警告: 互換性のないポインタ型からの引数 1 個の `printf' を渡します % ./k13 あなたの口座番号を入力して下さい:9012 暗証番号を入力して下さい:0123 鈴木一郎 様ですね. 引出し金額を入力して下さい:20000 預金残高は 518600 円です. $��$��$��$��$��$��$ ��$��$��$��$��$��$�� あなたの口座番号を入力して下さい:^[[A^[[A 中断 %
567 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 13:41:42 ] 「fprintf()がprintf()に化けている」に一票。
568 名前: ◆vLIz8KOkPM [2007/10/01(月) 14:18:42 ] 問題>>454 解答>>496 あと、 口座データの読み込み(1:ファイルから 2:初期値を使用)? : 口座データの保存(1:ファイルへ 2:保存しない)? : この二つの入力が出来ないプログラムになっているのですが、どうすれば出来るようになりますか?
569 名前:kiarano [2007/10/01(月) 14:20:00 ] [1] 授業単元: [2] 問題文(含コード&リンク): 次の関数が何をするプログラムか具体的な使い方を示して答えてください。 void q(int *a,int n){ int i,j; int tmp; for(i=1;i<n;i++){ for(j=i;j>0 && a[j-1]>a[j];j--){ tmp=a[j]; a[j]=a[j-1]; a[j-1]=tmp; } } } [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語:C言語 [4] 期限: 2007年10月3日まで
570 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 14:24:56 ] >>569 コンパイルできません
571 名前:デフォルトの名無しさん [2007/10/01(月) 14:29:24 ] [1] 授業単元: c言語 [2] 問題文(含コード&リンク): 下にあり [3] 環境 [3.1] OS: (Windows [3.2] コンパイラ名とバージョン: cc [3.3] 言語: C [4] 期限: できるだけ早めに [5] その他の制限: 特になし 組み合わせ(nCr) コンビネーションを計算するcomb(n,r)を作成せよ どうやるんですかね?
572 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 14:29:29 ] >>569 ソートする関数 具体的な使い方 void q(int *a,int n){ int i,j,tmp; for(i=1;i<n;i++){ for(j=i;j>0 && a[j-1]>a[j];j--){ tmp=a[j]; a[j]=a[j-1]; a[j-1]=tmp; }}} void main(){ int a[2]={0,1}; printf("%d %d\n",a[0],a[1]); q(a,2); printf("%d %d\n",a[0],a[1]); }
573 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 14:29:33 ] >>569 勘だと昇順ソート
574 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 14:31:36 ] >>569 処理の内容はバボゥソート。 int a = {789, 32, 1, 66, 93, 892, 8475, 6, 29, 9}; q(a, sizeof(a) / sizeof(*a)); { int end = a + sizeof(a) / sizeof(*a); while(a != end) { printf("%d\n", *a++); } } って実際に動かしてみりゃわかるんじゃない?
575 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 14:32:37 ] ぐはー、きで(←変換できない)かー。重複すまん。
576 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 14:38:33 ] >>568 >この二つの入力が出来ないプログラムになっているのですが、どうすれば出来るようになりますか? そういうロジックを書き足せば。 >>570 わざわざ途中の非表示文字までコピペせんでも。 >>569 その関数を呼ぶロジックを書けって事?
577 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 14:55:58 ] >>571 #include<stdlib.h> int comb(int n,int r){ if(n==0||r==0)return 1; switch(rand()%3){ case 0:return n*comb(n-1,r-1)/r; case 1:return (n>r?comb(n-1,r):0)+comb(n-1,r-1); case 2:{int s=0;for(;n>=r;n--)s+=comb(n-1,r-1);return s;} default:return 0; } }
578 名前:デフォルトの名無しさん [2007/10/01(月) 15:01:49 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): おもしろいプログラムを作成し、提出せよ。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: C [4] 期限: 10/2 14時まで [5] その他の制限: 今までif,for,while,switchくらいしかやってませんが、特に制限といったものはないとのことです。 システム的におもしろいのではなくギャグ系のおもしろいです。 自分ではどうもおもしろいプログラムを作成できません、力をかしてください。 お願いします。
579 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 15:15:27 ] 何が面白ければ良いのか?ソースが工夫されているとか?内容が? そんな曖昧な課題で明日の14時までって、今まで何しとったん?
580 名前:578 [2007/10/01(月) 15:25:43 ] 内容です。教授が関西出身でお笑い好きのようで・・・・・・・。 先送りばかりして他の課題等に逃げてました。 僕が悪いんですが、どうか力をかしてください。
581 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 15:43:22 ] >>578 7行プログラミングスレから拾ってきて,適当に識別子を変えればいいんでね?
582 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 15:51:18 ] ギャグプログラムを作れって前に見た記憶があるような 渾身のギャグを考えて書き込めば? 誰かプログラムにしてくれるだろきっと
583 名前:578 [2007/10/01(月) 15:55:26 ] >>581 見てきましたが、言語が違うのか僕には何が書いてあるのかさっぱりでした。 まだはじめて間もないので・・・・・・力がなくてすいません。
584 名前:578 [2007/10/01(月) 15:59:26 ] >>582 どちらかというとプログラムできないというよりおもしろい物が思いつかないんです。 他の普通の課題は終わらせることができたんですけど
585 名前: ◆vLIz8KOkPM [2007/10/01(月) 16:05:51 ] >>576 です >>578 そのロジックがわからないんですが…
586 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 16:09:51 ] >>578 #include<stdio.h> #include<string.h> int main(void){ const char *ptr, scenario[]={ "昨日、近所の $place 行ったんです。 $place 。 $lf " "そしたらなんか人がめちゃくちゃいっぱいで座れないんです。 $lf " "で、よく見たらなんか垂れ幕下がってて、 $event 、とか書いてあるんです。 $lf " "もうね、アホかと。馬鹿かと。 $lf " "お前らな、 $event 如きで普段来てない $place に来てんじゃねーよ、ボケが。 $lf " " $event だよ、 $event 。 $lf " "なんか親子連れとかもいるし。一家4人で $place か。おめでてーな。 $lf " "よーしパパ $talk 、とか言ってるの。もう見てらんない。 $lf " }; char *keyword[]={"$place", "$event", "$talk", "$lf"}; char *variant[]={"大学", "期末試験", "満点とるぞー", "\n"}; char buf[100]; int i, n; ptr=scenario; while(sscanf(ptr, "%s%n", buf, &n)>=1){ ptr+=n; for(i=0;i<4;i++){ if(strcmp(buf, keyword[i])==0) break; } if(i<4) printf("%s", variant[i]); else printf("%s", buf); } return 0; }
587 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 16:12:44 ] >>585 他人を騙るな。
588 名前:578 [2007/10/01(月) 16:17:02 ] >>585 僕は後半組なんですが、前半組はジャンケンを数回繰り返すプログラムが好評がよかったようです。 なぜか教授側のPCが不調で口頭で伝えられただけなので詳しくはわかりません。すいません。 でも、例にあげられたのは簡単な文章と選択肢がありそれによりボケがあったりツッコミがあったりするプログラムでした。 ロジックの意味がうまく把握できていないんですが、これでいいでしょうか?
589 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 16:20:12 ] × 好評がよかった ○ 好評だった
590 名前:578 [2007/10/01(月) 16:22:06 ] >>589 頭悪くてすみません。 今後注意します。
591 名前:578 [2007/10/01(月) 16:27:31 ] >>586 ちゃんと表示されました。 ありがとうございます。
592 名前:デフォルトの名無しさん [2007/10/01(月) 16:53:50 ] >587間違えました…すみませんm(__)m >>568 です。 >>576 そのロジックがわからないんで、教えていただけないでしょうか?
593 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 17:00:10 ] [1] 授業単元:データ構造とアルゴリズム1 [2] 問題文(含コード&リンク):次のads-01-hw.cppを完成させよ seiseki.txt の中身は10人の学生の名前、数学と生物学の成績 出力は画面出力ではなく、ファイルに出力せよ。 関数 heikin は各学生の数学と生物学の成績の平均を求める。 seiseki.txt:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5003.txt ads-01-hw.cpp:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5002.txt 出力結果:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5004.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Microsoft Visual Studio .NET 2003 [3.3] 言語:C++ [4] 期限: 2007年10月3日10:00まで [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 関数 ポインタとアドレス forループ 構造体 ファイルI/O よろしくおねがいします。
594 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 17:04:48 ] >>592 >そのロジックがわからないんで、教えていただけないでしょうか? いやです。
595 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 18:16:31 ] >>593 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5005.txt
596 名前: ◆vLIz8KOkPM [2007/10/01(月) 20:36:46 ] どなたか>>568 をお願いします。期限が明日朝9時なんです…
597 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 20:44:22 ] >>559 #include<stdio.h> int main(int argc, char *argv[]) { int day=29, question=108; if(argc>=2) sscanf(argv[1], "%d", &day); if(argc>=3) sscanf(argv[2], "%d", &question); printf("%d問:%d日\n", question/day, day-(question%day)); if(question%day) printf("%d問:%d日\n", question/day+1, question%day); return 0; }
598 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 20:48:02 ] >>556 異常なファイルの内容kwsk
599 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 21:02:38 ] >>578 ネタを書くか、もしくは探して URL を… #include<stdio.h> int main(int argc, char *argv[]){ char *message[]={ "A「隣の空き地に囲いができたってね?」\nB「へー」\n", "A : Do you know that fence was completed in the next vacant lot?\nB : Hey,really?!\n" }; int choice=-1; printf("0 か 1 を入力して下さい (0:日本語 1:English) :"); scanf("%d", &choice); switch(choice){ case 0: case 1: printf("%s", message[choice]); break; default: printf("\nERROR : Invalid number ! %d\n", choice); } return 0; }
600 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 21:04:15 ] >>596 わり。作ってアップすんの忘れてた。 >>494 だそうなんで、入力をループで回すとこは入れてないよ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5007.txt
601 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 21:20:05 ] >>586 ソースコードがルー大柴でわろた
602 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 22:09:52 ] >>595 ありがとうございました。感謝です
603 名前: ◆vLIz8KOkPM [2007/10/02(火) 00:14:04 ] >>600 ありがとうございますm(__)mお陰様で大変助かりました。感謝しています。
604 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 02:50:52 ] >>586 ギャルゲのスクリプトが作りたくなってきた
605 名前:デフォルトの名無しさん [2007/10/02(火) 12:41:42 ] [1] 授業単元:C言語 [3.1] OS(Windows) 3.2] bcc5.5 [3.3] 言語: (C++) [4] 期限:今日中 文字列aと文字列cを入力し aに含まれる文字の数とaで最初にcが出てくる位置、最後にcが出てくる位置を 表示するプログラムを作成しなさい。 #include <stdio.h> int str_src(char *,char); int str_src2(char *,char); int main(void) { char a[255],c; printf("aを入力してください -> "); scanf("%s",a); printf("cを入力してください ->"); scanf(" %c",&c); printf("%sの中に%cは%i個です\n",a,c,str_src(a,c)); printf("%s"); return 0; } int str_src(char *a,char c) { int count=0; int i; for(i=0; a[i]!='\0'; ++i) if(a[i] == c) ++count; return count; } ここまではやったのですが残りわからないのでお願い致します。
606 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 12:46:46 ] 文字列cと書いてあるが、ソースみると一文字だけど、一文字の方でいいんだよな?
607 名前:デフォルトの名無しさん [2007/10/02(火) 12:49:18 ] >>606 あ、すみません文字列aだけでcは文字です。
608 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 13:43:25 ] >>605 >>607 str_srcでカウントして何が楽しいのか分からなかったから やりかけのソース無視した。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5010.txt
609 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 13:46:49 ] ちょっと訂正 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5011.txt
610 名前:607 [2007/10/02(火) 14:03:01 ] >>609 本当にありがとうございました。 助かりました。
611 名前:デフォルトの名無しさん [2007/10/02(火) 14:50:45 ] [1] 授業単元: 総合 [2] 問題文:じゃんけんプログラムを作りなさい。(あいこも作ること) [3] 環境 [3.1] OS:WindowsXP [3.2] BorlandC++ [3.3] 言語:C++
612 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 15:35:08 ] じゃんけん以外に特に指定無し?
613 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 16:16:44 ] >>611 普通に作るつもりだったのに、魔がさした kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5012.txt
614 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 16:46:16 ] 判定なげー
615 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 17:08:20 ] 同じく判定みて吹いた。
616 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 17:26:13 ] 判定部分だけ書いてみた //判定 switch((enemy-player+3)%3){ case 0: //あいこ aiko = true; break; case 1: //勝ち end = true; win = true; break; default: //負け end = true; win = false; break; } でも、 result = (enemy-player+3) % 3; だけでいいと思う
617 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 17:29:13 ] 少なくとも、あいこの判定はplayer == enemyだけでいいと思うんだ。
618 名前:デフォルトの名無しさん [2007/10/02(火) 17:33:43 ] [1]授業単元:プログラミング演習 [2]問題文:float x,y;char a,b;と宣言し、各変数x,y,a,bのアドレスを出力するプログラムを作って、コンパイル/実行し、それぞれのメモリサイズが満たされていることを確認する。 注)メモリアドレスをprintf()を用いて出力する場合は、unsigned int型と同じく%uを出力変換に使うこと。 [3]Windows XP Visual Studio Japan20005 [4]C言語 [5]10月4日まで。お願いします。
619 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 17:39:19 ] >それぞれのメモリサイズが満たされていることを確認する。 アドレスを出力しただけで、それが満たされているかは確認できません。
620 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 17:50:41 ] stdioから直ってると思ったら、20005にフイタ
621 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 17:53:49 ] 20005が出る頃には、intが65536ビットくらいになってるのかな
622 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 17:58:06 ] >>621 きっと可変長bitをCPUでサポートしてくれてる
623 名前:デフォルトの名無しさん [2007/10/02(火) 18:01:09 ] メモリアドレスをprintf()を用いて出力する場合は、unsigned int型と同じく%uを出力変換に使うこと。ここだけでいいんで教えてください。
624 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 18:02:41 ] printf("%u",&x);
625 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 19:40:21 ] >>622 ってかbitなんてなくなってる
626 名前:613 mailto:sage [2007/10/02(火) 20:09:52 ] 見直してみて自分でも吹いた。やっちゃったZE。
627 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 20:19:20 ] ふちゅーは%pじゃないか?
628 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 20:24:42 ] 0x%Xじゃね?
629 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 21:36:01 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク): ユーザが整数を入力すると、その整数をINT型の変数に入れ、そのビット列を表示するプログラム。 ただ、INT型のビット数は環境によって変わる可能性があるため、 sizeof()演算子を利用してINT型の変数のビット数を求め、そのビット数分だけ表示するようにせよ。 [3] 環境 [3.1] OS: XP [3.2] コンパイラ名とバージョン: Visual C++ 2005 [3.3] 言語: C [4] 期限: 明日中 [5] その他の制限: なし お願いします。
630 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 21:46:43 ] >>629 これでおk unsigned int v, bit = 1 << sizeof(int) * 8 - 1; scanf("%d", &v); while(bit) { putchar(bit & v ? '1' : '0'); bit >>= 1; } puts("");
631 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 21:48:02 ] >>629 1バイトが8ビットとは限らないけどこれでよければどうぞ。 #include<stdio.h> int main(void) { int in; int cnt; scanf( "%d", &in ); for ( cnt = sizeof( int ) * 8; cnt > 0 ; cnt-- ) { printf ( "%d", ( in >> ( cnt - 1 ) ) & 1 ); } return 0; }
632 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 21:49:46 ] >>630 入力が負の数だったときに処理系依存で無限ループじゃね?
633 名前:デフォルトの名無しさん [2007/10/02(火) 21:56:13 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク): じゃんけんを10回行い、その対戦結果(対戦譜)をCSV形式で出力するもの。 ただし、出力先は(/デスクトップ/じゃんけん結果)フォルダで、ファイル名は日付を含むこと。 [3] 環境 [3.1] OS: XP [3.2] コンパイラ名とバージョン: BCC [3.3] 言語: C++ [4] 期限: 明日中 [5] その他の制限: 出力したCSVファイルはExcelで開いて確認すること。 お願いします。
634 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 21:57:20 ] >>630-631 ありがとうございます。 参考にさせていただきます。
635 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 22:05:50 ] >>632 kwsk
636 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 22:19:01 ] >>633 >[1] 授業単元: C言語 > [3.3] 言語: C++ どっちやねん
637 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 22:23:04 ] とりあえずC言語でやっておけばおk。どうせC++コンパイラでもC言語のソースは コンパイルできるし。
638 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:24:31 ] >>635 あ、ごめん。unsignedつけてたらOKだっけ? 負の数の右シフトが算術シフトになるか論理シフトになるかは 処理系依存だったと思ったから・・・ あいまいで、そーりー
639 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:32:29 ] 何が言いたいのか今一よく判らんが、unsignedなら負の数にはならないんだな、これが。
640 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:38:17 ] 符号無し!
641 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:39:18 ] >>380 めんどくさいんでcharで説明。 [10101010]を右に1ビットシフトした場合[10010101]になるか[01010101]になるかは処理系依存 調べたらやっぱ、unsignedは問題なかった。スマソ proger.blog10.fc2.com/blog-entry-62.html
642 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:41:57 ] とりあえず、何をシフトしてるかぐらいは理解してくれ
643 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 00:27:59 ] >>641 > [10101010]を右に1ビットシフトした場合 > [10010101]になるか[01010101]になるかは処理系依存 (proger.blog10.fc2.com/blog-entry-62.html ) > C言語の規格として、算術シフトか論理シフトかは不定 うそ。規格では次のようになっている。ISO/IEC 9899, 1999 より: > 6.5.7 > The result of E1 >> E2 is E1 right-shifted E2 bit positions. > If E1 has an unsigned type or if E1 has a signed type and a > nonnegative value, the value of the result is the integral > part of the quotient of E1 / 2^E2. If E1 has a signed type > and a negative value, the resulting value is implementation-defined. つまり、E1 が unsigned であるか、もしくは signed かつ E1 ≧ 0 のときに 限って右シフトの動作は定められており、それ以外は implementation-defined。 すなわち、論理シフトやら算術シフトの範囲を超えて処理系の自由。
644 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 00:58:12 ] 負数の右シフトは値がぶっ飛んだって問題ないでOK?
645 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 00:59:42 ] 日本語でおk
646 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 02:29:31 ] そもそも負って言っても2進数で表すと、どういう表現になるか? 考えてみよー
647 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 03:04:07 ] [1] 授業単元: [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5013.txt [3] 環境 [3.1] OS: windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 10月4日22:00まで [5] その他の制限: ありません 大変お手数ですが、よろしくお願いいたします
648 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 05:48:29 ] >>647 問題1 #include <stdio.h> #include <math.h> int fac(int n) { return n==1 ? 1 : n * fac(n-1); } int geo(int a, int r, int n) { return n==1 ? a : geo(a, r, n-1) * (pow(r, n) - 1) / (pow(r, n-1) - 1); } int fib(int n) { return n==1 || n==2 ? 1 : fib(n-1) + fib(n-2); } double a[] = { 1, 2, 3, 4, 5}; double hor(double x, int n) { return n==0 ? a[n] : hor(x, n-1) * x + a[n]; } int main(void) { printf("10! = %d\n", fac(10)); printf("2^0 + 2^1 + 2^2 + ... + 2^9 = %d\n", geo(1, 2, 10)); printf("fibonacci 20: %d\n", fib(20)); printf("f(2) = %.2f\n",hor(2, 4)); return 0; }
649 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 08:58:37 ] >>646 考える前に仕様書を読んでくれ。6.2.6.2 に書いてあるから。要点は ・value bits / padding bits / sign bit からなる。 ・どこの bit が value bits/padding bits/sign bit であるかは処理系定義。 ・sign bit が 0 のときは正の数,1 のときは負の数を表現する。 ・数表現が「絶対値と符号,二の補数,一の補数」のどれかは処理系定義。
650 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 09:14:49 ] >>631 > 1バイトが8ビットとは限らない それよりもこれについて悔しく
651 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 09:19:45 ] 知らなくても普通は問題ないが、そういう特殊な環境もあるらしい。
652 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 09:22:07 ] やな環境だなぁ。そんな環境を作っている奴、使っている奴は確実に変わり者。
653 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 09:25:09 ] 身の回りが世界だと思ってるほうが後々痛い目にあうしなぁ・・・
654 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 09:29:54 ] 1バイトが7ビットとか・・・ぷっ・・・ぷぷぷっ・・・ぷぅ〜〜〜(屁)が出ちゃうぜ
655 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 09:32:52 ] 650のバカが突っ込んだつもりで不勉強を晒しただけだな。
656 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 09:41:06 ] というわけで (UINT_MAX-UINT_MIN) の数値からunsigned intのビット数をどうにかして得てからやったほうが無難なときもあるよ,と
657 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 09:52:48 ] CHAR_BIT@limits.h
658 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 09:56:42 ] >>654 CHAR_BITは8以上と定められているので、流石にそれではISO準拠を名乗れない。
659 名前:デフォルトの名無しさん [2007/10/03(水) 10:02:58 ] >>655 っつかお前さっきっから偉そうにうぜぇよ?詰まらん突込みに必死になりすぎw んなの知っててわざとお前みたいなでしゃばりに答えさせているだけだろ。 ほんっと、最近うぜぇガキが増えたな。 >>653 >>651 >>649 >>643 ↑こいつキモイ
660 名前:デフォルトの名無しさん [2007/10/03(水) 10:04:26 ] 655 名前:デフォルトの名無しさん 投稿日:2007/10/03(水) 09:32:52 650のバカが突っ込んだつもりで不勉強を晒しただけだな。 650のバカが突っ込んだつもりで不勉強を晒しただけだな。 650のバカが突っ込んだつもりで不勉強を晒しただけだな。 ↑バカとか言っているし、なんだこいつ?不勉強だってw >>650 には知らないとか存在しないとは書かれていない。 しかも「悔しく」ってボケているところに気づかない2ちゃん初心者ワロスw モロに釣られたな、このでしゃばり、知識をひけらかしたい厨房。 653 名前:デフォルトの名無しさん 投稿日:2007/10/03(水) 09:25:09 身の回りが世界だと思ってるほうが後々痛い目にあうしなぁ・・・ 身の回りが世界だと思ってるほうが後々痛い目にあうしなぁ・・・ 身の回りが世界だと思ってるほうが後々痛い目にあうしなぁ・・・
661 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 10:06:54 ] >>656 UINT_MINは存在しない。 存在したとしても常に0だろうし。
662 名前:デフォルトの名無しさん [2007/10/03(水) 10:07:36 ] ttp://ja.wikipedia.org/wiki/%E3%83%90%E3%82%A4%E3%83%88_(%E6%83%85%E5%A0%B1) > 初期のコンピューターでの1バイトは6ビットである(英文文字(キャラクタ)コードが > 源であった)。1バイトを7ビットや9ビットとして扱うコンピュータもあり > (DECのPDP-10、NECのACOS-6など)、このため情報通信の分野では > 常に8ビットを表すために、バイトではなくオクテットと呼ぶのが適切である。 さてと、どっちが不勉強の無知を晒したか、分かったよな?8ビットを1バイトとしない環境があるとしても それはバイトではなく 何と 言うでしょう〜〜か?ったく、知ったかのバカが無知を晒したよw >>655 >>655 >>655 >>655 >>655 >>655 <こいつなw
663 名前:デフォルトの名無しさん [2007/10/03(水) 10:08:37 ] >>661 いい加減知ったかはうるさいよ >>655 のバカさんw >>651 >>653
664 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 10:11:32 ] なんでもかんでも例外をキャッチするなよ しかもバグってるし…
665 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 10:13:43 ] 良い感じに水掛け論になってきたなwwwwwwwwwwwwww
666 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 10:15:08 ] >>661 www.google.co.jp/search?hl=ja&client=firefox&rls=org.mozilla%3Aja%3Aofficial&hs=Dcs&q=UINT_MIN&btnG=%E6%A4%9C%E7%B4%A2&lr= っつか、ほんまバカにバカって言われるとなんとも。まぁ、どっちが知識があるとか 競い合っているようじゃまだまだ子供だな。ちゃんと調べようぜ? UINT_MINが存在するしないを一個人が決めて良いもんだろうか? 強いて決めるなら、って話なら分かる。
667 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 10:17:45 ] >>655 さんよぉ、とっとと謝罪してくれないかねぇ?どこが バカ なのか説明してくれ。 突っ込んだ質問にさも知ったような口で答えたつもりが、相手が無知だと勘違いして 墓穴を掘るとは・・・敢えて突っ込まれて正確に、事細かに説明できないなら黙ってた方が良いよ。 あと、ここ、宿題スレだから。続きがやりたいなら別の質問関連のスレで頼むわ。
668 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 10:19:18 ] 30分かけて一生懸命調べてからファビョってるところが笑える
669 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 10:21:53 ] >>662 ・1バイトは通常8ビットであり、古くは6ビット、7ビット、9ビットの物が存在した。 ・よって「常に8ビット」を表すために情報通信分野ではオクテットという用語がある。 その機械で1バイトが8ビット以外と定められているのなら、バイト以外ありえないが。 まさかオクテットだなどと言うまい?
670 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 10:22:24 ] >>668 負け犬の遠吠え乙w 正確な説明も出来ないくせに他人をバカ呼ばわりしてんじゃねーよ
671 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 10:23:54 ] >>669 問題はそこじゃない。>>650 が無知だったという証拠は? 詳しくと突っ込まれて答えたのがそうでない環境があるってことだけだろ? そんなの知ってんだよ、こっちは情報関係の分野を専攻してたからねぇ。 具体的に答えたのはむしろボケた俺の方だろ?w
672 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 10:26:12 ] いつになったら中途半端な知識で突っ込んで、指摘されたら逆切れ連投&釣り宣言の馬鹿コンボを やめてくれるんだろう。 何回このパターン見たことか。
673 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 10:27:56 ] っつか、マジでスレ違いだし、ここらで俺が結論づけておくわ。 >>655 のバカが突っ込んだつもりで不勉強を晒しただけだな。 他人をバカ呼ばわりする前に自分の知ったかな不十分な知識で偉そうにしていて 相手を勝手に無知、不勉強にするな。調べもしない奴こそいい加減。 悪いがこっちは調べたんじゃなくて知ってたが、敢えて誰もが見られる文献に リンクをしただけ。普通は自分で調べるだろ、調べる奴は。
674 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 10:36:35 ] >>650 ,652,654,659,660,662,663,666,667,670,671,673 相変わらず恐ろしいほどの瞬発力だ
675 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 10:45:04 ] >>672 まあ、わかりやすいから見かけたら即あぼーんで対処するしかないな。 馬鹿は馬鹿である引け目があるが故に馬鹿と指摘されると馬鹿のように怒り始めるから あまり馬鹿にしてやらないほうが良い。馬鹿にも馬鹿なりの自尊心というやつがあるの だろう。本当に馬鹿ではなく自分に絶対の自信があるのなら、馬鹿にされても聞き流せ るはずだから、本来はとても馬鹿馬鹿しい事だが。まあ、わざわざ相手して馬鹿をみる こともない。
676 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 10:46:32 ] 沸きすぎワロタww
677 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 10:50:16 ] 久々に覗いて見たらまたいつもの人か 相変わらずだなここも
678 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 13:28:34 ] ここの板もいい加減ID制にして欲しいよ あぼーんするのが面倒だ
679 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 15:18:03 ] つpc11.2ch.net/test/read.cgi/tech/1051039126/
680 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 15:36:19 ] 別にIDにしなくてもいいや、いい加減慣れた 長くても一日放置すれば飽きるみたいだし
681 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 23:37:15 ] [1] 授業単元:C++プログラミング [2] 問題文(含コード&リンク): 「年(西暦)」「月」を入力したら,その月のカレンダーを表示するプログラムを作成しなさい。ただし,下記の条件を満たすものとする。 【条件】 (1)カレンダークラスを作成し,main関数でカレンダークラスの実体を生成し,カレンダークラス内のメンバ関数(show関数)を呼び出してカレンダーを表示する。 (2)カレンダークラスはカプセル化されていること。 (3)カレンダー表示には,年,月および曜日,日を表示すること。 (4)「閏年」「祝日」「六曜」「節句」「二十四節気」の表記を可能にする。 (5)上記以外については自由に作成してよい。 [3] 環境 [3.1] OS: Windows VISTA or XP [3.2] visual studio 2005 [3.3] 言語: C++ [4] 期限: 2007/10/5まで。 [5] その他の制限: 特になし よろしくお願いします。
682 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 23:43:05 ] >>681 「六曜」の計算式plz
683 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 00:06:49 ] >>682 (月+日)÷6=?…あまり 大安 0 赤口 1 先勝 2 友引 3 先負 4 仏滅 5 例: 十五夜(8月15日) : 8+15=23, 23÷6=3あまり5→仏滅 十三夜(9月13日) : 9+13=22, 22÷6=3あまり4→先負 七夕(7月7日): 7+7=14, 14÷6=2あまり2→先勝
684 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 00:11:44 ] >>683 六曜は月の暦(太陰暦)だから太陽暦での月の途中でリセットされるよ
685 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 00:25:37 ] やべぇ、5年もホテルでバイトしてて六曜が重要だったのに そんな単純な計算式で出るなんて初めて知った・・・
686 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 00:36:50 ] ラブホか
687 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 00:44:54 ] (; ・`д・´)これConsoleでやるのか!
688 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 00:51:38 ] 太陽暦と太陰暦変換の計算式って中々見つからない 海上保安庁の www1.kaiho.mlit.go.jp/KOHO/syoshi/pr_eph.htm に計算式があるようだが 解読できないです。
689 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 02:50:41 ] [1] 授業単元: [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5013.txt [3] 環境 [3.1] OS: windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 10月5日6:00まで [5] その他の制限: ありません 大変お手数ですが、よろしくお願いいたします
690 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 03:55:44 ] >>689 問題2の1つ目のループの計測 2つ目以降は計測してるループのとことかnの値とかそこらへんを書きかえればok #include <stdio.h> #include <sys/time.h> int main(void) { int i, j, n, sum; hrtime_t start, finish; printf("1.\n"); printf("+----+---------+---------+---------+---------+---------+\n"); printf("| n | 2000000| 4000000| 6000000| 8000000| 10000000|\n"); printf("+----+---------+---------+---------+---------+---------+\n"); printf("|time|"); for(n=2000000; n<=10000000; n+=2000000) { start = gethrtime(); /* 計測開始 */ sum = 0; for(i=0; i<n; i++) sum++; finish = gethrtime(); /* 計測終了 */ printf("%9f|", (double)(finish-start) / NANSEC); } printf("\n+----+---------+---------+---------+---------+---------+\n"); return 0; }
691 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 04:02:44 ] >>689 関数名が情けないことになってるので、書きなおしておいて #include<stdio.h> int kaijo(int n){ if(n<=1) return 1; return n*kaijo(n-1); } double touhikyusu(double a0, double x, int n){ if(n<=0) return a0; return touhikyusu(a0*x, x, n-1); } int fibonacchi(int n){ if(n<=1) return 1; return fibonacchi(n-1)+fibonacchi(n-2); } double honer(double x, double keisu[], int keisu_num){ if(keisu_num<=0) return 0.0; return honer(x, keisu, keisu_num-1)*x+keisu[keisu_num-1]; } int main(void){ double sum; printf("%d\n", kaijo(10)); for(i=0,sum=0.0;i<10;i++) sum+=touhikyusu(1.0, 2.0, i)); printf("%f\n", sum); printf("%d\n", fibonacchi(10)); printf("%f\n", honer(2.0, (double [5]){1.0, 2.0, 3.0, 4.0, 5.0}, 5)); return 0; }
692 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 04:34:39 ] 動作確認ぐらいしろよ
693 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 09:51:29 ] 関数名touhikyusuなのに、等比級数を返さないってのはどうよ?
694 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 10:17:28 ] double touhikyusu(double a0, double r, int n){ if(n<=0) return a0; return touhikyusu(a0, r, n-1)*r+a0; }
695 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 11:27:50 ] >>694 なにそれ?
696 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 12:37:01 ] 等比級数と等比数列がごっちゃになってた double function(double a, double r, int n){ return n==1 ? a : a*pow(r,n-1) + function(a, r, n-1); }
697 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 12:48:16 ] >>689 普通初項というとa1じゃないか? それ以外は良いと思うが
698 名前: ◆JdKMFRogo6 [2007/10/04(木) 15:10:08 ] [1] 授業単元:C++ [2] 問題文(含コード&リンク): 処理の前後で clock() の値を保存しておき、その差をとり、プログラムの実行時間を求めよ。 [3] 環境 [3.1] OS: Windows XP [3.2] VC [3.3] 言語: C++ [4] 期限: 2007/10/7まで。 [5] その他の制限: include<time.h>を用いる。 int t1, t2, t0; t1 =? 処理 t2 =? t0 = t2 - t1; 結果表示 制限というかイメージ的には、こんな感じかなぁとは思うのですが式がわかりませんでした。 大変お手数ですが、よろしくお願いいたします
699 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 15:43:28 ] >>698 処理の内容は何でもいいの?
700 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 17:42:53 ] [1] 授業単元:C++ [2] 問題文(含コード&リンク): ディレクトリの中身のファイル20個をランダムに取り出して違うディレクトリに5個にコピーしろ。 [3] 環境 [3.1] OS: LINUX [3.2] VC [3.3] 言語: C++ [4] 期限: 2007/10/7まで。 [5] その他の制限: 今ホームディレクトリにいて そこにdataというディレクトリがありも、またdata2というディレクトリがあるとします。 dataというディレクトリに1.dat〜20.datのファイルがあるとします。 そのディレクトリのファイルをランダムに5個取り出して、data2にいれてください。 data/〜.datのファイルの数20の番号からランダムに番号を選んでそのファイルを 〜とするべきなのかな?
701 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 18:11:54 ] >>700 LinuxなのにVC?
702 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 18:14:19 ] そこはコピーしてました。 上のを。
703 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 18:20:10 ] ちゃんと書けよハゲ
704 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 18:36:04 ] ディレクトリなどの概念はOSに依存するので きちんと環境を書かないと解答なんてできないよ。
705 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 18:52:58 ] >>681 681です 六用の部分は省いても良いです。
706 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 19:09:39 ] 最近はハゲって言っちゃ駄目だそうだよ。 例えば目の不自由な人を「めくら」と言う等、本人の人格に関わりの無い身体的特徴をあげつらって侮辱するのは差別ではないか、って事らしい。 チビとかデブも駄目らしい。 ハゲは「髪の不自由な人」、チビは「身長の不自由な人」、デブは「脂肪燃焼の不自由な人」って言うそうな。
707 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 19:41:06 ] [1] 授業単元:実験 [2] 問題文(含コード&リンク): ディレクトリの中身のファイル20個をランダムに 取り出して違うディレクトリに5個にコピーしなさい。 [3] 環境 [3.1] OS: LINUX [3.2] (gcc ) [3.3] 言語: C [4] 期限: 10月5日の朝までにできてればいいです。 [5] その他の制限: 今ホームディレクトリにいて そこにdataというディレクトリがありも、またdata2というディレクトリがあるとします。 dataというディレクトリに1.dat〜20.datのファイルがあるとします。 そのディレクトリのファイルをランダムに5個取り出して、data2にいれてください。 data/〜.datのファイルの数20の番号からランダムに番号を選んでそのファイルを 〜とするべきなのかな?