08/06/21 20:45:40
>>194
どうも素晴らしいソースありがとうございました。
余裕があればでいいので、削除と編集も作っていただきたいです。
238:デフォルトの名無しさん
08/06/21 20:48:49
>>236さんもありがとうございます
239:デフォルトの名無しさん
08/06/21 21:08:43
>>90お願いします。
240:デフォルトの名無しさん
08/06/21 21:11:21
>>237 >>187 >>79 削除を追加
URLリンク(kansai2channeler.hp.infoseek.co.jp)
241:デフォルトの名無しさん
08/06/21 21:14:20
>>240
ありがとうございました。ちなみにここって、自分の作ったソースのどこが悪いかって見てもらえるんですか?
242:デフォルトの名無しさん
08/06/21 21:16:42
>>241
さすがにそりゃスレ違い、となる。質問なら↓で
C言語なら俺に聞け(入門篇) Part 30
スレリンク(tech板)
243: ◆qQYVX6rY3I
08/06/21 21:54:51
すいません>>176です。
提出期限を完全に間違えてました。。
6/23
夕方6です。
いずれにせよ焦ってます;;
どなたか目を通してくれるとありがたいです;;
244:デフォルトの名無しさん
08/06/21 22:05:08
せ、せめてリアクションがほしかった・・・orz
245:デフォルトの名無しさん
08/06/21 22:15:28
何を問うているのかわかりずらいな、>>176
246:デフォルトの名無しさん
08/06/21 22:18:33
>>237 >>187 >>79 編集、削除を追加
URLリンク(kansai2channeler.hp.infoseek.co.jp)
247:デフォルトの名無しさん
08/06/21 22:25:04
>>241 >>237 >>187 >>79
URLリンク(kansai2channeler.hp.infoseek.co.jp)
248:デフォルトの名無しさん
08/06/21 22:31:49
【本日VIP投票日ですた】●第3回全板人気トナメ●【反省会会場】
スレリンク(news4vip板)
vipを助けてくれ!!!!!!!!
負けそうだ!!!!!
シベリア超特急に負けそうなんだ!!!!!!!!!!!
俺 達 の v i p が 無 く な る ! ! ! ! ! ! ! !
ニュー速の本部を荒らして俺らに投票してくれ!!!!!!!!
P C ケ ー タ イ 友 達 家 族 を フ ル 動 員 し て
コードをとってきてくれ!!!!!!!!!!!!!
ここで勝ったら二回戦もよろしく!!!!!!!!!!!
つまんねー話してないで協力するんだ!!!!!!!!!!!!!!!!
2chが変わってしまうぞ!!!!!!!!!!!!!!
助けてくれ!!!!!!!!!!!
まだまだ俺たちはおわれねぇ!!!!!!!!!!!!!!!!!!
249:デフォルトの名無しさん
08/06/21 22:43:04
>>176
>>243
問題文が悪い、そんなんじゃ誰も手を付けない
結局、逆ポーランド記法と通常の計算を数値入力でやれって事か?
やって欲しいなら、具体例をだしなよ
250: ◆qQYVX6rY3I
08/06/22 01:29:43
>>176です。
すいません。
問題文をそのまま載せたんですが
要点をまとめるべきでした。
つまり>>249さんの通りです。
例としては
入力数式
25.18,#,+,8,*,6,7,10,+,*,-,8,/
に対する答えは -5
となっています。
251:デフォルトの名無しさん
08/06/22 01:39:03
>>250
余計わからん
25.18,#,+,8,*,6,7,10,+,*,-,8,/
が-5になる流れを書いてくれ
252:デフォルトの名無しさん
08/06/22 02:15:19
まあ、この調子じゃ期限内に>>176が行なわれる事はないだろう
ヒントに3つの数字を3桁の数値に変換する関数とかあるのに、いきなり 25.18 とか…
本人が問題を理解してないか、問題文以外に課題の仕様があるのを正確に伝えて無いかがオチかと
253:デフォルトの名無しさん
08/06/22 02:17:19
まあ恐らく25,18の書き間違えだろう
それならば-5になる
254:デフォルトの名無しさん
08/06/22 02:51:54
25,18
だとしても逆ポーランド記法なら-6ではあるまいか…
255:デフォルトの名無しさん
08/06/22 02:53:28
スマン、桁落ちさせるのか、四捨五入だと思ってた…
256:デフォルトの名無しさん
08/06/22 03:23:52
”書き間違え”は”書き間違い”の書き間違えだろう
257:デフォルトの名無しさん
08/06/22 05:54:21
どなたか>>64をお願いします!
258:デフォルトの名無しさん
08/06/22 06:36:18
25,18,#,+,8,*,6,7,10,+,*,-,8,/
25
25,18
25,18,#
25,-18
25,-18,+
7
7,8,*
56
56,6
56,6,7
56,6,7,10
56,6,7,10,+
56,6,17
56,6,17,*
56,102
56,102,-
-46,8
-46,8,/
-5.75
こんな感じになった
259:デフォルトの名無しさん
08/06/22 07:11:13
>>176
URLリンク(kansai2channeler.hp.infoseek.co.jp)
260:デフォルトの名無しさん
08/06/22 11:53:48
>>148
そういう発言をしてるあなたはどこにお住まいの方ですか?
あなたの出した課題が載ってたとか?
261:デフォルトの名無しさん
08/06/22 12:23:24
気にすんなよ
最悪バレても単位が出ないだけだろ
もっとどうどうとしろ
262:デフォルトの名無しさん
08/06/22 13:39:55
1.授業単元:分岐演算テーブル作成
2.問題文:URLリンク(www-2ch.net:8080)
3.環境:C言語がコンパイル環境できるならどれでも可
4.期限: できるだけ早く
5.その他
他の分岐演算テーブルは解けたんですが、
最後がどうしても解けません・・・・数学に自信のある方お願いしますorz
※例題とかそういった説明補足に関してはreadme.txtを参照ください。
263:デフォルトの名無しさん
08/06/22 14:09:39
>>247
お願いした通り作って下さってありがとうございました。
質問なんですが16行目のtypedefってなんの処理なんですか?
何せまだC初めて3ヶ月しか経ってなくて…。
264:デフォルトの名無しさん
08/06/22 14:15:46
>>263
URLリンク(www.google.co.jp)
265:デフォルトの名無しさん
08/06/22 15:02:09
だ、誰か>>144を頼みます><
266:デフォルトの名無しさん
08/06/22 15:07:56
> ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください
267:179
08/06/22 15:09:28
とりあえず騎士巡歴のソースを見つけたのですが、
これに時間計算量の評価回数と実行時間を
どういうやって出力させればいいか全く解りません。
どなたか・・・よろしくお願いします・・・
URLリンク(kansai2channeler.hp.infoseek.co.jp)
268:デフォルトの名無しさん
08/06/22 15:43:38
>>64,257
URLリンク(kansai2channeler.hp.infoseek.co.jp)
C99仕様
269:262
08/06/22 15:47:19
int main(void)
{
int i; /* ループカウンタ */
unsigned char chTable[256]; /* テーブル領域 */
/* テーブル初期化 */
for(i = 0; i < 256; i++)
{
/* このような式でdata.binのデータ内容と同じデータを生成させる */
chTable[i] = (unsigned char)((i % 2) ? 255 - (i + 1) / 2 : (i + 1) / 2);
}
return 0;
}
>>262の課題の算出方法に関する縛りですが、
上記ループ内の様な式で算出する事が条件です。
270:デフォルトの名無しさん
08/06/22 16:15:42
>>269
それは、読めば分かるから。余計な茶々はいれないで。
縛りについて、ほかには? S
271:262
08/06/22 16:22:16
>>270
すみません。一応スレ側にも書いておこうかと思って。
他の縛りは特にないです。
272:デフォルトの名無しさん
08/06/22 17:05:42
>>179
5x5, 6x6のそれぞれの解の個数わかる?
あってるのかどうかわからないから
アップできない。
ちなみにまだ課題1だけしか・・・
273:デフォルトの名無しさん
08/06/22 17:17:40
>>262
for(i=0; i<256; i++) chTable[i] = (int)(16-i/8.0) * (int)(16-i/8.0);
274:272
08/06/22 17:23:34
あ、C言語じゃん
C++で作ってしまった
もういいや
275:デフォルトの名無しさん
08/06/22 17:25:37
>>273
見た瞬間、間違ってるかと…
最初の値は0じゃね
276:デフォルトの名無しさん
08/06/22 17:26:52
見た瞬間とか言っていいレベルじゃないから、実行してから口から糞たれろ。
277:デフォルトの名無しさん
08/06/22 17:29:18
>>276
おまいさん、バイナリエディタすら持ってないのか…?
278:デフォルトの名無しさん
08/06/22 17:31:57
256をunsigned char に代入したらどうなると思ってんだよ、このボケが
279:デフォルトの名無しさん
08/06/22 17:33:02
0xFFです
280:デフォルトの名無しさん
08/06/22 17:36:11
(int)(16-0/8.0) * (int)(16-0/8.0)
これが256になるのか?
281:デフォルトの名無しさん
08/06/22 17:39:45
>>280
どうみても0
282:デフォルトの名無しさん
08/06/22 17:40:22
にはならない
283:デフォルトの名無しさん
08/06/22 17:40:31
16 * 16 が256にならないでどうすんだよw
284:270
08/06/22 17:41:55
unsigned char j;
unsigned char k;
for(i = 0; i < 256; i++)
{
if(i==0) {j=33; k=0;}
if(i==128) {j=253; k=1;}
/* このような式でdata.binのデータ内容と同じデータを生成させる */
if(i<128){
chTable[i]=k;
if((i&7)==0) {j-=2; k-=j;}
}
else{
if((i&7)==0) {j+=2; k+=j;}
chTable[i]=k;
}
if((i&15)==0) printf("\n%03X ", i);
printf("%02X ", chTable[i]);
}
for(i = 0; i < 256; i++)
{
(i==0) ? j=33, k=0 : 0;
(i==128) ? j=253, k=1 : 0;
/* このような式でdata.binのデータ内容と同じデータを生成させる */
(i<128) ? ( chTable[i]=k, ((i&7)==0 ? j-=2, k-=j : 0) ) :
( ((i&7)==0 ? j+=2, k+=j : 0), chTable[i]=k ) ;
(i&15)==0 ? printf("\n%03X ", i) : 0;
printf("%02X ", chTable[i]);
}
285:デフォルトの名無しさん
08/06/22 17:45:06
270の登場で、更に盛り上がってまいりましたw
286:デフォルトの名無しさん
08/06/22 17:49:05
(i==0) ? 0 : (int)(16-i/8.0) * (int)(16-i/8.0);
こうだろw
片落ち代入じゃ、同じデータを作っても式があってないって事だろ?
違うのか…
287:デフォルトの名無しさん
08/06/22 17:49:12
盛り上がるもなにも、猿以下のアホが湧いてるだけだろ。
288:デフォルトの名無しさん
08/06/22 17:49:23
[1] 授業単元: 実験
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
単振り子の方程式の近似解をホイン法によって求めるプログラム
ルンゲ・クッタ法のプログラムを資料として、オイラー法のプログラムは完成し、出力の値も問題ありませんでした。
次にホイン法のプログラムを作り、実行したところ、
本来ならば(π/4)cos(x)のグラフと近くなるはずの解の値が途中から一次方程式のようになってしまいます
[3] 環境
[3.1] OS: LinuxまたはWindows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 6月23日まで
[5] その他の制限:
できれば自分の作ったプログラムの間違っている箇所を修正して作ってくださると助かります。
今回の課題はプログラムリストの提出は求められていないので、多少動作が分かりにくくても問題はないです。
最後に解の値を出力しているのは、そのデータをgnuplotでプロットするからです。
289:デフォルトの名無しさん
08/06/22 17:54:18
280は(int)(16-0/8.0) * (int)(16-0/8.0)がいくつになると思ったのか答えてくれ
290:デフォルトの名無しさん
08/06/22 17:56:02
0x00000100です
291:デフォルトの名無しさん
08/06/22 17:59:31
ID無しのスレでは何事も諸行無常なり
292:デフォルトの名無しさん
08/06/22 18:00:17
-と/の優先順位がわからないって小学生以下だなw
293:デフォルトの名無しさん
08/06/22 18:03:47
顔真っ赤な人がいると聞いて。
294:デフォルトの名無しさん
08/06/22 18:04:10
>>289
0/8.0ってプログラム落ちないか?
295:デフォルトの名無しさん
08/06/22 18:05:43
8.0/0なら落ちます
296:デフォルトの名無しさん
08/06/22 18:07:11
どこまで釣りでどこまで本気かわからないスレだw
297:デフォルトの名無しさん
08/06/22 18:09:21
270が可哀相だよ
合ってるよスゲーよ
298:デフォルトの名無しさん
08/06/22 18:10:09
この流れはwwwwwwwwwww
299:デフォルトの名無しさん
08/06/22 18:12:21
>>294
void main(){0/8.0;}
300:デフォルトの名無しさん
08/06/22 18:37:08
8x8のナイトの旅がなかなか解き終わらない(´・ω・`)
やっぱり総当り厳しいのかな・・・
301:デフォルトの名無しさん
08/06/22 18:37:10
[1] 授業単元:暇潰し
[2] 問題文(含コード&リンク):
平面上にn個の点について、それぞれ他の全ての点に対し2点を結ぶ辺を作り、その重みをユークリッドノルムとして計算し、昇順にソートする。
nは10万以上のため、全ての重みをメモリ上で保持してソートするのは現実的でない。現実の計算機上で高速に計算しソートする方法を示せ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: g++
[3.3] 言語: C++
[4] 期限: (無期限]
[5] その他の制限: なし
前スレで回答がもらえなかったので再掲載。
302:デフォルトの名無しさん
08/06/22 18:47:54
>>288
h*の位置がおかしくねーか?
h*(fk1[i] + fk2[i])/2だと思うんだが。
303: ◆hN02YkuTxM
08/06/22 18:56:40
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC6.0
[3.3] 言語: C
[4] 期限: 6月22日 13時まで
[5] その他の制限:
本文内にある三箇所の()の中にのみ手を加えて下さい
304:デフォルトの名無しさん
08/06/22 18:57:14
>>301
nが10万程度の場合ならば、主記憶が128GBの計算機を用いれば簡単。
S社の製品の場合、最も廉価なものであれば200万円程度で購入できる。
305:デフォルトの名無しさん
08/06/22 19:06:47
>>301
データをディスクに書き込んで、ディスク上でマージソート
再帰が深くなって断片がメモリに載るサイズになったら、好きなアルゴリズムを使ってメモリ上でソート
306:デフォルトの名無しさん
08/06/22 19:15:08
>>303
URLリンク(kansai2channeler.hp.infoseek.co.jp)
307:デフォルトの名無しさん
08/06/22 19:17:03
どうでもいいことだが
>>301
> 平面上にn個の点について、それぞれ他の全ての点に対し2点を結ぶ辺を作り、その重みをユークリッドノルムとして計算し、昇順にソートする。
# 平面上にn個の点について ~中略~ 昇順にソートする。
なの?
それとも辺をソートするの?><;;
308:デフォルトの名無しさん
08/06/22 19:18:33
>>307
日本語でおk
309: ◆hN02YkuTxM
08/06/22 19:23:42
>>306
ありがとうございました
310:デフォルトの名無しさん
08/06/22 19:36:27
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク)
10進数の正の整数を入力し、2進数に変換して表示せよ
可能ならば、正の実数も変換できるものを作成せよ
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:明日まで
よろしくお願いします
311:262
08/06/22 19:43:08
様々な解答ありがとうございます
上記の解答を元に自分なりに色々思考を
凝らしていきたいと思います
本当にありがとうございました
312:デフォルトの名無しさん
08/06/22 19:44:01
>>310
#include <stdio.h>
int main(void)
{
unsigned int n, i = 1 << sizeof(unsigned int) * 8 - 1;
scanf("%d", &n);
while((i&n)==0) i>>=1;
while(i) {
putchar(n & i ? '1' : '0');
i >>= 1;
}
return 0;
}
313:デフォルトの名無しさん
08/06/22 19:47:01
>>281
>>287
>>292
>>293
>>308
314:デフォルトの名無しさん
08/06/22 19:48:07
>>275
>>277
>>280
315:デフォルトの名無しさん
08/06/22 19:55:11
>>288
func(t, x, f) /*f(t, x)を定義*/ double t, x[], f[];{
f[0] = x[1]; f[1] = - (G/L0)*sin(x[0]);
}
を使わず
func(t,x,f,h)double t,x[],f[],h;{
f[0]=x[1]*h;f[1]=-(G/L0)*sin(x[0])*h;
}
として
for ( n = 0; n < n_step; n++ ) {
t[n+1] = T_s + (n+1)*h;
func(t[n], x[n], dfk1,h); /*dfk1=h* f(t[n], x[n])*/
for( i = 0;i < N_var; i++){
y[i] = x[n][i] + dfk1[i]; /*y[i]:中間変数Xn*/
}
func(t[n+1], y, dfk2,h); /*dfk2=h*f(t[n+1], y)=h*f(t[n+1], Xn)*/
for( i = 0; i < N_var; i++){
x[n+1][i] = x[n][i] + (dfk1[i] +dfk2[i])/2;
/*x[n+1] = x[n] + (fk1 + fk2)/2*/
}
}
316:デフォルトの名無しさん
08/06/22 20:09:00
>>310
#include <stdio.h>
void f1(int x) {
int y=x/2;
if(y!=0) f1(y);
printf("%d",x%2);
}
void f2(double x) {
int y;
double z=x*2.0;
y=(int)z;
z=z-(double)y;
printf("%d",y);
if(z!=0.0) f2(z);
}
int main(void) {
int i;
double r;
scanf("%lf",&r);
i=(int)r;
r=r-(double)i;
f1(i); putchar('.'); f2(r);
return 0;
}
317:デフォルトの名無しさん
08/06/22 20:14:52
>>103
微妙ですがありがとうございます
318:デフォルトの名無しさん
08/06/22 20:15:55
何様だw
319:デフォルトの名無しさん
08/06/22 20:19:35
ワロタ
320:デフォルトの名無しさん
08/06/22 20:21:17
>>263
>>247 に不要なゴミコードが残ってた・・・気づいたら消しておいて。
> printf("p : %p \n",p);
データ追加、コピーの辺り。あと、一番最後に free(list); を忘れてた。
>>264 に説明があるけど、コードの中では
struct p_dataの構造をDATA型として、struct node_listの構造をLIST型
として定義し、変数の宣言のときに、わざわざ struct p_data と書かずに
DATA以下適当に変数を宣言できるようになってる。
321:デフォルトの名無しさん
08/06/22 20:21:32
>微妙ですがありがとうございます
微妙ですが
微妙ですが
微妙ですが
微妙ですが
微妙ですが
微妙ですが
微妙ですが
322:デフォルトの名無しさん
08/06/22 20:23:08
>>103
> 俺のプレイ
> もうこれ以上は減らせないw
そうかそうか、何回も何回もやりまくってやりまくってぇ~
323:デフォルトの名無しさん
08/06/22 20:24:12
>>312>>316
ありがとうございます
>>演算子(?)は初見なんでぐぐってきます
324:hoge ◆ZdPTx91qxk
08/06/22 20:36:18
>>312
URLリンク(kansai2channeler.hp.infoseek.co.jp)
まぁもう回答でてるっぽいけどな
325:デフォルトの名無しさん
08/06/22 20:39:45
ありがとうございます!!!!
微妙ですが
326:デフォルトの名無しさん
08/06/22 20:41:11
微妙ですが
が、今後のスタンダードかなるほど
327:デフォルトの名無しさん
08/06/22 20:41:39
このスレで笑ったのは初めてかもしれない
328:デフォルトの名無しさん
08/06/22 20:49:02
>>317
最近の人間はプログラムの意識が高いんだな…
構造体習って無いから使うな、簡単なコードで、人間と同等以上のAIプログラムを作れって…
と、作った本人が言って見るテスト
キミの周りの学生が、余裕でその課題をこなしてるなら
キミは今居る場所に居つづける事を考え直した方が良いかもよw
329:デフォルトの名無しさん
08/06/22 20:51:48
揚げ足取りがミイラ取りになってる件
330:デフォルトの名無しさん
08/06/22 20:57:17
微妙ですが私も揚げ足取りになってしまうかもしれません ><;
331:デフォルトの名無しさん
08/06/22 21:05:18
[1] 授業単元: Cプログラミング実習
[2] 問題文(含コード&リンク)--------------------
int型の数値データの内部表現を2進数で表示する。
実行に当たっては次のデータを入力して確認せよ。
[1]0
[2]1
[3]-1
[4]32767
[5]-32768
実行例↓
入力データ:-1
内部表現:1111111111111111
入力データ:32767
内部表現:0111111111111111
-----------------------------------------------
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (visual studio 2005 )
[3.3] 言語: (C言語)
[4] 期限:25日まで
[5] その他の制限: (まだ大してC言語は習ってないので簡単な関数でお願いします)
332:デフォルトの名無しさん
08/06/22 21:11:35
>>331
なんか、前スレにマイナスにも対応しているものがあった・・・
ちと探してくる
333:デフォルトの名無しさん
08/06/22 21:14:37
>>332
わざわざすいません<(_ _*)>
334:デフォルトの名無しさん
08/06/22 21:20:35
>>331
int型は16bitでいいの?
335:デフォルトの名無しさん
08/06/22 21:25:17
>>331
URLリンク(kansai2channeler.hp.infoseek.co.jp)
336:デフォルトの名無しさん
08/06/22 21:29:04
>>331
#include <stdlib.h>
#include <stdio.h>
void main(int argc,char* argv[])
{
int _in = atoi(argv[1]);
int i;
for(i = 0;i < 32;i++)
{
printf("%d",(_in & (0x80000000>>i) )?1:0);
}
printf("\n");
}
数値は引数で入力、エラーチェックはしてない
337:デフォルトの名無しさん
08/06/22 21:33:54
>>331
#include<stdio.h>
int main( void ){
int i,n;
printf("入力データ:");
scanf("%d",&n);
printf(" 内部表現:");
for(i=0;i<16;++i){
if(n & 1<<15-i) printf("1");
else printf("0");
}
return 0;
}
338:デフォルトの名無しさん
08/06/22 21:34:00
微妙だな
339:デフォルトの名無しさん
08/06/22 21:40:10
いや、絶妙だ
340:デフォルトの名無しさん
08/06/22 21:42:20
>>334
VS2005でWinが対象だから32bitじゃない?
341:デフォルトの名無しさん
08/06/22 21:42:51
絶妙ですがありがとうございます
342:デフォルトの名無しさん
08/06/22 21:45:06
まっ、待ってたもう、麻呂の16進数まで対応したクソースを拝むでおじゃるよ
もう少し待ってたもう
343:デフォルトの名無しさん
08/06/22 21:51:37
>>340
実行例が16桁だから…
344:デフォルトの名無しさん
08/06/22 21:52:05
int i,n;
int bit=sizeof(int)*8;
//nをキーボードから入力
for(i=bit-1; i>=0; i--)
printf("%d", n>>i&1);
345:デフォルトの名無しさん
08/06/22 21:52:46
>>343
それは確かに気になった…。
346:331
08/06/22 22:02:29
テキストの問題なんですけど、何ビットとか書いてないんですよ・・・
多分16ビットでOKだと思います。
347:デフォルトの名無しさん
08/06/22 22:03:37
Winでint型だと普通は32bitだけどね
348:デフォルトの名無しさん
08/06/22 22:07:13
普通にsizeof演算子使えよ
でも1byteが9bitの環境もあるって聞いたことあるな
349:デフォルトの名無しさん
08/06/22 22:11:32
テキストってことは16bit時代の参考書をそのまま使ってるんじゃね?
あくまで「int型」の内部表現を出力するんであれば32bitが正解だろうなぁ
350:デフォルトの名無しさん
08/06/22 22:12:10
せっかくがんばったのでうpっときます。
>>179
C++だけど参考にでもしてください。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
351:350
08/06/22 22:14:09
一番最後のcoutではCtrl+Gだったけど、ダメみたいね・・・
352:350
08/06/22 22:15:29
あら、コピったら生きてた
さばら
353:デフォルトの名無しさん
08/06/22 22:15:42
DWORD
WORD
BYTE表現でいいだろ
354:デフォルトの名無しさん
08/06/22 22:22:32
>>301 nが小さいときだけおk
#include<iostream>
#include<algorithm>
#include<cmath>
struct point_t{
double x, y;
};
double calc_distance(const point_t &a, const point_t &b){
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
int main(void){
const int n=1000; // これが小さいときだけ
double *distance=new double[n*(n-1)];
point_t *point=new point_t[n];
long i, j, x=0;
for(i=0;i<n;i++){
point[i].x=rand();
point[i].y=rand();
}
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
distance[x++]=calc_distance(point[i], point[j]);
}
}
std::sort(&distance[0], &distance[x]);
for(i=0;i<x;i++){
std::cout << distance[i] << std::endl;
}
return 0;
}
355:デフォルトの名無しさん
08/06/22 22:22:44
16進数表示ならこんな漢字かな
実行して無いからわからんが
for(i=bit-4; i>=0; i-=4)
printf("%c", "0123456789abcdef"[n>>i&15]);
356:デフォルトの名無しさん
08/06/22 22:25:32
>>331
URLリンク(kansai2channeler.hp.infoseek.co.jp)
まっ、麻呂の、麻呂のクソースを見てたもうぅ~~
10進数の数値を2~16進数まで変換できるでおじゃる
357:デフォルトの名無しさん
08/06/22 22:28:53
>>350
ちょ、俺のコンパイラ(BCC5..9.3)だと
direction++;で
エラー E2277 chess1.cpp 362: 左辺値が必要
(関数 CAnalyzeTourOfKnight::AnalyzeTourOfKnight(ANALYZETYPE) )
358:デフォルトの名無しさん
08/06/22 22:29:23
微妙だな
359:デフォルトの名無しさん
08/06/22 22:33:05
クソースとしては絶妙でおじゃ
360:デフォルトの名無しさん
08/06/22 22:33:11
まあ出題者がgcc指定してるからgccで通ればよいのか
361:デフォルトの名無しさん
08/06/22 22:37:44
>>357
>>360
いや
俺もbccなんだけど
そこで落ちる理由はわからん・・・??
俺の環境じゃ落ちないぞ?
362:デフォルトの名無しさん
08/06/22 22:39:20
それは奇妙だな
363:デフォルトの名無しさん
08/06/22 22:42:57
C:\Documents and Settings\knight>bcc32 TourOfKnight
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
TourOfKnight.cpp:
警告 W8004 TourOfKnight.cpp 134: 'tempY' に代入した値は使われていない(関数 CAnal
yzeTourOfKnight::MoveKnightPosition(int &,int &,DIRECTION) )
警告 W8004 TourOfKnight.cpp 134: 'tempX' に代入した値は使われていない(関数 CAnal
yzeTourOfKnight::MoveKnightPosition(int &,int &,DIRECTION) )
警告 W8004 TourOfKnight.cpp 309: 'y' に代入した値は使われていない(関数 CAnalyzeT
ourOfKnight::KinghtRoundBoard(int,int) )
警告 W8004 TourOfKnight.cpp 453: 'comparisonNum' に代入した値は使われていない(関
数 main() )
警告 W8004 TourOfKnight.cpp 452: 'answerNum' に代入した値は使われていない(関数 m
ain() )
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
これだけ
364:デフォルトの名無しさん
08/06/22 22:44:11
>>361
BCC(今はCodeGearCCだからCCCか)のバージョンは同じ?
5.9.3ってBCB2007の付属品だよ。
フリーで配布されているのは5.5.1。
365:デフォルトの名無しさん
08/06/22 22:44:39
>>364
5.5.1
366:デフォルトの名無しさん
08/06/22 22:46:08
enum値のインクリメントは許されないのか・・・・
367:デフォルトの名無しさん
08/06/22 22:46:42
ちなみにVC9のエラーログ
c:\documents and settings\********\my documents\visual studio 2008
\projects\learn1\chess1\chess1.cpp(367) : error C2676: 二項演算子 '++' :
'CAnalyzeTourOfKnight::DIRECTION' は、この演算子または定義済の演算子に
適切な型への変換の定義を行いません。(新しい動作; ヘルプを参照)
368:デフォルトの名無しさん
08/06/22 22:51:13
>direction++;で
>エラー E2277 chess1.cpp 362:
ファイル名を chess1.cにするか
direction = direction + 1;
にしたらいいんでない?
369:デフォルトの名無しさん
08/06/22 22:51:49
>>366
そのままではできないが、演算子多重定義すればできる。
370:デフォルトの名無しさん
08/06/22 22:52:59
>>368
ああそうか。てっきり>>350で
>C++だけど参考にでもしてください。
と書いてあったからcppしてたわ。
<time>も通らないので<ctime>にしてたしおかしいわと
思ってたんだ
371:デフォルトの名無しさん
08/06/22 22:53:35
direction = static_cast<Month>(direction+1);
でどうだ!!?
ということでごめんなさい。
372:デフォルトの名無しさん
08/06/22 22:55:04
>>370
いやcppだけどね。
timeは通ってるけど
たしかにctimeだわな('A`)
スマソ
373:350
08/06/22 22:56:14
俺のレス
>>361
>>363
>>365
>>366
>>371
>>372
374:デフォルトの名無しさん
08/06/22 22:56:27
要するにC++モードでもenumに++演算子を適用できる
コンパイラと弾くコンパイラがあるわけだ
規格書ではどうなってるのかな
375:デフォルトの名無しさん
08/06/22 22:57:09
ウォッチでは通るのに
376:350
08/06/22 23:01:35
まあ普通に考えたら
enum{
A=1,
B=10,
C=100,
D=1000
};
とかがあることもあるわけだから、やっぱり++は許されないのかな
377:179
08/06/22 23:23:16
>>350
返事遅れてごめんなさい・・・
自分C++全く知らないのですが、やっていただいたことに関しては
本当に感謝してます!
聞いてばかりで申し訳ないのですが、
このソースをCに書き換えるにはどのようにすればよいのでしょうか?
ちなみに調べてみたんですが5x5は解の個数が304個みたいです。
378:デフォルトの名無しさん
08/06/23 00:21:32
全部関数にしたらどう?
379:350
08/06/23 00:22:56
>>377
304><
感動><
変数がめんどくさいかも・・・
全部staticでいいならいいけど・・・
380:デフォルトの名無しさん
08/06/23 00:26:52
Cってことはfor内での変数宣言とかも直さなきゃならんか
381:デフォルトの名無しさん
08/06/23 00:37:11
URLリンク(www.kameda-lab.org)
382: ◆15lIZBDwz6
08/06/23 00:37:22
[1] 授業単元:プログラミングⅡ
[2] 問題文(含コード&リンク):
5 つの文字列を格納できる二次元配列 str を定義し,キーボードから5つの文字列を入力する.
その後,配列 str と文字列数 num (この例では,5)を引数として受け取り,
最長の文字列が格納されている配列の添え字(行の要素番号)
を返す関数 int str_maxlen(const char str[][100], int num)を定義し,動作を確認するプログラムを作成せよ.
但し,同じ長さの文字列が存在する場合は,最初に現れる文字列を優先すること.
また,文字列長はライブラリ関数は利用せずに求めること。
main関数内で,str_maxlen 関数の返却値を元に文字列を出力することで,動作確認すること.
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: bcc
[3.3] 言語: C
[4] 期限:2008年6月24日
[5] その他の制限: 習った範囲は文字列まで。その他の制限は問題文参照
自分で解いていたらこの問題だけ上手くいかないのでお願いします
383:350
08/06/23 00:38:42
>>377
書き換えてみた。
static変数使いまくりでひどいけど
ちなみに100行目に入れる値を変えればいろいろ変化します。
③には非対応ですね。
自分で盤を初期化すれば多分できるのかな・・・
384:350
08/06/23 00:39:13
>>383
URLリンク(kansai2channeler.hp.infoseek.co.jp)
大事なもん貼り忘れた
385:デフォルトの名無しさん
08/06/23 00:55:26
>>382
#include <stdio.h>
int str_maxlen(char str[][100], int num) {
int i, j, max = 0, max_index = 0;
for(i=0; i<num; i++) {
for(j=0; str[i][j]; j++);
if(max < j) max = j, max_index = i;
}
return max_index;
}
int main(void)
{
char str[5][100];
int i;
for(i=0; i<5; i++) scanf("%s", str[i]);
printf("最長の文字列は%s", str[str_maxlen(str, 5)]);
return 0;
}
386:デフォルトの名無しさん
08/06/23 00:56:09
>>382
#include<stdio.h>
str_maxlen(const char str[][100], int num);
int main( void )
{
char str[ 5 ][ 100 ];
int i = 0;
int length = 0;
for( i = 0; i < 5; i++ ){
gets( str[ i ] );
}
length = str_maxlen( str, i );
printf( "%d", length);
return( 0 );
}
int str_maxlen(const char str[][100], int num)
{
int maxlen=0;
int i = 0, k = 0;
for( i = 0; i < num; i++ ){
for( k = 0; str[ i ][ k ] != '\0'; k++ ){}
if( k > maxlen ){
maxlen = k;
}
}
return( maxlen );
}
387:デフォルトの名無しさん
08/06/23 00:57:38
今だっ!おまいらうpロダ(ry
388:386
08/06/23 00:59:01
>main関数内で,str_maxlen 関数の返却値を元に文字列を出力することで,動作確認すること.
これやってないわ
スマソ
389:デフォルトの名無しさん
08/06/23 01:00:51
返すのは長さじゃなくて添え字
390:デフォルトの名無しさん
08/06/23 01:02:19
>>389
まぁ結局は添え字だが、
返すべきはkじゃなくてiだわな
391:デフォルトの名無しさん
08/06/23 01:05:41
>まぁ結局は添え字だが、
何を言ってるんだ?
392:377
08/06/23 01:07:21
>>383、>>384
書き換えまでやってくださったとは・・・!
本当何から何まですみません。
ありがとうございます!(>_<)
393:デフォルトの名無しさん
08/06/23 01:14:32
>>350 コンパイルは通ったけど、解が見つからなかったので報告。
// direction++;
direction = static_cast<DIRECTION>(direction+1);
/* switch(direction){
case NOTYET:direction = START; break;
case START: direction = RU; break;
case RU: direction = RD; break;
case RD: direction = DR; break;
case DR: direction = DL; break;
case DL: direction = LD; break;
case LD: direction = LU; break;
case LU: direction = UL; break;
case UL: direction = UR; break;
case UR: direction = END; break;
case END: direction = NOTYET; break;
}
*/
394:デフォルトの名無しさん
08/06/23 01:17:27
6x6の盤でナイトの旅を始めます。
解析中...
正しく解析できました。
1 30 27 18 3 10
26 17 2 11 28 19
31 36 29 20 9 4
16 25 8 35 12 21
7 32 23 14 5 34
24 15 6 33 22 13
評価回数は59079349回です。
要した時間は0.028秒です。
395:393
08/06/23 01:21:25
//盤面のサイズ。
#define SIZE 5
です。遅れました Express 2005 + SDK
396:デフォルトの名無しさん
08/06/23 01:24:45
以下のようなプログラミングはどのようにすればよいのでしょうか?
「組み合わせ」を求める数学の公式にコンビネーションがあります。このコンビネーションのプログラミングを教えてください!
1.nとrをscanf()で読み、nCrの値を計算して表示させます。
条件として、nとrの値はマイナスでなく、またゼロでなく、さらにここではn<=10であることを確認させて、正しい数値を入力させる。もし誤った数値を入力したら「入力ミスです」と表示させる。
2.0!=1も扱えるようにすることを忘れない。
397:デフォルトの名無しさん
08/06/23 01:25:06
統計計算のプログラミングの例を教えてください。
最大20個までの実数値をscanf()で、配列に読み、呼んだデータの、平均値、分散、最大値、最小値を計算して表示するプログラムを教えてください!
条件として、データは-999.0から999.0の範囲とし、入力終了の合図として1000.0より大きい値のデータを入力すると、その数値は入力されずに入力作業を終了する。
平均値と分散については、
データ数をn、各データをXi(i=1~n)とすると、(ΣXi)/n (データの個数で割ったもの)が平均値
(Σ(Xi-(データの相加平均))^2)/nが分散であるとする。
よろしくお願いします!!
398:デフォルトの名無しさん
08/06/23 01:26:18
5x5の盤でナイトの旅を始めます。
解析中...
解析できませんでした。
評価回数は15615711回です。
要した時間は0.07秒です。
399:デフォルトの名無しさん
08/06/23 01:26:43
>>391
maxlen=k;
return maxlen;
はどう見ても添え字を返してるだろ
400:350
08/06/23 01:30:24
>>395
マスの数が奇数の場合、周遊は解なし
>>398
お前のPCのスペックが知りたいわw
401:デフォルトの名無しさん
08/06/23 01:32:32
>>396
つ パスカルの三角形
>>397
探せば見つかるようなありきたりの課題じゃ~・・・
402:デフォルトの名無しさん
08/06/23 01:33:46
>>397
#include <stdio.h>
int main(void){
double value, sum=0, sum2=0, average, variance, maximum=0, minimum=0;
int n;
for(n=0;n<20;n++){
if(scanf("%lf", &value)!=1) break;
if(value>=1000.0) break;
sum+=value;
sum2+=value*value;
if(n==0 || maximum<value) maximum=value;
if(n==0 || minimum>value) minimum=value;
}
if(n==0) return 1;
average=sum/n;
variance=(sum2-sum*average)/n;
printf("平均値 %f\n分散 %f\n最大値 %f\n最小値 %f\n", average, variance, maximum, minimum);
return 0;
}
403:デフォルトの名無しさん
08/06/23 01:34:44
>>399
アホか
添え字って言っても
>最長の文字列が格納されている配列の添え字(行の要素番号)
だぞ。
kは文字列の長さにしかなんねーよ
404: ◆15lIZBDwz6
08/06/23 01:35:35
>>385-386
ありがとうございます。
それにしても…早いw
次の問題解き終わってきてみたら20分後にはもうできてるし…
405:デフォルトの名無しさん
08/06/23 01:39:37
>>399
>>390
406:デフォルトの名無しさん
08/06/23 01:39:47
>>396
> 2.0!=1も扱えるようにすることを忘れない。
階乗を求めるやり方か・・・
407:デフォルトの名無しさん
08/06/23 01:49:24
>>396
URLリンク(kansai2channeler.hp.infoseek.co.jp)
408:デフォルトの名無しさん
08/06/23 01:50:59
>>394
最近のコンピュータははやいな!
409:デフォルトの名無しさん
08/06/23 02:01:50
>>396
あ~、入力エラーの表示は適当に追加しておいて。
あと、nもrも0のときでも考慮されてる。
0個の中から9個のものを選ぶという事象も1つの事柄として扱っているし
n個の中から0個のものを選ぶ、すなわち何も選ばないということも
1通りの事象として扱われているから。
410:デフォルトの名無しさん
08/06/23 02:02:27
×0個の中から9個のものを選ぶという
○0個の中から0個のものを選ぶという
411:デフォルトの名無しさん
08/06/23 02:04:32
>>397
#include <stdio.h>
#include <math.h>
int main(void)
{
double d[20], max = -1000.0, min = 1000.0, ave = 0, var = 0;
int i, n;
for(i=0; i<20; i++) {
scanf("%lf", d + i);
if(fabs(d[i]) > 999.0) break;
if(max < d[i]) max = d[i];
if(min > d[i]) min = d[i];
ave += d[i];
var += d[i] * d[i];
}
if(!i) return 0;
ave /= i;
var = var / i - ave * ave;
printf("最大値%f\n最小値%f\n平均%f\n分散%f\n", max, min, ave, var);
return 0;
}
412:395
08/06/23 02:48:26
>>400
有り難う御座います、見逃していました。
>ちなみに100行目に入れる値を変えればいろいろ変化します。
所で、よく見るとCのほう(float)キャストが無いので、経過時間が0.000秒でした。
413:デフォルトの名無しさん
08/06/23 03:04:20
軽作業用に使っている AthlonXP 2800+ 2GHzじゃ2.78秒
C2D E7200でも試してみようかのぅ
414: ◆dH2ZMCPPns
08/06/23 09:34:10
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC6.0
[3.3] 言語: C
[4] 期限: 6月23日 14時まで
よろしくお願いします。二問あります
415:デフォルトの名無しさん
08/06/23 10:06:26
[1]CとC++
[2]テキストサウンドノベルを作成する事。
キー入力でメッセージを表示し、途中で選択肢を含める。(最大3つまで)
画面をスクロールさせることは禁止。ページ切り替えは、画面全消去で対処する事。
テキスト行数は、最低50行から最大100行までとする。
画面全消去方法は、先生に聞くこと。
#include"stdlib.h"
system("CLS");
この時に画面すべて消せる
416:デフォルトの名無しさん
08/06/23 10:11:46
>>415
サウンドはどうやって鳴らすの?
417:デフォルトの名無しさん
08/06/23 10:46:04
あいまいな問題にはまともに回答する必要無し
418:415
08/06/23 10:59:11
サウンドはほっといていいらしいです。
419:デフォルトの名無しさん
08/06/23 11:04:36
それただのノベル。
420:デフォルトの名無しさん
08/06/23 11:11:11
プログラム部分なら作れるけど、ノベルはどうすんだよw
421:デフォルトの名無しさん
08/06/23 11:21:44
サウンドノベルみたいに選択肢で分岐するテキストアドベンチャーを作れば良いと理解した。
まってろ、今作ってる。
422:sage
08/06/23 11:42:17
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
5 つの数を double 型の配列 nums にキーボードから読み込んで,
それらの 3乗の和を出力するプログラムを作成せよ。
3 乗の和を計算する部分は,関数 double cubesum(double vc[], int no) とすること。
ここで,配列 vc はデータの格納された配列を,
no は入力したデータの個数を表す。
main 関数では個数の 5 は定数として扱って構わないが,
関数 cubesum では個数は引数で読み込むものとする。
つまり何個のデータにでも使える汎用性のあるものとして関数を定義する。
3 乗の和の計算は,main からその関数を呼び出して行う。
ヒント:関数の中の3乗和の計算には繰り返しの処理が必要となる。
for 文を使えば簡単に書ける。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2008年6月24日
[5] その他の制限:特になし
423:デフォルトの名無しさん
08/06/23 11:47:31
#include <stdio.h>
double cubesum(double vc[], int no)
{
double sum = 0.0;
int i;
for(i=0; i<no; i++) sum += vc[i] * vc[i] * vc[i];
return sum;
}
int main(void)
{
double nums[5];
int i;
for(i=0; i<5; i++) scanf("%lf", nums + i);
printf("%f", cubesum(nums, 5));
return 0;
}
424:デフォルトの名無しさん
08/06/23 12:12:47
>>415
マルチでもいいけどさ、環境と期限書こうぜ
425:415
08/06/23 12:32:18
環境はvista
言語はC++
起源ははっきりとは言ってなかったが夏休み前だと思います。
426:デフォルトの名無しさん
08/06/23 12:40:32
お前の夏休みなんか知らねーよww
427:350
08/06/23 12:43:59
>>412
動作に現れる部分を修正するのは大いに結構だが
現れない部分の修正しないで提出すると痛い目見るよ
例えばラインコメント(//)とか//コンストラクタとか//デストラクタとか
アルゴリズムだとかstaticばかりなのかとか
428:デフォルトの名無しさん
08/06/23 13:00:16
421だが、飽きた。
他の人に任せた。
429:デフォルトの名無しさん
08/06/23 13:00:43
微妙ですがage
430:425
08/06/23 13:26:52
期限だろ。字間違うなよ
431:デフォルトの名無しさん
08/06/23 13:29:51
夏休みの宿題になっちまうなw
432:デフォルトの名無しさん
08/06/23 14:03:54
[1] 授業単元:画像処理 [2] 環境 [2.1] OS:Linux [2.2] 言語:C言語
#include <stdio.h>
#include <stdlib.h>
int main( int argc , char *argv[] )
{ unsigned short int ipi[256][32];
unsigned short int ipo[256][32];
FILE *fpi,*fpo;
int i,j;
if((fpi=fopen( "logo.gray" ,"rb")) == NULL) {
printf("file open error\n");
exit(-1); }
fread(ipi[0],sizeof(unsigned short int),256*32,fpi);
fclose(fpi);
for (j=0 ;j <256 ; j++){
for (i=0 ;i <32 ; i++){
if(127>ipi[j][i]){
ipo[j][i]=0; }
else{
ipo[j][i]=255; }
}
}
if((fpo=fopen( argv[2] ,"wb")) == NULL) {
printf("file open error\n");
exit(-1); }
fwrite(ipo[0],sizeof(unsigned short int),256*32,fpo);
fclose(fpo);
logo-bin.gray の境界点を抽出した画像を作成するプログラムを作成せよ。
433:432
08/06/23 14:07:01
return 0;
}最後にこれを忘れてました。分かりにくくてすみませんが問題はこれです。
logo-bin.gray の境界点を抽出した画像を作成するプログラムを作成せよ。
434:142
08/06/23 14:27:47
>>142ですがどうかよろしくお願いします。
435:デフォルトの名無しさん
08/06/23 15:02:30
>>415何気に難しいな。セリフしか作れん
436:デフォルトの名無しさん
08/06/23 15:11:15
[1] 授業単元:
C
[2] 問題文(含コード&リンク):()
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[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まで] または [無期限] のいずれか)
明日13:00まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
お願いします。
437:デフォルトの名無しさん
08/06/23 15:14:09
>>435
バッチファイルで書いた方が早い気がするw
438:デフォルトの名無しさん
08/06/23 15:23:43
/*未コンパイル 動作確認無し*/
#define N 7
#include <stdio.h>
struct{int linkable[3];char *prompt;
}scene[N]={
{1,3,5," [彼女]ねぇ挿れて"},
{0,2,4,"[貴方]麻呂のクソースくらえ~"},
{1,3,5,"[彼女]もっと優しくぅ~"},
{0,2,4,"[貴方]う~きつい"},
{1,3,5,"[彼女]う~固い"},
{2,4,6,"[貴方]出、出る~"},
{7,7,7,"[彼女]駄目~出しちゃ.汚れちゃう"},
}
int main(void){
int i=0,j;
wihle( i<N)[
printf("%s¥n",scene[i].prompt);
do{
printf("Select which?[1,2,3]?");scanf( "%d¥n",&j);
}while((j<1)&&(j>3));
i=scene[i].linkable[j];
}
return 0;
}
439:デフォルトの名無しさん
08/06/23 15:48:45
>>436
くそーすですが
URLリンク(kansai2channeler.hp.infoseek.co.jp)
440:デフォルトの名無しさん
08/06/23 15:53:19
>>439
すまん、関数の名前間違ってたので修正
URLリンク(kansai2channeler.hp.infoseek.co.jp)
441:デフォルトの名無しさん
08/06/23 15:54:10
>>439
微妙ですが我慢しておきます。
442:デフォルトの名無しさん
08/06/23 16:01:44
>>441
の優しさに世界が泣いた
443:デフォルトの名無しさん
08/06/23 16:11:09
こんなの書くような子じゃなかったんだけど...
444:デフォルトの名無しさん
08/06/23 16:13:59
トリ付けてないからなりすましの可能性も…
更に言うとこれも含めて自演の可能性もあるなww
445:デフォルトの名無しさん
08/06/23 16:15:39
1以上の正の整数の値をキーボードから入力し、1からNまでの和を求める
プログラムをC言語で作成せよ。 また、1から999までの和はいくらか?
お願いします。
446:445
08/06/23 16:21:31
間違えた問題の続きです。 1+2+・・・+N=Σi
あともうひとつ
1以上の正の整数の値をキーボードから入力し、1からNまでの2乗の和を求める
プログラムをC言語で作成せよ。 また、1から100までの和はいくらか?
1の2乗+2の2乗+・・・+Nの2乗=Σiの2乗
これもお願いします。 問題分かりにくくてごめんなさい。
447:デフォルトの名無しさん
08/06/23 16:22:55
>>445
#include <stdio.h>
int main(void)
{
int N;
printf("入力");
scanf("%d", &N);
printf("1から%dの和は%d\n", N, (1+N)*N/2);
return 0;
}
448:445
08/06/23 16:23:18
誰か432をお願い!
449:445
08/06/23 16:25:44
>>447
ありがとうございます。
450:デフォルトの名無しさん
08/06/23 16:29:47
ずいぶんとレベルの違う宿題が出る授業だなw
小学校と大学院が校舎共有してるのか?
451:デフォルトの名無しさん
08/06/23 16:32:35
外径、内径、高さの値を入力して、中空円筒の体積を計算するプログラム
をC言語で作成せよ。
#include<stdio.h>
#include<math.h>
main()
{
double pi,r1,r2,h,V;
途中までやりました。お願いです。
452:447
08/06/23 16:32:38
>>449
本当はforループで計算するのを求めていると思う
453:445
08/06/23 16:36:06
>>450
1年の授業と3年の授業ですw
432と446の問題を誰かお願いします。
期限は今週末です。
454:デフォルトの名無しさん
08/06/23 16:38:59
[1] 授業単元:
プログラミング
[2] 問題文(含コード&リンク):()
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: (Windows/Linux/等々)
Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
明日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
ポインタ習ったばっかりです。
おねがいします。
455:デフォルトの名無しさん
08/06/23 16:40:02
>>432
"logo.gray"ってファイルは?
無くとも、もっと説明しなきゃ
”境界点を抽出”って意味は?
"logo.gray"が無いと説明出来ないならUPしなきゃ
456:454
08/06/23 16:41:08
問題文のリンク間違えました・・・ すいません
URLリンク(kansai2channeler.hp.infoseek.co.jp)
457:デフォルトの名無しさん
08/06/23 16:43:33
次の関数を計算するプログラムを作成せよ。C言語で。
y=3エックス2乗+2エックス-6
これ簡単だからやってみそ!
458:デフォルトの名無しさん
08/06/23 16:48:13
お前がやれ。
459:436
08/06/23 16:50:45
>>440
ありがとうございます。
>>441
貴方は誰ですか?
460:432
08/06/23 16:54:17
>>455
境界点を抽出の意味は僕もよく分からないです。ほんとにちんぷんかんぷんです。
単元は2値画像処理というところです。
461:デフォルトの名無しさん
08/06/23 16:56:00
>>460
輪郭抽出って事?
2x2 sobel フィルタとか使うの?
462:デフォルトの名無しさん
08/06/23 16:56:01
>>457
そんなこと言わないでさー やってよーん
463:デフォルトの名無しさん
08/06/23 16:57:14
>>457
意味不明なりよ
464:デフォルトの名無しさん
08/06/23 16:58:54
>>460
それじゃ、誰も出来ないだろw
もっと説明がいるぞ
"logo.gray"ってのは存在して、それの境界点抽出なのか
それとも任意の2値画像なのか
友達でも誰でも良いから聞いてきなw
465:432
08/06/23 16:59:55
輪郭抽出だと思います!
2x2 sobel フィルタは使わないと思います。
とにかくそういうc言語のプログラムを作成しろと言われて。
432を少し改良すればできると教授に言われました。
466:432
08/06/23 17:01:19
>>464
"logo.gray"は存在して、それの境界点抽出です!
467:デフォルトの名無しさん
08/06/23 17:06:34
>>457
y = 3*x*x+2*x-6;
468:デフォルトの名無しさん
08/06/23 17:16:00
>>466
なんだ?意図的にとぼけてるのか?
それなら"logo.gray"をUPしなきゃ、誰も出来ないだろ
って言ってるんだけど…
469:デフォルトの名無しさん
08/06/23 17:18:41
>>466
16.bitグレイスケール画像を作ってうp!
470:デフォルトの名無しさん
08/06/23 17:21:18
>>451
#include<stdio.h>
main()
{
double pi,r1,r2,h,V;
printf( "外径\n" );
scanf( "%lf", &r1 );
printf( "内径\n" );
scanf( "%lf", &r2 );
printf( "高さ\n" );
scanf( "%lf", &h );
pi = 3.14159265358979;
V = (pi * (r1 / 2.0) * (r1 / 2.0) + h) - (pi * (r2 / 2.0) * (r2 / 2.0) + h);
printf( "中空円筒の体積\n%f\n", V );
return 0;
}
471:デフォルトの名無しさん
08/06/23 17:22:57
1] 授業単元:授業じゃないんですが、質問スレがここしか分からなかったのでお願いします。
[2] 問題文(含コード&リンク):
#include<stdio.h>
int main(void){
int teika;
printf("定価を入力してからENTERを押してください。\n");
scanf("%d",&teika);
printf("1割引だと%4d円\n",(int)(teika*0.9));
printf("3割引だと%4d円\n",(int)(teika*0.7));
printf("5割引だと%4d円\n",(int)(teika*0.5));
printf("8割日だと%4d円\n",(int)(teika*0.2));
return 0;
}
このプログラムで、1000とかキリの良い数値を入力すると、3割引だけ1円だけずれた値が帰ってきちゃいます。
これってなんでですかね?
[3] 環境
[3.1] OS:WindowsXP SP2かな?
[3.2] コンパイラ名とバージョン:CPad for Borland C++Compiler Version 2.31
[3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:基礎は一通りやって、授業ではそれを応用して色々やらされてます。
が、ところどころ分からないので一人で最初から勉強し直してます。
472:デフォルトの名無しさん
08/06/23 17:25:48
[1] 授業単元: 実験
[2] 問題文 (1)ベクトルの内積を求めるプログラムを書け
(2)3×3の行列の掛け算を行う関数を作り、標準入力から入力した行列を
掛け算するプログラムを書け
(ヒント 2重配列が必要。 double matrix[3][3];)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 6月26日まで
[5] その他の制限:
特になし
473:デフォルトの名無しさん
08/06/23 17:25:48
>>471
切り捨てたいの?切り上げたいの?四捨五入したいの?
474:デフォルトの名無しさん
08/06/23 17:35:50
>>473
なんでもいいです。
参考にしてるサイトのやり方に従ってそこまで作りました。
やっぱ(int)が影響してるんですかね?
と思って全部それ取って実数型にしたら直りました。
どんな原因なんでしょう…
475:デフォルトの名無しさん
08/06/23 17:42:35
>>474
浮動小数点数は条件が合わない限り小数ぴったりの数値を扱えないので
内部ではその数値に近い値に丸められている
0.7 はコンピュータ内部では 0.7 より小さな値で格納されていて
0.9 と 0.2 は少し大きな値になってるんだろう
476:デフォルトの名無しさん
08/06/23 17:58:49
>>475
やはりコンピュータ上の問題ですか。
プログラムの作り方を変えるとかしないと解決できないわけですね。
ありがとうございました。
477:デフォルトの名無しさん
08/06/23 18:04:56
>>453
アンカー付けろ
テンプレ使え
数字は半角(まぁ全角でも困らないけどさ)
478:デフォルトの名無しさん
08/06/23 18:08:55
>>471
3割引だったら7倍してから10で割ってみてはどうだろう。
teika * 7 / 10
479:デフォルトの名無しさん
08/06/23 18:12:32
>>415
URLリンク(kansai2channeler.hp.infoseek.co.jp)
宿題っぽくしてみた。
入力されたデーターが不正な場合は飛ぶので、それがダメなら適当に直して
480:デフォルトの名無しさん
08/06/23 18:18:20
>>471
1円どっちにずれてる?
割る前に2円足すか1円引けばいいんじゃね?
481:デフォルトの名無しさん
08/06/23 18:20:06
>>480
定価を入力してからENTERを押してください。
1000
1割引だと 900円
2割引だと 800円
3割引だと 699円
4割引だと 599円
5割引だと 500円
6割引だと 400円
7割引だと 299円
8割引だと 200円
9割引だと 100円
482:デフォルトの名無しさん
08/06/23 18:22:46
>>481
round ceil floor のいずれを使ってもピッタリの数値になるのに
キャスト(int)による型変換のときだけ1円ずれる
めんどくせー
483:デフォルトの名無しさん
08/06/23 18:36:31
どなたか>>90お願いします
484:デフォルトの名無しさん
08/06/23 18:46:59
>>478
なるほど。
そういう風にすればいいのですね。
ありがとう。
>>480
>>481の通りです。
>>482
めんどいっすねw
でも宿題じゃなくてなんとなく答えも見えたんでおkです!
皆様ありがとう。
485:デフォルトの名無しさん
08/06/23 18:51:51
>>446
いくらなんでも簡単すぎだろ。
丸投げしすぎ。
486:デフォルトの名無しさん
08/06/23 19:03:05
>>456
URLリンク(kansai2channeler.hp.infoseek.co.jp)
487:446
08/06/23 19:07:34
>>485
そうですか。反省します。
488:451
08/06/23 19:09:41
>>470
サンクス
489:デフォルトの名無しさん
08/06/23 19:41:33
>>483>>90
~省略~
BITREE_TYPE sumValue(BITREE_NODE *p){
BITREE_TYPE total = 0;
if(p->left) total += sumValue(p->left);
if(p->right) total += sumValue(p->right);
total += p->value;
return total;
}
int main(int args, char **argv){
BITREE_NODE *p;
int end=0;
if(args < 2) return 1;
p = inputBITree(argv+1, args-1, &end);
printf("合計は %d です\n", sumValue(p));
printf("左部分木の合計は %d です\n", sumValue(p->left));
printf("右部分木の合計は %d です\n", sumValue(p->right));
destroyBITree(p);
return 0;
}
490:デフォルトの名無しさん
08/06/23 19:55:16
[1]プログラミング言語C
[2]①3より大きく、入力された上限の数未満の全ての自然数かつ非素数に
ついて、3で割り切れるものは無視し、3で割った余りが1のものは加算
し、余りが2のものは減算して合計を求めよ。
②次のように表示する
Input Upper Limit : 11 [Enter]
Answer is : 6
③配列、平方根は使ってはならない。
[3]①windows vista
②gcc
③C言語
[4]2008/6/23/21:00まで
[5]今年の春から始めたので、まだ基礎のほうです。
よろしくお願いします。
491:デフォルトの名無しさん
08/06/23 20:38:26
[1] 授業単元: 課題
[2] 問題文
h URLリンク(www.elc.ees.saitama-u.ac.jp)
h URLリンク(www.elc.ees.saitama-u.ac.jp)
[3] 環境
[3.1] OS : windows vista
[3.2] コンパイラ名とバージョン: Borland C++Compiler Version 2.31
[3.3] 言語: C
[4] 期限: 6月26日(印刷の必要があるため)
[5] その他の制限:
特になし
身を晒す事になりますが、お願いします。
492:デフォルトの名無しさん
08/06/23 20:46:24
>>490
URLリンク(kansai2channeler.hp.infoseek.co.jp)
493:491
08/06/23 20:52:41
h URLリンク(kansai2channeler.hp.infoseek.co.jp)
πの計算のコンパイルが通るところまで作りました。
Cはじめて2ヶ月で出た課題です。
ほとんど回答は載せてあるからこのレベルらしいですが、
正直見直しても全く分からないです。
494:491
08/06/23 20:55:59
h URLリンク(kansai2channeler.hp.infoseek.co.jp)
πの計算のコンパイルが通るところまで作りました。
Cはじめて2ヶ月で出た課題です。
ほとんど回答は載せてあるからこのレベルらしいですが、
正直見直しても全く分からないです。
495:デフォルトの名無しさん
08/06/23 20:58:38
>>492
マヂ助かった!!ありがとう!!
496:デフォルトの名無しさん
08/06/23 21:03:23
>>413
8x8の解がいくつあるのか試してみて欲しいな
497:デフォルトの名無しさん
08/06/23 21:08:47
>>490
URLリンク(kansai2channeler.hp.infoseek.co.jp)
498:デフォルトの名無しさん
08/06/23 21:14:04
>>490
URLリンク(kansai2channeler.hp.infoseek.co.jp)
499:デフォルトの名無しさん
08/06/23 21:20:12
>>489
ありがとうございます。
./a.out [ 6 [ 8 1 5 ] [ 3 _ 9 ] ]と入力すると
$ ./a.out [ 6 [ 8 1 5 ] [ 3 _ 9 ] ]
合計は 29 です
左部分木の合計は 14 です
右部分木の合計は 9 です
という風に出て、実効例どおりに行かないのですが、どこがおかしいのでしょうか?
省略と書いてあるところには、URLリンク(kansai2channeler.hp.infoseek.co.jp)の
・2分木の基本的な操作関数をそのまま貼り付けただけです
500:デフォルトの名無しさん
08/06/23 21:28:06
比較的簡単な問題が出るとここぞとばかりに回答が提示されるよね
501:デフォルトの名無しさん
08/06/23 21:29:24
簡単な問題解いてなんの意味があるって感じだよな
502:デフォルトの名無しさん
08/06/23 21:31:25
肩慣らし
503:デフォルトの名無しさん
08/06/23 21:32:29
簡単な問題をだらだらと置いておいても意味ないし
504:デフォルトの名無しさん
08/06/23 21:33:01
>>500
だから何?お前基準で簡単とか言われても基準が曖昧なんだが。
お前が簡単だと思っているだけで、実際にお前が解いてもミスだらけなんじゃね?
505:デフォルトの名無しさん
08/06/23 21:33:13
>>501
それが解けない奴の為のスレだw
506:デフォルトの名無しさん
08/06/23 21:33:21
【回答テンプレ】
[1] 回答レベル:ノーチェック/コンパイル済/テスト済/清書済
[2] 回答 短いものは、直接記入可 もしくはリンク
[3] 開発環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイル/テストに使用した
コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4]コメント
なーんてね
507:デフォルトの名無しさん
08/06/23 21:45:21
>>504
ひとつの問題に対して複数者から解答が上がったら概ね平易
ひとつの問題に対して複数者が議論を始めたら面白みのある問題
ミスだらけかもね
508:デフォルトの名無しさん
08/06/23 21:51:39
誰かの解答に対して議論が始まることもあるけどなー
509:デフォルトの名無しさん
08/06/23 21:53:40
>>507
うん、だから お前基準 ほど 難易度 として当てにならないっつってんだが?
一言居士はうざいって意味が分からない?四の五の言わずにてめぇレスしろよw
510:デフォルトの名無しさん
08/06/23 21:55:56
>>492 はなぜ (i+1) やら、i=0からスタートしているのかと?
>>490
> 入力された上限の数未満
おかげで未満じゃなくなってるし・・・
511:デフォルトの名無しさん
08/06/23 21:58:41
なんという自己参照定義 循環論証
512:デフォルトの名無しさん
08/06/23 22:07:59
>>509
もうお前一言居士ってコテハンにしろよ
513:デフォルトの名無しさん
08/06/23 22:10:56
ってか>>507が自分基準で難易度の話をしているように読めるのなら文盲だな
あ、文盲って言葉も使っていいよ。自分が知らない他人を批判する言葉とか大好きそうw
514:デフォルトの名無しさん
08/06/23 22:12:27
すいません、この問題をおねがいします。
[1] 授業単元: Cプログラミング演習
[2] 問題文(含コード&リンク)
2以上32767以下の素数を求める。
整数nが素数かどうかは、2から√nまでの素数で割り切れるかどうか判定して、
そのすべてで割り切れなければnは素数となる。また、2以外の偶数は素数にならないから、
3以上の整数については奇数だけを対象にして求めればよい。
余力があれば、long型を対象にして2から2^31-1までの素数を求めてみよ。
[3] 環境
[3.1] OS: (Windows vista)
[3.2] コンパイラ名とバージョン: (visual studio 2005 )
[3.3] 言語: (C言語)
[4] 期限:今週中
[5] その他の制限: (自分のレベルはかなり低いので難しい関数はなしでお願いします・・・)
515:デフォルトの名無しさん
08/06/23 22:21:31
すみませんがこの問題をお願いします。
変数(int型 または double型 または 両方),入出力(scanf関数,printf関数),条件分岐(if else文)をすべて用いて,
各自自由なプログラムを作成する.
課題提出のメールには,必ずそのプログラムの仕様の説明文をつけること
(そのプログラムが何をするものなのかを説明すること).
516:デフォルトの名無しさん
08/06/23 22:24:08
>>515
なんという独創的なw
517:デフォルトの名無しさん
08/06/23 22:27:08
>>515
楽しすぎるwww
大まかに、どんなの作りたいかとか買いてけよw
テストの点数とか、体重の判定とかなんでもいいからよw
518:デフォルトの名無しさん
08/06/23 22:31:31
HDDをクラッシュさせるプログラムはどうかな?
成績表を破壊するプログラムとか
519:デフォルトの名無しさん
08/06/23 22:32:52
>>515
このスレの解答を適当に拾えばおk
520:デフォルトの名無しさん
08/06/23 22:41:15
むしろwikiの回答例でも持って池。
521:デフォルトの名無しさん
08/06/23 22:41:37
>>515
int scanf printf if else
でググると良い
522:デフォルトの名無しさん
08/06/23 22:44:02
>>515
wikiのマスターマインド(Hit&Blow)がいいんじゃない?
523:デフォルトの名無しさん
08/06/23 22:46:24
流れ的にサウンドノベルしかないだろ
524:デフォルトの名無しさん
08/06/23 22:49:44
CG曲シナリオシステム全部1人でか
525:デフォルトの名無しさん
08/06/23 22:50:07
むしろなんかシューティング系を(ry
526:デフォルトの名無しさん
08/06/23 22:52:50
>>523
が言ってるのは>>438だな
527:デフォルトの名無しさん
08/06/23 23:04:07
>>514
URLリンク(kansai2channeler.hp.infoseek.co.jp)
528:デフォルトの名無しさん
08/06/23 23:07:53
>>514
> long型を対象にして2から2^31-1までの素数を求めてみよ。
PCの性能にもよるけど、物理的に時間が掛かるんで却下。
529:デフォルトの名無しさん
08/06/23 23:12:20
>>526
yes
530:デフォルトの名無しさん
08/06/23 23:22:56
>>499
BITREE_NODE *inputBITree(char *str[], int len, int *end){
~~省略~~
*end = i + i;
return p;
}
*end = i + i; を *end = i + 1;
に変更
531:デフォルトの名無しさん
08/06/23 23:41:29
>>522
>wikiのマスターマインド(Hit&Blow)
実行してみたんですが、どうやって終わらせるんですか?
532:デフォルトの名無しさん
08/06/23 23:42:56
Ctrl と c 同時押しすれば終わるんじゃない
533:デフォルトの名無しさん
08/06/23 23:47:29
>>528
70.3秒かかったよ
これって長すぎる?
アルゴリズムはエラトステネスの篩使用
534:デフォルトの名無しさん
08/06/23 23:54:44
>>533
>>514の条件はエラトステネスの篩じゃないだろ
535:デフォルトの名無しさん
08/06/23 23:58:59
エラトステネスの篩じゃね?
536:デフォルトの名無しさん
08/06/24 00:00:12
全然違う
537:デフォルトの名無しさん
08/06/24 00:00:27
ふるいじゃないよ
538:デフォルトの名無しさん
08/06/24 00:11:13
>>530
ありがとうございます。数字はしっかりでました!
実行例にある
入力データ [ 6 [ 8 [ 1 _ _ ] 5 _ _ ] ] [3 _ [ 9 _ _ ] ] ]
というのはどうやって出せばいいのでしょうか?
539:デフォルトの名無しさん
08/06/24 00:13:27
[1] 授業単元:C言語実習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: WinXP
[3.2] コンパイラ名とバージョン: Borland C++Compiler V2.31
[3.3] 言語: C
[4] 期限: 08年6月25日(水曜日・明日)
[5] その他の制限: 特に無し
就活で浦島状態です、助けてください
540:デフォルトの名無しさん
08/06/24 00:14:54
>>539
浦島状態って。
C#ならまだしも、いつの時代の人?
541:デフォルトの名無しさん
08/06/24 00:34:36
>>538
printBITree(p, 0, 0);
値の間にスペース入れたいならprintSubtreeの中をいじくる
542:デフォルトの名無しさん
08/06/24 00:37:42
>>539
#include <stdio.h>
int main(void)
{
char str[110], *p[10], temp[11];
int i, j, cnt[10] = {0}, n = 0;
p[0] = str;
for(i=0; i<10; i++) {
printf("入力文字列==>");
fgets(temp, sizeof temp, stdin);
for(j=0; temp[j]; j++) if(temp[j] == '\n') temp[j] = '\0';
if(strcmp(temp, "end")==0 || strcmp(temp, "END")==0) break;
for(j=0; j<n; j++) {
if(strcmp(p[j], temp)==0) {
cnt[j]++;
break;
}
}
if(j==n) {
char *dst = p[n], *src = temp;
while(*dst++=*src++);
p[n+1] = dst;
cnt[n]++;
n++;
}
}
printf("*** 集計結果 ***\n");
for(i=0; i<n; i++) printf("%s : %d\n", p[i], cnt[i]);
return 0;
}
543:デフォルトの名無しさん
08/06/24 00:52:47
#include <string.h>忘れてた
544:デフォルトの名無しさん
08/06/24 00:55:44
strcmp関数は作ってしまえ
545:デフォルトの名無しさん
08/06/24 01:09:56
[1] 授業単元:計算機
[2] 問題文(含コード&リンク):
8パズルを解く上で、状態の重複をチェックするにはどのようなプログラムを加えればよいか考えよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語:C
[4] 期限: 明日
どなたかよろしくお願いします。
546:デフォルトの名無しさん
08/06/24 01:14:14
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):
ポインタの課題で、数値の大小を判別するプログラムです。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: VineLinux
[3.2] コンパイラ名とバージョン: GNOME gcc
[3.3] 言語: C言語
[4] 期限:6/25 PM:2時
547:デフォルトの名無しさん
08/06/24 01:17:08
>>506
よろしく
548:デフォルトの名無しさん
08/06/24 01:18:30
8パズルとやらをググってみたけど
>状態の重複
ってどんな状況だ?
こんなんか?
bool bCheckOverlap(int x, int y){
if(puzzle[x][y]>0){
return false;
}
return true;
}
549:デフォルトの名無しさん
08/06/24 01:22:59
動かしたとき同じ状態に戻らないようにするためのチェックじゃない?
550:デフォルトの名無しさん
08/06/24 01:25:05
>>546
A
void func(int *a, int *b);
B
void func(int *a, int *b)
{
if(*a < *b) {
int temp = *a:
*a = *b;
*b = temp;
}
}
551:545
08/06/24 01:26:32
>>549さんの仰るとおり、過去と同じ状態になっていないかチェックして無駄な処理をしないようにというものです。
言葉足らずで申し訳ありません。
552:デフォルトの名無しさん
08/06/24 01:32:44
>>550
ありがとうございます。
「void func(int *a, int *b);」こうやって宣言するんですね、この段階で自分はつまづいてました。
またこちらもお願いできますでしょうか?これで課題がすべて終わるのでお願いします。
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):
関数は戻り値をひとつしか返せないが、ポインタを使うと複数の値を呼び出し側に
返すことができる。秒数を与えると、それが何時間何分何秒にあたるかを計算する
関数void calctime(int sec, int *hp, int *mp, int *sp);を作成せよ。
たとえば、calctime(3725, &h, &m, &s); として呼び出すとh=1, m=2, s=5となる
(1時間2分5秒は3725秒)
(解説)
main関数側で各関数を用意し、計算する関数を呼び出す。
結果の表示は関数の呼び出しが終わった後、main関数側で行えばよい。
秒→時間、分、秒の計算は単純に割り算の商と余りを用いればよい。
[3] 環境
[3.1] OS: VineLinux
[3.2] コンパイラ名とバージョン: GNOME gcc
[3.3] 言語: C言語
[4] 期限:6/25 PM:2時
553:デフォルトの名無しさん
08/06/24 01:39:25
>>545
1 2 3
4 5 6
7 8 -
という状態なら123456780という数字を覚えておくとか。
3 4 2
1 7 -
8 5 6
という状態なら342170856という数字
こういうのをソートされた線形リストにいれておけばまあ悪くないのでは?
554:デフォルトの名無しさん
08/06/24 01:42:38
>>552
URLリンク(kansai2channeler.hp.infoseek.co.jp)
555:デフォルトの名無しさん
08/06/24 01:46:55
>>545
[1]回答レベル:ヒント
[2]コード:なし
[3]環境:省略
[4]コメント:
つ9進数
556:デフォルトの名無しさん
08/06/24 01:49:16
>>554
本当に回答がお早いです。自分もそれくらいになりたいですorz
なにはともあれ、ありがとうございます。
本当に助かりました。
557:553
08/06/24 02:01:26
>>553
線形リストじゃ手が長くなった場合の探索コストが大きいかな。メモリも食うし。
静的に9^9Byte≒370MB確保しておくのもなんだかアレだしなんか良い案あるかしら
558:デフォルトの名無しさん
08/06/24 02:04:30
[1] 授業単元: C言語演習Ⅱ
[2] 問題文(含コード&リンク):
n個の文字列C0, C1, C2, ... ,Cn-1を読み込んだ後、C0, C1, C2, ... ,Cn-1を
アルファベット順に並び替える関数を作成し、main関数でこの関数を呼び出すようにせよ。
ここでいうアルファベット順とは、例えば"Report Ha Dase"と入力すると、
" aaDeeHoprRst"のように大文字と小文字がある場合は小文字が先にくるように
アルファベットの並べ替えを行なう。
(ヒント)
文字列を読み込んで、アスキーコード順に並び替えを行なう。
ただし、大文字と小文字が混在するので、そこは各自テクニックが必要。
なお、入力文字列中の「空白」は並び替え後、先頭にくる。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: cygwin gcc
[3.3] 言語: C言語
[4] 期限:2008.6.24 午後6時までの急ぎでお願いします。m(_ _)m
559:デフォルトの名無しさん
08/06/24 04:14:08
>>558
空白、アルファベット以外は出現順
#include <stdio.h>
#include <string.h>
void alphabetsort(char *dst, const char *src)
{
int count[256] = {0}, idx, i;
char *p, label[256] = " aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ";
idx = strlen(label);
for( ; *src != '\0'; src++){
p = strchr(label, *src);
if(p) count[p - label]++;
else{ label[idx] = *src; count[idx] = 1; idx++; }
}
for(i = 0; i < 256; i++) while(count[i]-- > 0){ *dst = label[i]; dst++; }
*dst = '\0';
}
int main(void)
{
char buf[100], dst[100], *p;
fgets(buf, sizeof(buf), stdin);
p = strchr(buf, '\n');
if(p) *p = '\0';
alphabetsort(dst, buf);
printf("%s\n", dst);
return 0;
}
560:デフォルトの名無しさん
08/06/24 04:15:24
>>558
URLリンク(kansai2channeler.hp.infoseek.co.jp)
561:デフォルトの名無しさん
08/06/24 04:30:18
>>559
>>560
両方、ありがとうございます。
どちらもせっかく作ってもらったので、両方使いたいところですが
今回は>>560さんのコードを使わせていただきます。
コード中の説明やコードの作りが分かりやすかったので
>>559さんのコードもアスキーコード使用が基本的で良かったのですが、
文字列の並び替え部分が若干難しかったので、今回はごめんなさい。
562:デフォルトの名無しさん
08/06/24 05:40:13
文字列を並び替える関数であって、並び替えた文字列を表示する関数じゃないと思うんだが。
563:デフォルトの名無しさん
08/06/24 05:43:49
それなら、順番に表示する部分を配列に格納すりゃ良い
564:デフォルトの名無しさん
08/06/24 05:49:39
n個の文字列って指定からガン無視してるソースに突っ込むなんてw
565:デフォルトの名無しさん
08/06/24 05:58:18
でたよ、ソースを書きもせず、自分のアイデアも提示せずに
批判しかしない基地外。
566:デフォルトの名無しさん
08/06/24 05:59:34
>>561 本人?が良しとした時点で後からいちゃもんつけてもなぁ・・・
後は本人が出来るなら、適当にやるだろうし。
567:デフォルトの名無しさん
08/06/24 06:11:23
並び替えならバブルソートだ!
void swap(char *a, char *b)
{
char temp = *a;
*a = *b;
*b = temp;
}
void sort(char *str)
{
int i, j, len = strlen(str);
for(i=len-1; i>0; i--) {
for(j=0; j<i; j++) {
if(tolower(str[j]) > tolower(str[j+1])) swap(str + j, str + j + 1);
else if(tolower(str[j])==tolower(str[j+1])) {
if(isupper(str[j]) && islower(str[j+1])) swap(str + j, str + j + 1);
}
}
}
568:デフォルトの名無しさん
08/06/24 06:13:02
ソースを書かずに口出しする奴の方がどうかとw
569:デフォルトの名無しさん
08/06/24 06:14:08
>>561
が>>567のコードを使ったら、>>559,>>560両方から殴られることを
覚悟したほうがいい。w
570:質問者のマナー遵守のお願い
08/06/24 06:40:52
宿題を片付けるという趣旨とは言えども、回答テンプレに沿っていない
すなわち、コードの品質に対する明示が無かったり、コメントが一切
無くコードそのものやコードへのリンクだけの場合は、参考に留める
だけに留め、あくまでも独力でトライすることをおすすめします。
多くのコードは良心的で真面目ですが、中には>>438のような悪辣
なコードもありますので、参考以上の扱いをすると災難に合う場合も
あります。
なお、小さなプログラムコードの場合、簡単にその優劣は判断出来ま
せん。コードは数学の問題と異なり、一度解いてしまえばおしまい
というわけではなく、何度も実行されて書き直されて真価が評価され
るものです。
宿題を自力で解けないレベルの人がその優劣の判断を出来ると
は到底思えません。
複数の回答が出た場合でも、それに優劣を付けていると取られかね
ない言動を取ることは質問者は絶対に避けて下さい。
571:デフォルトの名無しさん
08/06/24 06:44:23
自分のソースにミスがあった場合、ソース書かなくても突っ込んでくれると有難いがな。
572:デフォルトの名無しさん
08/06/24 08:56:20
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
ヒント:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:CPad for Borland C++Compiler
[3.3] 言語:C言語
[4] 期限:水曜まで
[5] その他の制限:ポインタまで習いました
ヒントをくれました。それでもわからないのでよろしくお願いします
573:デフォルトの名無しさん
08/06/24 09:41:26
[1] 授業単元:プログラミング
[2] 問題文
3×3の行列の掛け算を行う関数を作り、標準入力から入力した行列を掛け算するプログラムを書け
(ヒント 2重配列が必要。 double matrix[3][3];を使用)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 6月26日まで
[5] その他の制限:
おねがいします><
574:491
08/06/24 10:00:41
自己解決しますた
いないかもしれないけど、協力して下さった方々 どうもです
575:456
08/06/24 10:54:36
>>486
わかりやすい回答ありがとうございます!
次からは自分でもできるよう参考してがんばります。
576:デフォルトの名無しさん
08/06/24 12:08:56
>>573 環境: 2005 Express + SDK
#include <stdio.h>
int main() {
int i, j, k;
double matrix1[3][3], matrix2[3][3],matrix3[3][3];
for(i=0;i<3;i++) {
printf("INPUT 3 numbers. (%d of 3):", (i%3)+1 );
scanf("%lf%lf%lf", &(matrix1[i][0]), &(matrix1[i][1]), &(matrix1[i][2]));
}
for(i=0;i<3;i++) {
printf("INPUT 3 numbers. (%d of 3):", (i%3)+1 );
scanf("%lf%lf%lf", &matrix2[i][0], &matrix2[i][1], &matrix2[i][2]);
}
for(i=0;i<3;i++)
printf("%lf\t%lf\t%lf\n", matrix1[i][0], matrix1[i][1], matrix1[i][2]);
putchar('\n');
for(i=0;i<3;i++)
printf("%lf\t%lf\t%lf\n", matrix2[i][0], matrix2[i][1], matrix2[i][2]);
puts("");
// A(i,k) * B(k,j) = C(i,j)
for(i=0;i<3;i++)
for(j=0;j<3;j++) {
matrix3[i][j] = 0.0f;
for(k=0;k<3;k++)
matrix3[i][j] += matrix1[i][k] * matrix2[k][j];
}
for(i=0;i<3;i++)
printf("%lf\t%lf\t%lf\n", matrix3[i][0], matrix3[i][1], matrix3[i][2]);
}
577:デフォルトの名無しさん
08/06/24 12:16:06
>>408
いろいろ試してみたが、AMDのプロセッサ(AthlonX2)はL1 Data
Cacheが2Way-Set AssosiativeのためにCore 2 Duoのような
8Way-Set Assosiativeのマシンに特定の場面で大幅に負ける事がある。
データ・テーブルも今回は2個だがこれが10個~20個と増えてくると
AMDとIntelではあまり差がなくなってくるだろう。
578:デフォルトの名無しさん
08/06/24 12:41:06
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Win
[3.2] コンパイラ名とバージョン:Borland C++Compiler
[3.3] 言語:C
[4] 期限:今日中
[5] その他の制限:特になし
お願いします!
579:デフォルトの名無しさん
08/06/24 13:12:49
>>578
#include <stdio.h>
float interest(float r, int n)
{
float ret = 1.0;
int i;
for(i=0; i<n; i++) ret *= (1 + r / 100);
return ret;
}
int main(void)
{
float r;
int y, n;
printf("利率(r):");
scanf("%f", &r);
printf("金額(y):");
scanf("%d", &y);
printf("期間(n):");
scanf("%d", &n);
printf("返済金額は%d円です", (int)(y * interest(r, n)));
return 0;
}
580:デフォルトの名無しさん
08/06/24 13:16:30
>>577
ちょっとスレ違いになるかも知れないが、何故L1Chacheの構造が
原因であると断定できるのか教えて欲しいと思います。
581:デフォルトの名無しさん
08/06/24 13:17:30
1] 授業単元:
[2] 問題文(含コード&リンク):
次々に入力される値を合計する処理である。
変数dtにデータを入力する処理を繰り返し行い、
入力終了後その合計sumと平均aveを出力する。
なお、入力データは正の整数とし、
入力するデータがなくなったら、
終わりの印として負の値を入力する。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限:
[5] その他の制限:
582:デフォルトの名無しさん
08/06/24 13:18:58
1] 授業単元:
[2] 問題文(含コード&リンク):
次の説明を読んで、プログラムを作成しなさい。
小数で入力される気温のデータを5℃単位の整数に丸めたい。
キーボードからdouble型変数kに気温を入力し、
丸めた数値はint型変数gに求め、gを画面に出力する。
ただし入力データに負の気温はないものとする。
また必要なら、
計算途中の中間結果を格納するint型変数wなど、
適宜変数を用意すること。
【実行例】
温度を入力 22.4
約20度です
温度を入力 22.5
約25度です
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限:
[5] その他の制限:なし
2問ありますが、よろしくお願いします
583:デフォルトの名無しさん
08/06/24 13:46:07
>>581
#include <iostream>
int main()
{
int dt, i = 0, sum = 0, ave;
while(1) {
std::cin >> dt;
if(dt<0) break;
sum += dt;
i++;
}
if(i!=0) {
ave = sum / i;
std::cout << "合計:" << sum << "平均:" << ave << std::endl;
}
}
584:デフォルトの名無しさん
08/06/24 13:54:48
>>582
#include <iostream>
int main()
{
int g, w;
double k;
std::cout << "温度を入力";
std::cin >> k;
for(g=0; g<k; g+=5);
if(g - k > 2.5) g -= 5;
std::cout << "約" << g << "度です" << std::endl;
}
585:デフォルトの名無しさん
08/06/24 14:27:16
>>581
[1]コード品質:未チェック
[2]コード:直接記入
#include <stdio.h>
#include <stdlib.h>
int main(void){
int sum,count=0,current;
char s[32],*ss;
do{
if (ss==fgets(s,32,stdin)) continue;
while(*ss){ if( (*ss=13)||(*ss=10) )*ss=0;ss++;}
if(( current=atoi(s) )<0)continue;
count++;sum+=sum+current;
printf("%6d:value=%6d sum=%6d average=%lf¥n",count,current,sum,
(double)sum/(double)count);
}while(0);
retrun(0);
}
[3] 環境:Linux/Gcc/C++
[4]コメント:上記コードはC++でもコンパイルできる筈です。
C++はCのほぼスーパーセットです。ループの中で、stdinから文字列
を読み込み、atoi関数で整数に変換しています。平均の計算はdoubleで
行っています。駄コードですがご参考にどうぞ。
586:デフォルトの名無しさん
08/06/24 14:35:16
駄コードってレベルじゃねーぞ
587:デフォルトの名無しさん
08/06/24 14:48:46
>>585みたいな明らかにおかしい、見てるだけで頭が痛くなるようなコードにも
ソースを書かなきゃ文句言っちゃいかんのか?
588:デフォルトの名無しさん
08/06/24 14:53:10
チラシの裏にでも書いてろ
589:デフォルトの名無しさん
08/06/24 15:25:15
>>541
できました!ありがとうございます。
ところで、資料に書いてあったようにbitree.hを作ってインクルードする意味ってなんなんでしょうか?
また、bitree.hを作る場合は、bitree.hに一応
int main(int args, char **argv);
BITREE_TYPE sumValue(BITREE_NODE *p);
なども書き加えておいたほうがよいのでしょうか?意味はない気がしますが・・
590:デフォルトの名無しさん
08/06/24 16:18:17
かなり考えましたが、綺麗な形の木じゃない場合の計算がわからなかったのでお願いします。
[1] 授業単元:プログラミング
[2]問題リンク:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]期限:2008年6月27日
591:デフォルトの名無しさん
08/06/24 16:19:08
このスレをいろんな大学に通報すればいいんですねわかります
592:デフォルトの名無しさん
08/06/24 16:53:51
通報なんかしなくてもこんな所で丸投げする奴はどうせ卒業できん
593:デフォルトの名無しさん
08/06/24 17:28:14
>>585 点○虫か。コード品質なんて項目要らない。
>>581
#include <stdio.h>
#include <stdlib.h>
int main(void){
// int sum, count=0, current;
int sum=0, count=0, current;
char s[32], *ss;
do{
// if (ss == fgets(s, 32, stdin))
if (!(ss = fgets(s, 32, stdin)))
continue;
while(*ss){
// if( (*ss=13) || (*ss=10) )
if( (*ss==13) || (*ss==10) )
*ss = 0;
ss++;
}
if(( current = atoi(s) ) < 0)
continue;
count++;
// sum += sum + current;
sum += current;
printf("%6d:value=%6d sum=%6d average=%lf\n",
count, current, sum, (double)sum/(double)count);
// }while(0);
}while(current >= 0);
// retrun(0);
return(0);
}
594:お願いします
08/06/24 19:20:36
C++言語を使ってスタックを実現するクラスを定義し,その実行を確認するプログラム(main関数)を書く.
クラス名はstackとする.
要素のデータの型はintとする.
格納できる要素の最大数は10とする.
公開されているインターフェースは下記のものとする.
void push(int data);
int pop();
初期設定は,以下のいずれかにより行う.
(1) クラスのコンストラクタ(constructor)の機能を用いる.
(2) 初期設定用のインターフェース(init)を定義し,スタックを使用する前に,initを呼び出す.
機能確認のためのインターフェース(たとえばスタック内のデータを表示させる)を追加してもよい.
上記の仕様を満たさない(インターフェース名が上記と一致しない等)プログラムは対象としない.