トップページ⇒tech
1001コメント428KB

C/C++の宿題を片付けます 57代目

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/01/09(月) 10:02:47
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
 投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 2.9 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】
http://www.linux.or.jp/JM/index.html

【前スレ】
C/C++の宿題を片付けます 56代目
http://pc8.2ch.net/test/read.cgi/tech/1135125328/
【過去スレ一覧】
http://makimo.to/cgi-bin/search/search.cgi?q=C%2B%2B%82%CC%8Fh%91%E8&andor=AND&sf=2&H=&view=table&D=tech&shw=2000
0412デフォルトの名無しさん2006/01/14(土) 01:18:42
[1] 授業単元: アルゴリズム演習B
[2] 問題文(含コード&リンク):
int t(int x, int y, int z) {
  if (x > y) return t(t((x-1),y,z),t((y-1),z,x),t((z-1),x,y));
  return y;
}
という関数tがある。tと等価な関数で高速なものを実装せよ。
目安としてはt(2006,1003,0)がtimeコマンドで10s以内

[3] 環境
 [3.1] OS: 問わない
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2006年1/15(日)の23:59まで
おねがいします。
0413デフォルトの名無しさん2006/01/14(土) 01:29:59
>>412

数学の問題得意じゃないけど
int t( int x, int y, int z )
{
if ( x <= y ) return y;
if ( y <= z ) return z;
return x;
}

でいいんじゃないか?
元の関数と違う結果を返す x, y, z の組み合わせ例を見つけたら
教えて。
0414デフォルトの名無しさん2006/01/14(土) 01:30:33
>>411
ノシ
とりあえず枠だけ作るのに2時間かかりました
0415デフォルトの名無しさん2006/01/14(土) 01:34:30
やりかけ。<○×
・・・まあ、なんだ・・・あとは明日以降。
0416デフォルトの名無しさん2006/01/14(土) 01:43:28
>>413
ワロタ
04174132006/01/14(土) 01:47:51
てゆか元のアルゴリズムで t(2006,1003,0) はいくつになるの?
再帰複雑すぎて脳内実行できないし、元のアルゴリズム遅すぎて結果でるまで待てないし、
検証の仕様がないんだけど。
0418デフォルトの名無しさん2006/01/14(土) 01:51:59
じゃあ俺も○×作ってみるか
04194052006/01/14(土) 01:52:05
>>411
ノシ

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1454.txt

[2]CPU戦・ランダムで置くところまで。4でCPU対戦。

update 1451.txt
>右上→左下の判定が出来てなかったもより
今は反省している
>あと、メッセージを問題文に準拠
04204052006/01/14(土) 02:13:57
そろそろ宿題スレのレベルじゃなくなってくるなぁ。

とりあえず今の考えでは
1.自分が置いて「勝ち」なら、その手を選ぶ
  リーチ目の行・列があれば、ってこと
2.相手にリーチ目があれば全力で阻止
3.ライン(1列)上に相手の石が無く、なおかつ
  自分の石が一番多いラインをカウント
  ライン上に相手の石があれば、そのラインを
  揃えて勝つことはできない
4.3.のラインの自石が置ける場所にクロスするラインで
  3.の判定を行い、最善を選ぶ
5.3.を満たす列がまったく無い場合、勝つことができない。
  逆に相手に揃えさせない手を選ぶ。
6.5.を満たす列が無くなった場合、すなわちどこの
  空きマスを見ても縦横に○×両方入っている場合は
  実質引き分けとなる。空いてるマスにランダムで。

これからの方針はこんな感じ。では寝ます ノシ
ちなみに4.の判定をすると、ダブルリーチの目を
自ら潰すように動くと思われ。
0421デフォルトの名無しさん2006/01/14(土) 02:15:49
[1]授業単元というか、項目: プロセス間通信
[2]問題文: 
既定のディレクトリにあるファイルをオープンし、ファイルの中身を読む。
ファイルは一日単位で自動的に生成され、名前は
2005_12_31.txtのようなフォーマットになっていて、開く対象のファイルはコマンドラインの
オプションで指定する。(./exefilename prm1 prm2)
例えば、prm1が2005_12_20,prm2が2006_01_10であれば、2005年12月20日から
2006年1月10日までのファイルを順番にオープンする。
ファイルの中身は一行が最大200Byteのテキストで、全て5行で構成されるログのようなもので、
1つのレコードの最後、つまり5行目の終端に、DBGPRT=ONかDBGPRT=OFFという文字列が
付加されている。
ファイルリードは1つの関数として実行し、開くファイルの数だけその関数を実行する事とする。
ファイルリード関数の先頭で子プロセスを生成しておく。
関数内で1つのレコード(MAX200Byte*5)を読み込み、5行目の最後がDBGPRT=ONだった場合、
標準出力に吐き出させる。ただし、吐き出しは子プロセスで行う事。
子プロセスとのプロセス間通信には共有メモリを用い、また、ダブルフォークは禁止とする。
子プロセスの埋葬は必ず行う事。

尚、ソースコードはC言語で記述し、文字列はchar型の配列で扱う事。

上記以外の制約は無し。

[3]環境
 OS:Linux
 コムパイラ:GCC
 言語:C
[4]期限 お勉強なので特になし。

どう取り組んだら良いのかさっぱりです。
取り合えず方針だけでも教えて頂ければ幸いです。それ以前に、プロセス間通信は分かりますが共有メモリを使っての
プロセス間通信はどうやってやるとですか??
0422デフォルトの名無しさん2006/01/14(土) 02:19:28
>>421
だぶるふぉーっくって何だ?
0423デフォルトの名無しさん2006/01/14(土) 02:22:42
相変わらず人気だねこのスレ
0424デフォルトの名無しさん2006/01/14(土) 02:23:18
>>422
量子力学の基本だろ
0425デフォルトの名無しさん2006/01/14(土) 02:26:18
>>422
http://www.system5.jp/asp/ItemFile/10004843.html
0426デフォルトの名無しさん2006/01/14(土) 02:30:19
[1] 授業単元:プログラミング論
[2] 問題文(含コード&リンク):
【1】1+2+3+...+100を計算するプログラムを作成してくださいfor文を使用してください。
#include<stdio.h>
void  main(void)
{
  int gokei,i;

【2】【1】のプログラムをwhile文を用いて書き直してください。

【3】整数iの自乗が1000以上で、もっとも100に近い値となるiとiの自乗を算出するプログラムを作成してください。
#include<stdio.h>
void  main(void)
{
  int i;

【4】18の倍数で、300以下の最大の整数を求めるプログラムを作成してください。
#include<stdio.h>
void  main(void)
{
  int i;

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:bcc32 Ver.5.5.1.2
 [3.3] 言語:C
[4] 期限:2006/1/15
[5] その他の制限:あまり詳しいことは分からないのですが、
            出来るだけ初歩的なコードで書いてください。
すいません。
結構、量があるとは思いますが、どうぞよろしくお願い致します。
0427デフォルトの名無しさん2006/01/14(土) 02:35:48
【3】の意味を理解できるやついるのか?
0428デフォルトの名無しさん2006/01/14(土) 02:39:22
【1】

gokei = 0;
for(i =1;i<=100;++i){
gokei += i;
}

【2】
gokei = 0;
i = 1;
while(i <= 100){
gokei += i;
++i;
}

【4】
i = 300 - (300 % 18);

>427
10000の間違いなんじゃない?
0429デフォルトの名無しさん2006/01/14(土) 02:41:12
#include<stdio>

main(void){

int n1 = 1;
for(;n1 * n1 > 1000;n1++)



ん?? LOOPしねぇぞオイ
0430デフォルトの名無しさん2006/01/14(土) 02:45:49
いや待て、こうだ。

int n1 = 200;
int n2 = 0;
while(1)
{
n2 = n1 * n1;
if(n2 < 1000)
break;
n1--;
}
0431デフォルトの名無しさん2006/01/14(土) 02:48:32
1.
#include<stdio.h>
void main(void){int gokei,i;gokei=0;for(i=1;i<=100;i++)gokei+=i;printf("%d\n",gokei);}
2.
#include<stdio.h>
void main(void){int i=0,gokei=0;while(i<100)gokei+=++i;printf("%d\n",gokei);}
3.
#include<stdio.h>
void main(void){int i=0;while(i*i<1000)i++;i--;printf("i=%d, i^2=%d\n",i,i*i);}
4.
#include<stdio.h>
void main(void){int i;i=300-(300%18);printf("%d\n",i);}
04324312006/01/14(土) 02:52:27
3.間違い。忘れてくれ。
問題読めば読むほどワカラン
0433デフォルトの名無しさん2006/01/14(土) 02:53:00
>>421
おマイの頭にSIGKILL
SIGSEGVしてるぞ
0434デフォルトの名無しさん2006/01/14(土) 03:00:55
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1455.txt
リーチ目をおさえるまでやってみた。
0435デフォルトの名無しさん2006/01/14(土) 03:02:01
二乗1000以上で最も100に近いんだがら答え100じゃねーの?
#include<stdio.h>
void main(void){puts("100");return 0;}
0436デフォルトの名無しさん2006/01/14(土) 03:03:10
>>434
なんでそんな情熱あるの?w
04374342006/01/14(土) 03:03:41
メインループの
 if(search_reach(&x, &y, current)) printf("<%c%c>\n",x+'1', y+'A');
はテストコードなんで無視してちょ。
0438デフォルトの名無しさん2006/01/14(土) 03:05:30
あえて誰もつっこまなかった事を。
やるな>435

i=0;
while(1){
if(1000 <= (100-i)^2){
i = 100-i;
break;
}
if(1000 <= (100+i)^2){
i = 100+i;
break;
}
++i;
}

printf("%d %d\n",i,i^2);
0439デフォルトの名無しさん2006/01/14(土) 03:14:52
>>438
愛がゼロだからそのまま抜けるな。
0440デフォルトの名無しさん2006/01/14(土) 03:40:21
>>438
なんて愛の無いプログラムなんだろう。
0441デフォルトの名無しさん2006/01/14(土) 03:43:48
^ 演算子の使い方が斬新だと思いました。
04424262006/01/14(土) 03:58:11
皆さん、本当に申し訳ありません。

【3】の問題は
整数iの自乗が1000以上で、もっとも「1000」

です。
こんな下らないミスで混乱させてしまい、申し訳ありません。
それでも、真剣に考えてくださって本当にありがとうございます。
これで、単位どうにかなりそうです。
0443デフォルトの名無しさん2006/01/14(土) 04:00:38
てゆか、その問題前に答えたんだけど。
別の人?
0444デフォルトの名無しさん2006/01/14(土) 04:03:49
実は俺ヘッダーで^のオーバーライドをしてたんだよ!
0445デフォルトの名無しさん2006/01/14(土) 04:04:24
オーバーロードだった
ハズカシス
04464382006/01/14(土) 04:07:29
あい、いのちのあい。ちのいろはだいちにすてて。

>441
あー、何考えてんだ、漏れ。

>444-445
もう寝れ。漏れも寝る。
0447デフォルトの名無しさん2006/01/14(土) 04:18:57
>>443
私が質問するのは今回が初めてなので、
同じ授業を取っていた人が質問したと思います。
0448デフォルトの名無しさん2006/01/14(土) 04:26:00
基礎中の基礎であって聞くレベルのものでないと思うんだがなあ。
0449デフォルトの名無しさん2006/01/14(土) 04:35:31
でも、このスレの人って基礎的なものしか答えてくれないよなぁ
めんどくさいってのもあるけど
0450デフォルトの名無しさん2006/01/14(土) 04:40:13
>>442
(゚Д゚)ノ ァィ
#include<stdio.h>
void main(void){
int i;
for(i=1;i*i<1000;i++);
printf("%d %d\n",i,i*i);
}
0451デフォルトの名無しさん2006/01/14(土) 04:50:17
>>442
>整数iの自乗が1000以上で、もっとも「1000」

日本語勉強し直せよ
整数iの自乗が1000以上で、もっとも「1000」に近い「i」なら1000だろ
i == 32 を期待してるなら、
整数iの自乗が1000以上で、もっとも小さい「i」
0452デフォルトの名無しさん2006/01/14(土) 04:52:18
>>450
死ね
0453デフォルトの名無しさん2006/01/14(土) 04:54:40
何故死なねばならん
とりあえず通報しといた
0454デフォルトの名無しさん2006/01/14(土) 05:38:12

ところで、総当り方式のマルバツプログラムは組んだんだが、3x3までは動く。
4x4はダメダ...
3x3の組合せ(9!)362880
4x4の組合せ(16!)20922789888000
...いや、6x6のオセロが解けるってきいてたもんで、4x4ならラクに行けるんじゃないかと...
先に計算量を予想しとかんといかんですな...



0455デフォルトの名無しさん2006/01/14(土) 05:42:16
そんな真面目にやらんでも・・・逆に提出できなくなるかもw
0456デフォルトの名無しさん2006/01/14(土) 07:10:35
プログラムの課題を提出するときって大抵、プログラムの説明を書き添える必要があるけど
ここでソースコード書いてもらっても理解出来なきゃ自分が困るだけだな。
0457デフォルトの名無しさん2006/01/14(土) 07:12:41
mallocやらcallocやら使ってる人いるけど
実際問題そんなの出して問題ないのかな?
0458デフォルトの名無しさん2006/01/14(土) 07:30:54
そんなん出してって

C99以前では
int num;
scanf("%d",&num);
int hoge[num];
というのは駄目ですからー
遅かれ早かれ動的メモリ確保は履修するべき、しないならうんこ
0459デフォルトの名無しさん2006/01/14(土) 07:38:52
>プログラムの説明を書き添える必要があるけど

それは教官が馬鹿な場合だけだ
0460デフォルトの名無しさん2006/01/14(土) 07:40:51
>>458
えっ?それできるの?マジで?
0461デフォルトの名無しさん2006/01/14(土) 07:43:26
>>458
できないんですけど・・・
0462デフォルトの名無しさん2006/01/14(土) 07:50:09
>>459
馬鹿じゃなくて理解できているかどうか確認するために書かせる
0463デフォルトの名無しさん2006/01/14(土) 07:56:08
>>459
自分で理解して組み上げたものか、ここで丸投げしたものかの判断で
ソース内か別pdfなどで説明を要求してくる先生もいる。
0464デフォルトの名無しさん2006/01/14(土) 08:00:40
そんな恐ろしい教師いるのか
俺はそんなことなかったな
0465デフォルトの名無しさん2006/01/14(土) 08:03:13
そういう意味では独自のライブラリをかませて
余所(このスレの回答者とか)で動作確認できなくすることで
丸投げ対策してるのではないかとも思いたくなる。
0466デフォルトの名無しさん2006/01/14(土) 08:03:23
まぁそれが本人の為だし
それが恐ろしいとか、うざいとか言うなら
大学なんて辞めてアルバイトでもした方がいいよ

生半可な知識で現場に出てこられても使えないだけだし
0467デフォルトの名無しさん2006/01/14(土) 08:04:33
何怒ってるんだコイツ?
たかが大学の授業なのに
0468デフォルトの名無しさん2006/01/14(土) 08:05:24
どこが怒ってるの?
0469デフォルトの名無しさん2006/01/14(土) 08:16:44
「大学で何やってきたんだ?」って恥はかきたくないがな
0470デフォルトの名無しさん2006/01/14(土) 08:16:48
>>463
えっ、それが普通じゃないの?
てか、そうじゃないと本当の意味で理解してるのか分からない。
友達のソースを改変して、できましたって持ってくこともできるし。
0471デフォルトの名無しさん2006/01/14(土) 08:29:05
大学の教授はどうしてもわからないなら友達の写してもネットにあるのを真似してもいい
だけど、コピーペーストだけはするな
まんまでいいから自分で打ち込めとか言ってた
0472デフォルトの名無しさん2006/01/14(土) 08:34:57
>>449
プログラムは組みたいけど、数学の勉強はいまさらしたくない。
漸化式とか、ぐぐってもサパーリ理解不能。

本末転倒だとは思うんだけど、ね。
めんどうな計算はコンピーターにやらせよう。
「3桁×3桁は電卓で。」の、ゆとり教育。
0473デフォルトの名無しさん2006/01/14(土) 08:35:33
>>417
あたかも自分で書いたように見せかけて提出すると犯罪だけど
覚えるだけならそれでもいいかもね。
04743772006/01/14(土) 09:05:38
>>391-392
コンピュータ側を強くするという意味だそうです。
>>405さん 有難うございます。俺も頑張ってみますが、まだプログラムを
考えてくださってる方もいるようなので、よろしくお願いします。
0475デフォルトの名無しさん2006/01/14(土) 09:15:00
てゆーかこれなんか授業の宿題レベルじゃないような・・・・
0476デフォルトの名無しさん2006/01/14(土) 09:18:30
>>472
おまえ漸化式も知らないでプログラマやってんの?w
0477デフォルトの名無しさん2006/01/14(土) 09:20:55
>>474-475
ここで書かれたコンピュータ側プログラムでどれが一番強いか競わせたいね。
だれかネットワーク対戦用に共通の土俵を作ってくれ。
0478デフォルトの名無しさん2006/01/14(土) 09:31:38
リバーシの最強アルゴリズムとか一人でやってくださいって感じなんだが
04794722006/01/14(土) 09:46:19
>>476
正直、行列とかわからん。3D興味ないし。
ベクトル内積ぐらいならなんとか。

作りたいものが10年前のレベルだからいいじゃん。
日曜プログラマだし。(元プロ)
0480デフォルトの名無しさん2006/01/14(土) 09:47:14
元プロって、コボラーかなにかですか?
0481デフォルトの名無しさん2006/01/14(土) 10:01:12
[1] 授業単元:基礎プログラミング演習
[2] 問題文(含コード&リンク):
構造体の配列を用いて、5人分の氏名、学籍番号、点数を記録し、
新しく入力された点数以上の氏名を出力するプログラムを書け。
(必ず、print_student(struct student s)と言う学生一人分の情報を
 1行に表示する関数を作成し、それを利用して出力を行うこと。)

< 構造体の例 >
struct student{
char name[50], id[20];
int score;
};
< 実行例 >
Name? Tanaka (fgets と sscanf によって5人分のデータを入力する)
ID? 103
Score? 80
(途中省略)
Passing score? 70
102 Suzuki 90
103 Tanaka 80
 
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 2006年1月17日まで

何とぞお手柔らかにお願いします
04824792006/01/14(土) 10:03:12
>>480
Cだけど、表示まわりは社内ライブラリが充実してたし
(支店の人間がさわることは許されなかった)、
ほとんどSQLだけ。

業務アプリなんて、VB+データベースの知識だけで十分。
こんなんで全国1,000店舗の販売管理できるんだもんな。
0483デフォルトの名無しさん2006/01/14(土) 10:07:08
>>482
雑談したいだけならどっか逝けよ
0484デフォルトの名無しさん2006/01/14(土) 12:29:07
>>482
× データベースの知識
○ データベースの使い方
0485デフォルトの名無しさん2006/01/14(土) 13:47:50
[1] 授業単元:プログラミング�U
[2] 問題文:
二分探索木における挿入、削除、検索のアルゴリズムを簡潔に説明し、そのプログラムを作成せよ。
ただし、挿入、削除、検索はそれぞれ再帰を用いた関数でプログラムを作れ。

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ(バージョン):gcc
 [3.3] 言語:C
[4] 期限:1/26まで
[5] その他の制限:特に無し

よろしくお願いします。
0486デフォルトの名無しさん2006/01/14(土) 13:49:48
>>485
ttp://www.geocities.jp/ky_webid/algorithm/017.html
0487デフォルトの名無しさん2006/01/14(土) 13:51:14
よく見たら再帰かよ
BinarySearchで再帰なんて使うメリット無いだろ
0488デフォルトの名無しさん2006/01/14(土) 14:22:45
業務アプリ(しか出来ない)プログラマって差別されがち
0489デフォルトの名無しさん2006/01/14(土) 14:41:41
ソートや2分木なんかはループ書くより再帰で書いたほうが解り易いんだが
0490デフォルトの名無しさん2006/01/14(土) 14:49:52
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):数字パズル。パズル完成時にクリアメッセージ「おめでとう!」等が表示されるようにせよ。(配列の初期配置と現在値の合同判定をする関数を組んで下さい)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1462.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: bcc32
 [3.3] 言語: C
[4] 期限: [2006年01月16日24:00まで]
[5] その他の制限: 特にありませんが、お願いする関数はint moveのswitch(S)下、caseのbreak;直前毎に組み込んでくださると見易くて助かります。
それと私自身の力不足の為、グローバル変数が混じっていますが多めに見て下さい…それでは宜しくお願い致します。
0491デフォルトの名無しさん2006/01/14(土) 14:50:59
何の説明もなしにそんな長いソース読む気失せる
0492デフォルトの名無しさん2006/01/14(土) 14:52:35
ぱっと見ただけだけど
いわゆる15パズルっぽいな
04934902006/01/14(土) 15:01:06
うああ、確かに長いソースですね…

プログラムとして動くようにはなっているので、bcc32でコンパイルすればどんな状態なのか一発でわかるのですが…
実際参考にする必要性のある箇所は少ないはずです…多分グローバル関数のnumと配列担当のint table位だと思います。
他の関数は数字混ぜたり書いたりしてるだけなので…
0494デフォルトの名無しさん2006/01/14(土) 15:49:14
>>490
masu 定義直後に int masu0[11][11];int started = 0;
tableinit() 呼出直後に copy();
start() 呼出直後に started = 1;
指定位置に judge();
void copy(){int x, y;for(x=1;x<=num;++x) for(y=1;y<=num;++y) masu0[x][y]=masu[x][y];}
void judge(){int x, y;if(!started) return;for(x=1;x<=num;++x) for(y=1;y<=num;++y) if(masu0[x][y]!=masu[x][y]) return;printf("おめでとう!\n");}
0495デフォルトの名無しさん2006/01/14(土) 16:25:01
>>460
最近はできる
昔はできなかった

VC++6.0なんかだとできない
04962122006/01/14(土) 16:34:33
何度もすみません、212です。
ややこしい問題ですがどうかよろしくお願いします。
符号付2進展開のプログラムについてです。

[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
a^rをa,rごとに入力し、rを2進展開して(5^3)*(2^6)を求めるプログラムを作りなさい。
またrを符号付2進展開にした場合のプログラムも作りなさい。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語:C言語
[4] 期限:2006年1月15日
[5] その他の制限:a,rの入力は面倒だと思うのでscanf使わずにプログラムに埋め込んでいいです。

問題文分かりにくいですが以下のようなことです。
(符号付じゃない場合)
   3 = 0 1 1・・・・・・5の指数部
   6 = 1 1 0・・・・・・2の指数部
ーーーーーーーーーー
上のように指数部を2進展開して上位ビットから見ていきます。
1がたったビットでは×仮数部をして、右にシフトするごとに2乗するようにします。 
このような仕様です。よろしくお願いします。
0497デフォルトの名無しさん2006/01/14(土) 17:00:38
>>491
この程度で長いって逝ってたらやばいぞ
0498デフォルトの名無しさん2006/01/14(土) 17:11:05
○×ゲーム
僕にはこれが限界ですた
http://smzk55.hp.infoseek.co.jp/maru_batu.c
0499デフォルトの名無しさん2006/01/14(土) 17:33:42
[1] 授業単元:プログラム
[2] 問題文 台形の面積を計算する関数を作成せよ.ただし上底,下底,高さは
main関数内で取り込み,これら3変数を関数の引数として与えるものとする.
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限:明日まで
[5] その他の制限:初心者でもわかりやすい感じ…;
よろしくお願いします。
0500デフォルトの名無しさん2006/01/14(土) 17:50:00
>>499
・関数内で表示するのか、値を返すのか
・引数および面積の値は実数か整数か
0501デフォルトの名無しさん2006/01/14(土) 17:53:50
計算する関数を作成せよ
値は実数
0502デフォルトの名無しさん2006/01/14(土) 17:55:23
ええと…
「値を返す」「実数」でお願いします!
0503デフォルトの名無しさん2006/01/14(土) 17:55:28
とりあえず台形の面積の計算方法を教えれ
0504デフォルトの名無しさん2006/01/14(土) 17:56:33
>>500
表示する必要はなさそう
0505デフォルトの名無しさん2006/01/14(土) 17:57:24
(上底+下底)×高さ÷2だと思います。
0506デフォルトの名無しさん2006/01/14(土) 18:00:02
>>505
マジレスワロスw

>>499
double (double top,double bot,double h)
{
  return (top+bot)*h/2.0;
}
0507デフォルトの名無しさん2006/01/14(土) 18:04:11
ワロスってなんですか??
506番さんのを詳しく教えてほしいのですが…
0508デフォルトの名無しさん2006/01/14(土) 18:04:25
(top+bot)*h

このタイミングで桁あふれしないか?

(h/2.0)*(top+bot)

とするとか...
0509デフォルトの名無しさん2006/01/14(土) 18:06:01
(top+bot)/2.0*h
05105062006/01/14(土) 18:11:20
>>508
ごめん
計算順序考えなかった上に関数名つけてなかった・・・吊ってくるノシ
0511デフォルトの名無しさん2006/01/14(土) 18:12:02
>>508
>(h/2.0)*(top+bot)
このタイミングで桁落ちしないか?
■ このスレッドは過去ログ倉庫に格納されています