1 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 22:18:31 ] あなたが解けない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++の宿題を片付けます 106代目 pc11.2ch.net/test/read.cgi/tech/1209810861/
751 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 01:32:20 ] とても難しい問題が来ました しかし馬鹿な私と違って非常に優秀な諸兄にはわけないでしょう [1] 授業単元:C言語研修 [2] 問題文(含コード&リンク): 1から45の数(合計値)は1から9の数(要素)の和で作ることができる。(要素に同じ数を使わない) 例えば合計値6は最大3つ(要素数)の要素の和でつくることができ、要素数1であれば6、要素数2で あれば1+5と2+4の2通り、要素数3であれば1+2+3でつくる。この組み合わせで全てである。 合計値と要素数から要素の和の組み合わせ全てを計算する再帰関数を作れ。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 6.0 [3.3] 言語: C言語 [4] 期限: 起源はありませんが優秀な貴方方の手に掛かれば瞬殺でしょう [5] 制限はありません。貴方方の持っている全ての知識を注ぎ込んじゃって構いません
752 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 01:36:25 ] >しかし馬鹿な私と違って非常に優秀な諸兄にはわけないでしょう こういっておけば馬鹿が調子こいてやってくれるよwプゲラ という主の顔が浮かぶ
753 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 01:54:21 ] >>751 #include<stdio.h> int resolve_sub(int total, int num, int min) { static int ans[9], anslen = 0; int i, j; if(!num) return !total; for(i = min; i <= 9 && i <= total; i ++) { ans[anslen ++] = i; if(resolve_sub(total - i, num - 1, i + 1)) { for(j = 0; j < anslen ; j ++) printf("%d ", ans[j]); printf("\n"); } anslen --; } return 0; } void resolve(int total, int num) { resolve_sub(total, num, 1); } int main() { resolve(30, 6); /* (例)30を6個の和に分ける */ return 0; }
754 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:25:34 ] #include <stdio.h> void f(int size, int n, int *p) { static int pos = 0, start = 1; int i; if(pos==size-1) { p[pos] = n; for(i=0; i<size; i++) printf("%d ", p[i]); putchar('\n'); return; } for(i=start; i*2<n; i++) { start = i + 1; p[pos++] = i; f(size, n-i, p); pos--; } } int main(void) { int num, amount, *p; printf("要素数を入力して下さい:"); scanf("%d", &num); printf("合計数を入力して下さい:"); scanf("%d", &amount); p = malloc(sizeof(int) * num); f(num, amount, p); return 0; }
755 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:34:17 ] 問題読み違えた。 1から45まで限定で1から9しか使っちゃダメなのか。
756 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:50:08 ] >>751 #include<stdio.h> int O00O(int OOO0){ if(OOO0%2) return OOO0/2*(OOO0+1); return (OOO0+1)/2*OOO0; } void OOOO(int O0OO[], int OOO0, int OO0O, int OO00, int O0000){ int O, O000; if(OO00<=1){ O0OO[OO00]=OOO0; for(O=1;O<OO0O;O++) printf("%d+", O0OO[O]); printf("%d\n", O0OO[OO0O]); return; } O000=(OOO0-O00O(OO00-1)-1)/OO00; for(O=O0000;O<=O000;O++){ O0OO[OO00]=O; OOOO(O0OO, OOO0-O, OO0O, OO00-1, O+1); } } void O0O0(int OOO0, int OO0O){ int O0OO[1000]; if(OO0O>=sizeof(O0OO)/sizeof(O0OO[0])) return; OOOO(O0OO, OOO0, OO0O, OO0O, 1); } int main(void){ O0O0(100, 10); return 0; }
757 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 03:11:13 ] >>756 難読化乙
758 名前:デフォルトの名無しさん [2008/06/06(金) 11:37:44 ] #include <stdio.h> #include <float.h> int main(void) { float f; double x; long double ld; printf("\nTesting the precision of float, double, and long double : \n"); f = 1.0f + 1.0e-7; printf(" 1.0 + 1.0e-7 = %.10f\n", f); f = 1.0f + 1.0e-8; printf(" 1.0 + 1.0e-8 = %.10f\n", f); x = 1.0l + 1.0e-15; printf(" 1.0 + 1.0e-15 = %.20lf\n", x); x = 1.0l + 1.0e-16; printf(" 1.0 + 1.0e-16 = %.20lf\n", x); ld = 1.0L + 1.0e-19; printf(" 1.0 + 1.0e-19 = %.30Lf\n", ld); ld = 1.0L + 1.0e-20; printf(" 1.0 + 1.0e-20 = %.30Lf\n", ld); printf("\nThe experiment above is explained by constants from float.h :\n"); printf(" precision of float : %e\n", FLT_EPSILON); printf(" precision of double : %.15le\n", DBL_EPSILON); printf(" precision of long double : %.30Le\n", LDBL_EPSILON); return 0; } 表示された結果のうち、 1.0 + 1.0e-7 が 1.0000001 にならず、同様に 1.0 + 1.0e-15 が 1.000000000000001 にならず、 1.0 + 1.0e-19 が 1.0000000000000000001 という、きれいな数にならない理由を、FLT_EPSILON, DBL_EPSILON, LDBL_EPSILON との関係から説明してもらえないでしょうか。 よろしくお願いします。
759 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 11:43:55 ] >>758 単純な話管理できる桁があるので小数点側の切捨てが行われてるだけかと。 たとえば 1.0 + 1.0e-7 を 0.1 + 1.0e-7 や 0.01 + 1.0e-7 とした場合 おそらく.0000001は保持されると思われ。
760 名前:デフォルトの名無しさん [2008/06/06(金) 12:01:07 ] >>759 それをFLT_EPSILON, DBL_EPSILON, LDBL_EPSILON との関係から考察しなきゃならないんですけどいまいちわからなくて・・・
761 名前:759 mailto:sage [2008/06/06(金) 12:05:21 ] >>760 www.asahi-net.or.jp/~UC3K-YMD/Lesson/Section03/section03_13.html ここがいいかも イプシロン(誤差幅)だそうです。
762 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:06:34 ] ググったら直ぐ出てきたんだが…怒
763 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:32:01 ] >>758 質問と関係ないが printfの %l は整数にしか使えないと思うんだ
764 名前:デフォルトの名無しさん [2008/06/06(金) 12:41:53 ] 複素数を求めるプログラムなのですけど、 #include <stdio.h> #include <math.h> typedef struct { double rel; double imp; } complex; double mulcompl(complex x, complex y); /* 関数の戻り値の型を定義 */ int main(void){ complex c1, c2, c3; c1.rel = 3.2; c1.imp = 2.7; c2.rel = 2.5; c2.imp = 1.8; c3 = mulcompl( c1 , c2 ); /* complex変数c1,c2を仮引数としてmulcompl関数を呼び出す */ printf("複素数の積 \n"); printf("( %.2f + i %.2f ) * ", c1.rel, c1.imp); printf("( %.2f + i %.2f ) = ", c2.rel, c2.imp); printf("( %.2f + i %.2f )\n", c3.rel, c3.imp); return 0; } double mulcompl(complex x, complex y) /* 関数の戻り値の型を定義 */ { complex z; /* 仮引数x,yを使って複素数の掛け算を計算する */ z.rel = x.rel * y.rel - x.imp * y.imp; z.imp = x.rel * y.imp + x.imp * y.rel; return z; } それでどうしてエラーが取れないのですがどこが間違っているのか分かりません。 どなたかお願いします。
765 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:42:42 ] [1] 授業単元:オペレーティングシステム [2] 問題文(含コード&リンク):forkによる子プロセスの生成 子プロセスを2つ生成して、それぞれに、fork1, fork2 のプログ ラムを実行させるようなプログラムを作成しなさい。 ///fork1.c/// kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6800.txt ///fork2.c/// kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6801.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:6月11日 前回は本当にありがとうございました。よろしくお願いします。
766 名前:ロベ mailto:sage [2008/06/06(金) 12:43:46 ] >>646 お願いします!!!!
767 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:58:20 ] いまどきこれはないだろ。VC++が無料で使えるってのに。 > [3.2] コンパイラ名とバージョン:Borland C++ 5.5.1 for Win32
768 名前:ロベ mailto:sage [2008/06/06(金) 13:00:53 ] VC++は家でつかってますb
769 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:07:42 ] >>764 double mulcompl(complex x, complex y) → complex mulcompl(complex x, complex y)
770 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:11:37 ] >>766 wikipediaみたらOS/2 2.xのヘッダ構造書いてなかったんでやる気無くした。
771 名前:ロベ mailto:sage [2008/06/06(金) 13:14:11 ] >>770 いちようBMPのヘッダについて書いてあるページは見つけたけど プログラムの技術がないからできなくて;; www.kk.iij4u.or.jp/~kondo/bmp/
772 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:31:33 ] とあるゲーム機のSS取るのに使った構造体 typedef struct { // char bfType[2]; unsigned long bfSize; unsigned short bfReserved1; unsigned short bfReserved2; unsigned long bfOffBits; } BmpFileHed; typedef struct { unsigned long bcSize; short bcWidth; short bcHeight; unsigned short bcPlanes; unsigned short bcBitCount; } BmpFileInfoOS2; typedef struct { unsigned long biSize; long biWidth; long biHeight; unsigned short biPlanes; unsigned short biBitCount; unsigned long biCompression; unsigned long biSizeImage; long biXPixPerMeter; long biYPixPerMeter; unsigned long biClrUsed; unsigned long biClrImporant; } BmpFileInfoWindows;
773 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:31:53 ] 残り typedef struct { BmpFileHed hed; BmpFileInfoWindows Info; char data[480*272*4]; } BmpWindows;
774 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:32:48 ] でも欠点があってgccでコンパイルすると共通のヘッダ部分に アライメントが入る。 誰だよBMの後に調整用の領域作らないヘボいフォーマット決めたの
775 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:35:11 ] typedef struct { BmpFileHed hed; BmpFileInfoWindows Info; char data[2]; } BmpWindows; typedef struct { BmpFileHed hed; BmpFileInfoOS2 Info; char data[2]; } BmpOS2;
776 名前:ロベ mailto:sage [2008/06/06(金) 13:50:42 ] >>772 >>773 >>775 この構造体をどう使えば・・・
777 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:54:30 ] >>766 期限に間に合わなかったので作るのやめたよ
778 名前:ロベ mailto:sage [2008/06/06(金) 13:59:04 ] >>777 6月10日まで期限延ばしてもらえたので お願いできませんか?
779 名前:777 mailto:sage [2008/06/06(金) 14:00:06 ] >>778 作りかけのやつ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6802.c
780 名前:772 mailto:sage [2008/06/06(金) 14:03:19 ] >>779 unsigned long bcSize;(unsigned long biSize;)に該当する 部分を unsigned long bfOffBits; の後に持ってくると楽
781 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 14:05:06 ] BMとかどうせ使わないし読み捨てて構造体から排除しちゃえ。
782 名前:ロベ mailto:sage [2008/06/06(金) 14:05:22 ] >>777 どこまでできてるんですか?
783 名前:ロベ mailto:sage [2008/06/06(金) 14:06:25 ] ↑ >>779 の間違え
784 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 14:06:46 ] >>781 以前別スレでやってたけど #pragma pack(push, 1) この間に調整されたくない構造体を記述 #pragma pack(pop) するといいらしい
785 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 14:17:44 ] >>782 こいついったいなんなの? ソースがあるのにどこまでできているか聞くなんて。 自分で確認もできないのなら何でも適当なものをでっちあげてやれば、 ありがたがってそのまま提出しちゃうんじゃないかw
786 名前:777 mailto:sage [2008/06/06(金) 14:19:47 ] >>774 gccなら struct s0 { char a, b, c; } __attribute__ ((packed)); でパディングなし
787 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 14:21:14 ] >>786 おーそうなんだ 継続して作ってないなら続きやろうか?
788 名前:ロベ mailto:sage [2008/06/06(金) 14:22:28 ] >>787 おねがいできますか?
789 名前:777 mailto:sage [2008/06/06(金) 14:32:31 ] >>787 どうぞ 自分はグレースケール変換だけやってみる
790 名前:787 mailto:sage [2008/06/06(金) 14:53:08 ] うほ>>779 のを見てると自分の組み方が変則的なのかわかるorz 我流でやってるので悩むorz
791 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:06:00 ] 問03 学科の出席簿作成。 15人分の学生を表示し、入力により内容を変動させる。 表示順番: 出席表 <入力>学生番号0〜14 <入力>曜日番号0〜6 <入力>時限番号0〜3 <入力>出欠番号0〜1 <入力>学生番号0〜14の時に99を入力するとプログラム終了。 頼む。
792 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:10:28 ] >>646 の例題で不明な点があるんだけど ビットカウントが1,4,8のときはカラーパレットに対して処理するのか?
793 名前:777 mailto:sage [2008/06/06(金) 15:19:54 ] >>792 もうそれで作りつつある switch(bit_count) { // 2値なのでスケール化はできない case 1: printf("2値画像のため変換しません\n"); return; // パレットのみ変更 case 4: case 8: pal_count = 1 << bit_count; for (i = 0; i < pal_count; i++) { if (os == BMP_OS2) { y = (unsigned char)(pal3[i].rgbRed * YR + pal3[i].rgbGreen * YG + pal3[i].rgbBlue * YB); fwrite(&y, 1, 1, out_fp); fwrite(&y, 1, 1, out_fp); fwrite(&y, 1, 1, out_fp); } else if (os == BMP_WIN) { y = (unsigned char)(pal4[i].rgbRed * YR + pal4[i].rgbGreen * YG + pal4[i].rgbBlue * YB); fwrite(&y, 1, 1, out_fp); fwrite(&y, 1, 1, out_fp); fwrite(&y, 1, 1, out_fp); y = 0; fwrite(&y, 1, 1, out_fp); } }
794 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:21:07 ] いつまでだらだらとスレ消費すんだよw
795 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:21:58 ] フルフォーマット考えると結構面倒だなw
796 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:26:22 ] >>777 どうする?すでに読み込み用プログラム公開してるサイト見つけたんだけど・・・・
797 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:27:35 ] BMPの圧縮関係ってどう対処すれば正解? biCompressionフィールドって任意に拡張可能だった希ガス
798 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:29:19 ] >>797 まあそうなんだけどさ・・・ BMPで圧縮してるのなんてみたことないし。 でも出題した教師はこれを知ってかしらないでか出してるしな。 まともに対応を考えるとLibレベルになるよ。
799 名前:デフォルトの名無しさん [2008/06/06(金) 15:29:23 ] ちなみにBMP関係でこんなの見つけたお sunpillar2004.hp.infoseek.co.jp/data/files/bmp.html
800 名前:デフォルトの名無しさん [2008/06/06(金) 15:30:24 ] ああ,色深度16bitの時のビットフィールドの意味とかもいろいろあるし,BEかLEかで違いがあるんだっけか・・・? 忘れた
801 名前:796 mailto:sage [2008/06/06(金) 15:30:30 ] >>799 www.syuhitu.org/other/bmp/bmp.html こっちはLibにしてソースまで公開してくれてる。
802 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:30:57 ] >>800 あるね かなり面倒だよ、これ。
803 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:34:54 ] >>801 それでいいなら,プログラムの著者に連絡とって使ってみたら?
804 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:52:20 ] [1] 授業単元:メディア情報処理 [2] 問題文(含コード&リンク): マイク入力からの信号をリアルタイムに解析し、音名を表示するプログラムを作れ (チューナーみたいなもんですかね?) [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語: C C++ [4] 期限: 6月8日 [5] その他の制限: なし
805 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:00:53 ] [1] C [2]kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6803.txt [3] [3.1] Linux [3.3] C [4] 6月10日 [5] 記載されているプログラムを改訂して作ってください スーパークイーンが求められません すいませんお願いします
806 名前:kokoro [2008/06/06(金) 16:16:03 ] はじめまして。 今、c言語をやっているのですが、分からないので 問題をのせますので、プログラムを作ってほしいです。 お願いします。
807 名前:kokoro [2008/06/06(金) 16:21:12 ] [1]授業単元:C言語 [2]問題文: ★下記の仕様を満たすプログラムを作成しなさい。 【仕様】 ATM簡易プログラム ▼取引は「預け入れ」「引き出し」「残高照会」の3種類とする。始めに どの取引をするかを選択させる。0が入力されたらプログラムを終了する。対応していない数字が入力された場合は、 「入力番号が正しくありません」と表示し、入力画面に戻る。 ▼どの取引を希望したとしても、次に暗証番号入力を促し、キーボードキーボード入力させる。 ▼あらかじめ設定しておいた番号と一致していれば、次の処理(最初に選択した取引)に入る。そうでなければ、 「暗証番号が違います。もう一度入力してください」と表示し、入力させる。 3回失敗したら、「防犯上の理由により、取引を中止します」と表示し、プログラムを 終了する。 ▼「預け入れ」を選択した場合は、預け入れ金額を入力させ、合計金額(あらかじめ適当な金額に設定しておく) を表示し、入力画面に戻る。 ▼「引き出し」を選択した場合は、引き出し金額を入力させ、残り金額を表示し、入力画面に戻る。ただし、 1回で引き出せる金額は500,000円までとし、それを超える金額を入力したら「1回で引き出せる金額は 500,000円までです」と表示し、再度入力させる。なお不足の場合は「残高が不足しています」と表示し、 というメッセージと残高を表示し、再度入力させる。 ▼「残高照会」を選択した場合は、残高を表示し、入力画面に戻る。 [3]環境 [3.1]OS:windows xp [3.2]コンパイラ名:bcc32 [3.3]言語:c言語 [4]期限:2008年6月7日 [5]その他:キーボード入力、if文、for文を使って。 お願いします。
808 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:24:49 ] >>805 8queenってやったことなかったな〜 で、参考になるサイト www.pro.or.jp/~fuji/puzzlestudy/8queen.html
809 名前:ロベ mailto:sage [2008/06/06(金) 16:25:00 ] >>646 の課題はわりと単純なものでもかまいません よろしくおねがいします
810 名前:ねね ◆ia23AXgoXg [2008/06/06(金) 16:30:29 ] [1] 授業単元: 工学実験(画像処理) [2] 問題文: 濃度ヒストグラムを伸長(濃度変換)する関数[extend()]を作成せよ [3.1] OS:WinXP [3.2] コンパイラ名とバージョン: VisualC++6.0 [3.3] 言語:C++ [4] 期限: 6/9 17:00 [5] その他の制限: 概念くらいしかわかってません…orz メインプログラムおいときます、無理に使わなくてもいいかと #include <stdio.h> #define X 260 /* 画像の横方向の画素数 この例では260 */ #define Y 60 /* 画像の縦方向の画素数 この例では60 */ unsigned char f[Y][X]; /* 入力画像配列 横X画素 ,縦Y画素 */ unsigned char g[Y][X]; /* 入力画像配列 横X画素 ,縦Y画素 */ main()
811 名前:ねね ◆ia23AXgoXg [2008/06/06(金) 16:31:12 ] main() /* 画像処理を行うメインプログラム */ { char source[80]; /* 入力ファイル */ char destin[80]; /* 出力ファイル */ unsigned char t; /* 閾値 */ printf("filename(input) ? "); scanf("%s",source); printf("filename(output) ? "); scanf("%s",destin); printf("threshold ? "); scanf("%d",&t); image_input(f,source); /* 画像の入力処理 */ threshold(f,g,t); /* 閾値処理の場合 */ image_output(g,destin); /* 画像の出力処理 */ どうかよろしくお願いします。・・・
812 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:36:16 ] >>805 for(k=0; k<3&&j>=0; k++, j--) if(i-3<=board[j] && board[j] <= i+3) flag = 0; を適当なとこに突っ込んでそれに合わせて少しいじればおk
813 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:55:28 ] >791 #include <stdio.h> void view(int attend[][7][4]) { int main(void) { int n, d, p, a, attend[15][7][4]={0}; while(0<=fputs("number : ", stdout) && scanf("%d", &n)==1 && 0<=n && n<=14) { if(0<=fputs("day : ", stdout) && scanf("%d", &d)==1 && 0<=d && d<=6 && 0<=fputs("period : ", stdout) && scanf("%d", &p)==1 && 0<=p && p<=3 && 0<=fputs("attend : ", stdout) && scanf("%d", &a)==1 && 0<=a && a<=1) { attend[n][d][p]=a; view(attend); } else { fputs("input error.\n", stdout); } } return 0; }
814 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:05:41 ] 途中で送信しちゃった void view(int attend[][7][4]) { int i,j,k; for(i=0; i<15; i++) { printf("student no.%d : \n", i); fputs(" S M T W T F S\n", stdout); for(j=0; j<4; j++) { printf("period %d : ", j); for(k=0; k<7; k++) { printf("%d ", attend[i][k][j]); } putchar('\n'); } } }
815 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:09:58 ] >>807 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6804.txt
816 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:11:23 ] >>797 っつか、劣化さえずにファイルサイズを小さくするってなら PNG辺りを
817 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:12:34 ] >>804 高度すぎてワロタ
818 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:14:42 ] まあ、最悪マイクからの信号を拾えたとしても 「リアルタイム」で解析し、音名を表示ってえぐいなまた と言うか音「名」ってなんだ?
819 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:15:22 ] >>818 ドとかそういうんじゃね?
820 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:16:17 ] 内部で絶対音感を持ってる人に処理させればおk
821 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:18:07 ] 内部で初音ミクが処理してるんですね、わかります
822 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:18:19 ] MikuMikuVoiceの機能を知りたい手合いか
823 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:21:58 ] 音名ってまた曖昧な ピアノのド=トランペットのレ=ホルンのソ 実音でいいのにな
824 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:21:58 ] 音名表示のソフトとかフリーであるでしょ まぁ俺はつくれんがwAPIはむり
825 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:23:04 ] >>805 スーパークイーン強すぎワロタ
826 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:24:02 ] >>807 すまん、>>815 間違ってるわ 微妙に修正 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6806.txt
827 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:24:45 ] >>646 グレイスケール化だけ 圧縮には未対応 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6805.c
828 名前:kokoro [2008/06/06(金) 17:27:10 ] >>826 もうチョット簡単になりませんか? for文のところの課題なので、for文(多重ループなど)を使ってお願いします。 ++count、#defineはまだ勉強してないのです。
829 名前:814 mailto:sage [2008/06/06(金) 17:28:32 ] >791 こっちのほうがいいかな kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6807.txt
830 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:29:16 ] >>828 #define ANSHOU_BANGO 1234 これはソース中にANSHOU_BANGOがあればコンパイル時に1234に置き換えますよということだけです。
831 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:32:21 ] >>828 こういう入力回数が決まってないループはwhileを使わないといけないと思うんだけど whileは一回も使っちゃダメ?
832 名前:kokoro [2008/06/06(金) 17:34:37 ] >>831 whileも使ってもおっけいです。
833 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:40:33 ] ループする条件があるならwhile()特に無しならfor(;;)のが素直だと思う
834 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:42:31 ] >>828 十分簡単だろうに。一体何が問題なのか理解できん 習ってないから使うな、なんて言われないぞ
835 名前:kokoro [2008/06/06(金) 17:44:17 ] #include<stdio.h> int main(void) の次は、int totalMoney = 10000でいいのですか。 return 0; return 1; と書いてありますが、一番最後はreturn 0;で 終わるようにしたいです。
836 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:48:34 ] むしろmainにはreturn書いてないけどw 終わらせたければreturn 0;足せば良いじゃないw
837 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:48:46 ] >>835 なかなか難しい注文だなw >>826 の解はcになれてればどうってことないんだけどなw
838 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:49:44 ] int main () { int type; while( true ){ if( ( type = selectMainMenu() ) == 0 ) return 0; if( inputNumber() == 0 ) return 0; switch( type ){ case 1: deposit(); break; case 2: withdraw(); break; case 3: showMoney(); break; } printf( "\n" ); } return 0; }
839 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:50:31 ] あーすまん良く見たら書いてた、その上どっちもreturn 0じゃん
840 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:52:11 ] >>839 だからmainの最後にreturn 0が無いから心配してるだけなんだけど 実はwhileの中でreturn 0;で抜けてるから問題ないんだけどね・・・
841 名前:kokoro [2008/06/06(金) 17:53:28 ] >>836 なんていうのかな・・・? #include<stdio.h> int main(void) } ・ ・ ・ return 0; } でおわりたい。みたいな・・・?
842 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:55:11 ] >>832 for文2箇所で使って、#define使わずに 間違ってたところあったのでそれも訂正 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6808.txt >>835 暗証番号を三回ミスったってのを知らせないといけないから 0と1を区別して返してる、嫌なら関数を使うのをやめないといけないな
843 名前:kokoro [2008/06/06(金) 17:58:26 ] >>842 関数まだやってないから、先生にみせるときチョット・・・まずいかも・・・ 関数なしでできますか?
844 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:01:51 ] c慣れしてる人に関数無しで・・・ってある意味酷だな
845 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:02:38 ] 後だしで条件つけんなよ
846 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:02:51 ] そこまで条件を後付けするのはわがまますぎるぞ。 自分でプリプロセッシングすれば済む話だろう
847 名前:kokoro [2008/06/06(金) 18:04:53 ] >>844 すみません・・・ 何とかなりませんか?お願いします。
848 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:07:16 ] 簡単だけどやること多くてめんどくさい課題って初心者に出すには不向きだと思うがなあ
849 名前:kokoro [2008/06/06(金) 18:09:56 ] そこを何とか・・・お願いします。 本当に困ってるのです。。。 これができないと・・・。
850 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:10:21 ] >>843 たぶんこれでおk kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6809.txt
851 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:11:23 ] あーマジで関数却下されるとすげー面倒だなw 思考が関数ありきになってるのでむしろ書けといわれると沸きそうだ
852 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:11:47 ] このスレで言うのもなんだが、それもできないようじゃ単位落とした方がいいぞ
853 名前:kokoro [2008/06/06(金) 18:12:38 ] >>850 ありがとうございます!!! 本当に助かりました^^
854 名前:kokoro [2008/06/06(金) 18:15:18 ] >>852 ゼミでこれを取ったのですが、今後悔です。 本当分からないので、嫌になります・・・ マジ、単位落としそうだもん。
855 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:17:33 ] わからないからって人任せにしてたら全然上達しないぞ 書いてもらったソースと勉強に使ってる本見比べて 知識を自分のものにしないとな
856 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:20:35 ] こんな低レベルでもゼミなのかw
857 名前:デフォルトの名無しさん [2008/06/06(金) 18:21:26 ] てかなんで学生って習ってないのを極端に怖がるの? 「勉強しました」って突っぱねれば問題ないじゃん
858 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:23:23 ] 中高のIT関連の授業の課題かと思ってた。
859 名前:kokoro [2008/06/06(金) 18:25:19 ] >>858 初めてc言語やりました。 テキストと並列してやっているので、やってないところがあると まずいかなって。 自分なりのプログラム作ってみます。 でもできないところがあったら、マタお願いしてもいいですか
860 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:34:15 ] 聞くこと前提にしてるとまた後悔するぞw ここ見てりゃ黙っててもソースが出てくるんだから それみて自分で弄ってみろw
861 名前:tk [2008/06/06(金) 18:34:39 ] n個の常連立微分方程式を4次のRunge-Kuttaを使って解くプログラムを教えてください。 配列とか使うみたいなんですけど。
862 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:46:40 ] >>805 void solve(int n) { int i,j,k,u,l,flag; //kを追加 if(n==N){ count++; for(i=0;i<N;i++){ for(j=0;j<N;j++) printf((board[i]==j)?"Q":"+"); printf("\n"); } printf("No. %d\n\n",count); return; } for(i=0;i<N;i++) { j=n-1;u=i+4;l=i-4;flag=1; //uとlの初期値を変更 for(k=0; k<3 && j>=0 && flag == 1; k++, j--) if(l<board[j] && board[j]<u) flag = 0; //この一行を追加 while(flag==1 && j>=0){ if(board[j]==i || board[j]==l || board[j]==u) flag=0; u++;l--;j--; } if(flag==1){ board[n]=i; solve(n+1); } } } 問題写すなら正確に写せよ
863 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:56:27 ] てか,今の時点での未解決問題はどれぐらいなんだ?
864 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:57:25 ] 気になるなら自分で調べればいいだろ。
865 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:11:35 ] なんだ、今日はやさしい人が多いなあ
866 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:32:11 ] [1] 授業単元: Cプログラミング [2] 問題文(含コード&リンク):() kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6813.txt [3] 環境 [3.1] OS: (Windows/Linux/等々) linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 6月9日 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) スタックを習っているところです。 よろしくお願いします
867 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:45:05 ] >>808 解答と合わせて知識にしていきたいと思います >>812 返答ありがとうございます >>862 返答ありがとうございます ミスありましたか どうもすいません #defineのところですかね…
868 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:47:49 ] >>867 >if(board[i]==i || board[j]==l || board[j]==u) flag=0; board[i] じゃなくて board[j]
869 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:04:23 ] >>868 根本と言っても過言ではないところを間違ってましたか ありがとうございます
870 名前: ◆DuoCt8/SKk mailto:sage [2008/06/06(金) 20:05:36 ] >>592 について考えていたのですが,途中で分からなくなりました. kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6814.txt 良ければ何かアドバイスなどをもらえないでしょうか?(オプション表示の方法や関数など) よろしくお願いします!
871 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:10:10 ] >>870 実行してないけどオプションの表示はできてるんじゃないの? 入力させて、それに応じたオプション内容を表示できてるんだから後は それを変数に入れておけばよいような。 戻り値にしてもいいし、パラメータで受けとってもいいし、グローバルでもいい。
872 名前:デフォルトの名無しさん [2008/06/06(金) 20:10:52 ] [1] 授業単元:C言語による数値計算 [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6815.txt [3] 環境 [3.1] OS: Windows Vista [3.2] コンパイラ名とバージョン: Windows Visual Studio [3.3] 言語: C++ [4] 期限: 6月8日(日) 自分で作ったプログラムがうまく動いてくれません。 どなたかC言語を用いた数値計算(特に行列計算)に長けている方、 プログラミングに詳しい方、どうかよろしくお願いします。
873 名前: ◆DuoCt8/SKk mailto:sage [2008/06/06(金) 20:16:33 ] >>871 返事ありがとうございます. 実行すると最初の部分はきちんと表示されるのですが ★★★★★★★★操作お疲れ様でした、商品を排出します★★★★★★ 以降の表示がされないのです.あと, >>入力させて、それに応じたオプション内容を表示できてるんだから後は >>それを変数に入れておけばよいような。 >>戻り値にしてもいいし、パラメータで受けとってもいいし、グローバルでもいい。 の部分は・・・具体的にどのようにすればいいのでしょうか?
874 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:24:23 ] [1] 授業単元: Cプログラミング [2] 問題文(含コード&リンク):(kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6816.txt ) [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語: C [4] 期限: ([2008年06月10日まで] [5] その他の制限:問題の文をベースにして、 new old bodyという変数にして、 ab xy acabcならbodyのabのところにxyを置き換え、またnewの値がなかった場合 そのままbodyを出力するというプログラムを作ることです。
875 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:34:54 ] >>872 変数 ‘y1’を使ってないようだけど、式は正しい?
876 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:57:48 ] >>872 b[N]とかa[N][N]ってなにをしたいの?
877 名前:デフォルトの名無しさん [2008/06/06(金) 21:01:44 ] >>872 >>875 ごめんなさい 指摘どおり間違ってたので修正うp kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6817.txt y1を入れました
878 名前:デフォルトの名無しさん [2008/06/06(金) 21:08:14 ] >>876 A*X=Bの方程式のAを行列a[N][N]、Bを行列b[N]として 行列を使ってXを解かないといけないらしくて つまりX=A^(-1)*BにしてXを求めるみたいです
879 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:09:46 ] 宿題:数式処理ソフトMaximaと同等のソフトウェアを明日までに作れ ソースファイルの行数は1000行以内。
880 名前:デフォルトの名無しさん [2008/06/06(金) 21:13:19 ] >>875 >>877 何度もすみません、こっちでした kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6818.txt そちらは間違ってました
881 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:14:54 ] >>879 コンソールでコマンド受け付けて裏でmaximaに投げればいい
882 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:16:42 ] >>878 そういうことじゃなくてb[N]にアクセスすんなってことなんだけど
883 名前:デフォルトの名無しさん [2008/06/06(金) 21:26:29 ] >>880 バカですみません printf("y1 = "); scanf("%lf",&y2);じゃなくてprintf("y1 = "); scanf("%lf",&y1);でした >>882 申し訳ありません、プログラミングに詳しくないので 「b[N]にアクセスするな」とはprintf("%lf\n", b[i]);とdouble gauss( double a[14][14], double b[14] )の 部分ですか? よろしければ解決策を教えて下さい
884 名前:デフォルトの名無しさん [2008/06/06(金) 21:34:36 ] >>882 double gauss( double a[14][14], double b[14] )の /* 後退代入 */ b[N] = b[N]/a[N][N]; のとこはは部分ピボット付きガウス消去法をコピペしてきただけなので 詳しい仕組みやアクセスやらはよく分からないです
885 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:49:16 ] >>206 double b[14]; こう宣言を行ったときは、b[0] 〜 b[13] までの14要素であって、 b[N] == b[14] にはアクセスしちゃいけないってこと。 Nをdefineしたのに14という数字があちこちに散らばってる (マジックナンバーていいます)のもよくないよ。
886 名前:885 mailto:sage [2008/06/06(金) 21:50:18 ] なんかレスアンカミスった>< >>885 は >>883 宛てです
887 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:59:14 ] 本人が何をしてるかわからないもののデバッグなんてさせんな
888 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:02:09 ] >>646 とりあえず出来た kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6819.txt
889 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:06:56 ] 何も分からんならmaximaでもmathematicaでも好きに使って解けばいい
890 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:09:26 ] >>887 じゃあ宿題を片付けますスレに来なければいいじゃんww 分からない人やできない人を貶したいだけなら他に逝けよ
891 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:10:56 ] >>890 そういうお前も文句つけたいだけだなw
892 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:22:48 ] >>891 うわぁ....... まるで餓k(ry
893 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:31:29 ] >>884 とりあえずループ変数を<=Nじゃなくて<Nまでにしてみたら?
894 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:33:52 ] 一から問題解くならいいけど、腐ったコードの手直しさせられるのは勘弁願いたい どんだけ凡ミスあるかいちいちチェックしなきゃいけないのかよ
895 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:42:07 ] 俺もあの有名なサイト「初心者のため(ry」でひどいソースを呈示され 「どこが間違ってるんでしょうか」と言われ、あまりのひどさに一からソースを 起こして書いてやったらすぐ書けてしかも正常に動いた。 ところが質問者が「元のソースを手直しして欲しいのです」と来たもんだ。 金もらってるならともかく、こんなボンクラの相手をしている暇はないので それ以降無視してやった。
896 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:22:21 ] >>873 張ってあるソースは全然使ってないし、ごちゃごちゃしてわかりずらいかもしれないけど、 できたのでうp (まだ気に入らないところあるけど、言い出したらきりないしね) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6820.c
897 名前: ◆DuoCt8/SKk mailto:sage [2008/06/06(金) 23:30:46 ] >>896 わざわざソースを書いて頂きありがとうございます! 参考書を使いながら理解に励もうと思います.
898 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:50:38 ] >>897 質問者の皆が皆こんな感じの人なら気持ちいいのにな 頑張ってね
899 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:59:58 ] >>897 ! 今回は高度すぎて、、とかじゃなくて理解しようと思いましたかw いい心がけだとおもいますー。応援してるお
900 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 00:06:41 ] [1] C [2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6822.txt [3] [3.1] LINUX [3.3] C [4] 6月9日 [5] 記載のプログラムに付け加える形でお願いします よろしくお願いします
901 名前:896 mailto:sage [2008/06/07(土) 00:48:25 ] >>897 一部変数名がなんかおかしいところあるから気をつけてね 最初、optvol_tのところoptmode_tで作ってたのを あげる前に見直してモードじゃおかしいな、量だなってことでoptmode_t だったのを optvol_tに 代えたんだけど、関連する場所(option_t 内のmode, modeflgとか)変更するの忘れてた ソースの修正はやっぱ慎重にしなきゃね
902 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 00:49:16 ] そんな変更エディタの機能でやればいいのに
903 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 01:02:48 ] 置換 mode→vol でおk
904 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 01:05:46 ] >>874 日本語で
905 名前:896 mailto:sage [2008/06/07(土) 01:09:11 ] >>897 変数名修正したのあげときます(なんかまだおかしいとこありそうだけど) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6823.c
906 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 01:37:41 ] >>874 tr コマンドみたいなものでおk?
907 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 01:39:29 ] この規模なら気にしなくていいけど、エディタの機能でやるときには 慎重にやらないとだなあ。 リファクタリング機能のある開発環境ならさっくりだけど。
908 名前:デフォルトの名無しさん [2008/06/07(土) 03:01:33 ] [1] 授業単元: C言語 [2] 問題文: 入力文字列からトークンを切り出してchar配列に格納するプログラムを作成する。 <入力文字列の指定条件とトークンの切り出しについて> ・入力文字はASCIIコードのみとする。 ・デリミタとなる文字は半角スペースとする。 例) 入力が「abc defg hij」 → 「abc」、「defg」、「hij」の3つのトークン ・半角スペースを含むトークンは"(ダブルクォート)でトークンを囲む。 例) 入力が「abc "d e f g" hij」 → 「abc」、「d e f g」、「hij」の3つのトークン ・トークンに"(ダブルクォート)自体が含まれる場合は""のように2回指定する。 例) 入力が「abc "d e "" f g" hij」 → 「abc」「d e " f g」「hij」の3つのトークン [3] 環境 [3.1] OS: Ubuntu 8.04 [3.2] コンパイラ名とバージョン: gcc4 [3.3] 言語: C [4] 期限: 来週まで [5] その他の制限: トークンの個数や入力文字列の長さは特に上限がないので、自分で設定してよいそうです。 試しにstrsep()で空白スペースをデリミタにすると、やはりトークンがおかしくなります。 長くなりましたが、よろしくお願いいたします。
909 名前:デフォルトの名無しさん [2008/06/07(土) 03:53:36 ] >>908 abc"def""ghi"jkl とかは?
910 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 07:20:12 ] >>909 4番目の条件に合致しない?
911 名前: ◆DuoCt8/SKk mailto:sage [2008/06/07(土) 08:19:55 ] >>901 >>905 そうだったのですか・・・全くわかりませんでした,指摘して頂きありがとうございます. 引き続き頑張ってみます!
912 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 09:59:53 ] >>910 デリミタとして指定されてるのが半角スペースだけだから abc"def""ghi"jklが abc def"ghi jkl なのか abcdef""ghijkl なのかどっちで作ればいい?ってことでしょ。
913 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 10:02:30 ] あ、あと4つに分割する可能性もあるのか。
914 名前:639 mailto:sage [2008/06/07(土) 10:33:41 ] >>639 ですが あれからしばらく自分なりに頑張ってみたのですが どうにもうまくいかず… gccは無理なのでしょうか? すみませんがアドバイスお願いします
915 名前:908 mailto:sage [2008/06/07(土) 10:55:54 ] >>909 >>910 >>912 入力文字列が「abc"def""ghi"jkl」の場合は、 デリミタの半角スペース無しで"(ダブルクォート)が 指定されたという事でフォーマットエラーとするそうです。 × 「abc"def""hki"jkl」 ○ 「abc "def""ghi jkl」
916 名前:908 mailto:sage [2008/06/07(土) 10:58:43 ] すみません。記述ミスしました。 × 「abc"def""hki"jkl」 → 'c'の後に'"'なのでフォーマットエラー ○ 「abc "def""ghi" jkl」 → 「abc」「"def"hki」「jkl」の3つのトークン
917 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 11:23:57 ] >>914 物凄くやっつけで完璧に動作するか知らないけどこんなんで良いならどうぞ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6824.txt
918 名前:908=916 mailto:sage [2008/06/07(土) 11:34:43 ] また間違えました。もう何か駄目だ… × 「abc"def""hki"jkl」 → 'c'の後に""でなく"dとなっているのでフォーマットエラー ○ 「abc "def""ghi" jkl」 → 「abc」「def"hki」「jkl」の3つのトークン
919 名前:639 mailto:sage [2008/06/07(土) 11:49:50 ] >>917 氏、ありがとうございます とてもありがたいですm(_ _)m
920 名前:デフォルトの名無しさん [2008/06/07(土) 12:22:39 ] >>810 忘れ去られてそうなので…
921 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 12:55:06 ] >>810 (>>920 ) 問題の意味が分かりません ついでにC++?C?
922 名前:ロベ [2008/06/07(土) 13:14:42 ] >>888 ありがとうございました。 その他の方も色々とありがとうございました。
923 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:48:10 ] 期限過ぎてない奴で反応がない課題(多分) 6/9 >>485 >>866 6/11 >>765 6/14 >>597 6/18 >>608 6/20 >>179
924 名前:874 mailto:sage [2008/06/07(土) 15:19:25 ] すいません、わかりにくく書いてしまって。 いいたいことは、張ったコードをmember()で利用して そのアルファベットがあれば置き換えるプログラムが作りたいのです。 よろしくお願いします。
925 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:50:41 ] >>908 エラー処理がやっつけなので、もっとデバッグする必要あり kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6825.txt
926 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:27:29 ] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6826.txt [1] 授業単元:コンピュータグラフィックス [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6826.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VisualC++6.0 [3.3] 言語: C++ [4] 期限:6月10日までにお願いします。 [5] その他の制限:元の図をもとに、できるだけ簡単にお願いします。
927 名前:925 mailto:sage [2008/06/07(土) 21:51:07 ] >>908 スレが進んでいなかったので、自分デバッグしてみた kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6827.txt
928 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:08:47 ] >>765 fork1とfork2は外部プログラムとして呼ぶの? それとも、親プログラムに埋め込むの?
929 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:44:44 ] [1] 授業単元:c言語 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6828.txt [3] 環境 [3.1] OS:xp [3.2] コンパイラ名とバージョン:VC 6.0 [3.3] 言語: C [4] 期限:明日中 [5] その他の制限:できるだけ簡単なプログラムでお願いします お願いします
930 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:47:06 ] >>929 問題は?
931 名前:929 mailto:sage [2008/06/07(土) 22:47:29 ] 929です すいませんが問題の追記です このプログラムが正常に作動するように記述を追加しなさい 入力される文字列は9文字以下とする m<_ _>m
932 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:49:51 ] char *str[NUM] → char str[NUM][10]
933 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:50:08 ] コメントアウトする馬鹿登場 ↓
934 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:51:02 ] ↑ コメントアウトする馬鹿
935 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:53:48 ] 追加限定なら #include <stdlib.h> for(i=0; i<NUM; i++) str[i] = malloc(10); for(i=0; i<NUM; i++) free(str[i]); をそれぞれ適切な位置に追加
936 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:06:38 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): kadai01.c コマンドラインから加算もしくは減算の式を入力し 以下のような結果になるように/*記述*/のところを追加して完成させよ #include <stdio.h> #include <stdlio.h> int main(int argc, char *argv[]) { int result; /*記述*/ printf("result = %d\n",result); return(0); } 結果 kadai01 10 + 21 31 [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)すみませんわかりません [3.3] 言語: C [4] 期限:月曜まで(できるだけ早めで) [5] その他の制限:大学2年レベルでお願いします
937 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:08:21 ] >>936 result=argv[0]+argv[2];
938 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:09:48 ] result = atoi(argv[1]); if(argv[2]=='+') result += atoi(argv[3]); else if(argv[2]=='-') result -= atoi(argv[3]);
939 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:10:56 ] >>932 早い解答ありがとうございます
940 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:12:27 ] >>938 ちょw
941 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:13:42 ] >>938 これはひどい
942 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:14:49 ] argv[2][0]=='+' か strcmp(argv[2],"+")==0 だな
943 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:21:16 ] 936 減算の場合は+をそのまま-にすればいいんでしょうか?
944 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:43:37 ] [1]プログラミング [2]問題文 三つの整数値を読み込んで、それらの値が全て等しければ、「三つの値は等しいです。」と、どれか二つの値が等しければ、「二つの値が等しいです。」と、そうでなければ、「三つの値は異なります。」と表示するプログラムを作る。 [3-1]windows [3-2]gcc [3-3]C言語 [4]明後日まで。 よろしくお願いいたします。
945 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:46:03 ] 条件演算子で済ませる馬鹿 ↓
946 名前:↑答える気も無いのに批判しかしないバカ mailto:sage [2008/06/07(土) 23:51:49 ]
947 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:52:47 ] #include <stdio.h> int main(void) { int a, b, c; char *str[] = {"三つの値は異なります。","二つの値が等しいです。","", "三つの値は等しいです。"}; scanf("%d%d%d", &a, &b, &c); printf("%s\n", str[(a==b) + (b==c) + (c==a)]); return 0; }
948 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:03:59 ] おい、全部等しかったら死ぬぞ
949 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:05:02 ] 勝手に死んでろよw
950 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:06:06 ] 死なない 空文字列が目に入らぬか?
951 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:07:59 ] >>948 答えもせず、さらに間違うとは、お前このスレには必要ねーな 一生ROMってろ
952 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:13:19 ] [1] 授業単元: [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6832.txt [3] 環境 [3.1] OS:xp [3.2] コンパイラ名とバージョン:VC 6.0 [3.3] 言語: C [4] 期限:月曜日まで [5] その他の制限:大学生レベルでお願いします よろしくお願いします
953 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:31:35 ] d = malloc(sizeof(char *) * NUM); for(i=0; i<NUM; i++) { for(j=0; p[i][j]; j++); d[i] = malloc(j + 1); while(j >=0) { d[i][j] = p[i][j]; j--; } } func(ccc);
954 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:37:44 ] >>953 ありがとうございます ですがmallocをまだ習ってないので 使わずにできませんか?
955 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:39:27 ] >>954 >d[NUM][文字列の長さ+1]を動的にメモリ上に確保する それだとこれができない
956 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:39:29 ] callocは習った?
957 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:40:27 ] mallocを習わずどうしてfreeが出てくるんだ?
958 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:40:42 ] >>956 はいcallocは習いました
959 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:42:26 ] 習ってない事はやらないのが大学生レベルですか?
960 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:42:56 ] じゃあ malloc(sizeof(char *) * NUM) → calloc(NUM, sizeof(char*)) malloc(j + 1) → calloc(j+1, 1)
961 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:45:47 ] >>960 ありがとうです!!
962 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:47:01 ] calloc教えてmalloc教えないとはw それか単にmallocは習ったけど脳内スルーで習ってないことになってるか
963 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:48:37 ] realloc、エラ張るとテネスは学びました!バブルソートは習ったけど 基本洗濯、クックソートは学んでいませんです、はいっ!おながいします!
964 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:51:42 ] 953まで誰も答えないのに、954が出たとたんに書き込み増えるってw ホントにこの時間はケチつけたいだけのヤツがいるんだな
965 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:53:14 ] >>964 だからそれがお前だろ?
966 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:53:27 ] 別に自己紹介しなくてもいいだろ
967 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:54:33 ] >>965 いや俺は953で960だ。 ついでに言えば932で935で947でもある。
968 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:55:49 ] ケチつけてるのは俺だけだけど?
969 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:59:58 ] >>968 >>890
970 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 01:26:43 ] >>969 いや、2chなんて捻くれてる人間だから ケチつけて情報を引き出すの。
971 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 01:32:06 ] 麻呂のクソースはケチをつけられようが、早く出せと言われようが またーりと記述した後適当にうpするでおじゃるよ?
972 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 04:47:03 ] [1] 授業単元: アルゴリズム [2] 問題文(含コード&リンク): 非再帰的な方法でヒープソートを実装せよ [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: bcc [3.3] 言語: C [4] 期限: 2008/6/9まで [5] その他の制限: www2.uploda.org/uporg1469814.txt.html まで書いたのですが、きちんとソーティングされなくて困ってます。 どこがおかしいのでしょうか? よろしくお願いします。
973 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 05:27:49 ] >>972 プロトタイプ宣言が・・・・
974 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 05:32:47 ] プロトタイプ宣言とソーティングされないのは関係ないだろw
975 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 06:03:42 ] #include <sys/wait.h> #include <stdio.h> #include <unistd.h> int main() { pid_t p1, p2; switch (p1 = fork()) { case -1: perror("fork"); return 1; case 0: /* ここに fork1 の内容を書く */ _exit(0); default: break; } switch (p2 = fork()) { case -1: perror("fork"); return 1; case 0: /* ここに fork2 の内容を書く */ _exit(0); default: break; }
976 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 06:04:27 ] for (; p1 != -1 || p2 != -1;) { pid_t c; int status; if ((c = wait3(&status, 0, NULL)) == -1) { perror("wait3"); break; } if (c == p1) { if (WIFEXITED(status)) printf("fork1 exit (%d)\n", WEXITSTATUS(status)); else printf("fork1 killed (%d)", WTERMSIG(status)); p1 = -1; } if (c == p2) { if (WIFEXITED(status)) printf("fork2 exit (%d)\n", WEXITSTATUS(status)); else printf("fork2 killed (%d)", WTERMSIG(status)); p2 = -1; } } return 0; }
977 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 06:28:11 ] >>972 - iter_heap(a,0,size-2); + iter_heap(a,0,size-2); もう一カ所間違いがあるが、自分で探せ。
978 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 08:09:30 ] >>977 もちつけ
979 名前:デフォルトの名無しさん [2008/06/08(日) 08:21:35 ] 完全ニ分木って階層を渡って一列に整列できるよね ある節の子の左の子の添え字を返す関数かいてみてくれない いやならいいけど 多分嫌だろうけど
980 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 09:31:12 ] [1] 授業単元: プログラム [2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6833.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC6 [3.3] 言語: c++ [4] 期限: 2008/6/10 [5] その他の制限: 問題文中の制限 お願いします(・ω・`)
981 名前:側近中の側近 ◆0351148456 [2008/06/08(日) 09:45:57 ] >>980 (っ´▽`)っ こんな簡単なプログラムなら自分で作ればいいじゃない
982 名前:側近中の側近 ◆0351148456 [2008/06/08(日) 09:50:18 ] >>980 (っ´▽`)っ #include <stdio.h> int main(void) { int h[10]; int i; for(i = 0; i < sizeof(h)/sizeof(h[0]); i++){ h[i] = 10 - i; printf("h[%d] = %d\n", i, h[i]); } printf("h[%d] = %d\n", 3-1, h[3-1]); printf("h[%d] = %d\n", 5-1, h[5-1]); return 0; }
983 名前:側近中の側近 ◆0351148456 [2008/06/08(日) 09:55:27 ] (っ´▽`)っ これはC言語であって、C++じゃない というような野暮なことは言わないように。
984 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 10:28:10 ] ああc++でした いくつか似たような問題とかないといけないので参考にさせていただきます 有難うございました(´・ω・)
985 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 10:31:45 ] すいません、どなたか>>866 お願いします
986 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 10:49:57 ] [1]プログラミング [2]問題文 要素数がnoであるint型の配列v2の並びを逆順にしたものを配列v1に格納する関数を、動作を確認するための適切なメイン文も含め作る。 [3-1]windows [3-2]gcc [3-3]C言語 [4]明後日まで。 [5]なるべく単純な書き方にしてもらいたいです。 よろしくお願いいたします。
987 名前:側近中の側近 ◆0351148456 [2008/06/08(日) 11:08:15 ] >>986 (っ´▽`)っ 以前回答しただろうがっ
988 名前:デフォルトの名無しさん [2008/06/08(日) 11:13:21 ] >>866 課題1 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6834.txt
989 名前:側近中の側近 ◆0351148456 [2008/06/08(日) 11:14:16 ] >>986 (っ´▽`)っ void sortInverse(int *v1, int *v2, int no); int main(void) { int no; int i; int v1[] = {1, 2, 4, 8, 16, 32, 64}; int v2[7]; no = sizeof(v1)/sizeof(v1[0]); for(i = 0; i < no; i++){ printf("v1[%d] = %d\n", i, v1[i]); } sortInverse(v1, v2, no); for(i = 0; i < no; i++){ printf("v2[%d] = %d\n", i, v2[i]); } } return 0; } void sortInverse(int *v1, int *v2, int no) { int i; for(i = 0; i < no; i++){ v1[i] = v2[no - i - 1]; } return; }
990 名前:側近中の側近 ◆0351148456 [2008/06/08(日) 11:14:56 ] (っ´▽`)っ >>989 は微妙に間違っているがそれがいい。 >>986 は苦しめ☆
991 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 11:32:03 ] >>988 ありがとうございます! 例題では pop 1 回目 50 をpop します。 スタックの中 [ 40 30 20 10 ] pop 2 回目 40 をpop します。 スタックの中 [ 30 20 10 ] ・ ・ のところが、書いてもらったプログラムでは pop 1 回目 50 をpop します。 スタックの中 [ 10 20 30 40 ] pop 2 回目 40 をpop します。 スタックの中 [ 10 20 30 ] ・ ・ となっているのですが、どうすればいいのでしょうか?
992 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 11:36:30 ] >>991 失礼いたしました。printstack関数を変更して下さい。 /* スタックの出力 */ void printstack(CELL *stack) { int i; printf("\tスタックの中 [ "); for(i = stack->top - 1; i > 0; i--){ printf("%d ", stack->element[i]); } /* for文の中に判定文を入れたくなかったから、外に出した */ if(i == 0){ printf("%d ", stack->element[i]); } printf("]\n"); }
993 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 11:40:32 ] >>992 ご丁寧にありがとうございます。 ちゃんと動作しました!
994 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 12:31:30 ] 次スレ C/C++の宿題を片付けます 109代目 pc11.2ch.net/test/read.cgi/tech/1212895856/
995 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 12:46:14 ] >>992 なんで外に出してるの?
996 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 14:49:06 ] 中に出すと出来ちゃうから。
997 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 14:51:11 ] >>996 指導 減点1
998 名前:765 mailto:sage [2008/06/08(日) 16:49:26 ] >>928 言葉足らずで申し訳ありませんでした。 外部プログラムとして呼ぶ形でお願いいたします。
999 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 17:02:34 ] 999
1000 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 17:03:10 ] うめ
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。