1 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 06:56:18 ] あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。 【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。 ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク): [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ C/C++の宿題を片付けます 112代目 pc11.2ch.net/test/read.cgi/tech/1215439445/
116 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 12:15:02 ] すいませんが>>55 をお願いします
117 名前:45 [2008/07/15(火) 12:29:19 ] >>115 ありがとうございます!できました! 敵をこれ↓に変えて、跳ね返るときに音鳴らすのはどうやってやるんですか? www.dotup.org/uploda/www.dotup.org5699.bmp.html
118 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 12:35:25 ] >>60 いや、macになったよ
119 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 12:35:59 ] >>117 画像のサイズが同じならファイル名同じにして入れ替えるだけだろ
120 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 12:36:12 ] >>118 コンパイラと言語は同じでは?
121 名前:デフォルトの名無しさん [2008/07/15(火) 12:37:32 ] >>17 を誰かお願いします。
122 名前:115 mailto:sage [2008/07/15(火) 12:40:04 ] >>119 いや違う void Draw() { if(draw_type == 0){ cw = w; cx = 0; ch = h; cy = 0; }else{ cw = div_w; cx = start_x + (cw * (img_id % (div_x)) ); ch = div_h; cy = start_y + (ch * (img_id / div_x) ); } この部分で与えられた画像が1画像1キャラか1画像の指定開始位置から縦方向にn個あるか しか現在処理できないようになってるので横方向にn個並んでる際の処理がいる
123 名前:115 mailto:sage [2008/07/15(火) 12:41:35 ] ってなんで他人が設計した得意でもないC++の解説をやってるんだ俺はorz
124 名前:115 mailto:sage [2008/07/15(火) 12:43:25 ] あ、敵が横だな。 いけるのかな?
125 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 12:52:54 ] >>55 >>116 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7376.c
126 名前:115 mailto:sage [2008/07/15(火) 13:01:30 ] Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,3, 0, 0,10, 1,40,40); 引数1,2 任意の座標にしてね。 引数3 今回表示したいbmpのファイル名称に 引数4 1でOKかな? 引数5 キャラクターのアニメーション用コマの切り替えタイミング?3だと1/60*3で切り替えかな? 引数6,7 画像の開始位置、今回の画像は1画像に1キャラの複数コマしかないので0,0で 引数7,8 横方向に10個、縦方向に1個分しかないので10,1で 引数9,10 1キャラの縦横サイズが40x40ドットなので40,40で
127 名前:115 mailto:sage [2008/07/15(火) 13:03:12 ] >>126 の続き サウンド系のお話 class Chara の virtual void Move() { if( (x > 640-cw) || (x < 0) ) { dx = -dx; x = x + dx; } if( (y > 480-ch) || (y < 0) ) { dy = -dy; y = y + dy; } x = x + dx; y = y + dy; } 続く
128 名前:115 mailto:sage [2008/07/15(火) 13:04:12 ] >>127 の続き virtual void Move() { int soundflg = 0; if( (x > 640-cw) || (x < 0) ) { dx = -dx; x = x + dx; soundflg = 1; } if( (y > 480-ch) || (y < 0) ) { dy = -dy; y = y + dy; soundflg = 1; } if (soundflg == 1) { //鳴らしたい音の処理 } x = x + dx; y = y + dy; } とでもすればOKかな? elのサウンド系はよくわからん
129 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:06:33 ] >>1 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
130 名前:115 mailto:sage [2008/07/15(火) 13:09:11 ] ああ、すまん
131 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:15:43 ] >>55 void del_chr(char *str, char c){ char *s,*d; s = d = str; do{ if(*s != c) *d++ = *s; }while(*s++); }
132 名前:131 mailto:sage [2008/07/15(火) 13:17:07 ] かぶった。 リロードしてなかったorz
133 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:17:46 ] >>120 別の学校で同じ課題が出たのかな。 先生も課題考えるのめどいんだろうなー
134 名前:115 mailto:sage [2008/07/15(火) 13:18:56 ] >>133 実は先生も課題用として動く物をこのすれの住人に作らせてると 俺は常々思ってる。
135 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:20:54 ] そんな先生がいたらちょっとした質問であたふたしそうだw
136 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:23:12 ] >>125 ,131 ありがとうございます …そっか、do文か
137 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:27:14 ] >>134 う〜〜ん・・・同じ学校の別の生徒と思われるかもしれんが、もしかすると 講師が課題作りをしたは良いが、模範解答をどうしようか考えて ここを利用している可能性もあるかもね・・・その構図を思い浮かべて、 ちょっとワラタw っつか、俺利用されたっ!?
138 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:28:35 ] 学生臭いスレですね
139 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:29:56 ] >>131 うおっ、その手があったか。先にレスしたけど、それパクらせてもらうw
140 名前:115 mailto:sage [2008/07/15(火) 13:31:37 ] 現実にそれっぽいのがあったんだよ。 週末にここで質問された内容が週明けに再度復活とかさ・・・・
141 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:33:36 ] >>35 pc11.2ch.net/test/read.cgi/tech/1215439445/723 pc11.2ch.net/test/read.cgi/tech/1215439445/725 pc11.2ch.net/test/read.cgi/tech/1215439445/757 pc11.2ch.net/test/read.cgi/tech/1215439445/760
142 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:35:09 ] >>140 なるほど、確かに。講師が模範解答の依頼、それを次の授業の後に ここで質問した人が、既出のソースをそのまま提出して お前、あのスレを使ったな?っとバレて単位がもらえないなんて ことが、どこかの学校であるかも・・・そんな構図を思い浮かべて ますます吹いたw
143 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:37:52 ] >>141 のソースに、2 2 0 と入力した場合について指摘がされているが それをどう解釈するか?確かにこの場合、2番目も1番目も同じと 解釈するなら、2でも問題なし。まぁ、同じでも偶数は2つ入力されている わけだから、これでも問題の趣旨としては条件を満たしていると思われる。
144 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:41:31 ] 学生だって土日は外で遊ぶこともあるべ
145 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:52:55 ] [1] 授業単元: C++ [2] 問題文(含コード&リンク): 次の説明を読んで、プログラムを作成しなさい。 小数で入力される気温のデータを5℃単位の整数に丸めたい。 キーボードからdouble型変数kに気温を入力し、 丸めた数値はint型変数gに求め、gを画面に出力する。 ただし入力データに負の気温はないものとする。 また必要なら、 計算途中の中間結果を格納するint型変数wなど、 適宜変数を用意すること。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:VC [3.3] 言語: C++ [4] 期限: [5] その他の制限: 繰り返しや分岐を使わず、簡単な計算で
146 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:53:54 ] [1] 授業単元: C++ [2] 問題文(含コード&リンク): キーボードから100点満点のテストの点数を入力し(-1で終了)、 10点ごとの人数を int型の配列 count[11]に数えるプログラムを 作成せよ。 テストは100点満点とし、それ以外の入力はエラーとし て無視する。ただし -1 はデータの終了を表すものとする。 点数 の入力が終了したら、度数分布を画面に出力して終了する。出力は 人数と,*(アスタリスク)によるグラフとする。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:VC [3.3] 言語: C++ [4] 期限: [5] その他の制限:
147 名前:デフォルトの名無しさん [2008/07/15(火) 13:54:37 ] >>128 ありがとうございます!無事鳴りました。 自機も移動する時鳴らしたいのですが、同じようにやるんですか?
148 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:55:09 ] [1] 授業単元: C++ [2] 問題文(含コード&リンク): 次の処理を行うプログラムを作成し実行結果を確認しなさい。 int型の配列a[5]、int型へのポインタp1, p2を宣言する 配列名aで表示される値を画面に出力する 配列a[5]のすべての要素のアドレスを出力する ポインタp1にa[0]のアドレス、ポインタp2にa[4]のアドレスを格納する p1 - p2を計算し出力する [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:VC [3.3] 言語: C++ [4] 期限: [5] その他の制限: 3問」ありますが、よろしくお願いします。
149 名前:115 mailto:sage [2008/07/15(火) 14:17:45 ] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7380.txt
150 名前:115 mailto:sage [2008/07/15(火) 14:18:16 ] >>149 は>>147 に
151 名前:115 mailto:sage [2008/07/15(火) 14:27:29 ] すまん、フラグを立てる際間違えてた if(key_lt == HOLD_KEY || key_rt == HOLD_KEY) { if( tx >= 0 && tx + cw <= 640){ px = tx; soundflg1 = 1; } else { soundflg2 = 1; } } if(key_up == HOLD_KEY || key_dn == HOLD_KEY) { if( ty >= 0 && ty + ch <= 480){ py = ty; soundflg1 = 1; } else { soundflg2 = 1; } }
152 名前:デフォルトの名無しさん [2008/07/15(火) 14:33:36 ] [1] 授業単元: C言語プログラミング [2] 分数の四則演算を計算するプログラムを作成する [3] 環境 [3.1] OS: Windows [3.3] 言語・C++ [4] 期限: ([2008年7月21日14:00まで [5]条件 分数を、 1|3 のように、| (縦棒)という記号で分子・分母を区別する。/ (スラッシュ)だと除算記号と混同してしまうから。 計算規則 a|b + c|d = (a*d + b*c) | (b*d) a|b - c|d = (a*d - b*c) | (b*d) a|b * c|d = (a*c) | (b*d) a|b / c|d = (a*d) | (b*c) 計算結果については,分母が1の時には分子のみの表示にする。分数が0(ゼロ)の時には 0(ゼロ)のみを表示する。また,最終の計算結果を既約分数にする。 1.分母がゼロの入力エラーに対しては、再入力するよう促す。 2.除算において、除数がゼロの入力エラーに対しては、再入力するように促す。 3.以下範囲の整数(分子、分母にかかわらず)に対して、正しく計算できるようにすること。 -2147483648 〜 2147483647
153 名前:115 mailto:sage [2008/07/15(火) 14:42:15 ] でキー押しっぱなしだとうるせーよ対策バージョンはこれ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7381.txt
154 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 14:45:19 ] >>115 やさしいね
155 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 14:46:32 ] >>154 こういう題材じゃなければぶっちしてるw
156 名前:デフォルトの名無しさん [2008/07/15(火) 15:13:59 ] >>153 ありがとうございます!できました。 最後に今までのをユーザー関数群でまとめたいのですが、 どうすれば良いでしょう?
157 名前:115 mailto:sage [2008/07/15(火) 15:18:03 ] うーん クラスになってるからユーザー関数にするような箇所がないかも? 大半の機能はelライブラリでやってるし・・・ C++得意な方よろしこorz
158 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:23:14 ] >>156 一度自分で完成させたソースを上げて、見てもらったほうがいいよ。
159 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:33:00 ] [1] 授業単元: C [2] 問題文(含コード&リンク):() kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7377.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7378.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7379.txt [3] 環境 [3.1] OS: (Windows/Linux/等々) Windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) Microsoft Visual Studio 2008 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 明日 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 基本ソートのcity.txtは問題文の一番下です。 お願いします。
160 名前:デフォルトの名無しさん [2008/07/15(火) 15:35:53 ] >>158 分かりました。 その前に自機と敵を下のに変えるには、 どこをどのように変更すれば良いのですか? 自機 www.dotup.org/uploda/www.dotup.org5804.bmp.html 敵 www.dotup.org/uploda/www.dotup.org5806.bmp.html 今までのソース www.dotup.org/uploda/www.dotup.org5816.cpp.html
161 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:36:46 ] >>35 Thanks, Part112>>760 #include <stdio.h> int main(void) { int m1=0, m2=0, n; while( scanf("%d",&n) ) { if(n == 0) break; if(n%2 == 1) continue; /* * if(n==m1) continue; * if(n >m2) m2=n; * if(m1<m2) swap(&m1, &m2); */ if(n>m2) { if(n>m1) { m2=m1; m1=n;} else if(n==m1) ; else m2=n; } } printf("%d \n",m2); return 0; }
162 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:39:39 ] >>145 #include <iostream> int main(void){ double k; int g; std::cout << "気温を入力:"; std::cin >> k; g = k / 2.5; g += g % 2; g = g / 2 * 5; std::cout << "気温は約" << g << "℃です。" << std::endl; return 0; }
163 名前:115 mailto:sage [2008/07/15(火) 15:42:52 ] >>160 その敵のほうのさ、白いのっていまどきマスクパターンっていわないよねw あくまで敵が何か発動中はその白塗りになると思っていいよね?
164 名前:デフォルトの名無しさん [2008/07/15(火) 15:47:31 ] >>163 はい。そうです。
165 名前:デフォルトの名無しさん [2008/07/15(火) 15:48:50 ] >>163 跳ね返りの時、白く点滅できれば…。
166 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:52:06 ] >>35 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7382.txt 指摘のあった、一番大きい値が2回入力された場合に対処してみた。
167 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:58:04 ] >>152 適当に kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7383.cpp
168 名前:161 mailto:sage [2008/07/15(火) 16:01:52 ] scanf の戻り値はエラーなら0か-1
169 名前:58 mailto:sage [2008/07/15(火) 16:04:08 ] すみません どなたか>>58 をお願いできませんか?
170 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 16:07:23 ] >>146 #include <iostream> int main(void){ int count[11]; int n; for(int i = 0;i < 11;i++) count[i] = 0; while(1){ std::cout << "点数入力:"; std::cin >> n; if(n == -1) break; if(0 <= n && n <= 100) count[n/10]++; } for(int i = 0;i < 10;i++){ std::cout << std::endl << i * 10 << "〜" << i * 10 + 9 << "(" << count[i] << "名)\t|"; while(count[i]-- > 0) std::cout << "*"; } std::cout << std::endl << "100(" << count[10] << "名)\t|"; while(count[10]-- > 0) std::cout << "*"; return 0; }
171 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 16:09:06 ] >>148 #include <iostream> int main(void){ int a[5],*p1,*p2; std::cout << "a=" << a << std::endl; for(int i = 0;i < 5;i++){ std::cout << "a[" << i << "]のアドレス:" << &a[i] << std::endl; } p1 = &a[0]; p2 = &a[4]; std::cout << "p1 - p2 (&a[0] - &a[4]) = " << p1 - p2 << std::endl; return 0; }
172 名前:115 mailto:sage [2008/07/15(火) 17:04:35 ] >>163 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7384.txt
173 名前:115 mailto:sage [2008/07/15(火) 17:05:06 ] >>163 じゃねえ>>165 だ
174 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 17:10:56 ] [1] 授業単元:プログラミング第一 [2] 問題文(含コード&リンク): 構造体bintree_nodeを次のように定義する。 typedef struct bintree_node{ int value; struct bintree_node *lt,*rt; } *bintree; このとき、次の条件を満たす関数void delgraph(bintree t)を作成せよ。 ・tからたどることのできる節点をすべてfreeによって消去する ・tに合流点・ループがあっても必ず停止し、かつどの節点にもfreeが2回以上適用されないようにする [3] 環境 [3.1] OS: (Windows/Linux/等々) Windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7/16 12:00 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 以前、似たような問題をこちらで聞いた時のプログラム(木構造に合流点やループがないかどうか調べる) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7386.c に付け足していただけるとうれしいです。
175 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 17:11:05 ] PlayerChara(60,660 この数字がおかしいな
176 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 17:42:27 ] >>89 m(dz^2/dt^2)-an/h(dz/dt)-kz=0
177 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 17:48:23 ] >>100 ですが、 回答はご用意頂けたでしょうか?
178 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 18:00:38 ] >>174 その元のコードだとbintreeはmallocを使わず実装してるので この課題には流用しずらい。 それに付け足すまでもなく自明に実装できる。 void delgraph(bintree tree){ static bintree_node dummy; if(!tree || tree->lt == &dummy)return; bintree lt = tree->lt,rt=tree->rt; tree->lt = &dummy; delgraph(lt); delgraph(rt); free(tree); } ようするに一度巡回したノードにはltにdummy突っ込んでおくだけ。 削除するんだから値を勝手に書き換えても問題ないだろう。
179 名前:デフォルトの名無しさん [2008/07/15(火) 18:17:51 ] 0の値が格納された整数変数 pos_area を使って bst_sorted_output(root,A,&pos_area)を実行することにより、 2分探索木に格納されている整数データを配列Aへ小さい順に整列して出力する関数bst_sorted_output(Node *node, int A, int *pos)をC言語を用いてコーティングせよ。 ただし、変数*pos(実体はpos_area)は配列Aにおける次の格納位置を示すのに使うものとする。
180 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 18:20:21 ] >>177 #include<stdio.h> #include<stdlib.h> int fib(int i){ static int count; int answer; if(i==0){ int ret=count;count=0;return ret; } if(i <=2){ return 1;} answer = fib(i-1) + fib(i-2); // 3回加算 count+=4; // 1回加算 計4回 return answer; } int fib2(int i){ static int count; int n, fib_n_0=1, fib_n_1=1, fib_n_2=1; if(i==0){ int ret=count;count=0;return ret; } for(n=3;n<=i;n++){ // 1回加算 fib_n_2=fib_n_1+fib_n_0; // 1回加算 fib_n_0=fib_n_1; fib_n_1=fib_n_2; count+=3; // 1回加算 計3回 } return fib_n_2; } int main(int argc, char *argv[]){ int fib_n=20; printf("%d ", fib(fib_n)); printf(" %d\n", fib(0)); printf("%d ", fib2(fib_n)); printf(" %d\n", fib2(0)); return 0; }
181 名前:174 mailto:sage [2008/07/15(火) 18:52:33 ] >>178 回答ありがとうございます。 いただいたのをもとにプログラムを書いてみたんですが、うまく削除できてないみたいなんです・・・ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7387.c これを実行すると@を5回表示するんですが、bintree 〜 is deleted.のほうは表示されなくて。 申し訳ありませんがもう1度見ていただけますか。
182 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 18:56:27 ] >>181 削除は出来ている。 ただ、ローカル変数のta0とかの値は削除したからって自動でNULLにならない。 単にbintree 〜 is deleted.の部分のif文がおかしいだけ。
183 名前:174 mailto:sage [2008/07/15(火) 19:10:38 ] >>181 調べてみたら、確かにfreeした後の領域はNULLではなくて、 何があるかわからないということが書いてありました。 そうすると、削除したかどうかってどうやって調べればいいんでしょう・・・。
184 名前:デフォルトの名無しさん [2008/07/15(火) 19:13:47 ] >>35 なのですが、関数を使わずにか、 #include <stdio.h> void swap(int *a, int *b) { int c; c=*a; *a=*b; *b=c; } int main() { int max1 = 0, max2 = 0, num; while(scanf("%d", &num) == 1){ if(num == 0) break; if(num < 0 || num % 2 == 1) continue; if(num > max2) max2 = num; if(max1 < max2) swap(&max1, &max2); } printf("%d\n", max2); return 0; } *aやcontinue、&max1を使わずに出来ないでしょうか? 何度も申し訳ありません。
185 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:18:37 ] >>184 このスレ内に汝の欲するものは既にある
186 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:19:55 ] 空白文字の個数を保ったまま、文字列を単語単位で処理をしたいんですが どのように記述するのが良いのでしょうか 例えば次の文字列があり、単語の先頭にあるaだけ大文字にしたいです _aba__dea__aga__ (_は空白) _Aba__dea__Aga__ (こうなってほしい) stringstreamでパースして、後で結合する方法を思いつきましたが、この方法だと空白は消えてしまいました。 地道に1文字ずつみて、str[i]==0 || (str[i-1]==' ' && str[i]!=' ') こういった判定をする以外に良い方法ってありますか?
187 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:24:39 ] UDP:相手先のオンライン、着信確認をせずに送ること TCP:相手先がオンラインであること、着信確認を取った上で送ること という理解でいいでしょうか?
188 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:31:55 ] >>186 こういうことをしたいのかな? それともaだけを大文字にするのかな? #include<iostream> #include<string> #include<cctype> int main(void){ std::string foo=" aba dea aga "; std::cout << foo << std::endl; for(int i=0,next_toupper_flag=1;i<foo.size();i++){ if(next_toupper_flag) foo[i]=toupper(foo[i]); // 書き換えてるけどこれっておk? if(isspace(foo[i])) next_toupper_flag=1; else next_toupper_flag=0; } std::cout << foo << std::endl; }
189 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:37:21 ] >>186 while (*str) { while (*str == ' ') str++; if (*str == 0) break; else if (*str == 'a') *str = 'A'; while (*str && *str != ' ') str++; }
190 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:37:29 ] うpローダー使おうよ
191 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:49:53 ] 複数レスにならない限り過去ログに残るほうがうれしい 質問者側としては検索で出てくるのはまずいかもしれないが… 変数名変えれば多分大丈夫さw
192 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 19:51:40 ] [1] 授業単元:C言語 [2] 問題文 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7388.txt [3] 環境 [3.1] OS: Windowsxp [3.2] コンパイラ名とバージョン: VC 6.0 [3.3] 言語: C [4] 期限:7月18日 お願いします
193 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 20:05:21 ] >>192 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7389.txt
194 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 20:06:24 ] すいませんがお願いします。 [1] 授業単元: Cプログラミング演習 [2] 問題文(含コード&リンク) 以下のようなdouble型配列がある。配列の全要素の合計と平均を求める プログラムをポインタを使用して作成しなさい。 [配列の定義] double date[5]={10.8,20.3,30.6,40.4,50.5} [実行結果] 配列の内容 date[]=10.800000,20.300000,30.600000,40.400000,50.500000 合計=152.600000 平均=30.520000 [3] 環境 [3.1] OS: (Windows vista) [3.2] コンパイラ名とバージョン: (visual studio 2005 ) [3.3] 言語: (C言語) [4] 期限:今週いっぱいまで [5] その他の制限: (シンプルにおねがいします)
195 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 20:07:51 ] >>193 どうもです!!
196 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 20:35:23 ] >>194 #include<stdio.h> #include<stdlib.h> int main(int argc, char *argv[]){ double date[5]={10.8,20.3,30.6,40.4,50.5}, *p=date, sum, ave; int i; printf("date[]=%.6f", sum=*p++); for(i=1;i<5;i++,p++){ printf(",%.6f", *p); sum+=*p; } ave=sum/5; printf("\n合計=%.6f\n", sum); printf("平均=%.6f\n", ave); return 0; }
197 名前:デフォルトの名無しさん [2008/07/15(火) 20:36:13 ] >>184 やっぱりわからないです…
198 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 20:47:23 ] [1] 授業単元: Cプログラミング [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7390.txt [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語:C [4] 期限:7月17日 お願いします。
199 名前:194 mailto:sage [2008/07/15(火) 20:48:48 ] >>196 すごい、完璧に動きました。 ありがとうございます!
200 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 20:50:55 ] 完璧に動く > 完動 > 感動した!
201 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:06:53 ] >>194 シンプル > #include <stdio.h> #define COUNT 5 double date[5]={10.8,20.3,30.6,40.4,50.5}; void main(void) { int i; double *p=date, sum=0.0, ave; printf(" 配列の内容\n date[]="); for(i=0; i<COUNT; i++, p++) { sum += *p; printf("%f", *p); if(i < COUNT-1) printf(","); } ave = sum / COUNT; printf("\n 合計=%f\n 平均=%f\n", sum, ave); }
202 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:09:30 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7391.txt [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:VC6.0 [3.3] 言語: C++ [4] 期限: 至急 [5] その他の制限:問題文をソースの上に載せています。よろしくおねがいします
203 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:09:34 ] >>198 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7392.txt
204 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:11:27 ] 動作は完璧かもしれないが、出題内容のdateはdataに変えるべきだと思った。
205 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:12:53 ] >>198 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7393.txt
206 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:20:39 ] どうか>>50 をお願いします!!
207 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:21:22 ] [1] 授業単元:数値計算 [2] 問題文(含コード&リンク): y' = x +y y(0) = 0 の厳密解を求めるプログラムを作って☆ [3] 環境 [3.1] OS:mac os x leopard [3.2] コンパイラ名とバージョン:gcc.4.0.1 [3.3] 言語: C [4] 期限: 至急 [5] その他の制限:printfもfprintfもしなくて結構です。ええ、そうです。私ができないのは積分なのです…orz すいませんすいませんすいませんすいませんすいません…。公式分かってるけど、計算ミスが多すぎて何が何だかなのです><
208 名前:186 mailto:sage [2008/07/15(火) 21:26:37 ] >>188 ありがとうございます。 next_toupper_flagで単語の先頭(書き換えるべき箇所)を保持してるわけですね 書き換えもOKだったので助かりました。 >>189 ポインタ苦手なんですが、何とか理解できました。 最初、全てのaを置換しているのかと思いましたが 最後のwhileで先頭以外を読み飛ばしてるんですね
209 名前:デフォルトの名無しさん [2008/07/15(火) 21:41:29 ] >>184 ですが 関数使わずにか* & continueを使わない方法ないですか? 図々しいとは思いますが、今日中なので頼みます
210 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:46:25 ] >>209 >>166 でダメなら諦めるしかない
211 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:55:52 ] >>107 >>110 Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,NULL,3, 0, 0,5, 2,40,40); にすればいいだけなのに(´;ω;`) >>126 引数4は 0-背景 1- パターン1 → パターン2 → …… → パターンN → パターン1→ …… 2- パターン1 → パターン2 → …… → パターンN → パターンN-1 → パターンN-2 → …… → パターン1 → ……
212 名前:デフォルトの名無しさん [2008/07/15(火) 21:58:06 ] >>210 アドバイスありがとうございます。
213 名前:198 mailto:sage [2008/07/15(火) 22:02:15 ] >>205 ありがとうございます! 初めて見る単語の理解に努めます・・・
214 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 22:12:06 ] [1] 授業単元: Cプログラミング演習 [2] 問題文 20次元の2つのベクトル余弦cos(θ)を求めよ。 ベクトルの要素はそれぞれ、ユーザーが入力すること。ベクトル要素は double型とすること。 [3] 環境 [3.1] OS: (Windows vista) [3.2] コンパイラ名とバージョン: Linux [3.3] 言語: (C言語) [4] 期限:7/16 [5] その他の制限: 特になし
215 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 22:42:36 ] >>4 07/15 13:00 線形リスト >>17 07/15 14:00 分数の四則演算を計算するプログラム >>35 07/15 17:00 キーボード入力と表示 : >>72 , >>141 , >>161 , >>166 >>37 07/15 17:00 数字の読み方 : >>39 , >>40 , >>42 ? >>44 07/17 --:-- 4択3種 >>45 07/15 07:00 ゲーム? : >>108->110 その他アドバイスは多数 >>46 07/18 --:-- メディアン : >>47 , >>49 >>50 07/17 00:00 減衰振動 >>51 07/15 12:00 ソーティング:基本交換法と挿入法 : >>91 >>55 07/15 14:00 文字列中の特定文字を削除 : >>125 , >>131 >>58 07/15 18:00 木構造を用いた数式の処理 >>84 07/16 12:30 自由落下・BMI : >>86
216 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 22:44:03 ] >>100 07/17 --:-- フェボナチ数列 : >>180 >>145 --/-- --:-- 5ごとに丸め >>162 >>146 --/-- --:-- 数字入力と度数分布表示 : >>170 >>148 --/-- --:-- ポインタ演算 : >>171 >>152 07/21 14:00 = >>17 : >>167 >>159 07/16 --:-- 複素数演算・ソーティング >>174 07/16 12:00 領域開放 : >>178 ? >>179 --/-- --:-- 2文木->配列 >>186 ? : >>188 , >>189