1 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 06:56: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++の宿題を片付けます 112代目 pc11.2ch.net/test/read.cgi/tech/1215439445/
231 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 00:27:38 ] [1] 授業単元:プログラム実習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7395.txt [3] 環境 [3.1] OS: windows xp [3.2] コンパイラ名とバージョン:vc6.0 [3.3] 言語: C++ [4] 期限: 早急に… [5] その他の制限: 配列の問題です よろしくおねがいします
232 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 00:33:58 ] >>231 すまないが、配列の配列は動的に確保できないんじゃよ。We apologize for your inconvenience...
233 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 00:40:22 ] >>231 >>28 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7369.txt
234 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 01:24:02 ] [1] 授業単元:数値解析 [2] 問題文(含コード&リンク):減衰振動の運動方程式 m(d^2x/dt^2)=−kx−α(dx/dt) をルンゲクッタ法で解くやり方を教えてください m k αはキーボードからの入力値です 初期条件はx(0)=0 , x'(0)=0です [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC 6.0 [3.3] 言語: C [4] 期限: >>50 でしましたが、とりあえずこれだけわかればなんとかできそうなんで・・・
235 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 01:56:00 ] >>234 ルンゲクッタ法とか法がつくものは、やり方のことだよ。 明日朝以降にもう一度お願いすれば、もしかしたら 誰かが解いてくれてるかも
236 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 02:02:46 ] >>235 解くまでもなく 0しか答えがないので釣りとみなされました。
237 名前:デフォルトの名無しさん [2008/07/16(水) 02:16:12 ] [1] 授業単元: [2] 問題文(含コード&リンク):ランダムに現れる#、$、%、&を同じ記号で3つ揃えるスロットゲームの作成 条件:スロットをするかどうかをy、nで判定 スロットを行う 実行結果通りの結果を出力させる [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C言語 [4] 期限: 至急 [5] その他の制限:実行結果の例 スロットをを回しますか?(y/n)>>>y 幸運をお祈りします ### 大当たり スロットを回しますか?(y/n)>>>n ありがとうございました どうかよろしくお願いします
238 名前:44 mailto:sage [2008/07/16(水) 02:31:44 ] だれか>>44 の問題お願いします
239 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 03:35:38 ] >>44 ,238 1.1 [A] struct xyz [B] struct xyz [C] {0,0,0} [D] t 1.2 [A] struct xyz * [B] (*x).x [C] (*x).y[D] (*x).z 2.1 typedef struct tDate{ int y,m,d }Date; 2.2 void printDate(Date d) { fprintf( stdout, "%4d/%2d/%2d", d.y,d.m,d.d ); } 2.3 void printDateGen(Date d) { #define DD(Y,M,D) ((Y)*10000+(M)*100+(D)) char *Era[] = {"","明治","大正","昭和","平成"}; int y, e, dd = DD(d.y,d.m,d.d); e = ( dd >= DD(1989,1,8) ) ? 4 : ( dd >= DD(1926,12,25) ) ? 3 : ( dd >= DD(1912,7,30) ) ? 2 : ( dd >= DD(1868,9,8) ) ? 1 : 0; y = d.y - ( ( e == 1 ) ? 1867 : ( e == 2 ) ? 1911 : ( e == 3 ) ? 1925 : ( e == 4 ) ? 1988 : 0 ); if ( y == 1 ) { fprintf( stdout, "%s 元年 %2d月 %2d日", Era[e], d.m, d.d ); } else { fprintf( stdout, "%s %2d年 %2d月 %2d日", Era[e], y, d.m, d.d ); } }
240 名前:237 [2008/07/16(水) 03:44:28 ] >>>237 誰かお願いします 切羽詰ってます
241 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 04:17:34 ] >>240 「至急」なんて書かれても、「その内やる」としか思わないんじゃね?
242 名前:237 [2008/07/16(水) 04:24:04 ] >>>237 午前7時まで
243 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 04:41:34 ] >>240 >>237 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7400.c スペースキーを押すと、左から順に止めることが出来る仕様
244 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 04:42:30 ] あぁ、すまん、繰り返すかの y/n は自分で適当に組み込んでおいて
245 名前:237 [2008/07/16(水) 04:59:02 ] >>>244 ありがとうございます! 繰り返すのはfor文ですよね?
246 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 05:11:44 ] うむ。やっぱ、もう少し書き直してみるんでお待ちを
247 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 05:20:46 ] >>240 >>237 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7401.txt これでどうかな?
248 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 08:01:50 ] >>234 とりあえず解いてみてください ちなみにこれであってる? 一般解の形は x(t)=a*e^(-b*t*i)+c 但し e をネイピア数、i を虚数単位とする
249 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 08:15:52 ] >>202 コンパイルエラーを取る問題。無理なのでネタと判断した。
250 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 08:16:29 ] [1] 授業単元: Cプログラミング演習 [2] 問題文 構造体配列struct tfield name[10];がありメンバにchar str1;があるとします 文字列を適当にabscedと標準入力したとして その文字列を1文字ずつ構造体配列name[i].str1にいれるように. 最終的にそのname[i].str1を表示するブログラムを [3] 環境 [3.1] OS: LINUX [3.3] 言語: (C言語) [4] 期限:7/16 [5] その他の制限: 特になし
251 名前:248 mailto:sage [2008/07/16(水) 08:21:46 ] >>248 の一般解、定数 b が複素数かも よーわからん 忘却の彼方なので数学部分は中学レベルまでにして
252 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 08:32:55 ] >>250 文字列の終端はどうするの? #include<stdio.h> struct tfield{ char str1; }; int main(void){ struct tfield name[10]; char buf[10+1]=""; int i; fgets(buf, sizeof(buf), stdin); for(i=0;buf[i];i++) name[i].str1=buf[i]; // for(i=0;name[i].str1=buf[i];i++); for(i=0;i<10;i++) printf("%c\n", name[i].str1); return 0; }
253 名前:249 mailto:sage [2008/07/16(水) 08:51:07 ] void (*a)(const strtype) = show; void (*b)(const strtype&) = show; a(hello); b(hello);
254 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 10:14:17 ] キーボードから50人分の点数を入力し 90点以上の人の番号と点数を表示せよ。 っていうプログラムってどんな感じですか?
255 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 10:17:58 ] 入力が大変です
256 名前:デフォルトの名無しさん [2008/07/16(水) 10:19:34 ] [1] 授業単元: Cプログラミング演習 [2] 問題文 キーボードから50人分の点数を入力して、90点以上の人の番号と点数を表示せよ [3] 環境 [3.1] OS: vista [3.3] 言語: (C言語) [4] 期限: [5] その他の制限: 特になし
257 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 10:53:56 ] >>254 50人分の点数をテキストファイルにでも保存して リダイレクトを使えば、プログラムを実行してから 毎回入力する手間は省けるが。 あとは、受け継いだ点数から90以上のものをカウントする プログラムを作ればええがな。
258 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 10:57:34 ] あ、カウントじゃなくて番号と点数で良いのか。 まぁ、そういうことで、1行ずつ先頭から番号、点数、改行して 50人分の点数を記述するか、点数も乱数を使って発生させるのもありやな。 ってことで、誰かやってちょっ。自分はちと席を外すんで。
259 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 11:14:17 ] >>256 リダイレクト使った成績入力は自分でやってくれ #include <stdio.h> #define CLASSMAX (2) /* クラスの人数 */ #define MAXNAME (128) /* 名前の最大文字数 */ #define BOADER_POINT (90) /* 表示する最低点数 */ /* 生徒1分の成績 */ typedef struct tagRECORD { char name[MAXNAME]; int point; } RECORD; void input_record(RECORD *r, int i) { const int MAXBUF = 128; char buf[MAXBUF]; printf("Name[%d]?:", i); scanf("%s", r->name); printf("Point[%d]?:", i); scanf("%d", &(r->point)); } void print_record(RECORD *r) { printf("Name: %s, Point: %d\n", r->name, r->point); }
260 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 11:14:58 ] >>259 続き int main(int argc, char *argv[]) { RECORD clsRecord[CLASSMAX]; int i; /* クラスの成績を入力 */ for (i = 0; i < CLASSMAX; i++) { input_record(&clsRecord[i], i); } /* BOADER_POINT以上の生徒の成績表示 */ printf("\n***** Over %d students *****\n", BOADER_POINT); for (i = 0; i < CLASSMAX; i++) { if (clsRecord[i].point >= BOADER_POINT) { print_record(&clsRecord[i]); } } return 0; }
261 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 11:17:38 ] // 入力フォーマット: [番号],[得点] int main() { int i; int number; int score; for ( i = 0; i < 50; i++ ) { scanf( "%d,%d", &number, &score); if ( score >= 90 ) { printf("%d,%d", number, score); } } }
262 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 11:39:01 ] アンカー忘れてる、は回答プレ?
263 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 12:56:07 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): #include<stdio.h> main() { char ch; while(scanf("%c", &ch)==1){ ch-=0x20; printf("%c", ch); } } 上記のプログラムを改良し、アルファベットは大文字と小文字を逆転し、それ以外の文字はそのまま表示するようにしなさい。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:? [3.3] 言語:C [4] 期限:[本日16:30まで] 宜しくお願いします。
264 名前: ◆03xZ2wWsBw mailto:sage [2008/07/16(水) 12:57:49 ] [1]C言語中上級 [2] 3つの65535以下の非負整数a,b,cを乱数で生成します。a,b,cから次のような文字列を作ります。 [a+b][b+c][c+a][a][b][c][|a-b|][|b-c|][|c-a|][ab][bc][ac] [m]はmを10進表示した文字列を表す |m|はmの絶対値を表す それを10進数表示し結合した文字列を作り、それらをdecomposite関数に引数渡しして、 元の3つの数を再現する処理をC言語プログラムで記述しなさい。 元の3数は、decompositeからはアクセスできない、呼び出し側のローカル変数領域の外側に公開しないで下さい。 ☆23,39,17が生成された場合文字列 62564023391716226897663391をdecompositeに渡す。 ☆生成された3つの数、渡す文字列共に出力してから、decomposite関数を呼び出して下さい。 (関数の中で、決定された3数を出力) ☆一意に元の数を決定できない場合はdecomposite関数の中で一意決定不能と表示し、すべての候補を 出力して下さい。 [3]linux/gcc/C [4]7/30 12:00 時間がまだあるので、急ぎません。 少なくとも本日はこのスレを覗きません(これからバイトに行きますので) 明日以降、どなたかよろしくお願いします。
265 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:03:04 ] >>239 ありがとうございます マジで助かりました
266 名前: ◆03xZ2wWsBw mailto:sage [2008/07/16(水) 13:03:27 ] 問題文に誤りが見つかりました。 -それを10進数表示し結合した文字列を作り、それらをdecomposite関数に引数渡しして、 +それをdecomposite関数に引数渡しして、 として下さい。
267 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:07:10 ] >>263 っつか、そのプログラムの意図は? ttp://e-words.jp/p/r-ascii.html
268 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:13:59 ] >>263 ライブラリ使っていいなら以下。 #include<stdio.h> #include<ctype.h> main() { char ch; while(scanf("%c", &ch)==1){ if(islower(ch)!=0) ch=(char)toupper(ch); else if(isupper(ch)!=0) ch=(char)tolower(ch); printf("%c", ch); } }
269 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:16:36 ] >>263 #include <stdio.h> main() { char ch; while(scanf("%c", &ch)==1){ if(ch >= 0x40){ if(ch >= 0x61) ch-=0x20; else ch+=0x20; } printf("%c", ch); } }
270 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:18:36 ] >>267 小文字を大文字にしてるんでないの?
271 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:20:44 ] >>270 アッ、ナール
272 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:23:47 ] >>263 >>269 ミスってた #include <stdio.h> main() { char ch; while(scanf("%c", &ch)==1){ if(ch >= 0x41 && ch <= 0x5a) ch+=0x20; else if(ch >= 0x61 && ch <= 0x7a) ch-=0x20; printf("%c", ch); } }
273 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:24:11 ] [1] 授業単元:オペレーティングシステム [2] 問題文(含コード&リンク): 以下のプログラムを完成してください。 共有バッファを用いたプロセス間メッセージ通信をするプログラム。 親/子プロセスでメッセージを書き込み、子/親で読み出す。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7402.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限:2008年7月16日23:59まで よろしくお願いします。
274 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:29:50 ] >>263 せっかくだからキモイコードを張るぜ #include<stdio.h> main() { char ch; while(scanf("%c", &ch)==1){ ch=(ch|32U)-'a'<26?ch^32:ch; printf("%c", ch); } }
275 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:33:38 ] >>263 ならば、おいどんのキショースも出すでごわす #include<stdio.h> int main(void) { char ch; while(scanf("%c", &ch)==1){ if( ch>='a' && ch<='z') ch=ch-'a'+'A'; else if( ch>='A' && ch<='Z' ) ch=ch-'A'+'a'; printf("%c", ch); } }
276 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:47:52 ] 悪法回答テンプレが一掃されて以来スレが清々しいなw でもまだコードと一緒にアンカーと、コメント書く奴が多いな。
277 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:49:44 ] どうでもいいけどな
278 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:50:12 ] >>276 (・∀・)ニヤニヤ (・´ω`・)ンダゴルァ (・`ω´・)ナッナンダッテー
279 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 14:59:48 ] >>274 キモッ >>275 キショくなくてこまる
280 名前:263 mailto:sage [2008/07/16(水) 16:25:55 ] >>272 ありがとう。おかげで間に合ったよ。
281 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 17:41:27 ] [1] 授業単元:プログラム [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7403.txt [3] 環境 [3.1] OS: windows xp [3.2] コンパイラ名とバージョン:vc6.0 [3.3] 言語: C++ [4] 期限: [5] その他の制限:ソースに記載しています よろしくおねがいします
282 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 18:38:31 ] [3.2]のコンパイラ名とバージョンってのが良くわからないんですが、 コンパイラ名:Borland C++ バージョン:5.5.1 って感じでいいんですか?
283 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 19:15:47 ] >>273 は上級問題でおk?
284 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 19:32:31 ] >283 少なくても僕の脳みそでは分かりません。 たぶん上級問題なのかもしれません。
285 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 19:33:29 ] >>4 07/15 13:00 線形リスト >>44 07/17 --:-- 4択3種 : >>239 >>50 07/17 00:00 減衰振動 >>58 07/15 18:00 木構造を用いた数式の処理 >>159 07/16 --:-- 複素数演算・ソーティング >>179 --/-- --:-- 2文木->配列 >>202 --/-- --:-- (ごめんなさい、よくわからないです。) : >>253 >>207 --/-- --:-- 微分方程式の解析解 >>214 07/16 --:-- 20次元の2つのベクトル余弦 : >>219 >>228 07/16 --:-- 文字列のリバース : >>229 , >>230
286 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 19:34:00 ] >>231 --/-- --:-- = >>28 >>234 --/-- --:-- 微分方程式:ルンゲタック法 >>237 07/16 19:00 スロットゲーム : >>243 , >>247 >>250 07/16 --:-- 構造体のメンバへの代入 : >>252 >>256 --/-- --:-- 「キーボードから50人分の点数を入力し90点以上の人の番号と点数を表示せよ」: >>2590-261 >>263 07/16 16:30 大文字<->小文字 : >>268 , >>272 , >>274 , >>275 >>264 07/30 12:00 ??? >>273 07/16 23:59 セマフォを用いたプロセス間通信
287 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 20:20:19 ] >>286 ルンゲ”食った”ね
288 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 20:28:43 ] ほっとぞぬな問題
289 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 20:39:46 ] すいませんがお願いします。 ポインタの問題です。 [1] 授業単元:C言語演習 [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7404.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:visual stdio 2005 [3.3] 言語: (C言語) [4] 期限:今週 [5] その他の制限:ポインタを使用すること。
290 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 20:40:08 ] [1] 授業単元: C言語入門 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7405.txt [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語:C [4] 期限: 7月17日まで [5] その他の制限: お願いします。
291 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 20:53:03 ] だれか>>282 について教えて
292 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 20:54:06 ] [1] 授業単元: 1次元配列 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7406.txt [3.1] OS:Linux [3.2] gcc [3.3] 言語:C [4] 期限: 7月17日まで [5] その他の制限: お願いします。
293 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:20:28 ] >>292 #include<stdio.h> #define DATA_NUM_MAX 100 int main(void){ int data[DATA_NUM_MAX], datanum int sum=0, i; double average; for(datanum=0;datanum<DATA_NUM_MAX;datanum++){ printf("%d件目の点数を入力してください.\n", datanum+1); scanf("%d", &data[datanum]); if(data[datanum]==999) break; printf("%d件目の点数は%d点です.\n", datanum+1, data[datanum]); sum+=data[datanum]; } if(datanum==0) return 1; average=(double)sum/datanum; printf("\n合計点は%d点です.\n平均点は%.1f点です.\n", sum, average); printf("\t点数\t平均からの差\n"); for(i=0;i<datanum;i++) printf("\t%d点\t%5.1f点\n", data[i], data[i]-average); return 0; }
294 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:25:23 ] >>290 #include<stdio.h> #include<string.h> int main(void){ char buf[10]; int i, count=0; for(i=100;i<=600;i++){ sprintf(buf, "%d", i); if(strchr(buf, '4') || strchr(buf, '9')) continue; count++; } printf("このホテルの客室総数は%dです.\n", count); return 0; }
295 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:33:51 ] >>273 をお願いします。
296 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:35:28 ] >>289 #include<stdio.h> int main(void){ int a[5][5] = { { 1, 2, 3, 4, 5}, { 6, 7, 8, 9,10}, {11,12,13,14,15}, {16,17,18,19,20}, {21,22,23,24,25}, }; int b[5][5] = { { 3, 6, 9,12,15}, {18,21,24,27,30}, {33,36,39,42,45}, {48,51,54,57,60}, {63,66,69,72,75}, }; int c[5][5],*p_a,*p_b,*p_c, i; p_a=a; // p_a=a[0] ? p_b=b; p_c=c; for(i=0;i<5*5;i++){ // 問題1 printf("%d ", *(p_a+i)); if(i%5==4) printf("\n"); } for(i=0;i<5*5;i++) *(p_c+i)=*(p_a+i); // 問題2 for(i=0;i<5*5;i++){ printf("%d ", *(p_c+i)); if(i%5==4) printf("\n"); } for(i=0;i<5*5;i++) *(p_c+i)=*(p_a+i)+*(p_b+i); // 問題3 for(i=0;i<5*5;i++){ printf("%d ", *(p_c+i)); if(i%5==4) printf("\n"); } return 0; }
297 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:50:17 ] [1] 授業単元: Cプログラミング演習 [2] 問題文 20次元の2つのベクトル余弦cos(θ)を求めよ。 ベクトルの要素はそれぞれ、ユーザーが入力すること。ベクトル要素は double型とすること。 [3] 環境 [3.1] OS:Mac [3.2] コンパイラ名とバージョン: Linux [3.3] 言語: (C言語) [4] 期限:7/18 [5] その他の制限: お願いします><
298 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:54:03 ] >>998 >>898 >>798 >>698 >>598 >>498 >>398 >>297 過去ログ 否 過去レスをみよ
299 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:55:31 ] 過去ログ見ろと言われて実際に見る奴なんていないだろw
300 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:58:01 ] 1]プログラミング [2] 2から1000までの素数を表示するプログラム [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc 4.3.0 [3.3] 言語:C [4] 期限:7月18日17:00まで [5] その他の制限: ポインタ、構造体なんかは習って無いです 宜しくお願いします
301 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 23:14:21 ] >>300 #include<stdio.h> int main(void){ int i, j; for(i=2;i<1000;i++){ for(j=2;j<i;j++) if(i%j==0) break; if(j>=i) printf(" %d", i); } return 0; }
302 名前:300 mailto:sage [2008/07/16(水) 23:33:22 ] すみません。 >>300 を関数を使ってお願いします。
303 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 23:34:51 ] >>291 それで良いんじゃないの。 オレ、ボーランド製品が全然わからないけど
304 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 23:43:29 ] >>302 #include<stdio.h> int is_prime(int value){ int i; if(value<2) return 0; for(i=2;i<value;i++) if(value%i==0) return 0; return 1; } int is_prime(int value){ int i; if(value<2) return 0; if(value%2==0) return value==2; for(i=3;value/i>=i;i+=2) if(value%i==0) return 0; return 1; } int is_prime(int value){ int i, chk; double sqrt(double); if(value<2) return 0; if(value%2==0) return value==2; chk=sqrt(value+0.1); for(i=3;i<=chk;i+=2) if(value%i==0) return 0; return 1; } int main(void){ int i; for(i=2;i<1000;i++) if(is_prime(i)) printf(" %d", i); return 0; }
305 名前:デフォルトの名無しさん [2008/07/16(水) 23:45:01 ] >>159 お願いします
306 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 23:47:49 ] >>264 一意決定不能の例なんかあると助かるんだが。
307 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:08:04 ] >>264 スペースないからdecomposite関数だけ。 void decomposite(char *str) { int a, b, c, ab, bc, ca; char *p, *q, *r, temp[256]; for(p=str,ab=0; ab<=65535*2; p++) { ab = ab * 10 + *p - '0'; for(q=p+1,bc=0; bc<=65535*2; q++) { bc = bc * 10 + *q - '0'; for(r=q+1,ca=0; ca<=ab + bc; r++) { ca = ca * 10 + *r - '0'; a = (ab + ca - bc) / 2; b = ab - a; c = ca - a; if(a<0||b<0||c<0||a+b!=ab||b+c!=bc||c+a!=ca) continue; sprintf(temp, "%d%d%d%d%d%d%d%d%d",a,b,c,abs(a-b),abs(b-c),abs(c-a),a*b,b*c,c*a); if(strcmp(r+1, temp)==0) printf("a=%d b=%d c=%d\n", a, b, c); } } } }
308 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:13:29 ] >>159 一つ目 #include<stdio.h> #include<stdlib.h> struct bunsuu{ int bunsi, bunbo; }; int gcd(int a, int b){ int c; while((c=a%b)) a=b,b=c; return b; } struct bunsuu bunsuu_set(int bunsi, int bunbo){ struct bunsuu ret={0, 1}; if(bunsi==0 || bunbo==0) return ret; if(bunbo<0) bunsi=-bunsi, bunbo=-bunbo; ret.bunsi=bunsi/gcd(abs(bunsi), bunbo); ret.bunbo=bunbo/gcd(abs(bunsi), bunbo); return ret; } struct bunsuu bunsuu_add(struct bunsuu a, struct bunsuu b){ return bunsuu_set(a.bunsi*b.bunbo+b.bunsi*a.bunbo, a.bunbo*b.bunbo); } struct bunsuu bunsuu_sub(struct bunsuu a, struct bunsuu b){ return bunsuu_set(a.bunsi*b.bunbo-b.bunsi*a.bunbo, a.bunbo*b.bunbo); } struct bunsuu bunsuu_mul(struct bunsuu a, struct bunsuu b){ return bunsuu_set(a.bunsi*b.bunsi, a.bunbo*b.bunbo); } struct bunsuu bunsuu_div(struct bunsuu a, struct bunsuu b){ return bunsuu_set(a.bunsi*b.bunbo, a.bunbo*b.bunsi); } void bunsuu_print(struct bunsuu x){ printf(x.bunbo==1?"%d\n":"%d / %d\n", x.bunsi, x.bunbo); } int main(void){ struct bunsuu a={1,2}, b={2,3}; printf("input bunsuu ( ex. 1 / 2 ) :"); scanf("%d/%d", &a.bunsi, &a.bunbo); printf("input bunsuu ( ex. 2 / 3 ) :"); scanf("%d/%d", &b.bunsi, &b.bunbo); bunsuu_print(bunsuu_add(a, b)); bunsuu_print(bunsuu_sub(a, b)); bunsuu_print(bunsuu_mul(a, b)); bunsuu_print(bunsuu_div(a, b)); return 0; }
309 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:15:10 ] >>296 助かります、ありがとうございました。
310 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:17:19 ] またすいません。 2問ありますがお願いします。 [1] 授業単元:C言語 [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7407.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:visual stdio 2005 [3.3] 言語: (C言語) [4] 期限:今週 [5] その他の制限:ポインタを使用すること。
311 名前:45 [2008/07/17(木) 00:23:15 ] >>172 遅れましたが、ありがとうございます。
312 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:23:32 ] [1] 授業単元:プログラム実習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7408.txt [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:VC6.0 [3.3] 言語: C++ [4] 期限:(2008年7月18日17:00まで [5] その他の制限: 一次元関数の問題です。期限が…
313 名前:300 mailto:sage [2008/07/17(木) 00:28:05 ] >>304 うまく行きました ありがとうございます
314 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:29:39 ] [1] 授業単元: [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7409.txt [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:VC6.0 [3.3] 言語: (C++) [4] 期限: [5] その他の制限:クラスを変更して動作させよというものです 宜しくお願いします
315 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:35:37 ] すみません。>>273 をどなたがお願いできないでしょうか? 期限は明日までになりそうです。
316 名前: ◆r8ev9T1A36 mailto:sage [2008/07/17(木) 00:37:13 ] [1] 授業単元: c言語演習 [2] 問題文(含コード&リンク): c言語を用いて制作すること ・入力は、整数n≥1 ・出力は、nのパリティ(偶パリティor奇パリティ) [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:bcc [3.3] 言語: c [4] 期限: 2008年7月19日 [5] その他の制限: よろしくお願いします。
317 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:43:18 ] >>264 >>307 氏とは少しアプローチのちがうやつを kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7410.txt 長くてすまん さっきからループでまわして見てるが一意に解が出ないパターンに出くわさないな
318 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 01:01:18 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7411.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 2008年07月17日18:00まで
319 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 02:56:22 ] >>312 そのうち>>231やるかも line 18 // int calendar[rsize][csize]; int *calendar = new int[rsize * csize]; line 23 // calendar[i][j] = 0; calendar[i*csize + j] = 0; line 50 // calendar[i][j] = day; calendar[i*csize + j] = day; line 62: // const int day = calendar[i][j]; const int day = calendar[i*csize + j];
320 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 03:22:30 ] >>318 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7412.c kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7413.c
321 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 03:23:46 ] >>231 >>319 delete[] calendar; retrun 0; 忘れてた。 line 17 // int calendar[rsize][csize]; int **calendar = new int*[rsize]; line 20 for (int i = 0; i < rsize; ++i) { calendar[i] = new int[csize]; line 83 for (int i = 0; i < rsize; ++i) delete[] calendar[i]; delete[] calendar; return 0;
322 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 03:36:06 ] すみません>>58 助けてください・・・
323 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 03:46:09 ] >>322 期限を過ぎてるじゃん
324 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 03:59:15 ] 期限過ぎても提出しないと全部ボツになるんです
325 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 05:09:45 ] 期限が過ぎていたからって、機嫌を悪くしないでね。
326 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 09:31:42 ] >>320 >以下の雛形プログラムの指定部分のみを変更すること. <ctype.h>のインクルードは題意に反する。
327 名前:デフォルトの名無しさん [2008/07/17(木) 09:48:43 ] >>318 //1 #include <stdio.h> #define N 128 /* プロトタイプ宣言 */ void printCapitals(char *s); int main(void){ char str[N]; fgets(str, N, stdin); printCapitals(str); return 0; } void printCapitals(char *s) { int i; for(i=0;s[i];i++) if('A' <= s[i] && s[i] <= 'Z') putchar(s[i]); } for(i=0;s[i],i++) if('A' <= s[i] && }
328 名前:デフォルトの名無しさん [2008/07/17(木) 10:18:39 ] >>318 #include <stdio.h> //2 unsigned CommaSeparatedValueSum(FILE *fp) { unsigned csv[5] = {0}; unsigned sum = 0; unsigned i; while(!feof(fp)){ fscanf(fp,"%u,%u,%u,%u,%u",&csv[0],&csv[1],&csv[2],&csv[3],&csv[4]); for(i = 0; i < 5; i++) sum += csv[i]; } return sum; } int main() { FILE *fop = fopen("data3.csv","r"); unsigned sum = CommaSeparatedValueSum(fop); printf("CSV DATA SUM %u \n",sum); return 0; }
329 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 10:28:21 ] >>281 private: void strset(char *str){ p = new char[strlen(str)+1]; strcpy(p,str); } public: strtype(char* str=""){ strset(str); } strtype(strtype &st){ strset(st.p); }
330 名前:デフォルトの名無しさん [2008/07/17(木) 10:40:34 ] [1] 授業単元: C言語プログラミング [2] 分数の四則演算を計算するプログラムを作成する [3] 環境 [3.1] OS: Windows [3.2]Microsoft Visual Studio [3.3] 言語・C++ [4] 期限: ([2008年7月21日14:00まで [5]条件 分数を、 1|3 のように、| (縦棒)という記号で分子・分母を区別する。/ (スラッシュ)だと除算記号と混同してしまうから。 計算規則 a|b + c|d = (a*d + b*c) | (b*d) a|b - c|d = (a*d - b*c) | (b*d) a|b * c|d = (a*c) | (b*d) a|b / c|d = (a*d) | (b*c) 計算結果については,分母が1の時には分子のみの表示にする。分数が0(ゼロ)の時には 0(ゼロ)のみを表示する。また,最終の計算結果を既約分数にする。 1.分母がゼロの入力エラーに対しては、再入力するよう促す。 2.除算において、除数がゼロの入力エラーに対しては、再入力するように促す。 3.以下範囲の整数(分子、分母にかかわらず)に対して、正しく計算できるようにすること。 -2147483648 〜 2147483647 Visual Studioでお願いします
331 名前:100 mailto:sage [2008/07/17(木) 10:40:56 ] >>180 遅れましたがありがとうございます。