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/
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で実行引数にワイルドカードで一括指定ってできたっけ?