- 1 名前:デフォルトの名無しさん [2010/11/16(火) 22:14:58 ]
- あなたが解けない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++の宿題片付けます 142代目 hibari.2ch.net/test/read.cgi/tech/1288531658/
- 233 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 18:39:43 ]
- >>231
できるけどsinとかcosとかを自分で作らないといけないよ? もともとあるものを自分で作るのは全く無意味だし 問題の本質ではないからこのままでいいんじゃない? math.hとtime.hを使いたくない理由が分からないけど もし習ってないとか言うバカげた理由なら考えを改めたほうがいいよ
- 234 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 18:39:46 ]
- >>232
スケルトンから変えたのはほぼ View の40〜120行目あたりだけ。 ソースがみずらくてすまんが、やってることは大したことない。 1.白と赤の部分だけを取り出す。gW , gR 2.白と赤のORを作る。gOr 3.白と赤を3ドット広げて、重なり部分を取り出す。gAnd 4.gOrの島の中から,gAndが含まれる部分を抽出する。gMsk おそらく君にとって、Fillだけがキモだと思うが、 gOr && gAnd を見つけたら gMsk を1にし、 その上下左右にgOrが続いていたら、xy座標を更新してFillを再起する。 最初の基点からジワーッとgOrをあぶりだしていく感じ。
- 235 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 18:40:32 ]
- >>231
あ、>>229は<time.h>はもう不要なので取り忘れました <math.h>はlog()とsqrt()とsin()とcos()を呼び出すのに必要なので、 やるとすれば疑似的な発生法しかありません それで作ってみます
- 236 名前:211 [2010/11/20(土) 18:49:05 ]
- >>234
スケルトンをまず知らないのでww c言語でお願いすればよかったと後悔してます\(^o^)/
- 237 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 18:54:45 ]
- >>231
codepad.org/Z7lv5P4I floor()もsqort()も使えなくなったので、分散を求める事が出来ないので 発生した正規分布の乱数を表示するようにしました
- 238 名前:デフォルトの名無しさん [2010/11/20(土) 19:52:14 ]
- 糞スレ
- 239 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 20:21:00 ]
- >>237
無理なお願いを聞いて頂きありがとうございます。
- 240 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 21:09:33 ]
- >>205
ありがとうございます。 RGBTRIPLEなんて構造体があったのですね。
- 241 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 21:13:01 ]
- [1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク) 問題1
1から10までの整数の表示をするプログラムを、 do-while 文とを使用して作成しなさい。 < 実行例 >
1 2 3 4 5 6 7 8 9 10 問題2
10から1までの整数の表示をするプログラムを、 while 文を使用して作成しなさい。 < 実行例 >
10 9 8 7 6 5 4 3 2 1 問題3 キーボードから 読み込ん だ整数が1〜9の範囲内の場合は 繰返し、それ以外の場合は終了するプログラムを作成しなさ い。 < 実行例 >
整数: 8 範囲内です
整数: 3
範囲内です
整数: 11
範囲外です。
終了します。 [3] 環境 [3.1] OS: unix [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:11月21日 [5] その他の制限: なし よろしくお願いします。
- 242 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 21:43:31 ]
- >>241
codepad.org/DE6gfYRT
- 243 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 21:45:35 ]
- >>223
hibari.2ch.net/test/read.cgi/tech/1289715349/80
- 244 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 21:46:58 ]
- >>243
おいおい問題があるスレに誘導するなよ 今運営に報告してきた所だぞ
- 245 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 21:55:53 ]
- >>244
報告先の URL を教えてください。 回答がありしだい、誘導を停止します。
- 246 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 21:57:50 ]
- >>245
その前にどうして誘導するのかその理由を聞かせてくれないか? ここが宿題スレだろうに 誘導するのなら確固とした理由が必要だろ
- 247 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 22:03:49 ]
- ◆QZaw55cn4c本人でしょ
いいかげん他スレにちょっかい出すのやめればいいのに 自分が立てたスレに責任が持てないなら削除依頼だしてこいよ
- 248 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 22:05:32 ]
- と言う事で◆QZaw55cn4cは自分のスレに書き込まれた問題のみに解答しろ
このスレから誘導すんな このスレの意味が無くなる
- 249 名前:226 mailto:sage [2010/11/20(土) 22:19:01 ]
- あまり落とす人もいないでしょうが・・・
ちょっといじるとスタックオーバーフロー起こすので消しました。>>226 一応スタックオーバーフローの暫定対策版を↓に置いときます。 www1.axfc.net/uploader/Sc/so/175392.zip
- 250 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 22:21:48 ]
- サーバ用途じゃないツールだったら、
思う存分落とせばいいじゃん。
- 251 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 22:23:10 ]
- あ、サーバ用途ってのは、それ自身が動き続けることが使命になってるプログラムのことね。
ツールってのは、コマンドとして実行させて、終了とともに結果を得るもの、ってつもり。
- 252 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 00:34:14 ]
- 言わんとするところは伝わるような気がするが、
ツールだから落ちてもいいという根拠は何も出ていない。
- 253 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 02:32:40 ]
- 作った本人が私的に使うツールなら分かるが、
そうでなければ、あまりにも無責任
- 254 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 03:09:35 ]
- ソースあるんだから文句があるなら自分で直せばいいだけなのに
- 255 名前:デフォルトの名無しさん [2010/11/21(日) 09:51:24 ]
- プログラミング演習の問題で
入力した名前(アルファベット)を昇順に並び変える sort_by_nameという関数を作りたいです。 2文字目ぐらいまで判定できればいいです。 数字の昇順ならできるのでヒントだけでもください。 codepad.org/6vjN9ld1
- 256 名前:デフォルトの名無しさん [2010/11/21(日) 10:20:54 ]
- [1] 授業単元:情報処理概論T
[2] 問題文(含コード&リンク): つると亀が合わせてn匹います。足の数は合わせてmです。 nとmを入力して、つると亀がそれぞれ何匹いるのか求めるプログラムを作りなさい。 もし解がない場合は、その旨を出力するようプログラムすること。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: [無期限] [5] その他の制限:if、while、for、配列、多重ループ、関数まで習いました。 よろしくお願いします。
- 257 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 10:30:42 ]
- >>255
strncmp
- 258 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 10:37:01 ]
- >>255
codepad.org/rvBnDcMH
- 259 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 11:01:00 ]
- >>256
codepad.org/jxPppob9
- 260 名前:255 [2010/11/21(日) 11:11:06 ]
- >>257>>258
ありがとうございました! 解決しました
- 261 名前:デフォルトの名無しさん [2010/11/21(日) 14:30:29 ]
- [1] 授業単元: プログラミング
[2] 問題文: 4つの整数s,m,l,xlを小さい順に並べ替えるプログラムを作成しなさい。 ただし、並び替えをする部分はユーザ定義関数化し、 並び替え後の結果をmain関数で出力するようにすること。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限:11月23日まで よろしくお願いしますm(__)m
- 262 名前:デフォルトの名無しさん [2010/11/21(日) 14:46:04 ]
- [1] 授業単元;プログラミング演習
[2] 問題文(含コード&リンク): ・ランダムな整数列を生成し,挿入ソート・シェルソートにより 並べ替えるプログラムを作れ ・実行時間を計測せよ [3] 環境 [3.1] OS: unix [3.2] コンパイラ名とバージョン: gcc [3.3] 言語:C/C++/どちらでも可 [4] 期限:11月24日 [5] その他の制限: unixのrand()とtimeコマンドを使用すること mainの中もお願いします。
- 263 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 14:46:17 ]
- >>261
#include <stdio.h> void swap(int *a, int *b){int temp=*a; *a=*b; *b=temp;} void sort(int *s, int *m, int *l, int *xl){ if(*s>*m) swap(s,m); if(*s>*l) swap(s,l); if(*s>*xl)swap(s,xl); if(*m>*l) swap(m,l); if(*m>*xl)swap(m,xl); if(*l>*xl)swap(l,xl); } int main(){ int s = 4, m = -33, l = 232, xl= 83; sort(&s, &m, &l, &xl); printf("s = %d, m = %d, l = %d, xl = %d",s, m, l, xl); return 0; }
- 264 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 16:27:49 ]
- >>262
hibari.2ch.net/test/read.cgi/tech/1289715349/83
- 265 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 16:29:54 ]
- [1] 授業単元: 情報工学
[2] 問題文: www.dotup.org/uploda/www.dotup.org1261761.txt.html [3] 環境 [3.1] OS: Cygwin on Windows [3.2] コンパイラ名とバージョン: gcc 4.3.4 [3.3] 言語: C [4] 期限:11月22日まで どうか宜しくお願いします。
- 266 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 16:35:16 ]
- >>264
◆QZaw55cn4cの出張ウザイです
- 267 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 19:08:46 ]
- >>265
入力してテストってのは面倒だからやってない、入力するには5行目の #define TEST をコメントアウトしてくれ コードの問題で化けると嫌なので出力は英語になってるので気に喰わなければ勝手に直してくれ ttp://codepad.org/jfDB88t9
- 268 名前:デフォルトの名無しさん [2010/11/21(日) 19:15:22 ]
- >>222 >>227
どうもありがとうございます。 御二方のコードを参考に自分でもう一度作ってみようと思います。
- 269 名前:デフォルトの名無しさん [2010/11/21(日) 19:19:16 ]
- c言語の宿題の一部なのですが
コマンドプロンプトのmoreの役割をするプログラムを作るのはどうすればいいのでしょうか? 既に出来ているテキストファイルをコマンド上に表示するだけなのですが 出来ればソースをお願いします
- 270 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 19:24:28 ]
- ncursesを使う
- 271 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 19:38:42 ]
- 解決しました
ありがとうございます
- 272 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 19:48:22 ]
- >>267
助かりました。 これからがんばって読みます。 ありがとうございました。
- 273 名前:デフォルトの名無しさん [2010/11/21(日) 21:40:07 ]
- [1] 授業単元:プログラミング
[2] 問題文 問題1.文字列を入力し、入力された文字列について、次の1~6のすべてを表示するプログラムを作 成しなさい。 1 全文字の合計文字数 2 数字の文字数 3 英大文字の文字数 4 英小文字の文字数 5 空白の文字数 6 その他の文字の文字数 ただし、 ・ 下記の実行結果のように、それらの数値を表示しなさい。 ・ データの読み込みは getchar 関数を使うこと。 問題2.12 個の整数を入力し、それらの 3 倍の数値を表示するプログラムを作成しなさい。 ただし、 ・入力した整数は、4 行 3 列の 2 次元配列に格納しなさい。 ・配列の作成と表示にはループ制御を使用すること。 ・下記の実行結果になるようにしなさい。 Column1 Column2 Column3 ------------------------------------ Row1 : 3 6 9 Row2 : 300 600 900 Row3 : 3000 6000 9000 Row4 : 30000 60000 90000 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C++ [4] 期限:2010/11/20 [5] その他の制限: あまり難しくないようにお願いします。 繰り返しと条件判断と配列と簡単な関数までぐらいしか授業はやっていません。
- 274 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 21:50:02 ]
- >>269
hibari.2ch.net/test/read.cgi/tech/1289715349/87
- 275 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 21:55:21 ]
- うぜー
- 276 名前:デフォルトの名無しさん [2010/11/21(日) 23:10:03 ]
- >>259
ありがとうございました!とても助かりました!
- 277 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 07:46:51 ]
- >>273
問題2だけ。 codepad.org/vx9De2AX
- 278 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 08:32:07 ]
- >>273
問題1もやってみた。 C++でgetcharってこういうことかな? codepad.org/7LG4EKWZ
- 279 名前:デフォルトの名無しさん [2010/11/22(月) 12:53:40 ]
- >>273ですが言語はCでした;
>>277 >>278 折角やっていただいたのにすみません!; 実行してみましたができませんでした。 普通にgetchar関数を使えと言われたんですが・・・。
- 280 名前:デフォルトの名無しさん [2010/11/22(月) 13:08:02 ]
- 1] 授業単元: プログラミング
[2] 問題文 #include <stdio.h> #include <string.h> /*strlenのため */ void main( void ) { char mojis[16]; /* 文字列を入れるための配列 */ int i; int n; /* 'e'の数 */ printf("文字列:"); scanf("%15s", mojis ); mojis[15] = '\0'; for( i=0, n=0; mojis[i]; i++ ) /* ヌル字まで順に見ていく */ { if( mojis[i] == 'e' ) /* 文字と文字定数との比較 */ { n++; } } printf( "文字数 %d のうち'e'は %d個", strlen(mojis ), n ); return; } このプログラミングを改造 1.strlenを使わずに文字数をカウントする。 [3] 環境 [3.1] OS:Windows、visual studio2005 [3.3] 言語:C [4] 期限:11月22日
- 281 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 13:16:54 ]
- >>280
#include <stdio.h> int main( void ) { char mojis[16]; /* 文字列を入れるための配列 */ int i; int n; /* 'e'の数 */ int len; /* 文字の数 */ printf("文字列:"); scanf("%15s", mojis ); mojis[15] = '\0'; for( i=0, n=0, len=0; mojis[i]; i++ ) /* ヌル字まで順に見ていく */ { len++ ; if( mojis[i] == 'e' ) /* 文字と文字定数との比較 */ { n++; } } printf( "文字数 %d のうち'e'は %d個", len, n ); return 0 ; }
- 282 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 13:34:32 ]
- iでいいだろうよw
- 283 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 13:40:41 ]
- >>279
書いてくれてるプログラムはC++だけど 入出力以外はCと同じだから #include <iostream>は#include <stdio.h> std::getchar()はgetchar() std::cout〜の行はprintf() std::cin〜の行はscanf()に置き換えれば動くと思うよ
- 284 名前:mery [2010/11/22(月) 13:42:18 ]
- 以前152で
1] 授業単元:プログラミングC [2] 問題文(含コード&リンク): 無限ループを用い、1〜50までの数値を任意に10個入力し、その度数分布を求めよ。但し、度数分布は5等分(例;1〜10に4個, 11〜20に3個, 21〜30・・・41〜50に0個)して表示せよ。 [3] 環境 [3.1] OS:linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:11月21日 [5] その他の制限:1〜50以外の数字が入力されたときの処理は考えなくていいそうです で書き込ませていただいた者なんですが、教えていただいた通り、打ち込んでみたのですが、実行結果がでませんでした。 なぜでしょうか?
- 285 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 13:47:00 ]
- >>282
iだと1引かないといけないのがなんか気持ち悪い
- 286 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 13:48:32 ]
- >>285
え?w
- 287 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 14:06:22 ]
- >>284
>>164 でうまくいきますよ。「実行結果がでませんでした」というのは、どういう状態か、もう少し詳しく教えてください。
- 288 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 14:09:00 ]
- 一瞬で終了してるとかってオチか?
- 289 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 14:11:48 ]
- >>288
入力はできてるところをみると可能性はありそう
- 290 名前:デフォルトの名無しさん [2010/11/22(月) 15:04:40 ]
- >>281
ありがとうございました。参考にします。
- 291 名前: ◆/91kCCQXBo mailto:sage [2010/11/22(月) 15:04:57 ]
- >>273
jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/42-43
- 292 名前:デフォルトの名無しさん [2010/11/22(月) 15:58:58 ]
- >>283
わかりました。間違えてすみません; ありがとうございます! >>291 わざわざありがとうございます!
- 293 名前:ごばくすみません mailto:sage [2010/11/22(月) 16:00:49 ]
- >>284
>以前152 >で書き込ませていただいた者なんですが、教えていただいた通り、打ち込んでみたのですが、実行結果がでませんでした。 >なぜでしょうか? 7行目>>164 i=0; を i=0; puts("数値を入力>"); に変えてみようか?
- 294 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 16:47:17 ]
- [1] 授業単元: プログラミング
[2] 問題文: 変数iに100が入っています、 iとは別に、50,75,55,60というように、ランダムな数字の配列があり、 次にくる数字が前の数字(ここでは60)より、5%大きかったら、 iに1を加算するプログラムを作成。 -5%なら-1で、10%なら+2するといった感じです。5%未満なら加算しません。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限:特に無し よろしくお願いいたします。
- 295 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 17:07:41 ]
- 100%なら+20?
- 296 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 17:11:47 ]
- >>294
ランダムな数字の配列に負数とかゼロが出現する可能性はあるのかな?
- 297 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 17:12:03 ]
- >>295
そうです。私の頭じゃさっぱりで・・・if文の乱立しか思い浮かびません。
- 298 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 17:13:35 ]
- >>296
負数やゼロはなしでお願いします。 問題にはありませんが、1〜100あたりの乱数が入ると思っていただければ。
- 299 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 17:19:56 ]
- >>294
#include <stdio.h> int main(void) { int i, j; int data[]={50, 75, 55, 60, 0}; i=100; for(j=1;data[j]>0;j++) { i+=(data[j]-data[j-1])*20/data[j-1]; } printf("i=%d\n", i); return 0; }
- 300 名前:299 mailto:sage [2010/11/22(月) 17:54:23 ]
- >>294
>>299 の修正 負数の割り算は気持ち悪いので #include <stdio.h> int main(void) { int i, j; int data[]={50, 75, 55, 60, 0}; i=100; for(j=1;data[j]>0;j++) { if(data[j]>data[j-1]) i+=(data[j]-data[j-1])*20/data[j-1]; else i-=(data[j-1]-data[j])*20/data[j-1]; } printf("i=%d\n", i); return 0; }
- 301 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 18:42:03 ]
- >>300
ありがとうございます! こういう式がさっと出てこないんですよね・・・頭悪いのが嫌になる・・・
- 302 名前:デフォルトの名無しさん [2010/11/23(火) 08:07:57 ]
- [1] 授業単元:プログラミングC言語
[2] 問題文:診断メーカー風のプログラムを作成しなさい。 名前を入力し、その名前に基づき何かしらの情報を出力。 .txtファイルを読み込み出力できるものにする事。 (オプション)日替わりで表示結果を変更。複数の組み合わせなど。 [3] 環境 [3.1] OS:Linux [3.3] 言語:C++ [4] 期限:2010年11月23日12:00まで 自分の頭では何をどうしていいのかさっぱりわかりません。 ヒントだけでも良いので、どうかよろしくお願いします。
- 303 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 08:24:05 ]
- >>302
テキストファイルの中に名前が書かれているの?
- 304 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 09:19:39 ]
- >>302
codepad.org/wdclLmtI
- 305 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 09:29:08 ]
- >>302
codepad.org/sgXIaOtZ
- 306 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 09:31:48 ]
- >>302
脳内メーカーみたいな物を作れって事かな? ならば、先ずは仕様を決めることが必要だ 例えば名前の文字列を1Byteづつ評価し、0〜15なら毒、16〜31なら薬、32〜47なら愛.....等々の評価を与える 最後に全文字が何の評価を与えたかを集計すれば、毒:M%、愛:M%、薬:O%みたいな出力を出せるだろ txtファイルを読むというのは引数にテキストファイル名が指定された場合にはそのファイルに書かれている 名前を標準入力の変わりに使えと言う事だと思う 参考になれば幸いだ
- 307 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 09:44:29 ]
- >>302
#include <iostream> #include <string> #include <cstdlib> #include <fstream> unsigned str2number(std::string str){ unsigned ret=7743; // 必要ならここに日付を数値化したものを足す time(NULL)/(60*60*24) みたいに for(unsigned i=0;i<str.length();i++) ret=ret*37+str[i]; return ret; } int main(void){ std::string name, buf; std::ifstream ifs("data.txt"); std::cout << "名前を入力してください : "; getline(std::cin, name); srand(str2number(name)); std::cout << name << " さんの" << std::endl; while(getline(ifs, buf)){ if(buf[0]=='#'){ std::string theme, result; theme=buf.substr(1); for(int i=1;getline(ifs, buf);i++){ if(buf=="") break; if(rand()%i==0) result=buf; } std::cout << theme << " は " << result << " です"<< std::endl; } } return 0; }
- 308 名前:307 mailto:sage [2010/11/23(火) 09:45:47 ]
- >>307 で使用する data.txt の中身
#運勢 大吉 吉 凶 #ラッキーアイテム トイレットペーパー 栓抜き 生卵 ブルーアイズホワイトドラゴン #ラッキーカラー 透明 シルバー
- 309 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 09:51:16 ]
- >>305
argcのチェックを入れるべき。
- 310 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 14:27:43 ]
- [1]プログラミング演習
[2] 問題文:codepad.org/Duo48tj4 [3] 環境 [3.1] windows [3.2] visual studio2010 [3.3] C言語 [4] 2010/11/26まで [5]配列、関数、文字列、関数形式マクロ、再帰は習っています。 構造体、ポインタ等は習っていません。 問題文が長く改行が多すぎて書き込めなかったのでcodepaに問題文も書きましたが 問題があったら言ってください。 お願いいたします。
- 311 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 14:45:14 ]
- コードパッドに本文を入れるとは斬新w
- 312 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 15:44:22 ]
- >>310
codepad.org/XoOdAJHA
- 313 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 15:59:54 ]
- >>310です。
>>312 御回答ありがとうございます。 無事できました。有難うございます。 >>311 あ…やっぱり文章を入れる物ではなかったですか…。
- 314 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 17:34:14 ]
- [1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク) 2分法により2の平方根を計算して表示するプログラムを作れ。 解の存在範囲|xb-xa|が矛め決めた値より小さくなったら計算を停止(収束判定)するようにせよ。 *注意 (1)f(xa)とf(xb)の符号が反対であるか否かの判定法を考えよ。 (2)f(xa)とf(xb)が共に同符号になるようなxa,xbが入力された場合に対処すること。 [3] 環境 [3.1] OS: unix [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:11月24日 [5] その他の制限: なし よろしくお願いします。
- 315 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 20:04:09 ]
- >>314
hibari.2ch.net/test/read.cgi/tech/1289715349/118
- 316 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 20:40:27 ]
- >>314
codepad.org/OKPlr6yi
- 317 名前:デフォルトの名無しさん [2010/11/23(火) 21:13:54 ]
- 配列とファイルの読み込みです。
たとえば、100個の数字が用意されたファイルを用意します。 そのファイルを使って平均値を求めるプログラムを作りたいのですが教えてください。 ファイル名は適当で良いです。 平均値を求める計算は関数部分でお願いします。
- 318 名前:デフォルトの名無しさん [2010/11/23(火) 21:20:32 ]
- >>317
をPerlでお願いします。
- 319 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 21:42:51 ]
- int main(void) {
system("cat temp.txt | perl -e \"while(<>){$i+=$_} print $i/100\""); return 0; }
- 320 名前:デフォルトの名無しさん [2010/11/24(水) 00:37:03 ]
- [1] 授業単元: プログラミング基礎
[2] 問題文: n 個の整数型データ配列a[i]を、一つの関数に渡して、 その一つの関数内で平均値と分散値を求め、main関数内で 平均値と分散値を参照できるプログラムを作成せよ。 ただし、配列の受渡し、結果の受け渡しにはポインタを利用すること。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限:11月25日まで [5] その他の制限:なし 宜しくお願いします。
- 321 名前:デフォルトの名無しさん [2010/11/24(水) 00:57:35 ]
- >>320
#include <stdio.h> void func( int n, int* arr, double* heikin, double* bunsan ) { int i, sum = 0, sum2 = 0; for( i = 0;i < n; i++ ) { sum += arr[i]; sum2 += ( arr[i] * arr[i] ); } *heikin = (double)sum / (double)n; *bunsan = (double)sum2 / (double)n - *heikin; } int main( void ) { int arr[] = {1,2,3,4,5}; double h, b; func( 5, arr, &h, &b ); printf( "heikin = %lf, bunsan = %lf\n", h, b ); return 0; }
- 322 名前:デフォルトの名無しさん mailto:sage [2010/11/24(水) 01:03:21 ]
- >>321
*bunsanの式の右辺第二項は*heikinの二乗
- 323 名前:デフォルトの名無しさん mailto:sage [2010/11/24(水) 01:07:57 ]
- [1] 授業単元: 数学
[2] 問題文: リーマン予想の解をアルゴリズム化して10^100桁の素数を決定的に因数分解する プログラムを作成せよ [3] 環境 [3.1] OS:Windows、Mac [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限:1月25日まで [5] その他の制限:しらみつぶしに因数分解するプログラムは不可 宜しくお願いします。
- 324 名前:デフォルトの名無しさん mailto:sage [2010/11/24(水) 01:08:52 ]
- >>322
そうだった *bunsan = (double)sum2 / (double)n - *heikin * *heikin; に修正、*が並ぶと気持ち悪いな
- 325 名前:デフォルトの名無しさん mailto:sage [2010/11/24(水) 01:08:59 ]
- >>323
おいww
- 326 名前:デフォルトの名無しさん mailto:sage [2010/11/24(水) 01:12:23 ]
- >>323
素数を決定的に因数分解するって?
- 327 名前:デフォルトの名無しさん mailto:sage [2010/11/24(水) 01:13:36 ]
- >>326
俺もそれ気になってた 素因数分解って言ってないから実数でもいいのか?だとしたら無数に存在するけど
- 328 名前:320 [2010/11/24(水) 01:16:09 ]
- >>321>>322>>324
ありがとうございます!
- 329 名前:デフォルトの名無しさん mailto:sage [2010/11/24(水) 01:29:50 ]
- そもそも10^100桁の数値なんてどうやって扱えばいいのか分からない
情報量として (10^100)/2.41 byte分なんてしらみつぶししようとも思わないw
- 330 名前:デフォルトの名無しさん mailto:sage [2010/11/24(水) 01:36:40 ]
- 始めたばかりで何が何だかわかりません…
[1] 授業単元:メディア基礎 [2] 問題文(含コード&リンク):数式X=[{16/(k*π)^2}^2]がある。 kが整数1〜30の時のXの値をそれぞれ出力するプログラムをCで書きなさい。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 明日午前十時まで [5] その他の制限: 特に無いと思います。 よろしくお願いしますorz
- 331 名前:デフォルトの名無しさん mailto:sage [2010/11/24(水) 01:39:43 ]
- 素因数分解って素数に対してはそれ自身が素因数分解された結果だよな
だとしたら与えられた素数をそのまま出力するだけで終了じゃね?
- 332 名前:デフォルトの名無しさん mailto:sage [2010/11/24(水) 01:47:23 ]
- [1] 授業単元: 数学
[2] 問題文: リーマン予想の解をアルゴリズム化して10^100桁の合成数を決定的に因数分解する プログラムを作成せよ [3] 環境 [3.1] OS:Windows、Mac [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限:1月25日まで [5] その他の制限:しらみつぶしに因数分解するプログラムは不可 宜しくお願いします。
- 333 名前:デフォルトの名無しさん mailto:sage [2010/11/24(水) 01:56:14 ]
- サラリーマンの人、やってみようか?
|
|