(・∀・)C/C++の宿題やらせてください。ver10
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG今まで1年*ヶ月、ほとんど毎日休まず一生懸命C++を勉強してきた。
わからない宿題若しくは処理があったら私にやらせてくださいm(_ _)m
前スレ http://pc2.2ch.net/test/read.cgi/tech/1055944101/
8代目: http://pc2.2ch.net/test/read.cgi/tech/1055056940/l50
7代目: http://pc2.2ch.net/test/read.cgi/tech/1053963794/l50
6代目: http://pc2.2ch.net/test/read.cgi/tech/1053045530/l50
5代目: http://pc2.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc2.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc2.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
宿題手伝いますYO!!: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
ラウンジ:質問が長い時はココを使うと便利
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
0232デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
void MakeHensa(const double a[12],double hensa[12])
{
int i;
double n,m,l,hzh;
for(i=0,n=0;i<12;i++)n+=a[i];
m=n/12;
for(i=0,n=0;i<12;i++)n+=pow(a[i],2);
n/=12;
for(i=0,l=0;i<12;i++)l+=a[i];
l/=12;l=pow(l,2);
hzh=sqrt(n-l);
for(i=0;i<12;i++)hensa[i]=(a[i]-m)/hzh*10+50;
}
int main(void)
{
int i;
double ondo[12]={3.2,3.9,7.0,12.9,17.7,21.1,24.6,26.2,21.9,16.0,10.6,5.6},hensa[12];
MakeHensa(ondo,hensa);
for(i=0;i<12;i++)printf("%2d月:%4.1f℃(%4.1f)\n",i+1,ondo[i],hensa[i]);
return 0;
}
0233217
NGNGなるほど。。。
ありがとうございます。
ちょっと作ってみたんですけど、家のパソコンではなぜかコンパイル出来ないんで合ってるか分かりませんが、、、
どうでしょう??
#include <stdio.h>
main(){
int a;
printf("正の値を打ち込んでください。");
scanf("%d",&a);
a=((a+5)/10)*10;
printf("一の位を四捨五入してみました。%f \n",a);
return 0 ;
}
0234デフォルトの名無しさん
NGNG#include <stdio.h>
void hensa(double * ans, const double * data)
{
int i;
double ave=0;
for(i=0; i<12; i++) ave += data[i];
ave /= 12; //これが平均値
for(i=0; i<12; i++) ans[i] = data[i]-ave; //偏差を計算
}
int main()
{
int i;
double a[12]={3.2, 3.9, 7.0,12.9,17.7, 21.1, 24.6, 26.2,21.9, 16.0, 10.6, 5.6};
double b[12]; //偏差を格納するための配列
hensa(b,a);
for(i=0; i<12; i++) printf("%3.3f ",b[i]);
printf("\n");
return 0;
}
>>232 この問題って多分標準偏差じゃなくてただの差じゃねぇか?
0235デフォルトの名無しさん
NGNG何をしたいんだ?
printf("一の位を四捨五入してみました。%d \n",a);
じゃねーの?
0236デフォルトの名無しさん
NGNGだろうな
0237デフォルトの名無しさん
NGNGそうか。それならもう少し易しかったのに。でも、偏差値の求め方を
勉強する機会なんてそう無いと思うから、良かったかな。
0238233
NGNGdとfの違いすら分かりません・・・T_T
大学の授業は男しか居なくて仲良しができなくて・・・。
yahooで調べてみてもそんな簡単なことのってませんでしたT_T
あの、それをdにしたら平気なんでしょうか??
0239デフォルトの名無しさん
NGNGprintfのとこみりゃのってんだろ。
0240デフォルトの名無しさん
NGNGうん
あとネットでprintfしらべるよろし
0241233
NGNG分かりました。早速調べます〜!
ありがとうございました!!
0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNGおまえが一番話の流れを読めてないぞ。
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNG安らかに眠れ。
0254233
NGNGほんとありがとうございました。笑顔
0255デフォルトの名無しさん
NGNGINDEX以下の素数を求めるにはINDEX以下の素数を求めれば良い
つーか、INDEX以下の素数を求めるのに
INDEX個の素数を求めた方が速いと言う事はありえない
求め方が分からない香具師は「素数 "列挙" アルゴリズムを極めるスレ」でも読め
http://pc2.2ch.net/test/read.cgi/tech/1018657457/
0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNGそこは、「キリ番ゲッツ!!」って言わないと
0258デフォルトの名無しさん
NGNGclock()は差を取らないとダメなんじゃない?
0259デフォルトの名無しさん
NGNGまあ、これは最初に提示されたソースが無駄なことをしている、ってことで。
それにエラトステネスのふるいではないし...。
0260デフォルトの名無しさん
NGNG1000以下の完全数を全て求めて表示するプログラムを書け。完全数とは、
約数(1とその数自身を含む)の和がその数の2倍に等しい数である。
0261デフォルトの名無しさん
NGNGint main(void){
int x,wa,y;
wa=0;
for(x=0;0<=x && x<=1000;x=x+1){
for(y=1;0<=y && y<=x;y=y+1)
{
if(x%y==0)
wa=wa+y;
}
if(x*2==wa)
printf("kanzensuu:%d",wa);
return(0);}
}
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNGサンクスです。
単純なことに気づかない漏れは・・・
0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNGスタックを用いて引き算をする際、
x = pop();
push(pop() - x);
としますよね。これはいいんですが、
push(-pop() + pop());
ではダメだと言われてしまいました。自分にはこの二つの違いがわかりません・・・。
どなかたご教授くださればありがたいです。
0267デフォルトの名無しさん
NGNG式の評価順でしょう。-pop() が実行された後に pop() が実行される場合もあるし、
pop() が実行された後に -pop() が実行されることもある。評価順によって結果は異なりますよね?
0268デフォルトの名無しさん
NGNGなるほど!
どっちから実行されるかはその場合によって変わる事があるんですね。
勉強になりました!!
これでレポートが書けます・・・。本当に感謝です。ありがとうございました。
0269デフォルトの名無しさん
NGNG#include <stdio.h>
main()
{
int i,j;
j=10;
for (i=9; i>0 ;i--){
j=j*i;
}
printf ("%d\n",j);
}
前回の課題内容であるN!の階乗計算プログラムに対し、階乗計算の部分を関数化せよ。但し、次の条件に従うこと。
・関数名はfactorialとすること
・int型の変数を関数の引数として受け取り、その引数に従って関数内部で階乗計算を行うこと
・階乗の計算結果を関数の返値とすること
・main文でfactorialを呼び出した後、結果をprintf文で画面表示すること
なんですが関数のところでの変数宣言がイマイチわかりません。
どなたか教えてください。
0270269
NGNG0271デフォルトの名無しさん
NGNGlong int factorial(long int N)
{
long int i=N-1;
for(; i>1; i--){
N=N*i;
}
return N;
}
int main()
{
long int N=10; //intならN=10ですでにオーバーフローするぞ
N=factorial(N);
printf("N!=%ld\n",N);
return 0;
}
0272デフォルトの名無しさん
NGNG>int型の変数を関数の引数として受け取り
問題文を良く読め
つーか、intが2バイトってネタは、もう飽きた
0273デフォルトの名無しさん
NGNG分かった!・・・・・・・・・・・・・・・・・・・・・・・・・・かもしれない。
俺も最初同じだろって思ったtが、多分こういうことなんじゃないの?
x = pop();
push(pop() - x);
の場合、スタックの一番上の値から次の値が引かれる。
一方、
push(-pop() - pop());
の場合、前半の-pop()が先に呼ばれるか、後半の+pop()が呼ばれるかは
どうなるか分からないので、どちらからどちらが引かれるかは予想できない。
(俺が知らんだけで、ANSI Cとかで前から後ろと保証されているかもしれんがなぁ)
だからきっと、266にだめといった人は、関数呼び出しの順番が明確でないと
言いたかったのでは?
もし、266がそこまで考慮して後者の書き方をしたのなら
あんたの方が一枚上手だったということで。
で、俺の環境(XP+VC6)でテストしたところコンパイルオプションによって値が変わった。
具体的に言うと、通常のコンパイルだとうまく動いたが、最適化してコンパイルすると
値が正負逆になっておかしくなった。
0274273
NGNG( ゚ Д゚)
( つ旦O
と_)_)
_, ._
( ゚ Д゚) ガシャ
( つ O. __
と_)_) (__()、;.o:。
゚*・:.。
とっくに書かれてた・・・
0275デフォルトの名無しさん
NGNGこことか読んでみるとよろし
http://www.catnet.ne.jp/kouno/c_faq/c3.html#4
0276デフォルトの名無しさん
NGNG長文乙彼
でも、評価順は良くあるネタだから
それくらいは、憶えておいて、一瞬で見抜かないとね…
0277272
NGNGこの場合大抵intでいけるな。
0278デフォルトの名無しさん
NGNG何つーか…まぁいいや
0280デフォルトの名無しさん
NGNG//もう古い話題だが、こういう問題出す教師には次の回答で復讐
int a,b,c,d;//ソートする対象
void sort4(int *aa,int *bb,int *cc,int *dd){
int a=*aa,b=*bb,c=*cc,d=*dd;
#define sorted(a,b,c,d) (((a)<=(b))&&((b)<=(c))&&((c)<=(d)))
#define store(aaa,bbb,ccc,ddd) {*aa=aaa,*bb=bbb,*cc=ccc,*dd=ddd;return;}
#define dosort(aaa,bbb,ccc,ddd) if(sorted(aaa,bbb,ccc,ddd))store(aaa,bbb,ccc,ddd)
dosort(a,b,c,d);dosort(a,b,d,c);dosort(a,c,b,d);dosort(a,c,d,b);
dosort(a,d,b,c);dosort(a,d,c,b);dosort(b,a,c,d);dosort(b,a,d,c);
dosort(b,c,a,d);dosort(b,c,d,a);dosort(b,d,a,c);dosort(b,d,c,a);
dosort(c,a,b,d);dosort(c,a,d,b);dosort(c,b,a,d);dosort(c,b,d,a);
dosort(c,d,a,b);dosort(c,d,b,a);dosort(d,a,b,c);dosort(d,a,c,b);
dosort(d,b,a,c);dosort(d,b,c,a);dosort(d,c,a,b);dosort(d,c,b,a);
}
#define p(a,b,c,d) printf("%i %i %i %i\n",a,b,c,d);
int main(){
a=110;b=291;c=3431;d=43;//本当はscanf等で読み取るのが良い。
p(a,b,c,d);
sort4(&a,&b,&c,&d);
p(a,b,c,d);
return 0;
}
0281デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNG暇だったので作りました。よく問題が分からなかったのですが、hit,browと
書いてあったのでそれっぽく。その問題の解答としては正しいかは分かりませんが。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=73
0283デフォルトの名無しさん
NGNGは>>208へのレスだな?
0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNGする上で重要な手段。>>280のコードはハードウェア化するとquick sortより
早いだろうね。
0286デフォルトの名無しさん
NGNGここのハフマンで、どの文字がどういうビット列になったかを調べたいのですがどうしたらいいですか?
0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNGこのスレに来てるってことは実際に作ってくれって言ってんのか?
0289デフォルトの名無しさん
NGNGどうかこの問題を解いては頂けないでしょうかm(_ _)m
学生7名の国語,数学,英語の成績のファイルindatがある。このファイルを読み込んで(6)
の形式にある形で結果をファイルresultに出力せよ。indatの内容
60 80 70 63 90 74 72
82 60 85 90 72 75 78
89 75 90 87 85 74 72
1行目から順に国語,数学,英語の成績である。
(1)1次元配列が与えられているときその総和を求める関数sumを作れ。
(2)総和で求めたsを利用して平均値を求める関数meanを作れ。
0290デフォルトの名無しさん
NGNG(4)標準偏差を求めるsigmaを作れ
(5)データxとデータyの標準偏差をσx,σyとしたとき,相関係数を求めるsokanを作れ。
それを使って英語と数学の相関係数を求めよ。
ただし,計算式は(3)のhensa-x,hensa-yを用いると
相関係数=((hensa-x)(hensa-y))/(σx*σy)の二乗根
(6)resultファイルの出力形式
No. Jap Math Eng sum
1 60 82 89 ○
2 80 60 75 ○
・・・
7 72 78 72 ○
mean yy.y yy.y yy.y zzz.z
sigma yy.y yy.y yy.y
sokan=xx.xxxxxx
↑のような形で
お助けください…
0292デフォルトの名無しさん
NGNG問題を出すプログラムではなく、問題を解くプログラムを作らなくてはならない
のです。
4 6
7360 0 2
2507 0 1
9713 1 1
9678 2 2
0 0
というテキストを読み込んで、
9876
と出力させます。
一旦すべての可能性を記憶しておいて、条件にあわないものを間引いていく
方法が考えられますが、うーん...。
0293デフォルトの名無しさん
NGNGつまり、読み込んだヒントをもとに適合する数値を探せという問題だ。
全数探査は簡単だが10桁にもなると大変な計算量になるし、
適切に推論しようとすると論理処理をコーディングするのが面倒くさい。
このバランスが鍵だね。
宿題にしてはちょっとしたプログラムになるな。
0294211
NGNGhit and blowで数を推測するプログラムは昔組んだことある。
そのときは、10×Lの配列にヒントから得られる確率を足していくという手段を
とったんだけど、えらい面倒臭かった。
一応は動いたんだけど、どこか勘違いがあるらしく確率の総和が
一定にならないときがあった。
0295289
NGNGどうかよろしくお願いしますm(_ _)m
0296デフォルトの名無しさん
NGNGだれかたすけてあげて!!!!!
0297デフォルトの名無しさん
NGNGそれから一番最後の相関係数は何と何の相関係数なんだ?
0298デフォルトの名無しさん
NGNGこの○はギャグかなんか?
0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=103&fi=no
適当
0301デフォルトの名無しさん
NGNGatoiで二進数からいじるやり方は分かったんだけど逆がどうしても・・・。
おねがいします〜。
0303デフォルトの名無しさん
NGNG0304289
NGNG素早い対応ありがとうございましたm(_ _)m
今日の24時まで提出に延びたのですが
>>300さんのやつだと7人各々の3教科合計が表示されませんでした。
試行錯誤してみたんですが良い方法ありませんでしょうか?
0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNGmain()の
for(i=0;i<n;i++) fprintf(dp,"%d %2.0lf %2.0lf %2.0lf ○\n",i,
japanese[i],math[i],english[i],japanese[i]+math[i]+english[i]);
の部分の「○」を%3.0lfにする。
0308デフォルトの名無しさん
NGNGどなたか解いていただけないでしょうか?
ちなみにC言語です。宜しくお願い致します。
【問題】ttp://nekomimi.ws/~asanagi/cgi-bin/ragnarok/source/20030707215657-q1.txt
【記憶のソース】ttp://nekomimi.ws/~asanagi/cgi-bin/ragnarok/source/20030707220012-hairetu.txt
0309308
NGNGすみません。
0310デフォルトの名無しさん
NGNG「斜め掛け」って、な〜に?「斜め足し」の間違い?それとも別に出された課題なの?
0311308
NGNG斜め足しでした…すみません。
0312デフォルトの名無しさん
NGNG読めん
0313308
NGNGttp://r0-up.hp.infoseek.co.jp/cgi-bin/upboard/source/065.txt
ttp://r0-up.hp.infoseek.co.jp/cgi-bin/upboard/source/066.txt
0314デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=74
0315デフォルトの名無しさん
NGNGもったいないから、配列は0から使おうね。
#include <stdio.h>
#define SIZE 10
int main()
{
int a[ SIZE + 1 ][ SIZE + 1 ];
int i, j, k;
/* make matrix */
for( i = 0; i < SIZE; i++ ){
for( j = 0; j < SIZE; j++){
a[ i ][ j ] = i * 10 + j + 1;
}
}
/* add right-down line element */
for( i = 0; i <= SIZE; i++){
a[ i ][ SIZE ] = a[ SIZE ][ i ] = 0;
for( j = SIZE - i, k = 0; j < SIZE; j++, k++){
a[ i ][ SIZE ] += a[ k ][ j ];
a[ SIZE ][ i ] += a[ j ][ k ];
}
}
a[ SIZE ][ SIZE ] /= 2;
/* print answer */
for( i = 0; i < SIZE + 1; i++ ){
for( j = 0; j < SIZE + 1; j++)
printf( "%4d", a[ i ][ j ] );
printf( "\n" );
}
return 0;
}
0316315
NGNG0318デフォルトの名無しさん
NGNGCで*.au形式の簡単な音声ファイルを作るプログラムなのですが、
出力されたauファイルが開けません。原因を追究すると
ヘッダの中のデータはbig endianで無いといけないようです。
ウチのアスロン君はlittle endianのCPUなので、これでは出力ができません。
big endian → little endianのデータ変換の仕方を教えてください(´・ω・`)
ソース
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=104
0319デフォルトの名無しさん
NGNGバイト単位で読み込んで入れかえるだけ
0320デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
#define N 100
main(){
return 0;
}
int sigma(a,d){
int i,b[N];
double s=0;
seiki(a,d,b[]); (★)
for(i=0; i<N; i++){
s = s + b[i];
}
return s;
}
seiki(a,d,b[]){ (★)
int i, seed, random,b[N];
seed = 2;
srand(seed);
for(i=0;i<N;i++){
random = rand()*4/randmax;
b[i]=sqrt(N/2/PI)/a/d/d*exp((-1)*random*N/2/a/a/d/d);
} }
0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNG(´・ω・`)も、もうちっと詳しくおながいできませんか
0323デフォルトの名無しさん
NGNG手元の環境で実行できないから自信ないけど、
int i;
unsigned char *p;
p = ( unsinged char* ) &hdr.hoge;
for( i = sizeof(int) ; i != 0; i-- )
printf( "%02x", p[ i - 1 ] );
って1ヘッダ要素づつファイルに書き込んだらどうかな?
0324デフォルトの名無しさん
NGNGなんで
fp = fopen("myfile.au", "w");←ここ
バイナリでの書き込みじゃないの?
0325デフォルトの名無しさん
NGNGUNIXだから
0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNGカーソルを動かし、迷路を解いていくゲームを作ることにしたのですが、
迷路生成とcursesによるカーソル移動は、それ単体ではきちんと動くのですが、
この二つを組み合わせるとうまいこと動いてくれません。
手元の環境は赤帽8です。みなさんよろしくおながいします。
ソース(迷路生成)http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=105
(curses) http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=106
0328211
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=107
一応作った。
最初は確率を求める方針で作ってたんだけど、途中から枝刈りしながらの探索に切り替えた。
枝刈りはどの程度効いているか調べていない。もっとシンプルにしてもそれなりの速度はでるかも。
0329デフォルトの名無しさん
NGNG次は、ランダムで問題を作り、それに解答するプログラムだな
0330デフォルトの名無しさん
NGNG上のは何も表示されない。
下のは実行出来なかった。UNIXとかなのかな?
>>328
いきなり入力待ちみたいになってて、やり方が分からんから、適当に数値を
何回か入力してたら、いきなりエラーが発生しました、終了しない場合は
製造元になんたらと変なサウンドと共に出た。ドラクエの冒険の書が
消えた時の音みたいで、めちゃびびった。
0331デフォルトの名無しさん
NGNGすみませんが教えて頂けないでしょうか?
≪問題≫
a0 = 0, a1=1, an+2 = an+1 + an (n は 0 以上)で定まる数列 an を
求める関数 int fibonacci(int n) を、再帰を使って作成しなさい。
動作確認をするために、20項まで出力する main 関数も作成しなさい。
この数列は、Fibonacci(フィボナッチ)数列と呼ばれ、
a2 = 1, a3 = 2, a4 = 3, a5 = 5, a6 = 8, a7 = 13, ・・・となる。
実行例
Fibonacci(0) = 0
Fibonacci(1) = 1
Fibonacci(2) = 1
:
:
Fibonacci(19) = 4181
Fibonacci(20) = 6765
■ このスレッドは過去ログ倉庫に格納されています