1 名前:デフォルトの名無しさん mailto:sage [2009/10/17(土) 01:08:18 ] あなたが解けない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++の宿題片付けます 130代目 pc12.2ch.net/test/read.cgi/tech/1250204272/
267 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 19:41:18 ] >265 outputが開放されていない 引数が使われていない 未定義動作の式が存在する
268 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 19:45:31 ] 意図のわからない名前をつけちゃだめ
269 名前:265 mailto:age [2009/10/24(土) 20:22:15 ] >>266 >>267 ありがとうございます。 もし良ければ何行目あたりかを教えてください。(スルーでも大丈夫です)
270 名前:デフォルトの名無しさん [2009/10/24(土) 21:24:20 ] >>265 これすごいなw 実装したやつ天才すぎるw つか宿題じゃねーだろこれ?
271 名前:デフォルトの名無しさん [2009/10/24(土) 21:25:44 ] こういうスレにいると 問題と回答の両方があるから 勉強になるよね☆
272 名前:265 mailto:age [2009/10/24(土) 21:28:20 ] 専門学校の宿題です 長いプログラムですが間違えてる所は最初〜真ん中らへんにあるって言ってました 関数や引数のことがよく分かっていないんで詳しく説明できる人がいればお願いいたします
273 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 21:32:43 ] >>265 このコード自体くそ はじめから書き直せ 素人丸だし
274 名前:デフォルトの名無しさん [2009/10/24(土) 21:37:18 ] >>272 宿題なのかこれ・・・ これ先生が書いたの? 突っ込みどころ満載なんだがwww
275 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 21:43:59 ] >>265 プログラムを見た瞬間目が回った これだけやる気をなくすプログラムも珍しいな
276 名前:デフォルトの名無しさん [2009/10/24(土) 21:46:35 ] うちの学校の講師はプログラミングテストで合格しないとなれないみたいだから >>265 みたいなひどいコードはないな
277 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 21:46:57 ] とりあえず何をしたいプログラムか分らないと途中経過を追うのが怠すぎる…
278 名前:265 mailto:age [2009/10/24(土) 21:47:08 ] >>274 先生が書きました とりあえず自力でがんばってみます。 一応明後日までみなさんの詳しい答え待ってます。おやすみなさい
279 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:13:01 ] >265 >266, 267 とりあえず、機械的に解析してもらった結果から出したんだけど kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10003.txt
280 名前:デフォルトの名無しさん [2009/10/24(土) 22:30:47 ] >>279 ってか機械的に解析ってどうやんの?プログラマーの俺に教えてちょww
281 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:36:15 ] lintと違うん?
282 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:36:15 ] >>280 ツール使うだけ lint とか
283 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:36:27 ] >>265 こんなん教えてる専門学校は今すぐ辞めるべき
284 名前:デフォルトの名無しさん [2009/10/24(土) 22:37:48 ] lintかー あざーす
285 名前:デフォルトの名無しさん mailto:age [2009/10/24(土) 22:43:15 ] lintってフリーソフトなん?
286 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:48:36 ] >>285 ググれよw
287 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:00:02 ] ググって見たけど最近のコンパイラなら必要なさそうだな
288 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:09:13 ] >265 まぁみんなつっこんでるので繰り返しになるが、 問題文自体が間違ってないか。 「このプログラムのどこかに変数における間違いがあります。」 いや、変数の問題じゃ無いんだが、、、。 こんなコードをデバッグさせようとすること自体が間違いでしょ。 専門学校の宿題か。 その講師の言うことは宛にならないと思う。
289 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:20:24 ] lintとかを使えるようにしようっていう意図なんじゃないかと深読み
290 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:22:06 ] >>265 これはひどい。 うちの会社なら、これ書いた奴の上司が社長室に呼びつけられるなw
291 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:24:59 ] >>265 こんなコードを人に見せるなんて恥ずかしくて切腹ものですね。 先生、あさってには死んでるかもしれないんじゃないですか。
292 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:29:09 ] プログラマが書いたコードじゃなくて数学屋が書いたコードだろ やつらこんなの書くぞ
293 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:31:58 ] 講師が学生のバイトで、そいつが研究課題でプログラム組んだけどミスがある。 でも自分ではわからないから、バイト先の連中にやらせちゃえ って感じな気がする。
294 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:36:18 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10004.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 明後日
295 名前:デフォルトの名無しさん [2009/10/25(日) 00:08:00 ] >>293 確かにw そんな感じするw
296 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 00:19:37 ] >>294 #include <stdio.h> void rotate(int *p, int size) { int i, temp; for(i=0,size--; i<size; i++, size--) { temp = p[i]; p[i] = p[size]; p[size] = temp; } } int main(void) { int a[10], i, length, n; printf("整数列をローテーションします.\n整数列の長さを入力してください:"); scanf("%d", &length); if(length <= 0 || 11 <= length) return printf("error"); printf("整数列を入力してください(スペース区切り):"); for(i=0; i<length; i++) scanf("%d", a + i); printf("ローテーション数を入力してください:"); scanf("%d", &n); while(n >= length) n -= length; rotate(a, length - n); rotate(a + length - n, n); rotate(a, length); printf("結果 [ "); for(i=0; i<length; i++) printf("%d ", a[i]); printf("]\n"); return 0; }
297 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 00:20:00 ] >>294 もっと単純に書いちゃだめなのこれ? for (i = 0; i < len; ++i) { arr1[ (i + n) % len ] = arr0[ i ]; } とかさ。
298 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 00:40:55 ] >>296 関数の名前はrotateじゃなくてreverseのほうが正しくね?
299 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 01:21:30 ] >294 どこかで見たことあるアルゴリズムだと思ったら、「珠玉のプログラミング」にあった奴だ。 問題の仕様には完全に合わせていないけど、 肝心の部分は、reverseを使ってこんな感じ。 void rightRotation(int *pInt, size_t size, size_t shift) { while (shift > size) { /* シフトがサイズを超えたら、さらに一周させる */ shift -= size; } if (shift == size) { /* シフトとサイズが同じなら変化無し */ return; } /* 先頭からsize - shiftサイズ分を逆順にする */ reverse(pInt, size - shift); /* 残り部分を逆順にする */ reverse(&pInt[size - shift], shift); /* 全体を逆順にする */ reverse(pInt, size); }
300 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 01:28:40 ] >>294 codepad.org/WglVP0uB scanf()追放信者が書くとこうなってしまいました。
301 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 01:33:22 ] せめて関数のエラー回避をw
302 名前:300 mailto:sage [2009/10/25(日) 01:38:45 ] >>301 うーん、malloc()のエラー回避はしていますが、やっぱり足りないですか?
303 名前:294 mailto:sage [2009/10/25(日) 01:40:49 ] 実は関数を習ってないので、その部分は回答を参考に書き替えたら 正しい結果になりました。回答ありがとうございました
304 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 03:24:18 ] これ作ったら神。 PS postscriptのテキスト抽出するやつ。日本語対応版。 フリーでは、誰も開発してないので、検索エンジンのフィルターの需要あってアクセス増えるよ。
305 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 03:29:01 ] 乞食は死ね
306 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 04:10:02 ] >>304 PDFからテキスト抽出とかどっかで見たことあるからpostscriptからも普通にありそうなもんだけど
307 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:37:59 ] [1] 授業単元:独学 [2] 問題文(含コード&リンク):www.ioi-jp.org/joi/2006/2007-yo-prob_and_sol/2007-yo-problems/2007-yo-t3/2007-yo-t3.html [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン:Visual Basic [3.3] 言語: C [4] 期限: 無期限
308 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:39:20 ] >>307 ぁ、Windowsです お願いします!
309 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:43:57 ] VBて。 しかも独学て。 独りで学んでないじゃん。
310 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:47:06 ] VBじゃ駄目ですか? 独学以外に何と書けば良いかわからなかったので・・・。
311 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:49:30 ] >>310 Visual Studioのことを言いたいのかい?
312 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:50:48 ] >>311 ん あ・・・はい。 そうです。すいません
313 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:58:34 ] >>308 ではないのですが、 A〜Zまで配列にして forで文字列を1文字ずつ取り出し さらにforで配列との比較を行い一致したら x,y,z以外だったら文字比較forのカウント変数に3を加算 x,y,zならa,b,cをそれぞれを出力用配列の内側配列に格納 という風に考えたんですが これよりスマートなやり方を教えてください。
314 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 10:15:51 ] スマートかどうか知らんが #include <stdio.h> #include <stdlib.h> #include <string.h> main(int argc, char **argv) { char *p; if (argc != 2) exit(EXIT_FAILURE); if (strlen(argv[1]) > 1001) exit(EXIT_FAILURE); for (p = argv[1]; *p != '\0'; p++) { if (!isupper(*p)) { exit(EXIT_FAILURE); } } for (p = argv[1]; *p != '\0'; p++) { putchar(((*p) - 'A' + 26 - 3) % 26 + 'A'); } putchar('\n'); exit(EXIT_SUCCESS); }
315 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 10:21:10 ] あ。'A'〜'Z'が連続しているコードが前提です。
316 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 10:52:13 ] >307 hashとかmapが使えるとすげー楽なのだけれど、Cには無いので代わりの方法をやってみた。 要はD→A、C→Z・・・の写像を定義してあげればよい。mapだとそのままこの写像が定義できる。 Cではできないので、インデックスに変換してあげている感じ。 #include <stdio.h> #include <string.h> #define ELENUM(array) (sizeof(array) / sizeof(array[0])) /* A, B, C...,Zを0, 1, 2, .. 25に変換。 変換できない場合-1 */ int alphIndexing(char ch) { char alph[] = "ABCDEFCHIJKLMNOPQRSTUVWXYZ"; int idx; for (idx = 0; idx < ELENUM(alph); idx++) { if (alph[idx] == ch) { return idx; } } return -1; } int main(int argc, char **argv) { const char aCaesarTbl[] = "*XYZABCDEFCHIJKLMNOPQRSTUVW"; const char *pConvert = (aCaesarTbl + 1); int idx; printf("input : %s\n", argv[1]); printf("encoded: "); for (idx = 0; idx < strlen(argv[1]); idx++) { putchar(pConvert[alphIndexing(argv[1][idx])]); } putchar('\n'); return 0; }
317 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 11:12:48 ] >>314 >>316 共にエラーが出る・・・
318 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 11:16:01 ] >>317 へぇ。
319 名前:316 mailto:sage [2009/10/25(日) 11:42:44 ] 引数入力してないでしょ。 入力チェック省いていたから。 ちょっと改善して入力チェックも入れた。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10005.txt
320 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 11:55:03 ] #include <stdio.h> int main(){ int c; while((c=getchar()) != EOF){ if('D' <= c && c <= 'Z') putchar(c-3); else if('A' <= c && c <= 'C') putchar(c+23); else putchar(c); } return 0; }
321 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 13:54:52 ] [1] 授業単元:C++ [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10006.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10007.txt [3] 環境 [3.1] OS:Windows [3.3] 言語:C++ [4] 期限: 2009年10月30日 私なりに考えてみましたがわかりませんでした。 どなたかお解りになる方がいましたら宜しくお願い致します。
322 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 15:09:43 ] >321 ポインタがわかっていないようですね。その点は要復習。 第3、第4引数がポインタ渡しか参照渡しか、曖昧ですが、 一応参照渡しでやってみた。 doubleの余りとか適当。 void div(int op1, int op2, int& sho, int& amari) { sho = op1 / op2; amari = op1 % op2; } void div(double op1, double op2, double& sho, double& amari) { sho = int(op1 / op2); amari = op1 - sho * op2; }
323 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 15:10:12 ] インラインアセンブラでidivとか言ったら怒られるだろうか。
324 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 18:22:58 ] >>254 codepad.org/kbfG5GKd プログラムの最初に想定しているファイル形式と出力を書いておきます。
325 名前:324 mailto:sage [2009/10/25(日) 21:26:09 ] 書き直しました。 codepad.org/Yi4G9x0S
326 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 21:39:30 ] [1] 授業単元:C言語とアルゴリズム [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10008.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限:明日まで よろしくおねがいします!!
327 名前:デフォルトの名無しさん [2009/10/25(日) 21:53:33 ] [1] 授業単元: C言語プログラミング演習 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10009.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2009年10月28日 16:00まで
328 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 21:57:20 ] >>326 問題1−2 #include<stdio.h> char *ul2a(char buf[40], unsigned long value){ int i; char *p; for(i=31,p=buf;i>=0;i--){ *p++=((value>>i)&1)+'0'; if(i%4==0) *p++=' '; } *--p='\0'; return buf; } int main(int argc, char *argv[]){ char buf[40]; unsigned long x=0, y=0; printf("符号なし32bit整数2つを入力してください.\n"); scanf("%lu %lu", &x, &y); printf("%lu は2進表示で %s ,\n", x, ul2a(buf, x)); printf("%lu は2進表示で %s です.\n", y, ul2a(buf, y)); printf("~%lu は2進表示で %s ,\n", x, ul2a(buf, ~x)); printf("~%lu は2進表示で %s です.\n", y, ul2a(buf, ~y)); printf("%lu << 1は2進表示で %s ,\n", x, ul2a(buf, x<<1)); printf("%lu >> 1は2進表示で %s です.\n", y, ul2a(buf, y>>1 )); printf("%lu & %lu は2進表示で %s です.\n", x, y, ul2a(buf, x&y)); printf("%lu | %lu は2進表示で %s です.\n", x, y, ul2a(buf, x|y)); printf("%lu ^ %lu は2進表示で %s です.\n", x, y, ul2a(buf, x^y)); return 0; }
329 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 22:23:33 ] >>326 問題1: codepad.org/f8POt06D 問題2: codepad.org/IObqxmMY
330 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 22:41:19 ] >>326 です >>328 、329さんありがとうございます。 問題1−1なんですが>>328 さんの問題1−2のようにもう少し簡単になりませんか?
331 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 22:43:38 ] すげー煽りだw
332 名前:329 mailto:sage [2009/10/25(日) 22:51:03 ] >>330 >>328 ではポインタを使っていますが、>>329 ではポインタを使わず、算術演算(割り算と余り演算子)で処理しています。 あるいは、わかりやすいように配列にいったん結果をいれるようにしています。4桁ごとのくぎりも普通にかいています。 >>329 も簡単だと思いますが( >>328 を否定しているわけではありません)、やっぱり短く書いたほうがわかりやすいでしょうか?
333 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 23:37:00 ] [1] 授業単元: [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10010.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10012.zip [3] 環境 [3.1] OS: Windows? [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: (2009年10月30日17;50まで うまく実行できません。おねがいいたします。
334 名前: ◆pGt6/pVDLk mailto:sage [2009/10/25(日) 23:40:45 ]
335 名前:333 ◆F8HqQ.0zX2 mailto:sage [2009/10/25(日) 23:43:07 ] 見にくいですが、宜しくおねがいします。
336 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 00:03:32 ] >327 気が向いただけ、ただ気が向いただけ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10013.zip s/foo.zip/foo.tar.gz/
337 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 00:40:51 ] これ作ったら神。 PS postscriptのテキスト抽出するやつ。日本語対応版。 フリーでは、誰も開発してないので、検索エンジンのフィルターの需要あってアクセス増える。
338 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 00:47:46 ] ちょっとした質問なんですが、 123 この数列を配列に 321 と、格納するにはどうすれば良いですか?
339 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 00:54:04 ] a[0]=1,a[1]=2,a[2]=3; tmp=a[0],a[0]=a[2],a[2]=tmp; //swap(a,b) a[2]=1,a[1]=2,a[0]=3; ちょっと横道に
340 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 00:55:46 ] >>339 説明不足でした scanfから数字を入力して、 その数字を>>338 みたいにするにはどうすれば良いですか?
341 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 01:09:21 ] 後ろから順に前に入れていけばいい。
342 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 01:11:38 ] そのやり方がよく・・・
343 名前:デフォルトの名無しさん [2009/10/26(月) 01:25:30 ] [1] 授業単元: C言語演習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10014.txt [3] 環境 [3.1] OS: (Windows/Linux) [3.2] gcc 3.4 [3.3] 言語: C お願いしますm(_ _)m
344 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 01:27:01 ] 意味がよくわからんけどこういうことかな int a[3]; int i; for (i = 0; i < 3; i++) scanf("%d", &a[2-i]);
345 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 01:27:58 ] >>344 は>>340 へのレスね
346 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 01:38:59 ] >>345 123 って入力したときに、 配列に _____ |3|2|1| ーーーーー って格納させる方法です・・・ 国語力無くて申し訳ない
347 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 02:31:10 ] >>346 #include <stdio.h> int main(void){ int i; int x; int a[3]; scanf("%d",&x); for(i=0;i<3;i++){ a[i] = x%10; x /= 10; } for(i=0;i<3;i++) printf("a[%d] = %d\n",i,a[i]); return 0; }
348 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 02:44:17 ] なるほど。数字のみなら>>347 もありか。 文字もokな一般的なものを考えてみたのが↓。 >>346 #include <stdio.h> int main(void){ int pt1 = 0 , pt2 = 0; char s[101] = "", tmp; printf("input : "); scanf("%s", s); while(s[pt2 + 1]!='\0'){ pt2++; } while(pt1 < pt2){ tmp = s[pt1]; s[pt1] = s[pt2]; s[pt2] = tmp; pt1++; pt2--; } printf("output : %s\n", s); return 0; }
349 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 02:46:11 ] >343 一応作ったけど、凝り始めると終わらない
350 名前:333 mailto:sage [2009/10/26(月) 09:42:08 ] [1] 授業単元:プログラミング実習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10010.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10015.zip [3] 環境 [3.1] OS: Windows? [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2009年10月30日17;50まで すいません。少し補足させていただきますm(。._.)m
351 名前:デフォルトの名無しさん [2009/10/26(月) 12:50:45 ] >>304 ps2textというのがある。 www.asahi-net.or.jp/~yw3t-trns/namazu/windows/ps2text/
352 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 13:27:19 ] >>351 それは、ゴーストスクリプトという専用ツールを呼び出すだけ。 遅いし、確実には抽出できなかったよ。 動作環境: PerlActivePerl ghostscript日本語ghostscript, (ghostscript 8.11 以降推奨)
353 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 14:04:58 ] postscriptのフォーマット概要がここに書いてあるけど、これだけでは抽出できないみたい。 バージョンが1〜4.2くらいてまであって、それぞれに対応しないと駄目みたい。 www.bunmeisha.co.jp/LaTeX2e/pskihonF.html こっちは開発元資料へのリンクあり fontforge.sourceforge.net/ja/bibliography.html
354 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 14:40:10 ] >>350 問題の前半が省かれてるっぽいのでよくわからんが、 set_mapがコメントの内容とあってない。 コメントが正しいなら //マップ内なら数値を代入 void set_map(int n, int x, int y, double v) { if (x >= 0 && X > x && y >= 0 && Y > y) { map_q[n][y][x] = v; } } upされたやつだとy=-1とかでもmap_qに値をセットしてたから それでsegmentaition fautになってる あと mainの中でcountの初期化がされてない
355 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 15:11:19 ] [1] 授業単元:C言語とアルゴリズム [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10016.txt [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限:早めに。。 よろしくお願いします!
356 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 15:31:21 ] >>355 @ #include <stdio.h> #include <ctype.h> int main(void) { int l = 0, u = 0, d = 0; char str[256], *p; printf("文字列を入力して下さい.\n"); scanf("%s", str); for(p=str; *p; p++) { if(islower(*p)) l++; else if(isupper(*p)) u++; else if(isdigit(*p)) d++; } printf("入力文字列は %s で\n", str); printf("小文字は%d文字,大文字は%d文字,数字は%d文字です.\n", l, u, d); return 0; }
357 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 15:38:43 ] >>355 A #include <stdio.h> #include <string.h> #include <ctype.h> int main(void) { char surname[21], firstname[21], fullname[41], *p; printf("姓を入力して下さい.\n"); scanf("%s", surname); printf("名を入力して下さい.\n"); scanf("%s", firstname); strcpy(fullname, surname); strcat(fullname, firstname); printf("入力した氏名は%sです.\n", fullname); for(p=fullname; *p; p++) { if(islower(*p)) *p += ('A' - 'a'); else if(isupper(*p)) *p += ('a' - 'A'); } printf("小文字と大文字の交換後の文字列は%sです.\n", fullname); return 0; }
358 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 16:10:17 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): (1)ライプニッツの公式を用いて円周率の近似値を求める時、その値が3.14から3.15の間になるまで nを増やしていき、そのnの値(繰り返し回数)を求めるプログラムを作成せよ。 (2)ライプニッツの公式を用いて円周率の近似値を以下の条件で求めよ。 nの値が増えるにつれ、それまでの近似値の平均値を求め、近似値と平均値の差が平均値の1%におさまるまで繰り返す。 (最初にfor文を使って計算を繰り返すたびに平均値も出力するプログラムを作成する。 そしてforをwhileに置き換えたプログラムを作成する。そのときdo()whileを使え。) [3] 環境 [3.1] OS: WindowsVista [3.2] コンパイラ gcc [3.3] 言語: C [4] 期限: 09年10月28日20:00まで [5] その他の制限: (1)に関してはif elseを使った文。(2)に関しては問題文通りです。 大学の授業ですが、全くならってない範囲を出題されました… お願いします。
359 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 16:20:30 ] 単純なループだから習ってないとは思えない。 応用がきかないのか数学的知識がないだけかググることすらできないのか。
360 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 16:43:24 ] >>358 (1) #include <stdio.h> int main(void) { int n; double d = 0; for(n=0; d < 3.14 || 3.15 < d; n++) { if(n & 1) d -= 4.0 / (n * 2 + 1); else d += 4.0 / (n * 2 + 1); } printf("%d回", n); return 0; }
361 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 17:52:15 ] [1] 授業単元:プログラミング実習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10010.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10017.zip [3] 環境 [3.1] OS: Windows? [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2009年10月30日17;50まで 何度も何度も申し訳ないです。 自分の分からないところだけ載せてました。 それだけでは分かりづらいですね。 (B)が分かりませんお願いします。
362 名前:デフォルトの名無しさん [2009/10/26(月) 17:57:57 ] >>349 ありがとうございます。 動けば十分ですので、貼ってもらえると嬉しいですm(_ _)m
363 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 18:02:14 ] >362 O(N^2)だから遅すぎて、お兄たん泣きたくなった、プロファイルかけたらqsort()の300倍の遅さ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10018.c
364 名前:デフォルトの名無しさん [2009/10/26(月) 18:09:16 ] >>363 ありがとうございます!今から解読して勉強します。。
365 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 18:36:31 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10019.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Visual C++ [3.3] 言語:C++ [4] 期限:2009年10月27日 昼12時 [5] その他の制限: すみませんが宜しくお願い致します。
366 名前:333 ◆F8HqQ.0zX2 mailto:sage [2009/10/26(月) 19:51:00 ] >>354 ありがとうございます。 実行して出力はできるようになりましたが、 100試行ごとの出力ができません。 ご教授をい願いします。
367 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 21:24:57 ] >>365 #include <stdio.h> double f(double x) { return 3 * x * x; } #define N 1000 int main() { int i; double sum = 0.0; for (i = 0; i < N; i++) sum += 1.0 / N * f((double)i / N); printf("S = %lf\n", sum); return 0; } /* end */