C/C++の宿題を片付け ..
[2ch|▼Menu]
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のものは減算して合計を求めよ。
 A次のように表示する
Input Upper Limit : 11 [Enter]
Answer is : 6
 B配列、平方根は使ってはならない。
[3]@windows vista
  Agcc
  BC言語
[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言語演習U
[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を呼び出す.

機能確認のためのインターフェース(たとえばスタック内のデータを表示させる)を追加してもよい.

上記の仕様を満たさない(インターフェース名が上記と一致しない等)プログラムは対象としない.


595:デフォルトの名無しさん
08/06/24 19:50:28
#include <iostream>
#include <vector>
using namespace std;

int main()
{
vector<int> stack;
stack.push(1);
stack.push(2);
cout << stack.pop() << endl;
cout << stack.pop() << endl;
}

じゃ駄目ですか(><;

596:デフォルトの名無しさん
08/06/24 19:53:19
>>594
#include<iostream>
#include<vector>
class stack{
public:
void push(int data){ if(m_data.size()<m_datanummax) m_data.push_back(data); }
int pop(){
int ret=-1;
if(m_data.size()>0){
ret=m_data[m_data.size()-1];
m_data.pop_back();
}
return ret;
}
void display(){ for(unsigned i=0;i<m_data.size();i++) std::cout << m_data[i] << std::endl; }
stack(){m_datanummax=10;}
stack(int datanummax):m_datanummax(datanummax){};
private:
std::vector<int> m_data;
unsigned m_datanummax;
};
int main(void){
stack a, b(5);
for(int i=0;i<20;i++){
a.push(i);
b.push(i);
}
a.display();
std::cout<<"-----"<<std::endl;
b.display();
return 0;
}

597:デフォルトの名無しさん
08/06/24 20:02:32
添削屋が虫作ってどーすんだよw

598:デフォルトの名無しさん
08/06/24 21:23:54
麻呂のクソースはいらんかえぇ〜

599:デフォルトの名無しさん
08/06/24 21:32:00
>>589
main関数はヘッダで宣言したらダメ
sumValue関数はヘッダで宣言してもいい
bitree.hを作ってincludeさせてるのは勉強のためじゃない?
main関数と同じファイルに関数を定義してるなら普通はわざわざ宣言部をヘッダに分けない
main関数以外をbitree.cとかいうファイルにでも定義するならbitree.hを作る必要がある
分割コンパイルについて知りたいなら、ググるか他のC言語質問スレに質問しましょう

600:デフォルトの名無しさん
08/06/24 21:40:24
>>590
完全2分木って書いてあるけど、綺麗な形の木じゃない場合ってことは
完全2分木ではない場合を考えろってこと?

601:デフォルトの名無しさん
08/06/24 21:40:44
>>599
わかりました、ありがとうございました!

602:デフォルトの名無しさん
08/06/24 22:06:29
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:XP
 [3.3] 言語: C++
[4] 期限: 08年06月30日
[5] その他の制限:もしやっていただけるなら出来るだけ簡単に、分かりやすく(初心者でも理解できる構成)


603:デフォルトの名無しさん
08/06/24 22:10:31
問1
A : [] B : 0 C : * D : * E : * F : 0 G : vc


604:デフォルトの名無しさん
08/06/24 22:21:00
>>603
エスパーいないなー

605:デフォルトの名無しさん
08/06/24 22:21:45
問3
A : d B : d C : s

606:デフォルトの名無しさん
08/06/24 22:50:35
1

607:デフォルトの名無しさん
08/06/24 22:53:53
[1] 授業単元:Cプログラミング
[2] 問題文(リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:2008年06月25日いっぱい

608:デフォルトの名無しさん
08/06/24 23:03:35
[1] 授業単元:数学演習3
[2] 問題文(含コード&リンク):
3a-2b+ - d= 7
. 2b+2c+ d= 5
.a-2b-3c-2d=-1
. b+2c+ d= 6
上の行列をピポット選択を使い前進消去法で解くプログラムを作る。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VisualStudio2005
 [3.3] 言語:C
[4] 期限:2008年06月25日07:00まで
[5] その他の制限:特に制限はありません
以下が作っては見たもののアルゴリズムエラーでどこが悪いのかもわからない自作プログラム。
URLリンク(nijibox.ohflip.com)

609:608 ◆k4INPBPZ3E
08/06/24 23:04:30
トリップ忘れてた

610:デフォルトの名無しさん
08/06/24 23:11:40
1] 授業単元:基礎プログラミング
[2] 問題文
(1)標準入力からint 型引数に文字コード (ASCII) を読み込むと, その文字が小文字 (a〜z) であれば大文字のコードを返し
   そうでないならば受け取ったコードをそのまま返す関数を設計し, その関数を利用するプログラムを作成しなさい
(2)char 型の配列の名前を引数として受け取ると, その配列に記憶されている文字列の逆順に 並べか替えた文字列を表示し
   何も返さない関数を設計し, その関数を利用するプログラムを作成しなさい.
(3)char 型の配列の名前を2つ引数 P, R に受け取ると, P に記憶されている文字列を逆順に並べか替えた文字列を R に記憶して
   何も返さない関数を設計し, その関数を利用するプログラムを作成しなさい.
(4)char 型の配列の名前を引数として受け取ると, その配列に記憶されている文字列が回文ならば 1 を, そうでなければ 0 を返す関数を設計し
   その関数を利用するプログラムを作成しなさい. ただし,前問の関数を利用すること.
(5)char 型の配列の名前を引数として受け取ると, その配列に記憶されている文字列が回文ならば 1 を, そうでなければ 0 を返す関数を設計し
   その関数を利用するプログラムを作成しなさい. ただし,前々問の関数を利用せず, 直接,文字列中の文字を先頭と末尾から比較する方針を用いること.
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン:(cygwin)
 [3.3] 言語:C
[4] 期限:(明日の15時まで)
[5] その他の制限:


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4268日前に更新/251 KB
担当:undef