C/C++の宿題を片付けます 59代目
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
2006/01/27(金) 09:08:40【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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++の宿題を片付けます 58代目
http://pc8.2ch.net/test/read.cgi/tech/1137522945/
【過去スレ一覧】
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
0809デフォルトの名無しさん
2006/02/03(金) 00:13:310810デフォルトの名無しさん
2006/02/03(金) 00:15:08>>737じゃ駄目なん?
0811デフォルトの名無しさん
2006/02/03(金) 00:16:25何が聞きたいのか分からないんですが・・・
身長を入力するのは、 fgets(), sscanf(); などを使って
自分で適当に入力できるようにすればいいだけなんですけど・・・
0812デフォルトの名無しさん
2006/02/03(金) 00:19:49int main(void)
{
int number[60] = {0}, i;
while(!eof(stdin)){int height; scanf("%d", &height); number[(height-1)/5]++; }
for(i=0;i<60;i++){if(number){printf("%d...%d%3d",i*5,i*5+5,number[i]);
for(;number[i];number[i]--)putchar('*');puts("");}}
return 0;
}
0813デフォルトの名無しさん
2006/02/03(金) 00:20:28「適当」の意味がわからん。たとえば
160cm
1.8m
150inch
7744寸
…
みたいな入力されたら困る。
0814デフォルトの名無しさん
2006/02/03(金) 00:22:16はいww
#include<stdio.h>
int main(void){
double a[30];
int i,k,flag[256]={0};
for(i=0;i<5;i++){
scanf("%lf",&a[i]);
++flag[(int)a[i]/5];
}
for(i=0;i<256;i++){
printf("%d..%d ",i*5,i*5+5);
for(k=0;k<flag[i];k++)
putchar('*');
puts("");
}
return 0;
}
0815814
2006/02/03(金) 00:23:040816812
2006/02/03(金) 00:24:030817デフォルトの名無しさん
2006/02/03(金) 00:26:35身長は整数値でもいいと思いますが、while()内の eof って何ですか?・・
0818デフォルトの名無しさん
2006/02/03(金) 00:27:49どっちもネタっぽいけどwww
0819デフォルトの名無しさん
2006/02/03(金) 00:29:340820デフォルトの名無しさん
2006/02/03(金) 00:33:26#include<stdio.h>
int main(void){
double a[30];
int i,k,flag[256]={0};
for(i=0;i<30;i++){
scanf("%lf",&a[i]);
++flag[(int)a[i]/5];
}
for(i=0;i<256;i++){
printf("%d..%d %d ",i*5,i*5+5,flag[i]);
for(k=0;k<flag[i];k++)
putchar('*');
puts("");
}
return 0;
}
0821デフォルトの名無しさん
2006/02/03(金) 00:33:320822デフォルトの名無しさん
2006/02/03(金) 00:35:260823デフォルトの名無しさん
2006/02/03(金) 00:35:470824デフォルトの名無しさん
2006/02/03(金) 00:36:13バカはさっさと消えろ!
0825デフォルトの名無しさん
2006/02/03(金) 00:38:26うむそこは重要なところだな
0827デフォルトの名無しさん
2006/02/03(金) 00:50:00う〜ん、そこを変えても無理みたいです・・・
0828デフォルトの名無しさん
2006/02/03(金) 00:51:05>>820使えばいいじゃん
やってることはほとんど同じだぞ
0829デフォルトの名無しさん
2006/02/03(金) 00:55:25すみません、アンカーが違う人だったので別のプログラムだと思ってました・・・
どうもありです。でも、出力は全部じゃなくて入力した値付近のだけをしてほしいんですが・・・
(0のところは出力しない感じで・・・)
0830デフォルトの名無しさん
2006/02/03(金) 00:56:58とりあえず
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1600.txt
もしビット各桁ごとに順番に加算しろという課題だとこれだとダメ。
あと1の補数の桁あふれの処理の仕方にちょっと自信ないです。
0831デフォルトの名無しさん
2006/02/03(金) 00:57:58ちぇ・・・それじゃ面白くないのにw
#include<stdio.h>
int main(void){
double a[30];
int i,k,flag[256]={0};
for(i=0;i<30;i++){
scanf("%lf",&a[i]);
++flag[(int)a[i]/5];
}
for(i=0;i<256;i++){
if(flag[i]!=0){
printf("%d..%d %d ",i*5,i*5+5,flag[i]);
for(k=0;k<flag[i];k++)
putchar('*');
puts("");
}
}
return 0;
}
0832673
2006/02/03(金) 01:04:04本当にどうも有難うございます。
説明不足などすみませんでした。
0833デフォルトの名無しさん
2006/02/03(金) 01:04:580834デフォルトの名無しさん
2006/02/03(金) 01:22:00[2] 問題文(含コード&リンク):
半径1の球を中心座標(x,y,z)=(0,0,5)半径2の球を中心座標(x,y,z)=(2,0,8)、
大きさ2*2のスクリーンを(0,0,0)、視点を(0,0,-1)に配置し、光源ベクトル(0,-1,0)としたとき、スクリーンに投影される球の輝度地分布図を求めよ。
ただし、表面反射特性はランバートモデルを用いること。
ランバートモデル(完全拡散反射)とは、以下。
c=αn(x)・l
c:輝度値
n:物体の表面法線ベクトル
x:スクリーン上に投影される点に対応する物体の表面座標
l:光源ベクトル
α:物体の表面特性による係数
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: なんでも
[3.3] 言語: C
[4] 期限: 明日です!!!
[5] その他の制限: 特になし
全然わかりません!明日までで途中でもいいので、皆様の能力をおかりしたいです。
よろしくお願いします。
0835デフォルトの名無しさん
2006/02/03(金) 01:24:32どうゆう出力をしたいのか
それを計算するにはどのような計算手順を踏めばいいのか教えれ
0836デフォルトの名無しさん
2006/02/03(金) 01:27:060837デフォルトの名無しさん
2006/02/03(金) 01:29:29一応参考になるかなっていうサイトは見つけました。
ttp://nis-lab.is.s.u-tokyo.ac.jp/~nis/junk/lecture/Enshu302_1.html
0838デフォルトの名無しさん
2006/02/03(金) 01:31:49gccでapiだけでつくったっぽいね。
このサイズってことは、libc使っていないかな。なかなか技師と見たw
0839デフォルトの名無しさん
2006/02/03(金) 01:38:09>>1にも書いてあるけど数式書かないと俺らわからんよ?
0840デフォルトの名無しさん
2006/02/03(金) 01:38:56要するにレイトレだね。
ttp://www.not-enough.org/abe/manual/ray-project/c.html
とか参考になると思う。
Winならウィンドウ出してSetPixelでも使えばヨシ。
漏れは卒研でいそ(ry
0841デフォルトの名無しさん
2006/02/03(金) 01:40:39無料でやるのはコンソールが限度
0842834
2006/02/03(金) 01:51:39ほかにもやることがあって、もし暇な方がいたら少しだけでもやってみてくれないでしょうか?
ほんとすいません。
0843デフォルトの名無しさん
2006/02/03(金) 01:53:34APIスレ池
アルゴリズムほしければ数学板池
無理だったらお前の頭が悪い
0844834
2006/02/03(金) 02:00:50すいませんでした。
0845デフォルトの名無しさん
2006/02/03(金) 02:02:25基本的にCで作れるのはコンソールだからコンソールだけ
0846デフォルトの名無しさん
2006/02/03(金) 02:10:090847デフォルトの名無しさん
2006/02/03(金) 02:31:07どうもありです!
ソレを求めてました!w
0848デフォルトの名無しさん
2006/02/03(金) 02:34:00[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1601.txt
FFTのプログラムなのですが誰か詳細なコメントを付けてくれる方いませんか。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: (gcc 2.9 VC 6.0等)
[3.3] 言語: C
[4] 期限: 2006年2月3日23:59まで
[5] その他の制限: 特に無し。
0849デフォルトの名無しさん
2006/02/03(金) 02:35:58こっちは数値計算はちょっと・・・
0850デフォルトの名無しさん
2006/02/03(金) 02:52:050851デフォルトの名無しさん
2006/02/03(金) 02:52:52確か"numerical recipe"とかに書いてあったんじゃないかな。
(英語でよければ、オンラインで読めたはず)
最終的な式だけ書いてあるから、本を読んだ方が早いよ。
2の倍数の時は、組み合わせで計算の数が減らせるって話だったと
思うけど、詳細は忘れてしまった。
0852デフォルトの名無しさん
2006/02/03(金) 03:01:28ttp://laputa.cs.shinshu-u.ac.jp/~yizawa/InfSys1/basic/chap7/index.htm
簡単にいうと、FTでは複素で計算するときexp(iwt)みたいなのをかけるけど、
この関数には周期性があって、同じ値をかけるところが出てくる。
それをまとめてしまえば、計算の数が減るって話らしい。
0853848
2006/02/03(金) 03:08:380854848
2006/02/03(金) 03:22:100855834
2006/02/03(金) 03:27:55おそらくできたっぽいです、かなり参考になるサイトですね。
助かりました、これでなんとか単位とれそうです。
ありがとうございましたー。
0856デフォルトの名無しさん
2006/02/03(金) 03:47:16ライフゲーム・・・すまん、やっぱ重い。
0857デフォルトの名無しさん
2006/02/03(金) 04:25:00眠れん・・・
ライフゲーム、試してみたけど面白いね。前よりも数が増えてるw
タイム(?)もついたみたいだけど、平衡状況になったように見えても
終わらないね。これは、そういうものなのかな?
あと起動するとCPU駆動率100%になるので、どっかでsleep入れた方が
いいのかも。最後に・・・スレ違いスマソ
0858デフォルトの名無しさん
2006/02/03(金) 05:21:58[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1603.txt
安定的結婚問題という奴なのですが、穴埋め部分が分かりません。
どなたか教えてください。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: (VC++ 6.0)
[3.3] 言語: C
[4] 期限: 2006年2月3日23:59まで
[5] その他の制限: 特に無し。
0859アゲハ
2006/02/03(金) 10:16:03[2] 問題文(含コード&リンク):indata.datファイルを読み込んで得点順に並び替えよ。
<a href=""http://id18.fm-p.jp/gamen/s_scr.php?dir=26&uid=hanon0220&num=1>http://id18.fm-p.jp/gamen/s_scr.php?dir=26&uid=hanon0220&num=1</a>
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:gcc 2.9 VC 6.0等)
[3.3] 言語:C++
[4] 期限:2006年02月13日21:30まで
[5] その他の制限:基本的なことのみ
0860デフォルトの名無しさん
2006/02/03(金) 12:54:52[2] 問題文(含コード&リンク):�@DNSサーバーの53番ポートにリクエストがあったら
�Aネットワーク内にあるサーバーのログ(負荷状況やCPU使用率など)を集めて
�B一番負荷の軽いサーバーを見つけ出し
�CそのサーバーのIPアドレスを返信する
[3] 環境
[3.1] OS:WindowsXP
[3.2] gcc 2.9 VC 6.0など
[3.3] 言語:C
[4] 期限:2006年2月3日22:00まで
[5] その他の制限:基本的なことのみ
0861デフォルトの名無しさん
2006/02/03(金) 12:55:03[2] 問題文(含コード&リンク):分数を分子、分母をメンバとする構造体で表現する。
標準入力から分母、分子のデータを受取り、分数を通分した結果を表示するプログラムを作成せよ。
通分するには分子と分母の最大公約数を求める必要がある。
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2/4
[5] その他の制限: #include は <stdio.h>のみでお願いします。
0862デフォルトの名無しさん
2006/02/03(金) 13:08:54[2] 問題文(含コード&リンク):
main関数でキーボードから入力された2つの整数を引数として
渡された時、最大公約数を返すプログラム
main()
{
変数の定義とキーボードからの入力
c=gcm(a,b);
結果の表示
}
int gcm(int x,int y)
{
変数の定義と最大公約数の計算
return z;
}
を完成させて、36,90をキーボードから入力した時に最大公約数18が表示されるかどうか
確認しなさい。
(最初はmain関数だけでプログラムを組み、後で最大公約数の計算部分を
関数かすると作りやすい)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: わからないです。
[3.3] 言語: C++
[4] 期限: 2006年2月4日
よろしくお願いします。
0863デフォルトの名無しさん
2006/02/03(金) 13:30:11#include<stdio.h>
struct fraction{
int numerator; /*分子*/
int denominator; /*分母*/
} fraction_t;
int Gcd(int, int);
main(){
struct fraction t;
int gcd;
printf("分数の分子を入力してください:");
scanf("%d",&t.numerator);
printf("分母を入力してください:");
scanf("%d",&t.denominator);
gcd = Gcd(t.numerator,t.denominator);
if(t.denominator/gcd == 1) printf("通分した結果は%dです\n",t.numerator/gcd);
else printf("通分した結果は%d/%dです\n",t.numerator/gcd,t.denominator/gcd);
}
int Gcd(int n1, int n2){ /*ユークリッドの互除法で最大公約数を求める*/
if (n2 == 0) return n1;
else return Gcd(n2, n1 % n2);
}
0864デフォルトの名無しさん
2006/02/03(金) 13:32:26あと、構造体の後にくっついてるfraction_tは消しておいてください
0865デフォルトの名無しさん
2006/02/03(金) 14:58:46いや意味わからん日本語わかり辛い
0866デフォルトの名無しさん
2006/02/03(金) 21:52:340867デフォルトの名無しさん
2006/02/03(金) 21:55:260868デフォルトの名無しさん
2006/02/03(金) 22:08:18今から2時間でできるかわからんけど、手をつけてみる。
できなかったらごめんね。
0869デフォルトの名無しさん
2006/02/03(金) 22:09:01結構あるんだな
0870デフォルトの名無しさん
2006/02/03(金) 22:21:37いつからだろう・・・・動きが止まってしまったのは・・・
ちょっと目を放した隙にゲーム終了orz
0871デフォルトの名無しさん
2006/02/03(金) 22:56:16http://oku.edu.mie-u.ac.jp/~okumura/algo/archive/algo.lzh
にある、marriage.cが参考にならない?
0872デフォルトの名無しさん
2006/02/03(金) 23:27:190873デフォルトの名無しさん
2006/02/03(金) 23:31:21というよりVBから使えるフリーのFFTライブラリを ('A`)ソースつきで
0874デフォルトの名無しさん
2006/02/03(金) 23:31:560875208
2006/02/03(金) 23:34:53[2] 問題文(含コード&リンク):
アッカーマン関数A(m,n)
{n + 1 (m = 0)
A(m,n) ={A(m - 1,1) (n = 0)
{A(m-1,A(m,n-1)) (m ≠ 0, n ≠ 0)
は原始機能的関数ではない関数としてしられている。アッカーマン関数を定義し、
標準入力から入力された値に対する解を求めるプログラムを作成せよ。
[3] 環境
[3.1] OS: win
[3.2] コンパイラ名とバージョン: ボーランド
[3.3] 言語: C
[4] 期限:2/5
[5] その他の制限: #include は <stdio.h>だけ。
よろしくお願いします。
0877デフォルトの名無しさん
2006/02/03(金) 23:39:030878デフォルトの名無しさん
2006/02/03(金) 23:40:03#include <stdio.h>
int A(int n,int m);
int main(){
int m,n;
scanf("m=:",&m);
scanf("n=:",&n);
printf("%d",A(n,m));
return 0;
}
int A(int n,int m){
if(m=0) return n+1;
if(n=0) return A(m-1,1);
return A(m-1,A(m,n-1));
}
きっとこんな感じ・・・ごめん俺VB厨で、コレ手書きだから動くかSH4 ('A`)
0879デフォルトの名無しさん
2006/02/03(金) 23:41:160880デフォルトの名無しさん
2006/02/03(金) 23:50:55へ(へ´∀`)へ 流石に残り10分じゃ無理な気がするがちょっと頑張ってみる
0881デフォルトの名無しさん
2006/02/03(金) 23:52:27#include<cstdio>
using namespace std;
template<int M, int N> class A {
public: static const int n = A<M-1,A<M,N-1>::n>::n;
};
template<int M> class A<M,0> {
public: static const int n = A<M-1,1>::n;
};
template<int N> class A<0,N> {
public: static const int n = N+1;
};
int main() {
printf( "A(3,5)=%d", A<3,5>::n );
}
0882sage
2006/02/03(金) 23:58:46一番大事なアルゴリズムの部分が理解できました。
考えてくださった皆さん、ありがとうございました!!
0884デフォルトの名無しさん
2006/02/04(土) 00:03:40コンパイルが通ってしまうあたり罠だな。
一番の罠はnとmが入れ替わっていることだが。
なるべく気持ちを尊重して書くとこう:
#include <stdio.h>
int A(int m,int n);
int main(){
int m,n;
printf("m=:"); scanf("%d",&m);
printf("n=:"); scanf("%d",&n);
printf("%d",A(n,m));
return 0;
}
int A(int m,int n){
if(m==0) return n+1;
if(n==0) return A(m-1,1);
return A(m-1,A(m,n-1));
}
0885デフォルトの名無しさん
2006/02/04(土) 00:04:51すまん・・・ちょっとしたミスだ(orz
0886デフォルトの名無しさん
2006/02/04(土) 00:06:10printf("%d",A(m,n));
0887デフォルトの名無しさん
2006/02/04(土) 00:07:410888875
2006/02/04(土) 01:06:350889デフォルトの名無しさん
2006/02/04(土) 01:30:04明日までにA(4,2)を計算して提出するように。
0890デフォルトの名無しさん
2006/02/04(土) 01:46:34今まで計算した値をa[][]の配列に入れるようにし、0じゃなかったら
その値を返すようにすれば、A(4,2)程度ならぎりぎり計算できる。
まともに計算したら、多分一週間たっても終わらないのではないかと。
それか ghc でも使うか。
0891889
2006/02/04(土) 01:53:270892デフォルトの名無しさん
2006/02/04(土) 01:55:230893デフォルトの名無しさん
2006/02/04(土) 01:56:210894デフォルトの名無しさん
2006/02/04(土) 02:20:240895デフォルトの名無しさん
2006/02/04(土) 02:25:50たぶんメモ化を期待してるんだと思われ。
0896デフォルトの名無しさん
2006/02/04(土) 02:32:05そんで>>892のようなVB厨がこの世からいなくなりますように
0897デフォルトの名無しさん
2006/02/04(土) 03:02:07http://www.geocities.co.jp/Technopolis/9946/function.html
A(4,2)って一体何桁になるのやら?
0898sage
2006/02/04(土) 04:17:07[2] 問題文(含コード&リンク):
1.三角形の三辺を読み込みヘロンの公式を用いて面積を求めよ。
http://www.asahi-net.or.jp/~jb2y-bk/NaturalSci/math/heron.htm
2.正六角形の一辺を読み込んで面積を求めよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Borland C++ Compiler 5.5
[3.3] 言語:C
[4] 期限: 2006年2月4日18:00
0899デフォルトの名無しさん
2006/02/04(土) 05:04:19Lv1とLv2を解いて欲しいです
お願いします
0900デフォルトの名無しさん
2006/02/04(土) 06:36:36a=91
s= "は、素数です。"
for i = 2 to (a-1)
if aMod i = 0 Then
s="は、素数ではありません。"
Exit For
End If
Next
MsgBox CStr(a) & s
というVBScriptの言語をC言語に置き換えるという問題を誰か、解いてください!
91の素数を求めるんですが。。
0901デフォルトの名無しさん
2006/02/04(土) 06:54:40int main(){
int a=91;
int i;
char *s = "は、素数です。";
for(i=2;i<=(a-1);i++){
if(a%i==0){
s = "は、素数ではありません。" ;
}
}
printf("%d%s\n",a,s);
return 0;
}
0902デフォルトの名無しさん
2006/02/04(土) 08:24:41とりあえずLevel 2だけ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1604.c
0903デフォルトの名無しさん
2006/02/04(土) 10:12:07[2] 問題文(含コード&リンク):番号と得点を読み込んで、得点が70点以上なら“合格”、70点未満なら
“不合格”と、番号、得点と共に出力するプログラムを作れ。(if文を使用すること)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語:C
[4] 期限:05年2月5日19:00
どうか、よろしくお願いします。
0904デフォルトの名無しさん
2006/02/04(土) 10:20:51読み込みはキーボードからでいいのかい?
0905デフォルトの名無しさん
2006/02/04(土) 10:23:24はい
0906デフォルトの名無しさん
2006/02/04(土) 10:30:37#include <stdio.h>
int main(void)
{
int num,score;
printf("番号:"); scanf("%d",&num);
printf("得点:"); scanf("%d",&score);
printf("\n番号:%d 得点:%d - ",num,score);
if(score>=70)printf("合格\n");
else printf("不合格\n");
return 0;
}
0907デフォルトの名無しさん
2006/02/04(土) 10:31:31レス数が900を超えています。1000を超えると表示できなくなるよ。