1 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 02:13:06 ] あなたが解けない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++の宿題片付けます 122代目(実質123代目) pc11.2ch.net/test/read.cgi/tech/1232029287/
237 名前:236 mailto:sage [2009/03/14(土) 21:28:40 ] おーう、中のPrintTreeもPrintTreeRevだ 逝ってくる
238 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:33:53 ] >>227 微妙に質問が質問として成立してないんじゃね? OS自体がプログラムだから、プログラムとして違いがあるし、 OSの機能を使うプログラムの場合も、OSが違うからプログラムとして違いがある。 >>234 いい感じ でも、"%98s"じゃなく、"%98[^\n]"じゃないとダメぽ
239 名前:234 mailto:sage [2009/03/14(土) 21:44:06 ] >>238 すまん。なぜダメなのか教えてくれないか。 何が入力されたときにまずい?
240 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:48:53 ] >>239 すんません。 勘違いしてました。 scanf一回で、式を全部持ってくるのかと思ってました。。。
241 名前:234 mailto:sage [2009/03/14(土) 21:51:32 ] >>240 おk。
242 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 22:12:01 ] >>237 出来ました!ありがとうございます!
243 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 22:54:57 ] [1] 授業単元:アルゴリズムとデータ構造 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8976.txt [3] 環境 [3.1] OS:ウィンドウズvista [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: [2009年3月15日] [5] その他の制限:なし お願いします
244 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:23:05 ] >>243 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8977.txt
245 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:37:13 ] あるある
246 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:19:15 ] osの違いでC言語に違いが出てくることってあるんですか?
247 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:19:53 ] >>244 ありがとうございます
248 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:49:26 ] [1] 授業単元: データ構造アルゴリズム [2] 問題文 スタックを利用した逆ポーランド電卓を作成しなさい。ただし、演算は四則演算のみとし、数値と数値、数値と演算子の間は半角スペースで区切って入力することとする。 逆ポーランド電卓 逆ポーランド記法の数式を入力してリターンキーを押すと答えを表示してくれるもの。スタックを使用して以下のように計算する。 1.数値なら、そのままスタックにつむ 2.演算子なら、2つの数をスタックからおろして演算を行い、その結果を再びスタックにつむ。 ※逆ポーランド記法とは演算子を後ろに置く記法。例えば1+2は12+に、(1+2)*3は12+3*になる。逆ポーランド記法は後置法ともよばれる。 [3] 環境 [3.1] OS: (unix) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C) [4] 期限: [3/16] [5] その他の制限: なし よろしくお願いします。
249 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:08:17 ] >>248 >>220 と>>234 を見ろ。 なんというか、まあ、お前らのところ本当にどうしようもないのしかいないんだな
250 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:18:35 ] >>249 問題が同じでも細かいところが違うんですよ。
251 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:24:17 ] 確かにOSが違うな
252 名前:249 mailto:sage [2009/03/15(日) 02:51:34 ] >>250 すまん、その細かいところってどこだ? >>251 >>222 見る限りOSも同じだが。
253 名前:デフォルトの名無しさん [2009/03/15(日) 03:22:19 ] すみません、C初心者で、今課題をやってるのですが、入門書見ながらでもさっぱりです。 よろしくおねがいします。。 ↓↓↓↓↓ 以下のプログラムは、入力された10個の数値を引き算し、その結果を表示するプログラムです。 9〜11行目を別の関数(関数名はFuncDev)とし、修正しなさい。ただし、グローバル変数は使わないこと。 またFuncDev内のローカル変数名は任意とします FuncDev関数は以下の定義とします int FuncDec(void); FuncDev関数の戻り値は、画面入力されたint型データとします。 1:#include<stdio.h> 2:void main(void); 3:void main(void) 4:{ 5: int n1 n2; 6; int nt; 7: nt=0; 8: for(n1=0;n1<10;n1++){ 9: printf("0-9の数値を入力:"); 10: scanf(" %d",&n2); 11: nt-=n2; 12: } 13: printf("結果は%dです",nt); 14:}
254 名前:>>253 mailto:sage [2009/03/15(日) 03:34:52 ] #include <stdio.h> int FuncDev(void); int main(void) { int nt, n1; nt = 10000; for(n1 = 0; n1<10; n1++){ nt -= FuncDev(); } printf("結果は%dです", nt); } int FuncDev(void) { int n2; scanf(" %d", &n2); return n2; }
255 名前:デフォルトの名無しさん [2009/03/15(日) 03:41:45 ] >>254 すばやいご回答ありがとうございました。 私は問題の意味を勘違いしていたみたいでした。 自分一人だったら白紙で出すところでした。 本当にありがとうございました
256 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 03:52:02 ] OSがunixって幅が広すぎるよな。
257 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 04:01:21 ] [1] 授業単元: データ構造アルゴリズム [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8979.txt [3] 環境 [3.1] OS:XP [3.2] コンパイラ名とバージョン: BCC Borland C++ 5.5.1 [3.3] 言語: C [4] 期限: ([2009年3月15日]) [5] その他の制限:なし
258 名前:>>253 [2009/03/15(日) 04:18:12 ] >>254 さま すみません、 今読んでいて疑問に思ったのですが、 6行目の nt=10000; とはどういう意味なのでしょう? 簡単に解説をしてくださると助かります
259 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 04:50:50 ] >>252 問題はいっしょだが条件が追加されてる。
260 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 05:09:36 ] >>259 どんな条件? 逆ポーランド電卓の説明が追加されているだけにしか見えんが?
261 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 09:48:42 ] >>260 ようわからんが実行結果がちがったんじゃねーの?たぶん同じやつが書き込んでるとおもわれる。
262 名前:>>253 mailto:sage [2009/03/15(日) 09:58:05 ] ntは引かれる数。10000は一万。
263 名前:デフォルトの名無しさん [2009/03/15(日) 13:42:22 ] >>253 #include "stdafx.h" #include <stdio.h> #include <iostream> #include "windows.h" using namespace std; int FuncDec(){ int n2; cout << "input 0-9" << endl; cin >> n2; return n2; } int main(void){ int n1; int nt=0; for(n1=0;n1<10;n1++){ nt-=FuncDec(); } cout << "output " << nt; Sleep(10000); }
264 名前:デフォルトの名無しさん [2009/03/15(日) 13:45:44 ] このスレ、己の描いた独自プログラムと簡単な問題文しか出さない人が多いけど 独自プログラムなんて出すよりも 詳しい問題文やどういったアルゴリズムにしようとしてるか描いてくるほうがありがたい というのもプログラムなんざ千差万別だから、そんなもの提示されても 俺のプログラムと描き方の雰囲気が少しでも違ってたらいちいち面倒なことになる
265 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 14:12:06 ] >>264 宿題スレに何を求めているの?
266 名前:デフォルトの名無しさん [2009/03/15(日) 15:55:22 ] この世に存在するソフトウェアのソースが公開されているものなんて ほんのごく一部だぞ?他人の猿真似でどうにかなるもんでもなかろう 定石なんて、書店に行けばいくらでも見つかるぞ
267 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 15:55:41 ] osの違いでC言語に違いが出てくることってあるんですか?
268 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 15:56:24 ] >>267 環境依存に関わるライブラリではあり得る。
269 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 16:16:48 ] >>267 Cの規格上、差異を認めている部分(処理系定義)では起こりうる。 もちろんOSの値が以外の原因で起こることもあるけど。 型の大きさとか表現方法とか。
270 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 17:24:29 ] >>264 所詮、ここはC系で一番バカな質問を受け付ける/受け流すためのハコだからな。 問題文の読み方も分からないって手合いが多数だし、「ここまで書きました」は大概読まないほうがいい。 動かないコードを見て、何のツモリか当て推量するのは不毛だしな。 ・・・動いているコードでさえ、何のツモリ(仕様)かなんて、推量はあてにならないしな。
271 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 17:57:16 ] >>248 parseあんま自信無いw #include<stdio.h> #include<ctype.h> int s[99],p,a; void push(int n){s[p++]=n;} int pop(void){return s[--p];} int main(){  int c,t;  for(;(c=getchar())!=EOF&&c!='\n';){   if(isspace(c));   else if(c=='+')t=pop(),push(pop()+t);   else if(c=='-')t=pop(),push(pop()-t);   else if(c=='*')t=pop(),push(pop()*t);   else if(c=='/')t=pop(),push(pop()/t);   else if(ungetc(c,stdin),scanf("%d",&t)==1)push(t);   else return fprintf(stderr,"Parse error!");  }  printf("%d\n",pop()); }
272 名前:271 mailto:sage [2009/03/15(日) 18:00:01 ] 悪い。修正版。 #include<stdio.h> #include<ctype.h> int s[99],p; void push(int n){s[p++]=n;} int pop(void){return s[--p];} int main(){  int c,t;  for(;(c=getchar())!=EOF&&c!='\n';)   if(isspace(c));   else if(c=='+')t=pop(),push(pop()+t);   else if(c=='-')t=pop(),push(pop()-t);   else if(c=='*')t=pop(),push(pop()*t);   else if(c=='/')t=pop(),push(pop()/t);   else if(ungetc(c,stdin),scanf("%d",&t)==1)push(t);   else return fprintf(stderr,"Parse error!");  printf("%d\n",pop()); }
273 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:03:04 ] getchar()使うヤツって……
274 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:03:50 ] いちいち言うくせに、指摘や適切なものを提示しないヤツって・・・口先だけのインポ野郎だなw
275 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:07:58 ] >>272 さんありがとうございます。
276 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:09:15 ] こんなスレで偉そうにしているヤツって……
277 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:09:51 ] >>273 普通につかうガナ
278 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:18:36 ] >>270 初心者のコード見てこき下ろしたり、黒歴史を思い返したりするのもまた一興じゃないか。
279 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 20:03:56 ] お願いします [1] 授業単元: データ構造アルゴリズム [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8979.txt こののプログラムのクイックソートを行っている関数quickを,非再帰的なアルゴリズムに書き換えてください. [3] 環境 [3.1] OS:Win [3.2] コンパイラ名とバージョン: BCC [3.3] 言語: C [4] 期限: ([2009/3/15]) [5] その他の制限:なし
280 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 21:55:22 ] 非再帰って自前でスタック使ったら、再帰アルゴリズムを 言語の再帰使わずに実装しているだけの様な。
281 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 22:37:11 ] クソ課題だなあ
282 名前:自分が解けもしないくせに口だけは大きい馬鹿 [2009/03/15(日) 22:40:26 ] 281 名前:デフォルトの名無しさん 投稿日:2009/03/15(日) 22:37:11 クソ課題だなあ
283 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 22:55:57 ] 分割統治法を非再帰でやらせるとか クソ課題以外の何者でもないだろ
284 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 23:02:32 ] こんな感じかな? void quick(Data a[], int left, int right, int Cmp(Data x, Data y, int order), int order){ int pl; int pr; Data x; while(1) { pl =left; pr =right; x = a[(pl+pr)/2]; do { while(Cmp(x, a[pl], order)) pl++; while(Cmp(a[pr], x, order)) pr--; if ( pl <= pr ){ swap(Data , a[pl], a[pr]); pl++; pr--; } } while(pl <= pr ); if (left < pr) {right = pr; continue;} if (pl < right) {left = pl; continue;} break; } }
285 名前:自分が解けもしないくせに口だけは大きい馬鹿 [2009/03/15(日) 23:14:59 ] 283 名前:デフォルトの名無しさん 投稿日:2009/03/15(日) 22:55:57 分割統治法を非再帰でやらせるとか クソ課題以外の何者でもないだろ
286 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 23:15:35 ] オレが解けないのは課題が悪いからだ!
287 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 23:18:06 ] >>281 >>283 スレ違い。公開オナヌーは他所でどぞ。
288 名前:デフォルトの名無しさん [2009/03/15(日) 23:26:07 ] 口先だけのヤツは、いつも自分がそれに対してどう思うか? という主観しか述べず、問題があるなら問題点を指摘するなり 客観性のある見解を示さず、自分が言ったことを反対されると ファビョるだけの井の中の蛙なんだなぁ
289 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 00:15:42 ] >>284 さんありがとうございますm(_;)m
290 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 00:51:08 ] >>289 間違っる。 最初のleftとrightを記憶し、 左側を絞り込み、記憶しておいたleftとrightで右側を絞り込むように 2回に分けないといけないみたい。
291 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 01:04:18 ] >>283 再帰を反復に変換するのは普通の課題だろ。
292 名前:デフォルトの名無しさん [2009/03/16(月) 01:15:13 ] 初心者です。 /*BMI.c*/ #include<stdio.h> int main() { double a,b,c; c=b/(a*a); printf("あなたの身長(m)を入力してください。-----"); scanf("%f",&a); printf("あなたの体重(kg)を入力してください。-----"); scanf("%f",&b); printf("あなたのBMIは%fです。\n",c); if(c >=25){ printf("あなたは肥満です。"); } return 0; } これはあってますか?
293 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 01:19:08 ] >>292 間違ってます。
294 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 01:25:59 ] 修正? void quick(Data a[], int left, int right, int Cmp(Data x, Data y, int order), int order){ int pl;int pr;Data x;int _right; _right = right; while(1) { pl = left;pr = right;x = a[(pl+pr)/2]; do {while(Cmp(x, a[pl], order)) pl++;while(Cmp(a[pr], x, order)) pr--; if ( pl <= pr ){swap(Data , a[pl], a[pr]);pl++;pr--;} } while(pl <= pr ); if (left < pr) {right = pr; continue;} break; } left = 1;right = _right; while(1) { pl = left;pr = right;x = a[(pl+pr)/2]; do {while(Cmp(x, a[pl], order)) pl++;while(Cmp(a[pr], x, order)) pr--; if ( pl <= pr ){swap(Data , a[pl], a[pr]);pl++;pr--;} } while(pl <= pr ); if (pl < right) {left = pl; continue;} break; } }
295 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 02:16:47 ] それじゃ無理だろ
296 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 03:09:37 ] 修正の修正? void quick(Data a[], int left, int right, int Cmp(Data x, Data y, int order), int order){ int pl; int pr; Data x; int _right; _right = right; while(1) { pl = left; pr = right; x = a[(pl+pr)/2]; do { while(Cmp(x, a[pl], order)) pl++; while(Cmp(a[pr], x, order)) pr--; if ( pl <= pr ){ swap(Data , a[pl], a[pr]); pl++; pr--; } } while(pl <= pr ); if (left < pr) {right = pr;continue;} else right = _right; if (pl < right) {left = pl;continue;} break; } }
297 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 04:16:12 ] >>294 >>295 >>296 重ね重ねありがとうございます
298 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 04:28:20 ] >>296 無駄が多い
299 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 04:55:23 ] >>298 模範解答をお願いします。
300 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 05:27:00 ] クイックソート 非再帰でググればいくらでも転がってるだろ
301 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 11:35:25 ] >>292 a,bに値が格納される前にcを計算しているので間違い。
302 名前:デフォルトの名無しさん [2009/03/16(月) 12:03:26 ] >>298 指摘するくらいなら、自分がそれに応じたコードを示せよ? ここんとこ、口先だけの役立たずw
303 名前:デフォルトの名無しさん [2009/03/16(月) 16:54:19 ] >>301 ありがとうございます。
304 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:16:54 ] [1] 授業単元:データ構造アルゴリズム [2] 問題文(含コード&リンク):要素数10個の整列配列を用意します。 要素を入力し、クイックソートを用いて昇順にソートするプログラムを作成しなさい。 [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([21年3月16日まで] ) [5] その他の制限: qsortを使わないでお願いします。
305 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:24:06 ] [1] 授業単元:データ構造アルゴリズム [2] 問題文(含コード&リンク):qsort関数を用いてソートするプログラムを作成しなさい。身長の昇順、視力の降順など、複数の条件でソートすること。 ※qsort関数 書式 void qsort(void*base,size_t nmemb,size_t size,int(*compar)(const void*,const void)) [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([21年3月16日まで] ) [5] その他の制限:
306 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:26:47 ] [1] 授業単元:データ構造アルゴリズム [2] 問題文(含コード&リンク):文字列から任意の文字を探索するプログラムを作成しなさい。 [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([21年3月16日まで] ) [5] その他の制限: なし よろしくおねがいします。
307 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:34:56 ] >>304 >>219 ,>>225
308 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:41:24 ] >>307 その問題はqsortを使っているので…
309 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:01:55 ] >>306 #include <stdio.h> #define BUFSIZE 108 char *mstrchr(const char *src, char ch) { for(;*src;++src) if(*src==ch) return (char*)src; return 0; } int main() { char buf[BUFSIZE], ch, *p; int c = '0'; printf("文字列:", buf); fgets(buf, BUFSIZE, stdin); /*if(!mstrchr(buf, '\n')) while(c!='\n'&&c!=EOF) c = getchar(); if(c==EOF) return 1;*/ printf("文字:", buf); ch = getchar(); p = mstrchr(buf, ch); if(p) printf("%d文字目\n", p-buf+1); else printf("なかった\n"); return 0; }
310 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:25:04 ] >>309 さんありがとうございます。
311 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:26:40 ] >>304 #include <stdio.h> #define N 10 void mqsort(int x[], int left, int right){ int i=left,j=right,p=x[(i+j)/2]; while(1){ while(x[i]<p) i++; while(p<x[j]) j--; if(i>=j) break; {int tmp = x[i]; x[i] = x[j]; x[j] = tmp;} i++;j--; } if(left<i-1) mqsort(x, left, i-1); if(j+1<right) mqsort(x, j+1, right); } int main(){ int a[N],i; for(i=0;i<N;++i)scanf("%d",a+i); mqsort(a,0,N-1); for(i=0;i<N;++i)printf("%d ",a[i]); return 0; }
312 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:29:24 ] >>309 strchr() に準じてだろうけど const char* で受けた一部を char* で戻すのって微妙に気持ち悪いよね
313 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:34:35 ] >>311 dクスです。
314 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:38:22 ] >>308 >>279
315 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:56:12 ] [1] 授業単元:データ構造アルゴリズム [2] 問題文(含コード&リンク): "string"の先頭の三文字を入力した文字の三文字と比較して、 一致すれば0を一致しなければ1を出力するプログラムを作成しなさい。また、"XXXX"を入力すると終了するようにしなさい。 [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([21年3月16日まで] ) [5] その他の制限: なし よろしくおねがいします
316 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:04:01 ] [1] 授業単元:データ構造アルゴリズム [2] 問題文 ある文の中に指定した語が見つかるとその場所を表示するプログラムをBM法を用いて作成しなさい。 [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([21年3月16日まで] ) [5] その他の制限: なし おねがいします
317 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:13:43 ] どんだけ宿題溜め込んでるんだよw
318 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:45:41 ] >>315 #include <stdio.h> #include <string.h> int main(){char s[]="string",b[5];return fgets(b,5,stdin)&&strcmp(b,"XXXX")&&printf("%d",strncmp(b,s,3)?1:0)>=0;}
319 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:54:58 ] >>318 短いっすね。ありがとうございます。
320 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:01:32 ] >>318 これで出したらやり直しくらいそうだがな
321 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:16:21 ] >>318 教員もこんな簡単な問題に対して,こんな大人げない解答出されたら疑問に思うわなw
322 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:54:37 ] >>318 お前のような漢になりたい
323 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:17:48 ] >>320-322 むしゃくしゃしてやった。反省はしていない。 >>316 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8981.txt
324 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:44:34 ] >>323 これは信用していいんですよね?
325 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:47:51 ] >>311 だからqsortは使っちゃだめ!
326 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:05:18 ] >>315 ./a <ソース.c #include <stdio.h> int main() { char s[] = "string", b[1024]; /* string */ do { if(!gets(b)) return 1; printf("%d\n", strncmp(b,s,3) ? 1:0); } while(strcmp(b, "XXXX")); return 0; }
327 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:19:52 ] >>326 ./a<ソース.cが意味不明なんですけど
328 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:26:25 ] >>326 >>318 の後にこれを貼る勇気に乾杯 とりあえずgetsはやめろ
329 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:36:55 ] [1] 授業単元:データ構造アルゴリズム [2] 問題文(含コード&リンク):要素数10個の整数配列を用意します。要素を入力し、シェルソートを用いて昇順にソートするプログラムを作成しなさい。 今回は、比較幅を1,2,4,8…のような2のべき乗とする。 [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([21年3月16日まで] ) [5] その他の制限: なし よろしくおねがいします
330 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:42:12 ] 2021年か、結構先だな
331 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 23:11:38 ] >>315 ./a <ソース gets使ってしまった。 #include <stdio.h> int main() { char s[] = "string", b[1024]; /* string */ do { if(!fgets(b,1024,stdin)) return 1; printf("%d\n", strncmp(b,s,3) ? 1:0); } while(strcmp(b, "XXXX\n")); return 0; }
332 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:07:12 ] >>329 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8982.txt
333 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:10:26 ] >>329 比較幅って言葉の意味がわかんね。
334 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:17:02 ] >>332 さんありがとうございます。
335 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:54:07 ] [1] 授業単元:データ構造アルゴリズム [2] 問題文(含コード&リンク):qsort関数を用いてソートするプログラムを作成しなさい。身長の昇順、視力の降順など、複数の条件でソートすること。 ※qsort関数 書式 void qsort(void*base,size_t nmemb,size_t size,int(*compar)(const void*,const void)) [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([09年3月17日まで] ) [5] その他の制限:
336 名前:335 mailto:sage [2009/03/17(火) 00:58:08 ] お願いします。この問題とかないと単位がやばいです。
337 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 01:01:11 ] >>335 入力の形式が分からん。勝手に決めていいのか?
338 名前:335 mailto:sage [2009/03/17(火) 01:05:26 ] いいです。レスください!
339 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 01:32:54 ] >>335 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8983.txt
340 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 01:44:02 ] >>339 修正 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8985.txt
341 名前:335 mailto:sage [2009/03/17(火) 06:18:57 ] >>340 ありがとうございます。
342 名前:335 mailto:sage [2009/03/17(火) 07:09:00 ] すいません!ヘッダとしてが必要という条件が出ているのを忘れてました。どなたか <stdlib.h>を使った>>335 をレスお願いします!
343 名前:335 mailto:sage [2009/03/17(火) 07:10:59 ] すいません訂正ですヘッダとして<stdlib.h>が必要という条件が出ているのを忘れてました。どなたか <stdlib.h>を使った>>335 をレスお願いします!
344 名前:335 mailto:sage [2009/03/17(火) 07:16:32 ] >>340 さんせっかくレスくれたのに申し訳ありません。
345 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 07:39:30 ] >>1 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
346 名前:335 mailto:sage [2009/03/17(火) 07:45:25 ] そこをなんとか!せっぱつまってるんです。
347 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 07:48:51 ] 340の void qsort(void*base,size_t nmemb,size_t size,int(*compar)(const void*,const void*)); の代わりに #include <stdlib.h> にすりゃいいだけだろw
348 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 07:51:12 ] >>346 qsort()のプロトタイプ宣言を#include<stdlib.h>に置き換える
349 名前:335 mailto:sage [2009/03/17(火) 08:00:10 ] >>347 さん>>348 さんありがとうございます。
350 名前:デフォルトの名無しさん [2009/03/17(火) 12:41:52 ] 論より証拠、言葉よりソースコード、日本語よりプログラム言語 分かったか?最近、口先だけの、新入りは?
351 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:02:20 ] >>350 ソースでくれ
352 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:27:20 ] >>351 ttp://www.bulldog.co.jp/products/home/
353 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:28:06 ] いまどきそれかよw
354 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:34:08 ] >>353 ttp://www.otafuku.co.jp/
355 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:48:04 ] 腹減るじゃんか。
356 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 15:06:26 ] やっぱり今時はおたふくだよねー
357 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 16:46:44 ] よろしくお願いします。 [1] 授業単元: プログラミング実習 [2] 問題文 キーボードから名前と年齢を入力し、入力した順序につながったリストを作成して、それを利用して表示するプログラムを作成しなさい。 (実行例) >%a.out Please,write down your name >taro How old are you? >27 Continue?yes(1)or no(0)>1 Please,write down your name >hanako How old are you? >27 Continue?yes(1)or no(0)>0 taro /27 hanako /27 >% [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([09年3月17日まで] ) [5] その他の制限: (なし)
358 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:31:22 ] このプログラム./a.outしても%がでてしまうのですがどこを直せばいいですか? ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8981.txt
359 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:45:20 ] >>357 張り付いてリロードリロード大変でしょ? ネタ投下したらしばらく 本読むなりバイトするなり有意義に時間使いなよ
360 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:50:20 ] 323 :デフォルトの名無しさん :2009/03/16(月) 21:17:48 >>320-322 むしゃくしゃしてやった。反省はしていない。 >>316 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8981.txt ./a std <8981.c <-- これでOK
361 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:53:11 ] >>360 いやそれじゃだめなんすよ…
362 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:06:35 ] ttp://tokyo-ct.net/usr/kosaka/for_students/jissen1/akiyojissen1/kougi17.html BM法
363 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:10:50 ] >>362 嫌そうじゃないだろう。 (実行例) % ./a.out <8981.c 入力した文字列は:#include <stdio.h> 検索する文字列を入力してください:std 10 文字目で一致しました。(一致する文字列が見つかりませんでした。) % でOK?
364 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:15:51 ] >>357 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8986.c
365 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:17:52 ] え?./a.out<8981.cって入力するんですか?
366 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:19:49 ] >>364 さん。ありがとうございます。
367 名前:360 mailto:sage [2009/03/17(火) 18:22:37 ] >>361 以下のように入力すると答えが出る。 % ./a.ou std <8981.c 10 %
368 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:34:47 ] >>357 364に先越されたorz... #include<stdlib.h> #include<stdio.h> typedef struct P{struct P*x;char n[64];int a;}P; P h,*c=&h;int q; int main(){  for(;   c->x=malloc(sizeof(*c)),c=c->x,c->x=0,   printf("Please,write down your name >"),scanf("%63s",&c->n),   printf("How old are you? >"),scanf("%d",&c->a),   printf("Continue?yes(1)or no(0)>"),scanf("%d",&q),q;  );  for(c=&h;c=c->x;printf("%s /%d\n",c->n,c->a)); }
369 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:38:53 ] >>368 さんありがとうございます。
370 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:39:00 ] くせぇくせぇ、後だし麻呂の臭いがぷんぷんすんぜ
371 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:40:48 ] こりゃ〜生粋のクソースだ、クソースを消毒だ〜
372 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 19:31:03 ] >>357 オリジナルは>>368 さんのソース。 #include<stdio.h> typedef struct P { struct P *x; char name[64]; int age; } Q ; int main(){ Q h, *c = &h; int qa; char dmy[2]; do { c->x = malloc(sizeof(*c)); c = c->x; c->x = 0; printf("Please,write down your name >"), fgets(c->name, 64, stdin); c->name[strlen(c->name)-1] = '\0'; printf("How old are you? >"), scanf("%d", &c->age); printf("Continue?yes(1)or no(0)>"), scanf("%d%c", &qa, dmy); } while (qa); for( c = &h; c = c->x; ) printf("\n%s /%d", c->name, c->age); }
373 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:19:37 ] ネタ切れー?
374 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:35:51 ] mallocしたあとfreeしなくていいのか?
375 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:37:47 ] 課題だから書かないとダメってぐらいのレベルじゃね?
376 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:39:26 ] いまどきのハードウェアでfreeしなくちゃならんヤツなんて皆無だろ freeとか気取ってやってるソース見たらデスクトップ破りたくなる
377 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:41:12 ] >>376 好きなだけ破ってろよマヌケ
378 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:04:22 ] >>377
379 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:50:49 ] >>357 >>374 free追加したぞ。>>376 のデスクトップ破れ。 #include<stdlib.h> #include<stdio.h> struct P{struct P*x;char n[64];int a;}h,*c=&h,t; int main(){  for(;   (c=c->x=malloc(sizeof(*c)))->x=0,   printf("Please,write down your name >"),scanf("%63s",&c->n),   printf("How old are you? >"),scanf("%d%*c",&c->a),   printf("Continue?yes(1)or no(0)>"),getchar()-'0';  );  for(c=&h;c=c->x;t=*c,free(c),c=&t)printf("%s /%d\n",c->n,c->a); }
380 名前:今年度最高峰のレス [2009/03/18(水) 03:28:13 ] >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376
381 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 12:35:35 ] ハードがどうとか言う前に、例えmainの最後だろうと、メモリの動的確保をしたら それに対してfreeはセットで使うのが望ましいのだが
382 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 12:49:28 ] struct P tいらんかった。  for(;c=h.x;h=*c,free(c))printf("%s /%d\n",c->n,c->a);
383 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 12:58:14 ] たまに、プログラムが異常終了して、跡が残ることはある。 自分は大学で、ネットワーク関連の管理に携わったことがあるが、 ユーザがログオフしても、まだログインしたまま残ることもあった。 そう、コンピュータやプログラムには完璧なんて無いんだよ。 だから、こうやって今も、昔から色々と改善がされているんだろ? その改善の経緯をもとに、こういったものも作られていくんだよ。 ただ単に、電子計算機に数値を与えて、処理をすれば良いわけじゃない、 システムを運営するのは。
384 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:01:14 ] どこを縦読み?
385 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:06:27 ] ネットゲームでクライアントを終了してもキャラがサーバーに残って 再ログインしようとしても入れませんでしたw
386 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:19:57 ] 大学でUNIXを使っていたが、まぁそれは管理者が今も普通に使っている OSの基本。学生がワークステーションからログインして、終了するときに ログオフの手続きをせずに、接続、作業で使っているプログラムを Windowsのウィンドウの右上にあるクローズボックスで閉じてしまう人もいる。 それ以前に、コンピュータの電源スイッチを押して起動は出来るのだが 終了する際に、OSの終了手続きを取らずに電源を切ってしまった人もいた。 それにおけるトラブルも体験したさ。そういった、管理者側の立場になれば、 エンドユーザの身勝手さや、それを阻止する手立てや仕組みを作るのも、 プログラマーには必要なのさ、ワトソン君。
387 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:51:52 ] また、OSも完璧ではない。プログラムを作った側の措置が不十分だったのか、 あるいはハードウェアに問題があったのか?それに応じてデバッグされることもある。 ただ、それも本当は、プログラマーの思い違いにより、作り直せば解決するものもあるが、 巨大なプロジェクトでいくら個別にモジュールを改良できるとしても、根幹、組み合わせ方に 問題があれば、やり直すしかない。ただ、この世には既にある定石、常套手段を用いてやれば 特に余計なことをしなければ、問題は起きないもんだよ。 しかし、人間の行動までは、正直、予期できない。今もなお、過去から続く争い。 裁判、解決のための判例作り。そして、判例に基づいて、今後は処理される人間同士の トラブル。PCのトラブルなんて、電子計算機をちょちょいと弄れば済むことが多く、 楽なものですね、ポワロ殿。
388 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:02:47 ] >>386 ,387___ / || ̄ ̄|| ∧∧ | ||__|| ( ) | ̄ ̄\三⊂/ ̄ ̄ ̄/ | | ( ./ / ___ ゴキッ / || ̄ ̄|| <⌒ヽ )) | ||__|| < 丿 | ̄ ̄\三⊂/ ̄ ̄ ̄/ | | ( ./ / ___ / || ̄ ̄|| ∧∧ | ||__|| ( ) | ̄ ̄\三⊂/ ̄ ̄ ̄/ | | ( ./ / ___ / || ̄ ̄|| | ||__|| ミ ゴトッ | ̄ ̄\三⊂/ ̄ ̄ ̄/ミ ,'⌒> | | ( ./ / l、_>
389 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:17:40 ] それで、結局、例え初歩的だろうとプログラムを作る以上は、何かしら そういったシステムに関わる部分の知識も必要になるわけだろ? 第一、APIを使っているだけでも、既に出来上がったその仕組みを知ることになるし。 麻ー呂っくの後に、振りーを忘れないで賜う。
390 名前:372 mailto:sage [2009/03/18(水) 15:41:13 ] 実体のコピーを省く。 P *t; for( c=h.x; c!=0; c=t) printf("\n%s /%d", c->n, c->a), free((t=c->x,c));
391 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 15:49:31 ] 病気が進行してるw
392 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:02:20 ] 聞き方が悪いかもしれませんが hairetsu[0] = 10 hairetsu[1] = 5 hairetsu[2] = 13 ... というようなものにたいして rank[0] = 1 rank[1] = 0 rank[2] = 2 ... というような感じにしてくれる関数はありますか? それとも,自分で作らないとないですか?
393 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:11:30 ] >>392 無いです multimap もしくは map にいれてイテレータで取り出せばおk
394 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:14:41 ] 何がしたいのか訳わからん。エスパー検定? rankと聞くと行列の階数を思い出す。 なんか、肝心な所を省略してません?
395 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:15:50 ] hairetsuのそれぞれの要素の大小関係をrankに0から入れていると? 並び替えの応用でやってみ。
396 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:25:42 ] >>392 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int hairetsu[10], rank[10], i, j, temp; srand(time(NULL)); for(i=0; i<10; i++) rank[i] = i, hairetsu[i] = rand() % 100; for(i=0; i<10; i++) { for(j=9; j>i; j--) { if(hairetsu[rank[j]] < hairetsu[rank[j-1]]) { temp = rank[j]; rank[j] = rank[j-1]; rank[j-1] = temp; } } } for(i=0; i<10; i++) printf("hairetsu[%d] = %2d, rank[%d] = %d\n", i, hairetsu[i], i, rank[i]); return 0; } こんな感じにrankの方をソートしても可
397 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:42:36 ] >>325
398 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:59:18 ] >>397 どした?
399 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 19:15:15 ] >>398 やらないか?
400 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 19:19:17 ] >>396 ん?んんんっ?
401 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 21:04:01 ] struct{int hairetu; int rank;} data[10]; rankには0を初期値として入れておいて、dataをhairetuでソートして、 次にrankに0〜9をセットして、もう一度、dataをrankでソート。 これは、「バブルソート」という名前。 #include <stdlib.h> #include <time.h> int main(void) { int hairetsu[10], rank[10], i, j, temp; srand(time(NULL)); for(i=0; i<10; i++) rank[i] = i, hairetsu[i] = rand() % 100; for(i=0; i<9; i++) { for(j=9; j>i; j--) { if(hairetsu[j] < hairetsu[j-1]) { temp = rank[j], rank[j] = rank[j-1], rank[j-1] = temp; temp = hairetsu[j], hairetsu[j] = hairetsu[j-1], hairetsu[j-1] = temp; } } } for(i=0; i<10; i++) printf("hairetsu[%d] = %2d, rank[%d] = %d\n", rank[i], hairetsu[i], rank[i], i); return 0; }
402 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 21:18:19 ] stdio.h 同じ値でもrankの中の値が違う
403 名前:392 mailto:sage [2009/03/18(水) 23:24:12 ] 適当な聞き方をしてしまってすみません。 ただ配列の値がでかい順や小さい順で順位をつけられないかなと思ったので。 ありがとうございました。
404 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 23:37:12 ] [1] 授業単元:プログラミング実習 [2] 問題 ガウス・ジョルダン法+ピボット選択法を用いて以下の連立1次方程式を解くプログラムを作成しなさい。 2x+3y+z=4 4x+y−3z=-2 −x+2y+2z=2 [3] 環境 [3.1] OS: (UNIX) [3.2] : (gcc) [3.3] 言語: (C) [4] 期限: ([09年3月19日12:00まで] ) [5] その他の制限: (なし) よろしくおねがいします。
405 名前:デフォルトの名無しさん [2009/03/18(水) 23:50:24 ] [1] 授業単元: アルゴリズム [2] 問題文:ハッシュ探索(チェイン法)のプログラムを作成しなさい。 1・データファイル「j2」を読み込みなさい。 2・任意の語彙がいくつ使われているか調べなさい。 3.データの追加、削除、表示ができるようにしなさい。 データはyahooのtopページをテキスト化したものとする。 検索文字列:任意の文字(列)、(例として「配信」など)の使用回数を 調べなさい。 画面の表示例は、 1:表示 2:検索(任意の文字検索&任意の文字の個数) 3:追加 4:削除 5:終了 以上のことをふまえたプログラムをサンプルを変更して作りなさい。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 3月19日夕方まで [5] その他の制限: ライブラリ関数はサンプル以外使用しない。
406 名前:デフォルトの名無しさん [2009/03/18(水) 23:51:43 ] >>405 サンプルはこれです。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8989.txt
407 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 23:58:15 ] よろしくお願いします。 [1] 授業単元:データ構造アルゴリズム [2] 問題文(含コード&リンク):タグ名をpricetype,メンバ名をteika,waribikiとする構造体kakakuとタグ名goodstype, メンバ名をname[30],kakaku(←構造体)とする要素数10個の構造体配列goodsを作成し、商品名と定価を入力すると商品名、 定価、割り引き価格の一覧が表示されるプログラムを作成しなさい。」ただし、割引価格は、定価が1000円以上の場合は 定価の2割引、それ以外は1割引とする。また、表示するときはポインタを使用すること。 [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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
408 名前:407 mailto:sage [2009/03/19(木) 00:04:18 ] すいません環境等書き忘れていましたosはUNIX、コンパイラはgcc期限無期限その他制限なしでお願いします。
409 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:56:43 ] >>399 何を?
410 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 01:56:56 ] >>392 >>396 への追加。 #include <stdio.h> #include <time.h> int main(void) { int hairetsu[10], rank[10], index[10], i, j, temp; srand(time(NULL)); for(i=0; i<10; i++) rank[i] = i, hairetsu[i] = rand() % 100; for(i=0; i<9; i++) { for(j=9; j>i; j--) { if(hairetsu[rank[j]] < hairetsu[rank[j-1]]) { temp = rank[j]; rank[j] = rank[j-1]; rank[j-1] = temp; } } } for(i=0; i<10; i++) { printf("hairetsu[%d] = %2d, index[%d] = %d\n", i, hairetsu[i], i, rank[i]); index[i] = i; } for(i=0; i<9; i++) { for(j=9; j>i; j--) { if(rank[index[j]] < rank[index[j-1]]) { temp = index[j]; index[j] = index[j-1]; index[j-1] = temp; } } } for(i=0; i<10; i++) printf("rank[%d] = %d\n", i, index[i]); return 0; }
411 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 04:17:31 ] >>410 人のコードに無駄なもの付け足すなw for(i=0; i<10; i++) index[rank[i]] = i; で十分だろうが
412 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 07:01:36 ] ありがとうございます。それで、2回もソートする必要ないですね。 やってみます。
413 名前:407 mailto:sage [2009/03/19(木) 07:59:06 ] すみません言語c言語で期限は今日のお昼までにお願いします!
414 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 08:42:42 ] >>407 #include<stdio.h> #include<string.h> #include<math.h> typedef struct pricetype{int teika, waribiki;}kakaku; typedef struct goodstype{char name[30];kakaku kakaku;}goods; int get_waribiki(int price){ return (price>=1000)?round(price*0.8):round(price*0.9); } void print_goods(goods *p){ printf("name:%s teika:%d waribiki:%d\n", p->name, p->kakaku.teika, p->kakaku.waribiki); } int main(void){ goods goods[10]; int i, price, goods_num; char buf[30], *p; for(i=0;i<10;i++){ printf("Input name : "); if(fgets(buf, sizeof(buf), stdin)==NULL) break; if((p=strchr(buf, '\n'))) *p='\0'; strcpy(goods[i].name, buf); input_price: printf("Input price : "); if(fgets(buf, sizeof(buf), stdin)==NULL) break; if(sscanf(buf, "%d", &price)!=1) goto input_price; goods[i].kakaku.teika=price; goods[i].kakaku.waribiki=get_waribiki(price); } goods_num=i; for(i=0;i<goods_num;i++) print_goods(goods+i); return 0; }
415 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 09:21:23 ] #include <stdio.h> #define N 10 struct goodstype { char name[30]; /* 商品名 */ struct pricetype { int teika; /* 定価 */ int waribiki; /* 割り引き価格 */ } kakaku; } goods[N]; int main(void) { int i, num; struct goodstype *work; for(i=0; i<N; i++) { work = &goods[i]; printf("商品名[%d/%d]?",i+1,N); fgets(work->name, 30, stdin); work->name[strlen(work->name)-1] = '\0'; do { printf("定価[%d/%d]?",i+1,N); num = scanf("%d", &work->kakaku.teika); getchar(); } while(num == 0); if(work->kakaku.teika >= 1000) work->kakaku.waribiki = work->kakaku.teika * (1-0.2); else work->kakaku.waribiki = work->kakaku.teika * (1-0.1); } printf("商品名,定価,割り引き価格\n"); for(i=0; i<N; i++) { work = &goods[i]; printf("\"%s\",%d,%d\n",work->name, work->kakaku.teika, work->kakaku.waribiki); } return 0; } >>407
416 名前:407 mailto:sage [2009/03/19(木) 16:23:45 ] >>415 さんありがとうございます
417 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 01:16:32 ] >>405 こうか? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8991.txt サンプルにファイルを読む関数がないんだが、「読み込みなさい」とか「調べなさい」は手作業? 探索や削除が間違っとる気がして変えたが、間違ってなかったらマクロを両方とも100に戻しといてくれ。
418 名前:417 mailto:sage [2009/03/20(金) 01:48:36 ] ごめん。寝付けん暇つぶしでやっとったら、期限見落としとったorz
419 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 17:59:26 ] ネタ投下キボン
420 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 19:57:17 ] 問題出す方も大変だ。 [1] 授業単元: [2] 問題文(含コード&リンク): pc11.2ch.net/test/read.cgi/tech/1232627790/211 【 課題 】 課題1. 以下のような賭をすることを考えます. 1. 開始時の所持金をA円とします. 2. 目標とする金額をB円とします. 3. さいころを投げて偶数の場合は1円を獲得,奇数の場合は1円を失います. 4. 所持金が目標額のB円に到達すれば賭は終了,また所持金が0になった場合は破産で終了とします. 数学的な考察をすると,この賭の期待値はA円となります.つまり,何回もこの賭を続けていると,成功したり破産したりしますが,平均すると元の所持金しか得られないということです. また,勝ち負けまでに投げるさいころの回数の平均は,(B-A)×Aとなります. たとえば,開始時の所持金をA=8円,目標額をB=10円とすると,勝つ確率は8割,1ゲームあたり平均すると(10-8)×8=16回,さいころを投げることになります. このことは,賭をしても儲からない,ことを意味していますね. このことを確かめるプログラムを作成しなさい.
421 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:02:31 ] 入力した文字に対応するモールス信号を出力するプログラム、お願いします
422 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:12:20 ] >>1
423 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:14:19 ] >>421 テンプレ嫁
424 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:17:15 ] 読んだけど課題じゃないし書くのめんどくさい 頼んだぜ
425 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 23:06:55 ] >>424 ・・・−−−・・・
426 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:39:28 ] >このことは,賭をしても儲からない,ことを意味していますね. ダウト。一部の人間が損をし(破産し)、一部の人間が儲かることを意味している。
427 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:46:19 ] 分散と試行回数による
428 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:51:43 ] 問題の問題点を指摘するルートに入ってるw >問題出す方も大変だ。 本人も問題を出すつもりだったのだから,本望かw
429 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:54:33 ] >また,勝ち負けまでに投げるさいころの回数の平均は,(B-A)×Aとなります. マジで?
430 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 02:21:08 ] [1] 授業単元:C言語 [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm [3] 環境 [3.1]OS:Win [3.2] VC 6.0 [3.3]言語:C [4]期限:3月24日 [5]その他の制限:main関数以外に自作の関数を利用する どなたかよろしくお願いします。
431 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 02:39:02 ] >>430 最高に間抜けだな
432 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 02:41:04 ] 前スレにあった気がする
433 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 02:42:14 ] スレと時刻的に8992だろ?
434 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 02:57:50 ] >>430 8992で合ってんなら kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8993.txt
435 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 03:38:25 ] >>420 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int i, j, targetMoney, startMoney, currentMoney; int totalGame = 10000, totalDice = 0, totalWin = 0; srand(time(NULL)); printf("所持金を入力してください:"); scanf("%d", &startMoney); printf("目標額を入力してください:"); scanf("%d", &targetMoney); for(i=0; i<totalGame; i++) { for(j=1, currentMoney = startMoney; ; j++) { if((int)(rand() / (RAND_MAX + 1.0) * 6) & 1 ) currentMoney++; else currentMoney--; if(currentMoney == targetMoney) { totalWin++; break; } if(currentMoney == 0) break; } totalDice += j; } printf("勝率%.2f%% 平均回数%.2f\n", 100.0 * totalWin / totalGame, (double)totalDice / totalGame); return 0; }
436 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 12:08:02 ] >>434 すみません、8992です ありがとうございました
437 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 02:29:33 ] [1] 授業単元:基礎演習 [2] 問題文:ttp://www.pref.fukushima.jp/pc-concours/2009/03/pdf/2008honsen.pdf 10ページ目の6問目です [3] 環境 [3.1] OS:Win [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C 考えれば考えるほどわからなくなっていましました… 良ければよろしくお願いします。
438 名前:437 mailto:sage [2009/03/22(日) 02:38:00 ] 437です。 [4]期限:4月1日12:00 [5]その他制限:特になし 改めてお願いします。
439 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 02:56:56 ] >>437 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8994.c
440 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 02:58:58 ] あ、printfに\n入れるの忘れてた
441 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:05:55 ] >>437 #include <stdio.h> #include <stdlib.h> int main() { int n, *data, key, begin, end, mid, i; while(1){ scanf("%d", &n); if(n <= 0) break; data = (int *)malloc(sizeof(int) * n); for(i = 0; i < n; i++) scanf("%d", &(data[i])); scanf("%d", &key); begin = 0; end = n - 1; for(i = 0; begin <= end; i++){ mid = (begin + end) / 2; if(data[mid] == key){ i++; break; } if(data[mid] < key) begin = mid + 1; else end = mid - 1; } printf("%d\n", i); free(data); } return 0; }
442 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:06:27 ] 速いなorz
443 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:11:59 ] i++を二箇所に書くくらいならi=1からはじめればいいのに。
444 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:23:14 ] begin > endで抜けることを考えてi++2つとしたが、非常に頭悪いことをしてる気がする。
445 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:53:53 ] こんなプログラムメンテしたくない。というか、プログラミングのセンスないね、チミ。
446 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:54:54 ] >>445 先生のセンスをこのスレの奴らに見せ付けてやってください!
447 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 09:22:37 ] >>445 うん、ないよ。でも、趣味でしかないし、1人でのんびりやれればいいから 下手の横好きでもいいかなー。
448 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 10:03:53 ] >>445 メンテじゃなくて、先輩社員が作ったプログラムを触る仕事しかさせてもらえないんだろ?
449 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 12:32:16 ] >>441 ぱっと見、無限ループの可能性有だな〜 問題10ではOKだけど、脱出条件組み込んだ方が吉 if(begin == end) break;見たいな
450 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 12:35:24 ] >>449 へーそーなのかーwww
451 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 12:44:41 ] scanfで値読んでるからマイナス入れれば終了するか・・・ >>450 サンクス それより、問題文だとファイルアクセスっぽいがコマンドラインでよいのか?
452 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 12:52:55 ] 何を言ってるのかわからない >for(i = 0; begin <= end; i++){ で脱出条件とやらは十分だと思うが
453 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:02:46 ] >>452 いや、外のWhile抜けないでしょそれじゃ。 While抜ける条件が、nのScanf or 値が同じ時のみ。 同値無し && 入力無し時のことを言ってる
454 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:06:44 ] 外のwhile抜けるのになんでbeginとendが出てくるんだよw
455 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:10:30 ] >>454 441のプログラムを見れば分かると思うが、While(1)で無限ループしてんだぞ? んで、beginとendで配列範囲を設定して、2文探索をしてる。 同値無し時にbeginとend判定しなくなるから、同値breakがキャンセルされ、あとはScanf()のbreakだけになる。 何を持ってbegin/endで煽るのか分かりかねる。
456 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:12:58 ] 二分探索で見つからなかった場合に終了なんて、問題文のどこを探しても書いてありませんがw
457 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:14:22 ] 終了しないとも書いてないなw
458 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:16:39 ] もしかして、見つかった場合のbreakで外側のループ抜けるとか思ってないか?
459 名前:デフォルトの名無しさん [2009/03/22(日) 13:18:06 ] >>417 返事遅くなってすいません。 期限が延びて明日までになりました。 サンプルでは読み込む関数はないので自分で作成せよと本日問題追加されました。
460 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:30:33 ] >>455 begin/endはプログラムの終了と関係ないからだろ。 見つからなかった場合でも、終了するのはプログラムじゃなくて「探索」だぞ。 >探索の範囲がつきてしまった時に探索 >を終了します。
461 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:32:02 ] >>453 > While抜ける条件が、nのScanf or 値が同じ時のみ。 値を見つけた時に抜けているのはforだぞ
462 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:32:47 ] そもそも0を読み込んだら終了なのも理解できてないようだ
463 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:33:38 ] WhileとかScanfとか書いてるからただのアホだろw
464 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 15:56:15 ] >>441 さん >>459 % ./a.out <data でファイル入力[Enter] #include <stdio.h> int BinarySearch(void); int main(void) { while(!BinarySearch()); return 0; } int BinarySearch(void) { int n=0, *data, key=0, begin=0, end, mid, i; if(scanf("%d", &n) != 1) return 1; if(n == 0) return 0; if(n < 0) return 2; if((data = (int *)malloc(sizeof(int) * n)) == NULL) return 3; for(i = 0; i < n; i++) if(scanf("%d", &(data[i])) != 1) {free(data); return 1;} if(scanf("%d", &key) != 1) {free(data); return 1;} for(i = 1, end = n-1; begin < end; i++){ mid = (begin + end) / 2; if(data[mid] < key) begin = mid + 1; else end = mid - 1; } printf("%d\n", i); free(data); return 0; }
465 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 16:01:02 ] n==0のとき0返してどうすんだよw
466 名前:465 mailto:sage [2009/03/22(日) 16:12:54 ] 0はfalse、while(!false);で次のデータ。
467 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 16:42:40 ] 問題は0で終了なのに、また関数呼び出してscanf()失敗してからループ抜けるってのがどうなのかって話
468 名前:466 mailto:sage [2009/03/22(日) 16:48:42 ] 464が俺だ。どうすんだよd どうもしない。
469 名前:464 mailto:sage [2009/03/22(日) 18:28:13 ] >>464 修正 #include <stdio.h> #define returnVal(n) {free(data); return n;} int BinarySearch(void); int main(void) { while(BinarySearch() == 0); return 0; } int BinarySearch(void) { int n=0, *data, key=0, begin=0, end, mid, i; if(scanf("%d", &n) != 1) return 2; if(n == 0) return 1; if(n < 0) return 0; if((data = (int *)malloc(sizeof(int) * n)) == NULL) return 3; for(i = 0; i < n; i++) { if(scanf("%d", &(data[i])) != 1) returnVal(2) if(data[i] == 0) returnVal(1) } if(scanf("%d", &key) != 1) returnVal(2) if(key == 0) returnVal(1) for(i = 1, end = n-1; begin < end; i++){ mid = (begin + end) / 2; if(data[mid] < key) begin = mid + 1; else end = mid - 1; } printf("%d\n", i); returnVal(0) }
470 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 18:56:59 ] 気持ち悪いマクロだw
471 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 19:09:48 ] #define returnVal free(data); return {returnVal 2;} のほうがよかったかd
472 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 22:11:35 ] いやそこじゃないだろw
473 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 02:02:49 ] BinarySearch() で nの入力 malloc free をやろうとする頭がキモイ
474 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 09:38:05 ] >>437 負の値と零も検索出来るように。マクロ似のmainも外した。 #include <stdio.h> int main(void) { int n=0, *data, key=0, begin, end, mid, i; while(1) { if(scanf("%d", &n) != 1) break; if(n == 0) break; if(n < 0) continue; // 暫定コンティニュー if((data = (int *)malloc(sizeof(int) * n)) == NULL) break; for(i = 0; i < n; i++) { if(scanf("%d", &(data[i])) != 1) break; } if(i != n) { free(data); break; } if(scanf("%d", &key) != 1) { free(data); break; } for(i = 1, begin = 0, end = n-1; begin < end; i++){ mid = (begin + end) / 2; if(data[mid] < key) begin = mid + 1; else end = mid - 1; } printf("%d\n", i); free(data); } return 0; }
475 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 09:46:38 ] いつまでも引っ張るようなもんでもない
476 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:39:26 ] char*型を引数にとる関数に std::string型に格納されてる文字列を渡したいんですが、 c_str()の返す型がconst char *であるためうまく渡せません。 (char *)でキャスト変換するとコンパイルは通るのですが安全とはいえないです。 これを安全に渡すための方法があれば教えてください。 strcpyでコピーする方法はwarningが出てしまいます。 環境はVS2005です。
477 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:41:26 ] >>476 (char *)でキャストで良いと思います。
478 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:43:38 ] キャストを用いることはプログラマーが結果に関して責任を持つということ。 プログラマーが安全だと判断すればそれで良い。
479 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:50:04 ] const_cast使えば? だがスレ違いだ
480 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:51:15 ] C++なら(char *)じゃなくconst_cast<char *>だろーと議論に資しないことを申し奉りさぶらわんと欲す
481 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:54:18 ] [1] 授業単元:C言語 [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8997.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:4月2日 [5] その他の制限:ユーザ定義関数を利用する よろしくお願い致します。
482 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:11:37 ] コラッツの問題だw きっと誰かが剰余演算子を使わず,さらにはアクロバティックに書いてくれると期待w
483 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:16:06 ] >>481 #include <stdio.h> int collatz(int n) { int i; for(i = 0; n > 1; i++){ if(n % 2 == 0) n /= 2; else n = n * 3 + 1; } return i; } int main() { int n; while(1){ scanf("%d", &n); if(n == 0) break; printf("%d\n", collatz(n)); } return 0; }
484 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:17:47 ] >>477-480 本当にありがとう。参考になりました。
485 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:34:37 ] これくらいしか思いつかんかった。 #include <stdio.h> void main(){ int i=0,j; while((!i||printf("%d\n",j))&&scanf("%d",&i)&&i) for(j=0;i!=1;i=((i^1)&1)*(i>>1 )+(i&1)*((i<<1)+i+1),++j); }
486 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:26:57 ] >>483 さん #include <stdio.h> static int n = 0; void collatz(void) { int i; for(i = 0; n > 1; i++) if(n & 1) n *= 3, n++; else n >>= 1; printf("%d\n", i); } int main(void) { while(scanf("%d", &n) != EOF && n) collatz(); return 0; }
487 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:00:33 ] >>483 ありがとうございました 助かりました
488 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 09:42:53 ] >>476 >>484 おいキャストするな。 c_strを元にコピーすることを薦める次第だ。
489 名前:デフォルトの名無しさん [2009/03/25(水) 20:07:37 ] ほ
490 名前:デフォルトの名無しさん [2009/03/27(金) 04:12:17 ] 初歩的な問題だと思いますが、勉強し始めでわかりません。どうかよろしくお願いします 。 下記のソースを記述しコンパイルと実行を確認しなさい /** データ型 */ #include<stdio.h> void printDataType1(); main(){ printDataType1(); } /** * データ型の表示 * 単純に表示 */ void printDataType1(){ int intData = 10;
491 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 04:21:13 ] ごめん、難解すぎる
492 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 08:04:15 ] printf("dec %d\n", intData); printf("hex %x\n", intData); printf("oct %o\n", intData); } と、後ろに追加する。コンパイルのしかたは、調べれば分かるので省略する。
493 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 08:09:41 ] ソースの書き方とコンパイルの仕方を質問しているんじゃないかとエスパーする どっちにしてもこれ以上のエスパーは無理だが
494 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 13:20:00 ] 一番下に"}"を付けるだけでいいんじゃね
495 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 15:59:32 ] [1] 授業単元: [2] 問題文(含コード&リンク):ファイル出力で二つ以上の関数が同じファイルに続けて出力させるにはどうすればいいですか? 毎回file openさせてやってみたら、途中まで上書きになってしまいました。 [3] 環境 [3.1] OS:Win xp [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:無期限 [5] その他の制限:
496 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 16:11:04 ] >>495 二回目はアペンドモード"a"で開くしかないよ ただしXPならMS-DOSの系統なのでテキストモードだと EOFが最後に入っているのでこれを1バイト切り詰めてから アペンドしないといけない
497 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 16:13:52 ] 「途中まで上書き」と言ってるから、俺はfseekで解決と予測。
498 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 16:19:26 ] >>495 ファイルポインタを関数で使いまわす FILE* fp = fopen("***", "w"); func1(fp); func2(fp); fclose(fp);
499 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 16:25:10 ] >>498 それあかんよ FILE構造体にはデータも書き込むので func1(&fp); func2(&fp); としておき 受ける側は func1(FILE **fp) func2(FILE **fp) としないといけない 実際に実験してみればわかる
500 名前:495 mailto:sage [2009/03/27(金) 16:26:59 ] みなさんありがとうございます。 やってみます。
501 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:40:12 ] >>499 どういう実験か書いてみそ
502 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:56:08 ] 実験してないし流れも読めないが、 >>499 の主張は間違っている気がする。 だって、FILE* fpなんでしょ? > FILE構造体にはデータも書き込むので FILEへのポインタの値を変えたりするつもりは無いはず。
503 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 18:00:09 ] C++のifstreamとかofstreamのようなオブジェクトなら リファレンス渡しまたはアドレス渡しをしなければいけないのは わかるが、CのFILE*ってポインタなんだからそのまま渡していいと思う
504 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 18:14:38 ] >>499 への容赦ない怒涛のツッコミにワロタww 本人ではないが、func1() や func2() の中で fopen する場合と 勘違いしたんじゃないか、とフォローしてみる。
505 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 18:53:06 ] void foo(FILE *fp) { fputs("foo\n", fp); } void bar(FILE *fp) { fputs("bar\n", fp); } int main() { FILE *fp = fopen("124-495.txt", "w"); foo(fp); bar(fp); fclose(fp); return 0; } 出力結果は foo bar
506 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:31:46 ] >>504 >>498 にfopenも書いてあるからその勘違いは無いんじゃね?
507 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:57:18 ] 499> それあかんよ あかんって何が?
508 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 02:35:51 ] 992 名前:デフォルトの名無しさん 投稿日:2009/03/26(木) 23:10:42 世界的には日本語を使う人よりも英語を使う人の方が多い 前スレのこいつが必死なんだろ。日本語よりと比較したら間違いでもないんだが。
509 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 10:52:35 ] 誤爆としてもワロた
510 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 12:28:32 ] >>498 そらあかんわ FILE *fp = fopen("***", "w"); FILE* fp, fl; は同じように見えるが2つの変数は型が違う。 FILE *fp, *fl; と書く。Javaではない。
511 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 12:33:19 ] だれか>>501 を翻訳してくれ
512 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 13:38:41 ] どういう実験か書いてみてください
513 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 14:01:25 ] ところでこのゴミ、 どこに捨てたらいい? ∧_∧ (´∀`) /⌒ 丶 / / \_M ( /| |\__E) \/ | / \ ( イ / ウワァァン丶 | /|ハ( `Д)ノ| | / / 丶(>>510 ) ノ ( 丿丿  ̄ ̄ ̄ ||| ||| / ト、\ /_ノ  ̄
514 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 17:50:42 ] >>513 pc12.2ch.net/test/read.cgi/tech/1179394713/ pc12.2ch.net/test/read.cgi/tech/1179424842/
515 名前:デフォルトの名無しさん [2009/03/29(日) 15:19:16 ] 初めまして。 www.pref.fukushima.jp/pc-concours/2009/03/03_reidai.html に記載されている2006年の本選問題の 問7のヘビの問題と問8のバス路線の問題をお願いします。 お手数だと思いますが、よろしくお願いします。 単元;c言語 期限なんですがなるべく早めによろしくお願いいたします。 環境;os xp コンパイル名;gcc
516 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 15:40:40 ] >>515 C/C++の宿題片付けます 122代目 pc11.2ch.net/test/read.cgi/tech/1232029287/449 ヘビもあったな
517 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 15:58:17 ] ヘビのは正規表現使えたらすごく楽なんだけどな…。
518 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 16:09:07 ] 問8 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8863.txt どこが仕様を満たしてない!
519 名前:デフォルトの名無しさん [2009/03/29(日) 16:19:50 ] いろいろ回答ありがとうございます。 問題文通りでお願いします。
520 名前:デフォルトの名無しさん [2009/03/29(日) 16:36:39 ] すいません。追加なんですけど、2007年度の本選の問9、12をよろしくお願いします。 問題通りの出力、入力でお願いします。 後、先程の問題の回答も引き続きお願いします。 もし、何か質問で至らない点があったらこちらですぐに回答します。
521 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 17:19:24 ] 問題文どおりか、ありがと、蛇の問題は考えておく。ところで、問題のタイトルは 問題9 円に内接する多角形の面積 問題12 ブラックジャック・ゲーム
522 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 18:08:07 ] >>520 #include <stdio.h> int getLine(int*a){ int temp = 0;int i=0;int c; while(c = getchar(),c!='\n'){ if(c==' '){ a[i]=temp<10?temp:10;i++;temp = 0; }else{ temp*=10;temp+=c-'0'; } } a[i]=temp<10?temp:10;i++; return i; } int main(){ int a[21];int len; while(len = getLine(a),a[0]!=0){ int sum = 0;int cnt = 0; for(int i=0;i<len;i++){ if(a[i]==1)cnt++; sum+=a[i]; } for(int i=0;i<cnt;i++){ if(sum+10<=21)sum+=10; } if(sum>21)sum=0; printf("%d\n",sum); } return 0; }
523 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 18:37:10 ] >>515 ヘビ #include<stdio.h> #include<string.h> int is_typeA(const char *p){ int i, j; if(strncmp(p, ">'", 2)!=0) return 0; for(i=0,p+=2;*p=='=';i++,p++); if(i<1 || *p++!='#') return 0; for(j=0;j<i && *p=='=';j++,p++); return !(j<i || strcmp(p, "~")); } int is_typeB(const char *p){ int i; if(strncmp(p, ">^", 2)!=0) return 0; for(i=0;strncmp(p+=2, "Q=", 2)==0;i++); return !(i<1 || strcmp(p, "~~")); } int main(void){ char buf[100+1]; int n=0, i; scanf("%d\n", &n); for(i=0;i<n && gets(buf);i++){ // gets! if(is_typeA(buf)) printf("A\n"); else if(is_typeB(buf)) printf("B\n"); else printf("NA\n"); } return 0; }
524 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 19:21:57 ] >>520 あってるかどうか・・・ //09 gcc -std=gnu99 main.c -o main.exe #include <stdio.h> #include <math.h> double s(int n){ double sum = 0; for(int i=0;i<n;i++){ int in=0; scanf("%d",&in); double theta =3.14 * (90-(in/2))/180; sum += sin(theta)*cos(theta)*sin(theta)*cos(theta); } return sum; } int main(){ int n; while(scanf("%d",&n),n!=0){ double sum1 = s(n); scanf("%d",&n); double sum2 = s(n); // if(sum1==sum2){ printf("0\n"); }else if(sum1>sum2){ printf("1\n"); }else{ printf("2\n"); } } return 0; }
525 名前:521 mailto:sage [2009/03/29(日) 19:40:11 ] >>523 短いコード!しかし、gets() を使うから、100文字を超えても一致してしまう。 バスの再掲 #include <stdio.h> void myfunc(int, int); int main(){ int x, y; scanf("%d %d", &x, &y); myfunc(x, y); } void myfunc(int x, int y){ int t, i; t = 1; i = x; if(i <= 5) t *= (x < y)? 1: -1; putchar(i+'0'); while(i != y){ i += t; if(i == 0) t *= -1; if(i == 10){ i = 5; t *= -1; } putchar(' '); putchar(i+'0'); } putchar('\n'); }
526 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 19:43:02 ] あみだくじを自動的に生成するプログラムをお願いします。 参加者の人数と当たりの数を入力し、当たり部分には◎ハズレには× となるようにお願いします。
527 名前:デフォルトの名無しさん [2009/03/29(日) 19:43:46 ] 本当に助かります。ありがとうございます 申し訳ないですけど2007年本選の6と7、2007年予選10番もお願いします
528 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 19:54:30 ] ってかもう全部の問題をお願いしますね
529 名前:デフォルトの名無しさん [2009/03/29(日) 20:02:14 ] 527番の者ですが 528番の回答は自分の発言ではありません
530 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:10:49 ] >>529 言ってることは同じ
531 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:13:45 ] 後からちょこちょこ追加されるよりは>>528 のほうがマシ
532 名前:デフォルトの名無しさん [2009/03/29(日) 20:23:27 ] すいませんでした。しかし期限が詰まっているもので527番の回答なんですが、引き続き回答のほう よろしくお願いします。今回はちょこちょこと付け加えてしまい迷惑をかけました。
533 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:28:01 ] >>532 過去ログくらい読めカス
534 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:29:02 ] 解き方問題文中で丁寧に説明してるのになんで解けないのか理解できない
535 名前:527 mailto:sage [2009/03/29(日) 20:30:04 ] お前らガタガタ抜かさんととっとと答えんかい!!
536 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:38:01 ] 527さん、偽者が現れ始めているのでfusianasanやった方がいいですよ
537 名前:IP address mailto:sage [2009/03/29(日) 20:40:22 ] 問題10 マトリョーシカ 問題6 有料道路料金 問題7 おはじき取り >>蛇の模様 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9003.txt
538 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 21:21:48 ] >>524 theta=3.14*in/180.0; sum+=0.5*sin(theta); じゃないかな?
539 名前:IP address mailto:sage [2009/03/29(日) 21:42:56 ] #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int i, r, atari, deta=0, hito, honn; atari = 1; // printf("あたりの本数を入力:%d\n", atari); printf("あみだくじに参加する人数を入力:"); scanf("%d", &hito); printf("あみだくじの本数を入力:"); scanf("%d", &honn); if(honn < atari) { printf("あたりの数が多すぎます\n"); return 2; } if(honn < hito) { printf("くじの本数が足りません\n"); return 2; } srand(time(NULL)); for(i=1; i<=hito; i++) { r = rand(); // printf("%d/%d=%d 残り%d本\n", r, RAND_MAX/honn, r/(RAND_MAX/honn), honn ); if(r/(RAND_MAX/honn) >= 0 && r/(RAND_MAX/honn) <= atari-1) { printf("%d 番の人◎\n", i); atari--; honn--; } else { printf("%d 番の人×\n", i); honn--; } } return 0; }
540 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 22:07:53 ] >>527 2007年本選の6 有料道路料金 #include<stdio.h> void swap(int *a, int *b){int c;c=*a;*a=*b;*b=c;} int get_distance(int from, int to){ static const int distance[]={0, 6, 13, 18, 23, 43, 58}; if(from>to) swap(&from, &to); return distance[to-1]-distance[from-1]; } int get_normal_price(int from, int to){ static const int price[][6]={ { 300}, { 500, 350}, { 600, 450, 250}, { 700, 600, 400, 250}, {1350,1150,1000, 850, 600}, {1650,1500,1350,1300,1150, 500} }; if(from>to) swap(&from, &to); return price[to-2][from-1]; } int is_special_time(int hour, int min){ return (1730<=(hour*100+min) && (hour*100+min)<=1930); } int get_price(int from_ic, int from_hour, int from_min, int to_ic, int to_hour, int to_min){ int price=get_normal_price(from_ic, to_ic); if(get_distance(from_ic, to_ic)<=40 && (is_special_time(from_hour, from_min) || is_special_time(to_hour, to_min))) price=((price/2)+50-1)/50*50; return price; } int main(void){ int from_ic=0, from_hour, from_min, to_ic, to_hour, to_min; for(;;from_ic=0){ scanf("%d %d %d %d %d %d", &from_ic, &from_hour, &from_min, &to_ic, &to_hour, &to_min); if(from_ic==0) break; printf("%d\n", get_price(from_ic, from_hour, from_min, to_ic, to_hour, to_min)); } return 0; }
541 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 22:25:36 ] >>527 2007年本選の7 おはじき取り #include<stdio.h> int main(void){ int strategy_size, strategy[25]; int i, j, rest; for(;;){ strategy_size=0; scanf("%d", &strategy_size); if(strategy_size<1) break; for(i=0;i<strategy_size;i++) scanf("%d", &strategy[i]); for(rest=32,j=0;rest>0;j++) { rest-=(rest-1)%5; printf("%d\n", rest); rest-=strategy[j%strategy_size]; if(rest<0) rest=0; printf("%d\n", rest); } } return 0; }
542 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 22:43:14 ] int main(void) { return 0; }
543 名前:デフォルトの名無しさん [2009/03/29(日) 23:01:52 ] 回答ありがとうございました。
544 名前:IP address mailto:sage [2009/03/30(月) 00:05:18 ] >>539 問題文の読み違いがあったので、修正します。 printf("あたりの本数を入力:", atari); scanf("%d", &atari); printf("あみだくじに参加する人数を入力:"); scanf("%d", &hito); honn = hito; // printf("あみだくじの本数を入力:%d\n", honn); if(honn < atari) { : // printf("%d/%d=%d 残り%d本\n", r, RAND_MAX/honn, r/(RAND_MAX/honn), honn ); if(r/(RAND_MAX/honn) <= atari-1) {
545 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 19:55:03 ] >>526 #include<stdio.h> #include<stdlib.h> #include<time.h> int main(void){ int hito, atari; int i, j; printf("参加者の人数 : "); scanf("%d", &hito); printf("当たりの数 : "); scanf("%d", &atari); srand(time(NULL)); printf("\n"); for(j=0;j<15;j++){ if(j%2) printf("│"); for(i=j%2;i<hito-1;i+=2) printf("%s", (rand()%3)?"├┤":"││"); if(i<hito) printf("│"); printf("\n"); } for(i=0;i<hito;i++){ if((rand()%(hito-i))<atari){ atari--; printf("◎"); }else printf("×"); } printf("\n"); return 0; }
546 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:40:37 ] [1] 授業単元:C言語 [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9005.txt [3] 環境 [3.1]OS:Windows [3.2] VC6.0 [3.3]言語:C言語 [4]期限:4月1日 [5]その他の制限:ユーザ定義関数を利用する どなたかよろしくお願いします。
547 名前:デフォルトの名無しさん [2009/03/30(月) 21:47:58 ] www.pref.fukushima.jp/pc-concours/2009/03/03_reidai.html にある2008年本選の 問1の三目並べの答えお願いします。 c言語 コンパイル gcc
548 名前:デフォルトの名無しさん [2009/03/30(月) 21:49:07 ] www.pref.fukushima.jp/pc-concours/2009/03/03_reidai.html にある2008年本選の 問1の三目並べの答えお願いします。 c言語 コンパイル gcc
549 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 22:00:29 ] #include <stdio.h> double abs(double d){ return d < 0 ? -d : d; } double BMI(int h, int w){ return 10000.0 * w / h / h; } void main(){ int n, i, h, w, j; double d; while(scanf("%d", &n) && n){ d = 2000000; /* BMI(1,200) */ while(n--){ scanf("%d %d %d", &i, &h, &w); if(abs(BMI(h,w)-22) < d){ j = i; d = abs(BMI(h,w)-22); } } printf("%d\n", j); } }
550 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 22:29:36 ] >>547 #include <stdio.h> int judge(int p){ return (p & 7) == 7 || (p & (7<<3)) == (7<<3) || (p & (7<<6)) == (7<<6) || (p & 73) == 73 || (p & (73<<1)) == (73<<1) || (p & (73<<2)) == (73<<2) || (p & 273) == 273 || (p & 84) == 84; } void main(){ char c; int n = 0, b = 0, w = 0; while(scanf("%c ", &c) && c != '0'){ b <<= 1; b |= c == 'b' ? 1 : 0; w <<= 1; w |= c == 'w' ? 1 : 0; if(++n == 9){ if(judge(b)) printf("b\n"); else if(judge(w)) printf("w\n"); else printf("NA\n"); n = 0; b = 0; w = 0; } } }
551 名前:デフォルトの名無しさん [2009/03/30(月) 22:53:30 ] www.pref.fukushima.jp/pc-concours/2009/03/03_reidai.html に記載されている 2007年の本選の問12 ブラックジャックの問題よろしくお願いします。 あと、問題を解く上でどのようなアルゴリズム、データを利用したか。と何の 処理を関数としたのかを付け加えてお手数だと思いますがよろしくお願いします。 OS xp C言語 コンパイル gcc
552 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 23:58:22 ] 春休みに宿題があるわけが無いとはいえ、 大学生ならともかく、高校生の問題を解くのは飽きた・・・
553 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 00:58:19 ] >>552 マトリョーシカの問題が結構難しいよ
554 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 01:38:05 ] >>551 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9006.c 説明ぐらい自分で見て考えろ。
555 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 10:09:51 ] どなたか>>546 をお願いできませんか?
556 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 10:20:48 ] >>546 だ
557 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 11:34:46 ] #include <stdio.h> #include <stdlib.h> #include <math.h> double bmi(int height, int weight) { return 10000.0 * weight / (height * height); } int main(void) { int *p, i, n, height, weight, indx = 0; double min, temp; FILE *fp; if((fp=fopen("data.txt", "r"))==NULL) return 0; while(1) { fscanf(fp, "%d", &n); if(n==0) break; p = malloc(sizeof(int) * n); fscanf(fp, "%d%d%d", p, &height, &weight); min = fabs(22 - bmi(height, weight)); for(i=1; i<n; i++) { fscanf(fp, "%d%d%d", p + i, &height, &weight); temp = fabs(22 - bmi(height, weight)); if(temp < min || (temp == min && p[i] < p[indx])) min = temp, indx = i; } printf("%d\n", p[indx]); free(p); } return 0; }
558 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 12:18:18 ] >>546 #include<stdio.h> #include<math.h> typedef struct tag_info_t{ long i; double h, w; }info_t; double get_bmi(double h, double w){ return w/(h*h); } int main(void){ long i, n; double bmi, best_bmi; info_t x, best; for(;;){ if(scanf("%ld", &n)!=1 || n<1) break; for(i=0;i<n;i++){ scanf("%ld %lf %lf", &x.i, &x.h, &x.w); bmi=get_bmi(x.h/100., x.w); if(i==0 || fabs(best_bmi-22)>fabs(bmi-22)){ best=x; best_bmi=bmi; } } printf("%ld\n", best.i); } return 0; }
559 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 15:29:51 ] >>558 >受付番号の小さい方を出力することとします。 忘れてた
560 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 15:39:46 ] >>559 >>1 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 そのくらいの修正は自分でやればいいとおもうんだな
561 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 16:03:22 ] >>560 いや、問題文に書かれている文言で、 >>558 は仕様を満たしてないってこと。
562 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 16:06:28 ] >>561 ああ、失敬失敬 早計だった
563 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 17:58:12 ] >>553 h優先とr優先の二系統で組み入れられる人形の多い方をとればいいよ。
564 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 18:31:37 ] いちおー>>549 は>>546 の回答なんやけどな。アンカ付け忘れたけど。 見て分からんのは、本人、問題読んでないんちゃうやろか? 読んでたらBMIって関数ある時点で判断できるやろ。すぐ下やし。
565 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:53:11 ] >>564 C/C++系のスレで一番バカでやる気の無い質問者の溜まり場だからな
566 名前:デフォルトの名無しさん [2009/04/01(水) 04:35:17 ] ここで描かれたプログラム甲子園の回答は不合格とします
567 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 13:28:50 ] [1] 授業単元:ばば抜きの者です [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9010.zip [3] 環境 [3.1] OS:Redhat, Win Xp Pro [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限:無期限 [5] その他の制限:いつもお世話になっています。153さんのソースを丸々使わせてもらいながらやっています。ほかにもいろいろ伺いながらやっています。 シミュレータなので何回か実行させて結果を比べたいのですが、どうも、最初の配る段階でいつも同じようにしか配ってくれない(並び替えが最初のまま)様です。 srandのtime(NULL)にプレイ回数をかけて見たら変わるかなとも思ったのですがどうやら変わらないようです。 何かヒントがあればよろしくお願いします。 今後書き出し方を変えてRで読み込めるようにしていこうと思っています。
568 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 13:41:05 ] 宿題じゃないなら続きはこっちでやってくれ C言語でトランプゲームを作りたい pc12.2ch.net/test/read.cgi/tech/1189892773/
569 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 15:09:08 ] C言語の問題なんですが、 n個の実数データx(i)(i=1,2,3・・・n)を入力し、合計kei,件数n,平均ave,標準偏差sdを計算し、表示しなさい。ただし、ave,sd,の名で関数を作りなさい。また、終了データは0とする。計算式は次の通りである。 平均値:ave=1/n納i=1,n]x(i) 標準偏差:sd=√{1/n納i=1,n](x(i)-x')^2} x'は平均値 お願いします。
570 名前:569 mailto:sage [2009/04/01(水) 15:10:44 ] 細く ↑のC言語のプログラムを教えてください。
571 名前:569 mailto:sage [2009/04/01(水) 15:12:05 ] ○補足 ×細く
572 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 16:47:29 ] >>569 #include <stdio.h> #include <math.h> double kei(const double *data, unsigned int n) { unsigned int i; double sum = 0.0; for(i = 0 ; i < n; i++){ sum += data[i]; } return sum; } double ave(const double *data, unsigned int n) { return kei(data, n) / n; } double sd(const double *data, unsigned int n) { unsigned int i; double a = ave(data, n), t = 0.0; for(i = 0 ; i < n; i++) { t += (data[i]-a)*(data[i]-a); } return sqrt(t/n); } int main() { unsigned int n = 0; double data[1024]; while(!n || data[n-1] != 0.0){ scanf("%lf", data+n); n++; } printf("kei: %lf\nave: %lf\nsd: %lf\n", kei(data,n), ave(data,n), sd(data,n)); return 0; }
573 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 04:04:53 ] [1] 授業単元:基礎 [2] 問題文:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9011.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限:4月5日 [5] その他の制限:上記のソースに最低一つユーザ定義関数をつける 上記のソースにユーザ定義関数をつけてくださいorz
574 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 04:22:43 ] >>573 それ以前に、そのプログラムは何をするプログラム?
575 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 04:49:45 ] >>574 A君、Bさん、C君でバドミントンをします。 A君 VS Bさんの勝負をC君が記録しましたが、記録していたのはサーブの順番だけでした。 1セット3ゲーム11点先取で行い、デュースを適用しました。 C君が残した記録から得点を出力するプログラムを作成してください。 1ゲーム目は必ずA君から始まり、以降は最終ゲームの勝者からです。 また、1ゲーム中のサーブ回数は必ず100回以内です。 こういうものです。
576 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 08:37:29 ] #include<stdio.h> #include<string.h> #define GM 3 #define MAX 101 void tokuten(char *buf){ int g,len; int Ac = 0, Bc = 0; len=strlen(buf); for(g=1;g<len;g++){ if(buf[g]=='A') Ac++; if(buf[g]=='B') Bc++; } printf("%d %d\n", Ac, Bc); } int main(void){ int i; char buf[GM][MAX]; for(i = 0; i < GM; i++){ scanf("%s", buf[i]); if(buf[i][0] == '0'){ return -1; } } for(i = 0; i < GM; i++){ tokuten(buf[i]); } return 0; }
577 名前:569 mailto:sage [2009/04/03(金) 15:05:12 ] >>572 ありがとうございましたm(_ _)m
578 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 13:53:55 ] [1] 授業単元:C++ [2] 問題文: C++ではvalidではないがCではvalidなプログラムを書きなさいというなぞなぞみたいな 宿題が出ました。普通に考えるとCで動くプログラムはC++で動くはずですが、そうでないものを 書けというものみたいです。ヒントは、「C言語の経験がなくても出来る」だそうです。 型にはまらない発想でシンプルなコードを書きなさいと言われました。問題文は以上です。 (validの意味がコンパイル可能を指すのか動作可能なのかを確認し忘れてしまい、今確認 できないのですが、それでも何かピンと来る方宜しくお願いします) [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C++ [4] 期限:4月6日
579 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 14:01:10 ] >>578 スレを勃てるまでもないC/C++の質問はここで 8 pc12.2ch.net/test/read.cgi/tech/1235921779/489 489 名前:デフォルトの名無しさん[sage] 投稿日:2009/03/23(月) 09:24:50 char hoge[4] = "ABCD"; // これがエラーになるかどうか
580 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 14:40:46 ] なそなぞではなく、C++ 優位 int main(void) { char data; char pointer = &data; pointer = &data; }
581 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 14:47:29 ] >>578 関数プロトタイプのない関数の呼び出し void* からの暗黙のポインタ変換
582 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 15:40:42 ] [1] 授業単元:上級C++ [2] 問題文:ttp://www.dotup.org/uploda/www.dotup.org23539.zip.html [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:g++ [3.3] 言語: C++ [4] 期限:4月6日 [5] その他の制限: 初回の宿題から難しく全く理解出来ないのでよろしくお願いします サンプルコードを使って書くのか、単純にこれは参考に使うものなのかすらわかっていませんがよろしくおねがいします
583 名前:578 mailto:sage [2009/04/04(土) 16:21:13 ] >>579 , 580, 581 ありがとうございました
584 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 16:25:51 ] [1] 授業単元:C++ [2] 問題文:std::copyと同じような機能が<algorithm>ヘッダのstd::tranformから提供されている。 使い方を理解し、std::transformを使用して以下のようなプログラムを作成しなさい。 - vectorにfloatを複数書き込む。 - 元のvectorのそれぞれの要素を二乗したものからなる新しいvectorを生成する。 - 新しいvectorを画面に表示する。 (ostream_iteratorを使う場合は出力時最後にコンマがつくかもしれないが、気にしなくて良い) [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:g++ [3.3] 言語: C++ [4] 期限:4月6日
585 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 16:43:58 ] >>584 ttp://www.geocities.jp/ky_webid/cpp/library/025.html
586 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 20:17:52 ] >>582 使えってかいてあるからとりあえず使うだけのコード kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9014.cpp
587 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 20:30:19 ] >>584 #include <iostream> #include <vector> #include <iterator> #include <algorithm> float power2(float x) { return x*x; } int main() { const int size = 10; float c = 0.1; std::vector<float> vec1(size), vec2(size); for(int i = 0; i < size; ++i){ vec1[i] = c; c += 1.1; } std::transform(vec1.begin(), vec1.end(), vec2.begin(), power2); std::copy(vec2.begin(), vec2.end(), std::ostream_iterator<float>(std::cout, ",")); return 0; }
588 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 00:55:26 ] >>586 助かりました!有り難うございました。
589 名前:584 mailto:sage [2009/04/05(日) 01:55:15 ] >>587 ありがとうございました!これから解読します
590 名前:デフォルトの名無しさん [2009/04/05(日) 03:21:24 ] 解読する価値ねーだろ
591 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 03:23:05 ] 価値というか、問題文そのまま書き下しただけだな
592 名前:デフォルトの名無しさん [2009/04/05(日) 03:29:26 ] お前引っこんでろ
593 名前:デフォルトの名無しさん [2009/04/05(日) 03:33:04 ] >>589 あんまいじると可哀想だろ そのへんでやめとけ
594 名前:デフォルトの名無しさん [2009/04/05(日) 12:59:37 ] #include <stdio.h> 【 1 】 /* 文字列の標準ヘッダーファイルの取り込み */ #define TRUE 1 #define FALSE 0 int passCheck(char *p); /* ユーザー作成関数のプロトタイプ宣言 */ void main() { char buff[256]; int cnt, flg = FALSE; for (cnt=1; 【 2 】 ; cnt++) { printf("パスワードは?=> "); scanf("%s",buff); flg = 【 3 】 ; if (flg == TRUE) printf("パスワードは合致しました。\n"); else printf("%d回目 入力ワード %s は間違っています。\n",cnt,buff); } }
595 名前:デフォルトの名無しさん [2009/04/05(日) 13:00:24 ] int passCheck(char *p) { static char *pass = "MissionC"; int flg; flg = strcmp(pass,p); if (【 4 】 ) return TRUE; else return FALSE; }
596 名前:デフォルトの名無しさん [2009/04/05(日) 13:02:59 ] 1,2,3,4に入る解答を教えて
597 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 13:13:16 ] >>595-596 3回もしなくても、1回で投稿できるだろう。 #include <string.h> !fig passCheck(buff) !fig
598 名前:デフォルトの名無しさん [2009/04/05(日) 13:22:14 ] 回答群から選ぶ問題だった 1 #include "string.h" #include <string.h> #include <strcmp.h> #include <strings.h> 2 cnt<=3 and flg==FALSE cnt<3 && flg!=TRUE cnt<=3 && flg==FALSE newStr[5] 3 passCheck(*p) passCheck(p) passCheck(&buff) passCheck(buff) 4 flg > 0 flg = 0 flg < 0 flg == 0
599 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 13:26:16 ] >>598 >>1 >・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 #include <string.h> cnt<=3 && flg==FALSE passCheck(buff) flg == 0
600 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 15:08:13 ] [1] 授業単元:C++ [2] 問題文: 16行からなるパスカルの三角形をコンソールに出力するプログラムを作成しなさい。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:g++ [3.3] 言語: C++ [4] 期限:4月7日 [5] その他制限事項: (1)正三角形にすること。(各行がコンソール左端ぴったりから始まるような直角三角形ではない) (2)一つのデータの入る領域を「レンガ」とすると、レンガのサイズは三角形を構成するデータの 最大値の桁を格納出来る大きさとしなさい。ただし見栄えの点から偶数の場合は奇数にした方がよいでしょう。 (=>つまりサイズは4桁(+1)=5にしろって言ってるんだと思います) (3)数値はレンガの真ん中に位置するようにしなさい。 (4)入れ子のコンテナを使用しなさい。(例 vector<vector<int>>) よろしるおねがいします
601 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 15:22:37 ] >>600 ぐぐれ
602 名前:600 mailto:sage [2009/04/05(日) 15:38:41 ] >>601 ぐぐると似た者はたくさんあるのですが制限事項を満たした者がありませんでした。 ttp://www.daniweb.com/forums/thread49939.html とかは6行目くらいから正三角形が崩れて来るし、最終的に微妙な三角形になるし、 というわけでよろしるおねがいします
603 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 16:53:55 ] あなたは、10とか1000の桁数偶数の場合は、5桁の中央にどう配置するのか?
604 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:36:04 ] _1_0_ 10_00
605 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:57:49 ] >>604 OK. あと、STL使うみたい。 #include <iostream> int main(void){ std::cout << "_______________________________________________1__ \n" << "____________________________________________1_____1__ \n" << "_________________________________________1_____2_____1__ \n" << "______________________________________1_____3_____3_____1__ \n" << "___________________________________1_____4_____6_____4_____1__ \n" << "________________________________1_____5____1 0___1 0____5_____1__ \n" << "_____________________________1_____6____1 5___2 0___1 5____6_____1__ \n" << "__________________________1_____7____2 1___3 5___3 5___2 1____7_____1__ \n" << "_______________________1_____8____2 8___5 6___7 0___5 6___2 8____8_____1__ \n" << "____________________1_____9____3 6___8 4___126___126___8 4___3 6____9_____1__ \n" << "_________________1____1 0___4 5___120___210___252___210___120___4 5___1 0____1__ \n" << "______________1____1 1___5 5___165___330___462___462___330___165___5 5___1 1____1__ \n" << "___________1____1 2___6 6___220___495___792___924___792___495___220___6 6___1 2____1__ \n" << "________1____1 3___7 8___286___715__12 87_17 16_17 16_12 87__715___286___7 8___1 3____1__ \n" << "_____1____1 4___9 1___364__10 01_20 02_30 03_34 32_30 03_20 02_10 01__364___9 1___1 4____1__ \n" << "__1____1 5___105___455__13 65_30 03_50 05_64 35_64 35_50 05_30 03_13 65__455___105___1 5____1__ \n" ; }
606 名前:600 mailto:sage [2009/04/06(月) 00:52:27 ] ↑こんな感じで表示出来ると助かるのですが どなたかコンテナを使ったプログラムでお願い出来ないでしょうか
607 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:06:27 ] これって正三角形じゃなくて二等辺三角形だよな
608 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:16:04 ] 教員の端末がプロポーショナルフォントだったら・・・
609 名前:600 mailto:sage [2009/04/06(月) 01:28:10 ] 「正」じゃなくて二等辺でもたぶん大丈夫です
610 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:42:20 ] printf("%*d",WID,NUM); WID 文字数の指定 NUM 値
611 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:43:05 ] C++でも書式の指定ができるものがあったような・・・
612 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:44:52 ] #include <vector> typedef std::vector<int> VecInt; typedef std::vector<VecInt> VecVecInt; void main() { VecVecInt vvi; vvi[0][0] = 1; vvi[1][0] = 1; vvi[1][1] = 1; vvi[2][0] = 1; vvi[2][1] = 2; vvi[2][2] = 1; }
613 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:14:45 ] #include <stdio.h> #include <vector> typedef std::vector<int> VecInt; typedef std::vector<VecInt> VecVecInt; void main() { VecVecInt vvi; VecInt vi; int iRow, iCol; int iStep = 10; vi.push_back(1); vvi.push_back(vi); for (iRow = 0; iRow < iStep; iRow++) { vi.clear(); vi.resize(iRow + 2, 0); vvi.push_back(vi); for (iCol = 0; iCol <= iRow; iCol++) { vvi[iRow + 1][iCol] += vvi[iRow][iCol]; vvi[iRow + 1][iCol + 1] += vvi[iRow][iCol]; } } for (iRow = 0; iRow < iStep; iRow++) { for (iCol = 0; iCol <= iRow; iCol++) { printf("%d,", vvi[iRow][iCol]); } printf("\n"); } }
614 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:16:20 ] 1, 1,1, 1,2,1, 1,3,3,1, 1,4,6,4,1, 1,5,10,10,5,1, 1,6,15,20,15,6,1, 1,7,21,35,35,21,7,1, 1,8,28,56,70,56,28,8,1, 1,9,36,84,126,126,84,36,9,1,
615 名前:600 mailto:sage [2009/04/06(月) 02:27:33 ] 毎行左端からスタートではない左辺と右辺の二等辺である三角形に出来ませんか? (イメージ的に605みたいな)
616 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:33:38 ] #include <stdio.h> #include <string.h> char* NumFmt(unsigned int uiNum) { static int aiPos[][5] = {{2},{1,3},{1,2,3},{0,1,3,4},{0,1,2,3,4}}; static char acRet[6]; char acBuf[16]; size_t uiLen; unsigned int ui; sprintf(acBuf, "%u", uiNum); uiLen = strlen(acBuf); if (5 < uiLen) return NULL; strcpy(acRet, "_____"); for (ui = 0; ui < uiLen; ui++) { acRet[aiPos[uiLen - 1][ui]] = acBuf[ui]; } return acRet; } void main() { printf("%s\n", NumFmt(5)); printf("%s\n", NumFmt(55)); printf("%s\n", NumFmt(555)); printf("%s\n", NumFmt(5555)); printf("%s\n", NumFmt(55555)); }
617 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:35:52 ] __5__ _5_5_ _555_ 55_55 55555 一応、骨格と部品は用意したんで 適当に加工してちょ もっと綺麗に書けたらなぁw
618 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 03:51:43 ] >>600 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9015.cpp
619 名前:600 mailto:sage [2009/04/06(月) 04:00:09 ] >>618 完璧です。。ほんとに感謝です! ありがとうございました!
620 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:00:45 ] #include <stdio.h> #include <string.h> #include <vector> #define N 14 using namespace std; void main() { vector< vector<int> > vvi; vector<int> vi; char acBuf[16]; int iRow, iCol, iMax = 0, iMaxLen, i, iSpc; for (iRow = 0; iRow < N; iRow++) { vi.push_back(1); for (iCol = iRow - 1; 0 < iCol; iCol--) { vi[iCol] += vi[iCol - 1]; iMax = __max(iMax, vi[iCol]); } vvi.push_back(vi); }
621 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:02:04 ] sprintf(acBuf, "%d", iMax); iMaxLen = strlen(acBuf); iMaxLen |= 1; // 奇数に繰り上げ for (iRow = 0; iRow < N; iRow++) { for (i = 0; i < (iMaxLen / 2 + 1) * (N - 1 - iRow); i++) putchar(' '); for (iCol = 0; iCol <= iRow; iCol++) { sprintf(acBuf, "%d", vvi[iRow][iCol]); iSpc = iMaxLen - strlen(acBuf); for (i = 0; i < iSpc / 2; i++) putchar(' '); printf(acBuf); for (i = 0; i < (iSpc + 1) / 2; i++) putchar(' '); putchar(' '); } putchar('\n'); } } もう解答は上がってるけど、別解として
622 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:30:13 ] くせぇくせぇ、後出し麻呂の臭いがぷんぷんすんぜ こりゃ〜クソースだぁ〜クソースは消毒だぁ〜
623 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:38:04 ] g++ だと、void main はコンパイルエラーになる。 #define __max(a,b) a>b?a:b どれだけ花がいいんだ。
624 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 10:31:46 ] ttp://www.dotup.org/uploda/www.dotup.org26594.zip.html 四つの引数をとるバージョンのaccumulateを使用して、26行目、27行目のtransformとaccumulate(三つの引数バージョン) を合体するにはどうしたらいいですか?単純に繋いだらコンパイルエラーになりますた(28行目) あっそれとinnerproductは使っちゃいけないみたいなのであくまでも4つの引数をとるaccumulateバージョンでお願いします
625 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 11:23:42 ] template<class T> struct power : public binary_function<T, T, T> { T operator()(const T& x, const T& y) const { return x + y * y; } }; sum=std::accumulate(new_vec.begin(), new_vec.end(), 0, power<float>()); こんな感じにすればいいんじゃね?よく分からんが
626 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 14:49:20 ] >>618 #define N 17 だと、なぜかダメ。
627 名前:デフォルトの名無しさん [2009/04/06(月) 15:25:28 ] >>626 最大表示桁数が5桁を超えるからじゃないの?
628 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 15:28:48 ] >>578 new delete 等の C++ キーワードを変数名に
629 名前:624 mailto:sage [2009/04/06(月) 16:10:26 ] >>625 おぉ!すごいできました。 ありがとうございました。(^人^)感謝♪
630 名前:569 mailto:sage [2009/04/08(水) 19:10:27 ] >>572 のプログラムについてなんですが、 各行にコメントをつけなきゃなくて、さらに提出するときに説明しなきゃないんですけど、 while(!n || data[n-1] != 0.0){ scanf("%lf", data+n); n++; }の文について誰か詳しく教えてくれませんか? あとこのプログラムだと平均値が終了データの0まで件数にカウントされているらしく、 例えば1、2、3の平均値は2になるはずが、(1+2+3+0)÷4=1.5となってしまっているので、 修正の仕方を教えてくださいm(_ _)m
631 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:35:20 ] while (n < 1024) { if (scanf("%lf", &data[n]) != 1) { // 入力 scanf("%*s"); // 入力バッファ読み捨て printf("error\n"); continue; } if (data[n] == 0.0) { // 0なら入力終了 break; } n++; } 改良案
632 名前:デフォルトの名無しさん mailto:age [2009/04/08(水) 20:05:04 ] [1] 授業単元: ファイルの入出力(fprintf文の高度な使用法) [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9019.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc ) [3.3] 言語: (C/C++/どちらでも可) [4] 期限: 来週の月曜日まで [5] その他の制限: 特に無し
633 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 21:26:26 ] 問題文正確か?
634 名前:632 mailto:age [2009/04/08(水) 21:40:51 ] >>633 一応正確ですよ よろしくお願い致します。
635 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 22:50:27 ] まだ4月初めなのにもう課題がでてるの? どういう学校だろうか。 うちなんかこれから講義資料作りますよ。 自分が出した問題がここに出てくるかwktkしながら見ることにします。
636 名前:632 mailto:age [2009/04/08(水) 23:12:35 ] >>635 専門学校ですのでカリキュラムがギュウギュウなんですよ 出来るようならお願い致します
637 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 23:15:23 ] いったい何のために専門学校に入ったの?
638 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 23:17:29 ] >>636 カリキュラムがギュウギュウって本当か? 卒業時にバブルソートがなんとかできるとかじゃないよな?
639 名前: ◆zQ5xe/OcaA mailto:sage [2009/04/08(水) 23:20:42 ] >>632 int main() { output=fopen("vib1.inp","w"); t=0.0, x[1]=1.0; x[2]=0.0; printf("%10.5lf\n",t); printf("%10.5lf%10.5lf\n",x[1],x[2]); fprintf(output,"♯AVS field file\n"); fprintf(output,"%d\n",NMAX+1); fprintf(output,"data_geom\n"); fprintf(output,"step%d step%d\n%d %d\n%d",1,1,1,1,1); fprintf(output,"%9.6lf%9.6lf%9.6lf\n",x[1],0.0,0.0); fprintf(output,"%d 1 pt %d\n%d %d\n%d %d\n",1,1,1,0,1,1); fprintf(output,"radius,\n%d%4.1f\n",1,1.0); for(i=1; i<=NMAX;i++){ t=((double) i)*h; fprintf(output,"step%d step%d\n%d %d\n%d",i+1,i+1,1,1,1); //////////////////////////////////////////////////////////////////////////////// runge( vib,x,f,wrk1,wrk2,t,h,n); //////////////////////////////////////////////////////////////////////////////// fprintf(output,"%9.6lf%9.6lf%9.6lf\n",x[1],0.0,0.0); fprintf(output,"%d 1 pt %d\n%d %d\n%d %d\n",1,1,1,0,1,1); fprintf(output,"radius,\n%d%4.1f\n",1,1.0); printf("%10.5lf\n",t); printf("%10.5lf%10.5lf\n",x[1],x[2]); } }
640 名前:632 mailto:age [2009/04/08(水) 23:21:05 ] >>637 プログラムの勉強をするためです >>638 卒業時には立派なプログラマー予備軍?になってるだろうと先生から言われています
641 名前:632 mailto:age [2009/04/08(水) 23:27:17 ] >>639 このままだとエラーが結構出ますがこれを参考にしろってことですね ありがとうございます。やってみます
642 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 00:42:36 ] プログラムの勉強をするために専門学校に入って、ここで宿題解いてもらうのか。 とりあえずうちの会社には来ないでね。