[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 10/23 23:03 / Filesize : 305 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 22:18:31 ]
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう.
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):()
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

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

【前スレ】
C/C++の宿題を片付けます 106代目
pc11.2ch.net/test/read.cgi/tech/1209810861/

562 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 23:05:30 ]
リスト、単方向、双方向、ノードも誰か追加してくれYO!

563 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 23:06:55 ]
>>562
このスレか1個前くらいに線形リストあったと思うから追加すれば?

564 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 23:12:34 ]
[1] 授業単元:物質科学実験(パソコンによる計測制御入門)
[2] 問題文(含コード&リンク):
@bとcを1バイトの変数としたとき、
b = (b & 0x07) << 4;
c = (c & 0x8F) | b;
というプログラムがどの様なことをやっているか説明せよ。
この式に現れる<<という演算子は、2進数で表示された数値(ビット)を
左にシフトさせる働きをする。(例えば、b=(00000001)bとすると、b<<1は
左に1だけシフトした(00000010)bを表す。)
また、&と|という演算子はそれぞれ「ビット AND」「ビット OR」と呼ばれ、
2つの数値のビット毎のAND(各ビットのどちらかが0なら結果も0になる)
及びOR(各ビットのどちらかが1なら結果も1になる)を得るために用いる。
Abを16ビットの変数とする。その最下位ビットから3番目と6番目をクリアする
(0にする)プログラム(ルーチン)を、@に従って書け。
[3] 環境
C言語
[4] 期限:今週中
[5] その他の制限:ないと思います。

565 名前:347 [2008/06/03(火) 23:30:47 ]
エラーメッセージが多すぎてだるい(';')
開発環境なんて、自宅にあっても使わない(';')
プログラマーもう嫌wwwwwwwwwwwwwwwwww

566 名前:デフォルトの名無しさん [2008/06/04(水) 00:31:23 ]
ここの問題をまじめにやったら、かなり勉強になるだろう。。。。

回答もあるし(ないのもあるみたいだが・・・)

567 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:23:18 ]
質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):()
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

半径rの円に内接および外接する正n角形の面積を求めよ

568 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:28:57 ]
>>567
テンプレの使い方が違うよwww

569 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:30:16 ]
>:()
この顔文字可愛いな

570 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:32:21 ]
567です間違えて途中で送信してしまいました
rは実数nは整数sは実数で表してください
明日いっぱいですcでお願いします



571 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:38:24 ]
明日いっぱいってことは6/5いっぱいってことでいいのか?

572 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:46:27 ]
567ですこの課題は初心者用だと思うのでどちらでも問題ではないと思いますお願いします

573 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:47:12 ]
#include <stdio.h>
#include <math.h>

double circumscribe(double r, int n)
{
return r * r * tan(M_PI / n) * n;
}
double inscribe(double r, int n)
{
return r * r * sin(M_PI*2/n) * n / 2;
}

int main(void)
{
int n;
double r;

printf("nを入力してください:");
scanf("%d", &n);
printf("rを入力してください:");
scanf("%lf", &r);

printf("半径%fの円に外接する正%d角形の面積は%f\n", r, n, circumscribe(r, n));
printf("半径%fの円に内接する正%d角形の面積は%f\n", r, n, inscribe(r, n));

return 0;
}

574 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 02:05:51 ]
567です職人さんありがとうございました

575 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 02:06:40 ]
質問です

巡回セールスマン問題において、Nearest Neighbor法を用いた2-opt法は他の方法と比べて
メリットってありますか?
他の方法というのは、焼きなまし法やタブーサーチなどのことです。

λ-opt法を更に改良したのがタブーサーチなどの方法なのでただの2-opt法にメリットなど無いと
考えているのですが、教授に2-opt法が他の方法より優れている点を考えてこいと言われて困っています。


576 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 02:11:14 ]
>>575
スレ違い
宿題だと言い張るなら>>1読んで書き直し

577 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 02:15:41 ]
>>575
数学板の方がふさわしいかと

578 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 02:48:31 ]
>>557 適当に加筆修正
void DeleteCell(int x)
{
CELL *p,*q;
p=q=&head;
if(p==NULL){
printf("データがありません.\n");
return;
}
if(p->data==x){
p=p->next;
free(q);
return;
}
for(;p->next!=NULL;q=p,p=p->next){
if(p->data==x){
q->next=p->next;
free(p);
return;
}
}
printf("%d:ありません\n",x);
}

579 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 03:14:46 ]
:< :( :) :l :@ :* :8

580 名前:デフォルトの名無しさん [2008/06/04(水) 04:42:33 ]
つまんねwww



581 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 06:51:54 ]
"""

582 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 06:54:18 ]
";:

583 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 06:58:09 ]
::.

584 名前:デフォルトの名無しさん [2008/06/04(水) 08:39:31 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
main関数の引数として小数あるいは整数を入力すると、
それらの平均値を計算して、小数点以下第2位まで表示するようなプログラムを作成せよ.
[3] 環境
 [3.1] OS: Windows xp
 [3.2] コンパイラ名とバージョン:cl Windws visual studio
 [3.3] 言語:C 言語
[4] 期限: 2008年6月4日19:00まで]
[5] その他の制限: 特にありません。

ご解答よろしくお願いします。

585 名前:584 [2008/06/04(水) 08:41:43 ]
その他の制限に追加があります。
提出するソースファイルのファイル名を、自分の名字(アルファベット)に拡張子cをつけたものにすること。

よろしくお願いします。

586 名前:デフォルトの名無しさん [2008/06/04(水) 08:48:51 ]
>>526をどうかお願いしますm(__)m

587 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 09:20:55 ]
>>584
#include <stdio.h>

int main(int argc, char *argv[]){
int i;
double n, sum=0;
for(i=1; i<argc; i++){
sscanf(argv[i],"%lf",&n);
sum += n;
}
printf("%-10.2f\n",sum/(argc-1));
return 0;
}

実行例:
./a.out 3 5.6 8.912
5.84

588 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 10:13:41 ]
>>586
課題の意味がよくわかんないす。観測とか。

情報利得というのはこれかなあと思うけど確信がもてない。
www.center.nitech.ac.jp/~nakano/%BE%F0%CA%F3%CD%F8%C6%C0.html
なんもついてないΣってどうやって計算するの?

てことでもすこし詳しく書けば回答できるかも。

589 名前:378 mailto:sage [2008/06/04(水) 10:23:16 ]
>>380>>381
回答ありがとうございました。
リンク先によると、要素数はTopポインタとBottomポインタの差をセルバイト幅で
割ると取得できるとありますが、用途について制限かけるときとは具体的にどのような
ときでしょうか。よろしくお願いします。

590 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 11:20:01 ]
>>589
リスト構造では先頭と末尾のポインタの差を出してもどうにもならないよね。

用途は制限かけたいときに使えるとかじゃないの?

用途は深さを制限したいときに使えるとかじゃないの?



591 名前:デフォルトの名無しさん [2008/06/04(水) 12:22:29 ]
>>587

ありがとうございます!!!!!!!

592 名前: ◆DuoCt8/SKk [2008/06/04(水) 15:54:16 ]
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6793.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual C++ 6.0
 [3.3] 言語:C
[4] 期限:6/5
[5] その他の制限:ポインタ,構造体を使用して簡略化.
よろしくお願いします!!

593 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 16:06:56 ]
切符の子か。
ちょっと変えりゃすむだろ、と思わんでもないけどね。
今回は<おもな道筋>がないようなので柔軟な仕組みにしたほうが
いいんだろうけど、>>132のスタイルはだめなんしょ?

594 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 16:08:55 ]
と思ったら道筋あったー!
だめぽ。

595 名前: ◆DuoCt8/SKk [2008/06/04(水) 16:41:06 ]
>>593
できるだけ柔軟な仕組みの方がいいです.
>>132は少々複雑すぎてしまい・・・読んでも理解できないんです(泣)
再びよろしくお願いします!

596 名前:536 mailto:sage [2008/06/04(水) 16:42:09 ]
Deleteの部分は教えてもらって分かりましたが
続きがどうしても分かりません
どなたかお願いできないでしょうか?

597 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 16:42:20 ]
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク)
凸包の構成
ttp://www.ccad.sist.chukyo-u.ac.jp/~mito/ss/program/C/DialogBase/algo/Graham/index.htm
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:emacs
 [3.3] 言語:C
[4] 期限:6/14
[5] その他の制限:なし
やり方自体の指定はありません。参考URLの感じのものをCで作るそうです。よろしくお願いします。

598 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 16:44:52 ]
>>595
道筋ベースでやるよりもコマンドベースでやるほうが柔軟なわけで
ミルク増やして氷無しにして、やっぱりミルク減らす、とかの時に
コマンドに応じた関数を呼び出して状態を保持しておくのが楽なんだ。

道筋ベースだとユーザがやりたいことをやりたいときに行えない
仕組みになるしょ。

599 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 16:48:44 ]
複雑で分からない、と言う前にどこが分からないか言ってみるとかは?
前回のに手を加えた結果があるだろうからそれ載せてみると
どう成長したかも見えるだろうし。

ってそれはそれで相談スレの役割のような気もしだしたorz

600 名前: ◆DuoCt8/SKk [2008/06/04(水) 16:50:10 ]
>>598
とりあえず道筋はもらったプリントのまま書いたのですが,やはり
そこまでは求められていないということなのでしょうか?
僕も>>598さんのいう意見に賛成なので,是非コマンドベースでお願いします.




601 名前:586 mailto:sage [2008/06/04(水) 16:53:01 ]
>>588

@が平均情報量を求めるプログラムをつくる
平均情報量=
-(c1/c1+c2)*{log2(c1/ c1+c2)} -(c2/c1+c2)*{log2(c2/ c1+c2)}


Aが情報利得を求めるプログラムをつくる
情報利得=
-(c1/c1+c2)*{log2(c1/ c1+c2)} -(c2/c1+c2)*{log2(c2/ c1+c2)}
+(c1/c1+c2)*(c1/c1+c2)*{log2(c1/ c1+c2)}
+(c2/c1+c2)* (c2/c1+c2)*{log2(c2/ c1+c2)}

おそらくこれを求めるプログラムをつくればいいと思います。
どうか@だけでも至急お願いしますm(_ _)m
わかりにくくてすいません。


602 名前: ◆DuoCt8/SKk [2008/06/04(水) 16:54:59 ]
>>599
具体的にはどのように表示すればいいのかが分からないということなのでしょうか・・・
先生も何か例を書いて下さればわかりやすいのに・・・とも思っています.
例を書かないということはそれぞれ工夫してプログラムを組むのを期待しているのでしょうか?
正直同級生も>>132のレベルにはまだ一部の人たちしか達していないと思われます.


603 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 17:13:30 ]
>>601
ん?ってことなら、
#include <math.h>
double info(int c1, int c2)
{
double _c1 = c1;
double _c2 = c2;
return -(_c1/_c1+_c2)*log(_c1/_c1+_c2) - (_c2/_c1+_c2)*log(_c2/_c1+_c2);
}
でいいんでないの?

604 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 18:58:16 ]
>>602
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6794.txt
とりあえずお釣りの計算だけ


605 名前:604 mailto:sage [2008/06/04(水) 19:01:55 ]
よく見たらつり銭切れのときにお金がどんどん減ってしまうな
元の値をコピーしておかないとだめだ

606 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:33:11 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
全部で3つなのですが
1. 以下のプログラムを作成
• 以下の数列を0〜20まで表示
• 数列は以下の通りとする
• a[0] = 0.01, a[1] = 0.1, a[2] = 1.0
• a[n+1] = a[n] + a[n-1] + a[n-2]
• プログラムを実行するとa[0]〜a[20]までの値が改
行区切りで表示されること
2. 以下のプログラムを作成
• キーボードから整数値を読み込み、入力された整数
値が素数であるか判定する
• 以下のとおり表示する
• 入力値が素数の場合”prime number”
• 入力値が素数以外の場合”not prime number”
3.以下のプログラムを作成
• 3x3マスのマルバツゲームのボードを作成
• ○側と×側が交互に2次元座標上の位置を入力
• 入力後、毎回ボードを表示する
• たて、よこ、斜めのいずれかに○か×が3つ並んだ
時点でプログラムを終了
• マスが埋まった場合もプログラムを終了
[3] 環境
 [3.1] OS: Windows
 [3.2] MINGW32
 [3.3] 言語:C
[4] 期限: 6月13日
[5] その他の制限: なし
回答のほど、よろしくお願いしますm(_ _)m


607 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:34:53 ]
>>606が読みにくくてすみません
改行ができませんでした・・・

608 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:51:21 ]
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):()
10マスx10マスの迷路のスタートからゴールまでの最短経路を出力するプログラムを作れ。

※1.迷路は10行のテキストファイルで提供され,Sがスタート,Gがゴール,*が壁,@が通路で記録されている。
※2.進み方は上下左右1コマずつとし,斜めには進めない。
※3.迷路はかならずしもゴールできるとは限らない。

[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 6月18日
[5] その他の制限:
前の授業で再帰的な関数というのを習ったので、
それを使って解くのが求められている回答だと思います

よろしくお願いします

609 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:07:13 ]
>>606
すみませんコンパイラは
gccでした

610 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:21:28 ]
>>606
(1)
int print_20(){
int i;
double a[21]={0.01, 0.1, 1.0};
for(i=3; i<=20; i++){ a[i] = a[i-1] + a[i-2] + a[i-3]; }
for(i=0; i<=20; i++){ printf("%f\n",a[i]); }
return 0;
}

(2)
int prime_check(){
int i=2, n;
printf("prime check for no>>");
scanf("%d",&n);
while(i*i<n){
if(!(n%i)){break;}
i++;
}
printf("%s\n",(i*i>n)?"prime number":"not prime number");
return 0;
}



611 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:25:06 ]
>>606
1.
#include<stdio.h>

int main(void){
double a[21]={0.01, 0.1, 1.0};
int n;

for(n=2;n<20;n++) a[n+1]=a[n]+a[n-1]+a[n-2];
for(n=0;n<=20;n++) printf("%f\n", a[n]);

return 0;
}

612 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:56:55 ]
>>603
ありがとうございます!
C1、C2の入力値を入れるようにしたいのですが後これにどう付け加えればよいのでしょうか?

613 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:26:02 ]
>>606
> 3x3マスのマルバツゲームのボードを作成

unsigned short intの16ビット中、下9ビットを連ありか否かの
判定に使えばいいと思うんだが、面倒なので誰か頼む。

614 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:11:16 ]
[1]プログラミング
[2]問題文
要素数がnoであるint型の配列vcの並びを逆順にする関数
void rev_intary(int vc[],int no)をメイン文も含め作成せよ。
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明日の昼まで
お願いいたします。

615 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:11:49 ]
デジモンみたいなドライブクリーナーがほしい。
データ食べて育つみたいな。リアルにデジタルモンスター育てたい(
基地外サーセン。。どうしても漏らしたかった・・・。

616 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:31:21 ]
>>614
#include<stdio.h>
void rev_intary(int vc[], int no) {
int t, i;
for(i = 0; i < no-1-i; i++) {
t = vc[i];
vc[i] = vc[no-1-i];
vc[no-1-i] = t;
}
}
int main() {
int a[5] = {1,2,3,4,5}, i;
rev_intary(a, 5);
for(i = 0; i < 5; i ++)
printf("%d\n", a[i]);
return 0;
}

617 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:32:49 ]
>>614
>>550 >>552
この辺でどうにかならんかね。

618 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:04:08 ]
>>610氏、>>611氏、>>613
返答ありがとうございます
おかげさまで助かります

619 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:14:30 ]
>>618
○×は素直に3*3の配列つかいな

620 名前:デフォルトの名無しさん [2008/06/04(水) 23:18:31 ]
>>619
わかりました
ちょっと探しに行ってきます



621 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:19:26 ]
すみませんsageを
入れ忘れていました(汗

622 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:25:58 ]
>>606の3
前々スレで作ったやつ
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6537.txt

623 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:28:49 ]
おお!!
>>622氏、ありがとうございます
ほかを巡回しながらもこまめに
ここをチェックしていたのですが
大変助かります

624 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 00:25:24 ]
>>564をお願いします…

625 名前:デフォルトの名無しさん [2008/06/05(木) 00:31:43 ]
[1] 授業単元:プログラミング演習1
[2] 問題文(含コード&リンク):
m ×m 行列を入力し和と積を求め、結果を行列の形で表示させる
プログラムの作成。但し、入力した行列も表示。

<表示例>
1 2
3 4
[3] 環境
 [3.1] OS:WinXP/linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等):VC++/gcc
 [3.3] 言語:C言語
[4] 期限:2008/06/06
[5] その他の制限: stdio.h、入力はscanf関数、出力はprintf関数、配列で

プログラムの冒頭ですが、これで配列可変になるんでしょうか…?
int m,i,j;/*要素、カウント用変数宣言*/
printf("行列数を入力");
scanf("%d",&m);
int a[m]=0;
int b[m]=0;

[m]=0を[%d]=0,mにしたほうが良いのでしょうか………

626 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 00:45:56 ]
>>564
@ 0, b2, b1, (b0|c4), c3, c2, c1, c0 という8ビットをcに格納している。
ここでb2とは、変数bのビット2という意味で表記している。
b0|c4とは、b0とc4の論理和という意味で表記している。

というかこの問題、b=(b&0x07)<<5; が正しいのではないか?
そうすると、 b2, b1, b0, c4, c3, c2, c1, c0 という8ビットをcに格納することになり、キレイ。

A
b &= ~(1<<2); /*ビット2(最下位から3番目)をクリア*/
b &= ~(1<<5); /*ビット5(最下位から6番目)をクリア*/

~を使いたくなければ、
b &= 0xfffb;
b &= 0xffdf;

627 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 00:46:32 ]
>>624
1. ここにいる人なら大抵@はわかります。
  が、残念スレ違いです。

2. 本当に問題文そのままですか?

628 名前:626 mailto:sage [2008/06/05(木) 00:51:30 ]
すまん間違えた。
@は c7, b2, b1, b0, c3, c2, c1, c0 だ。

629 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 01:06:18 ]
>>625
お前は何を言ってるんだ?

630 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 01:06:27 ]
b = (b & 0xFFDB) & b;



631 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 01:07:33 ]
>>625
残念ながらそのような手法では配列を動的には確保出来ませんよ

632 名前:デフォルトの名無しさん [2008/06/05(木) 01:18:43 ]
.;;;;彡彡ミミ;;;
          .;;;;彡彡ミミ;;;
          ;;;;彡彡ミミミ;;;
          ;;;;彡彡ミミミ;;;
          ;;;;;;彡彡ミミミ;;;;;
         ;;;;彡ミ彡ミミミミ;;;
        ;;;彡ミ彡;;人;;;ミ彡ミ;;;
        ;;;彡ミ彡ノ ヽ;ミ彡ミ;;;
        ;;;彡ミ;;;;ノ.人 ヽ;彡ミ;;;
        ;;;彡ミ;;;ノ | ..| ;ヽ彡ミ;;;
        ;;;彡ミ;;ノ .| | ヽ彡ミ;;;
        ;;;彡ミ;ヽ |.・.| /彡ミ;;;
        ;;;彡ミ;;ヽ|  .| /;;彡ミ;;;
        .;;;;;;;ミ;;;ヽ|( )|./ミ彡;;;;
         ..;;;彡;;;;ヽ| .|/;;;ミ;;;
          ..;;;;.彡;|.|;;ミ;;;;;....
          ;;;;;彡;彡|;;ミミミ;;;;
         ;;彡彡彡*ミミミミ;; マンコ
          ;;;;彡彡ミミミ;;;
           ;;彡彡ミミミ;;;


633 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 01:47:07 ]
[1] 授業単元: C言語演習V
[2] 問題文(含コード&リンク):
九九の表を1次元配列と配列を引数とする関数を用いて作成せよ。

・作成要項
main関数内で用いる配列は演算結果を格納するab[81]と九九の各段を一時的に格納する
a[9]のみとし(呼び出す関数側ではどのような配列を宣言してもよい)、関数に格納用
配列と段数を渡してひとつの段ごとに計算させる。
ひとつの段の計算結果が関数から戻されるごとに返ってきた値を配列abに格納しなおし
全部の段の計算が終わったあとで一括して表示させること(グローバル変数は使わないこと)
(プログラム例)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6795.txt

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: cygwin gcc
 [3.3] 言語: C言語
[4] 期限:本日 6/5 PM1時までにお願いします。
[5] その他の制限:グローバル変数の使用は不可、配列の使用が前提です。
今日は徹夜で宿題をやっているので、オールナイトで待っています。よろしくお願いします。

634 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:00:39 ]
>>625
宿題レベルなら固定で
int a[8][8];
ってしときー

635 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:03:20 ]
>>634
兄さんそれ99やない

636 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:06:35 ]
>>633
#include<stdio.h>

void kuku(int [], int );

int main(void)
{
int i,j;
int a[9],ab[81];
for(i=0;i<9;i++){
kuku(a,i);
for(j=0;j<9;j++){
ab[i*9+j] = a[j];
}
}

for(i=0;i<9;i++){
for(j=0;j<9;j++){
printf(" %2d", ab[i*9+j]);
}
printf("\n");
}

return 0;
}
void kuku(int a[], int rank)
{
int i;
for(i=0;i<9;i++){
a[i] = (rank+1) * (i+1);
}
}

637 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:17:59 ]
>>634
パパーパパー

638 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:26:32 ]
>>636
ありがとうございます。
これで少しは眠れそうです。

639 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 10:00:15 ]
すみません
>>622氏のところのをやってみたのですが
下記のエラーが出てしまいまして

$ gcc.exe memosp.c
memosp.c: In function `main':
memosp.c:60: warning: passing arg 1 of `input' from incompatible pointer type
memosp.c:62: warning: passing arg 1 of `check' from incompatible pointer type
memosp.c:63: warning: passing arg 1 of `show' from incompatible pointer type
memosp.c:70: warning: passing arg 1 of `show' from incompatible pointer type

どこを直せばいいんでしょうか・・・
アドバイスよろしくお願いします><

640 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 10:22:54 ]
>>639
gccはよくわからんけど、xcodeで試したらcheckをcheck2とか適当な名前に変更すればコンパイルはした



641 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 10:35:01 ]
>>639
とりあえず const int b[][BOARD_SIZE] を int b[][BOARD_SIZE] にすれば警告は消える
でも、なんで警告が出るんだろう?

642 名前: ◆DuoCt8/SKk [2008/06/05(木) 12:43:10 ]
>>604-605
ありがとうございます.
今日が締切なので,引き続き>>592をお願いしたいのですが・・・
よろしくお願いします!

643 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 12:50:43 ]
>>635
アンカーの先をよく見るんだ弟よ

644 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 13:31:02 ]
>>641
> >>639
以下はtccの場合。
:60: cannot cast 'int **' to 'const int **'

constを付けると、コンパイラはconst領域に変数等を割り当てようとするが、今回のように
書きかえ可の領域 ---> 書きかえ不可の領域へのキャスト指示はプログラムミスと見なされる。



645 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 13:34:22 ]
>>644
続き。 const領域を書きかえようとした場合のエラー。

#include<stdio.h>
int main(){
const int a=3;
a=2;
}

:4: error: assignment of read-only variable ‘a’


646 名前:ロベ [2008/06/05(木) 13:49:11 ]
[1] 授業単元:プログラミング
[2] 問題文:BMPファイルの情報(画像サイズ、色数等)を表示する
      BMPファイルの画像を上下・左右反転させる
      BMPファイルの画像を回転(90、180、270度)させる
      BMPファイルのカラー画像をグレースケール化するプログラムの作成
        輝度を変換する式は、下記の式を使用すること
        Y=0.298912*R+0.586611*G+0.114478*B
      ※BMPファイルにはWindows形式とOS/2形式があります。どちらにも正しく対応できるように。
      ※入力ファイル名は、プログラム実行後に聞いてくるものとします。
      ※出力ファイル名は、プログラム実行後に聞いてくるものとします。
      ※反転・回転方法の指示は、プログラム実行後に聞いてくるものとします。
      ※ソースには必ずコメントを書いて下さい。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Borland C++ 5.5.1 for Win32
 [3.3] 言語:C
[4] 期限:6月5日 0:00
[5] その他の制限:無し

よろしくおねがいします

647 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 14:15:52 ]
>>644-645
嘘を教えるなよ。。。

648 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 14:22:25 ]
constがどこにかかってるかを考えれば、なんとなくわかるぞ

649 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 14:50:50 ]
[1] 授業単元:C言語
[2] 問題文:
int 型の2つの数をキーボードから読み込んで,
それらの3乗の和を出力するプログラムを作成せよ。
ただし,2つの数の3乗の和を計算する部分は,
関数 int cubesum(int x, int y) を作成してそれを使え。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年6月9日
[5] その他の制限:


650 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 15:04:16 ]
int cubesum(int x, int y)
{
return x*x*x + y*y*y;
}



651 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 18:07:23 ]
#include <stdio.h>

int cubesum(int x, int y)
{
return x*x*x + y*y*y;
}

int main()
{
int a, b;
printf("2つの整数を入れてください:");
scanf("%d %d", &a, &b);

printf("%d^3 + %d^3 = %d\n", a, b, cubesum(a, b));

return 0;
}

652 名前:デフォルトの名無しさん [2008/06/05(木) 19:31:10 ]
.;;;;彡彡ミミ;;;
          ;;;;彡彡ミミミ;;;
          ;;;;彡彡ミミミ;;;
          ;;;;;;彡彡ミミミ;;;;;
         ;;;;彡ミ彡ミミミミ;;;
        ;;;彡ミ彡;;人;;;ミ彡ミ;;;
        ;;;彡ミ彡ノ ヽ;ミ彡ミ;;;
        ;;;彡ミ;;;;ノ.人 ヽ;彡ミ;;;
        ;;;彡ミ;;;ノ | ..| ;ヽ彡ミ;;;
        ;;;彡ミ;;ノ .| | ヽ彡ミ;;;
        ;;;彡ミ;ヽ |.・.| /彡ミ;;;
        ;;;彡ミ;;ヽ|  .| /;;彡ミ;;;
        .;;;;;;;ミ;;;ヽ|( )|./ミ彡;;;;
         ..;;;彡;;;;ヽ| .|/;;;ミ;;;
          ..;;;;.彡;|.|;;ミ;;;;;....
          ;;;;;彡;彡|;;ミミミ;;;;
         ;;彡彡彡*ミミミミ;; マンコ
          ;;;;彡彡ミミミ;;;
           ;;彡彡ミミミ;;;

653 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 19:54:07 ]
>>550
の問題にメイン文も付け加えた形で教えて欲しいです。
よろしくお願いいたします。

654 名前:デフォルトの名無しさん [2008/06/05(木) 19:56:27 ]
マルチで申し訳ないです。
本格的にハマってしまい、ヘルプをお願いさせてください。

[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
2次元配列(hai[10][10])を用いる。
各マスには予め1または2がランダムで入力されている。

100マスの中で、1と2のサイズを計測せよ。
なお、境界は存在せず、トーラス状とする。

例)
1,1,1
2,1,1
1,1,1
であれば、
1:8
2:1

1,1,1
2,1,2
1,2,1
であれば、
1:6(トーラス状であるため、左下と右下も一つの塊と見る)
2:2(トーラス状であるため、中段の左右は一つの塊と見る),1

[3] 環境
 [3.1] 言語: どちらでも可
[4] 期限: 6月10日

解決の糸口が見つかりません。
どうかよろしくお願いします。

655 名前:639 mailto:sage [2008/06/05(木) 20:40:30 ]
>>639のところで回答してくださりました方々
ありがとうございます
課題ですのでgccで固定という以上
ほかの方法では試せませんのでなんともいえませんが
自分でもいろいろと試そうかと思います

656 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 20:53:40 ]
>>654
無理やり1レスにまとめたからいろいろ足りないけど
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 10
char hai[SIZE][SIZE], check[SIZE][SIZE];
int f(int x, int y, int n)
{
if(check[x][y] || hai[x][y]!=n) return 0;
check[x][y] = 1;
return 1 + f(x, (y+1)%SIZE, n) + f(x, (y+SIZE-1)%SIZE, n)
+ f((x+1)%SIZE, y, n) + f((x+SIZE-1)%SIZE, y, n);
}
int main(void)
{
int i, j, c[2][50] = {0}, count[2] = {0};
srand(time(NULL));
for(i=0; i<SIZE; i++) for(j=0; j<SIZE; j++) hai[i][j] = rand()%2+1;
for(i=0; i<SIZE; i++) {
for(j=0; j<SIZE; j++) {
int n = f(i, j, hai[i][j]);
if(n) c[hai[i][j]-1][count[hai[i][j]-1]++] = n;
}
}
for(i=0; i<2; i++) {
printf("%d : ", i+1);
for(j=0; j<count[i]; j++) printf("%d ", c[i][j]);
putchar('\n');
}
return 0;
}

657 名前:654 mailto:sage [2008/06/05(木) 21:11:52 ]
>>656
ありがとう!
自分は3日間超絶悩んだのに、あっさり出来てるw

動作を確認させていただいたのですが、
#define SIZE 100
に変更した場合は、
int i, j, c[2][5000] = {0}, count[2] = {0};
と変更すれば、
SIZEが大きくなっても検索できるようですね。

もしよろしければ、いろいろ足りない部分とお名前を・・・・。


658 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:12:31 ]
お名前ってww

659 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:17:24 ]
足りないってのは最後にソートしたほうがいいんじゃないかなってこと。

660 名前:デフォルトの名無しさん [2008/06/05(木) 21:18:00 ]
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):

次の規則に従い、入力された文字列を変換して表示する。
T ・・・タブとして空白を2つ入れる(Tは表示しない)
N ・・・改行する(Nは表示しない)
+ ・・・空白を1つ入れる(+と空白を置きかえる)
その他・・・そのまま表示する。
$ ・・・¥に変換する。($は表示しない。)
$の後に入力されてる数値を円に換算する。換算率は1$を120円とする。
行の先頭の英小文字は英大文字に変換する。

実行結果
データを入力してください:aprilT$012-NmayTT$023+Njune T$026+N
April \01440-
May \02760
June \03120

[3] 環境
 [3.1] OS: windouws
 [3.2] コンパイラ名とバージョン:Visual C++
 [3.3] 言語:どちらでも可
[4] 期限: 明日中
[5] その他の制限:switch使用


C言語歴2ヶ月の課題なんで低レベルとは思いますが、よろしくお願いします。




661 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:18:40 ]
>>625
20x20の行列を用意後、画面から入力したサイズ分だけを使用。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6798.txt

662 名前:654 mailto:sage [2008/06/05(木) 21:24:32 ]
えっと、ちなみにソートするにはどうすればw
c[i][j]と c[i][j+1]を比較させまくるのかnya。

663 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:30:16 ]
バブルソートでもクイックソートでもすきなのでいいだろw
>>654が宿題に出されるレベルならソートぐらいできんだろ

664 名前:654 mailto:sage [2008/06/05(木) 21:42:29 ]
>>663
おk。
本当にありがとねノシ

665 名前:デフォルトの名無しさん [2008/06/05(木) 21:45:24 ]
ヘボいなーおまえら
プログラミング向いてないよ

666 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:52:16 ]
トーラスってなんじゃろうと思ってみてた。
ドラクエの地図の海と陸地の数およびサイズを知りたいって書いてくれればよかったのに。。

667 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:58:42 ]
[1]プログラミング
[2]問題文
多次元配列を利用して、5人の3教科(国語・数学・英語)の@最高点A平均点それぞれのソースを作れ。
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明日まで
よろしくお願いいたします。

668 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:10:48 ]
>>664
マルチの片割れにも終わったことを知らせんかい

669 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:12:13 ]
なんで偉そうなの?

670 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:20:55 ]
>>660
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6799.txt



671 名前:デフォルトの名無しさん [2008/06/05(木) 22:48:13 ]
>>670
ありがとうございます、助かりました。
こんなに早く応えがくるなんて、良い意味で驚きました

672 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:51:04 ]
>>664,669
礼儀も知らんのかボケ

673 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:55:17 ]
>>671
タイミングさえ合えばちゃんとした回答者がいるスレだよ

674 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:00:16 ]
>>672
なんで回答者でもないあなたが偉そうなの?

675 名前:654 mailto:sage [2008/06/05(木) 23:00:26 ]
ちょw
669は自分じゃない。

676 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:01:30 ]
>>674
っつか、マジで態度が悪いぞ、お前。社会じゃそれじゃやっていけねーよ
失せろクズガキ

677 名前:デフォルトの名無しさん [2008/06/05(木) 23:01:57 ]
>>534をお願いしますm(_ _)m

678 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:04:23 ]
>>535

679 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:05:35 ]
>>674
会社の同僚と何かあった時に上司から何か言われても
「同僚との問題なのになんであなたがそんな事言うの?」
とか言うんか? 消えろ

680 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:07:03 ]
>>674
っつか、偉いとかって話じゃないだろ。完全にお前が態度が悪い
ただそれだけ。何で自分が指摘されたのか、分からないのか?
だとしたら相当痛いぞ、お前。反論する前に自分が起こしている行動
発言を自覚しろ。干されんぞ。人間社会はお前一人の都合や
思う通りには動いてないからw



681 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:09:21 ]
>>667
お願いしますm(__)m

682 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:11:22 ]
なんか>>674の人気に嫉妬しつつ、本当に>>672は回答者ではないのだろうか?

683 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:11:27 ]
#include <sys/param.h>
#include <stdio.h>
int z(int y, int m, int d) {
int a = y / 100, b = y % 100;
return ((int) (m * 2.6 - 0.2) + d + b + (int) b / 4 + (int) a / 4 + 5 * a) % 7;
}
int zeller(int y, int m, int d) {
return m < 3 ? z(y - 1, m + 10, d) : z(y, m - 2, d);
}
int main(int argc, char *argv[]) {
int year, month, nf13 = 0;
for (year = 2001; year <= 2100; year++) {
for (month = 1; month <= 12; month++) {
if (zeller(year, month, 13) == 5) {
nf13++;
}
}
}
printf("%d\n", nf13);
return 0;
}

684 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:12:26 ]
>>681
はやる気持ちは分からんでもないけど、もうちょっとまとう。
ギリギリまで宿題やらなかったのもちょっと悪いとおもうお

685 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:14:01 ]
>>667
問題ってほんとにこれだけ?
制限とかかいとかないと
「それなんですか?分からないのでもっと簡単なものを。。。」
というハメになっちゃうかもだよー

686 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:14:18 ]
#include <stdio.h>

int main(void)
{
int i, j, data[3][5] ={0}, max[3];
double ave[3];
char *kamoku[3] = {"国語","数学","英語"};

for(i=0; i<3; i++) {
ave[i] = max[i] = data[i][0];
for(j=1; j<5; j++) {
ave[i] += data[i][j];
if(max[i] < data[i][j]) max[i] = data[i][j];
}
ave[i] /= 5;
}

for(i=0; i<3; i++) printf("%s 最高点:%d 平均点%.2f\n", kamoku[i], max[i], ave[i]);

return 0;
}


687 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:14:25 ]
多次元配列を利用
int point[5][3]={{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}};


688 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:16:32 ]
わざわざ多次元って言ってるんだから、二次元程度じゃ許されない。

689 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:17:45 ]
>>682
人気じゃなくて一人がファビョってるだけにしか見えねーよw

690 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:18:10 ]
多次元っていったってどう考えても2次元で十分だろ。





691 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:18:48 ]
>>688
口だけじゃなくてソースplz

692 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:19:48 ]
せいぜい平均と最高点をまとめて
もひとつ2次元配列にするくらいかな

693 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:25:58 ]
679はこのスレの上司だそうですw

694 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:26:48 ]
こんなところで宿題丸投げする学生?相手に語ってるほうもどうかとw

695 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:26:50 ]
>>689 = >>691 = >>674 必死だなぁ・・・IDが無いからって、他人のふりしようとか
白々しいぞお前。やたらと口出しする一言居士って、友達のいない構ってちゃんだろ?

696 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:26:56 ]
IDが出ないと一人芝居が楽でいいよな

697 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:27:57 ]
>>693 = >>689 = >>691 = >>674
しつけぇ・・・お前、このスレに何の用があって来てんだ?
無駄口叩く奴って、口先だけで役に立たない上に
自分が否定されるとファビョるからうぜぇ。

698 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:28:17 ]
なんだこれ

699 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:30:05 ]
ケフィア、、でしょうか?

700 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:31:23 ]
なんで691まで一緒にされてるのかわからんw



701 名前:デフォルトの名無しさん [2008/06/05(木) 23:33:12 ]
二つの整数値を読み込んで、
小さい方の数以上で大きい方の数以下の整数を全て加えた値を
表示するプログラム。

コンパイラ gcc
OS Windows
言語 C

お願いします。

702 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:34:33 ]
何度か書いてるが、Windows + gccってのはほんとにそういう環境なのかなあ。

703 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:35:20 ]
>二つの整数値を読み込んで、
標準入力でOK?


704 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:36:07 ]
>>702
Cygwin + gcc かもね

705 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:36:54 ]
a < b

((1+b) * b - (1 + a) * a ) / 2


706 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:37:44 ]
>>626
わかりました。ありがとうございます。

707 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:37:54 ]
>>701
#include <stdio.h>

int main(void)
{
int a, b;

scanf("%d%d", &a, &b);

printf("%d", a > b ? (a + b) * (a - b + 1) / 2 : (a + b) * (b - a + 1) / 2);

return 0;
}


708 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:39:12 ]
>>703
標準かどうかはよくわかりませんが、scanfで読み取る形です。

709 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:42:00 ]
>>707
すいません!書き忘れました。
Do文を使って最後にWhile文を追加する形でした。


710 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:44:04 ]
>>704
cygwin + gcc だとして、実行環境はWindows?cygwin?というのも
あるし、Xかもしれない。
といったところで実行環境に依存するような宿題については
そのような曖昧な環境記述は無かったような気もするし、、、
気にしないほうがいいのかなあ?



711 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:45:04 ]
なんだそりゃw
#include <stdio.h>
int main(void)
{
int a, b, sum = 0;
scanf("%d%d", &a, &b);
if(a < b) do { sum += a++; } while(a<=b);
else do { sum += b++; } while(b<=a);

printf("%d", sum);

return 0;
}


712 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:45:10 ]
>>1より。
> ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。

きをつけてね

713 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:45:33 ]
>>707
初心者向けにしましょうw


714 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:45:38 ]
>>701
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b;
scanf("%d%d", &a, &b);
printf("%d\n", (a+b)*(abs(a-b)+1)/2 );
return 0;
}

715 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:49:32 ]
>>713
初心者の定義は何?自分が理解できる=初心者向け?
理解できない=初心者じゃない?とか?

716 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:51:02 ]
パッと見であっさり理解できるか
ちょっと見てみてあぁなるほどと思えるか

の差じゃない?

717 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:51:48 ]
>>711
++はどういう意味なんでしょうか?

718 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:52:21 ]
>>715
いちいち絡むなよw

719 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:54:13 ]
>>717
a++ は a = a + 1

720 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:55:29 ]
>>717
a++ = a = a + 1



721 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:58:06 ]
その=の使い方には問題があるぞ

722 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:58:49 ]
ではsum+=とは何なのでしょうか?
初心者ですいません

723 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:00:32 ]
sum += a は sum = sum + a

724 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:00:50 ]
sum = sum + 1

725 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:01:27 ]
つまり sum += a++; は
sum = sum + a;
a = a + 1;

726 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:05:30 ]
>>725
cのとっつき難さはそこなんだろうな。

727 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:06:39 ]
A += B
A -= B
A *= B
A /= B

A = A 演算子(+-*/) B

728 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:06:45 ]
レスをくれた方々ありがとうございます。
色々勉強になりました。
ちょっと複雑に考えすぎていたようです。

729 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:09:36 ]
プログラムは単純に考えよう。
プログラムを書くこときも、トリッキーなことをせずに簡単に書こう。

って、先輩にならったな。

730 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:10:02 ]
>>725
逆も上げとくわ
sum += ++a;は
a = a + 1;
sum = sum + a;



731 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:11:29 ]
>>729
sum += a++ が一番簡単で単純だろ?

732 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:12:13 ]
直感的ではないよ

733 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:15:09 ]
>>731
そうだな。

こっちのPart28終わりからPart29の頭にかけてa++関連の未定義問題で論争があったくらいだ。

C言語なら俺に聞け(入門篇) Part 29
pc11.2ch.net/test/read.cgi/tech/1212329099/



734 名前:733 mailto:sage [2008/06/06(金) 00:15:52 ]
>>733>>731への同意ではなく>>732への同意だ。


735 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:17:36 ]
インクリメントを禁止してるプロジェクトに関わった事があったな。。。。。
ちょっと新鮮だった。

736 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:21:07 ]
実際のところたとえば
a = a + 1;
sum = sum + a;



sum += ++a;

としたところでコンパイル後のバイナリレベルでどのくらいクロックやメモリ
を稼げるものなんだ?

それと引き換えに新人が保守するかも知れないリスクとの天秤にかけた場合の
コストも。

737 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:23:16 ]
まだ学生だからわからんのだけど仕事でやってて、それに引っかかる人いるの?

738 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:24:10 ]
万人にわかるようにするんだよ。

739 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:25:54 ]
そんなのもわからないやつにソース触らせんなよw

740 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:27:30 ]
しるかよw

そういう規約をつくってるんだからw

あ、デクリメントも禁止されてたよ。



741 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:28:09 ]
>>737
ソースって案外長生きなんだよ。
COBOLとかあれだけクラサバ登場で無くなるといわれたのに
今だに残ってる。

webの発達でc出来る人口が減ってるのに、新人にわざわざ
今の程度の説明で時間取られたくないだろ?

742 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:29:04 ]
>>736
最適化がかかればクロックやメモリは同等になるはず
好きな方を選べばいいだけ

743 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:29:54 ]
インクリメントすら理解できないなら他の部分が大丈夫なわきゃないと思うんだが。

744 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:31:37 ]
前に、++aとa++って、何が違うんですかって、聞かれたことがあった。


745 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:35:52 ]
それだけが1行にあれば機能は同じだけど、

条件判定の中にあったりすると面倒だし
この間論争になったのは

if (xxxxxx) printf("%d",(a++)*(a++));

こんな感じの結果の違いでもめてたし。



746 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:36:21 ]
それ論争以前の未定義だから

747 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:37:33 ]
>>746
新人がインクリメント覚えて使い出してこんなの書かれると
また教える羽目になるでしょ。

だったら素直にインクリメントなどは使うなとしたほうがいい。

748 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:39:46 ]
なんていうか、C言語の省略した記述って
メモリやCPUなんかのハード資源が極端に
少なかったころのゲーム開発と似てて
みみっちいという気がする。


749 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:40:29 ]
それを論争とか言っちゃう人間が何を教えんの?

750 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:49:14 ]
なんでいまさら宿題スレでインクリメントが問題視されるのかわからん



751 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 01:32:20 ]
とても難しい問題が来ました
しかし馬鹿な私と違って非常に優秀な諸兄にはわけないでしょう

[1] 授業単元:C言語研修
[2] 問題文(含コード&リンク):
1から45の数(合計値)は1から9の数(要素)の和で作ることができる。(要素に同じ数を使わない)
例えば合計値6は最大3つ(要素数)の要素の和でつくることができ、要素数1であれば6、要素数2で
あれば1+5と2+4の2通り、要素数3であれば1+2+3でつくる。この組み合わせで全てである。
合計値と要素数から要素の和の組み合わせ全てを計算する再帰関数を作れ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 6.0
 [3.3] 言語: C言語
[4] 期限: 起源はありませんが優秀な貴方方の手に掛かれば瞬殺でしょう
[5] 制限はありません。貴方方の持っている全ての知識を注ぎ込んじゃって構いません

752 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 01:36:25 ]
>しかし馬鹿な私と違って非常に優秀な諸兄にはわけないでしょう
こういっておけば馬鹿が調子こいてやってくれるよwプゲラ
という主の顔が浮かぶ

753 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 01:54:21 ]
>>751
#include<stdio.h>
int resolve_sub(int total, int num, int min) {
static int ans[9], anslen = 0;
int i, j;
if(!num)
return !total;
for(i = min; i <= 9 && i <= total; i ++) {
ans[anslen ++] = i;
if(resolve_sub(total - i, num - 1, i + 1)) {
for(j = 0; j < anslen ; j ++)
printf("%d ", ans[j]);
printf("\n");
}
anslen --;
}
return 0;
}
void resolve(int total, int num) {
resolve_sub(total, num, 1);
}
int main() {
resolve(30, 6); /* (例)30を6個の和に分ける */
return 0;
}

754 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:25:34 ]
#include <stdio.h>
void f(int size, int n, int *p)
{
static int pos = 0, start = 1;
int i;
if(pos==size-1) {
p[pos] = n;
for(i=0; i<size; i++) printf("%d ", p[i]);
putchar('\n');
return;
}
for(i=start; i*2<n; i++) {
start = i + 1;
p[pos++] = i;
f(size, n-i, p);
pos--;
}
}
int main(void)
{
int num, amount, *p;
printf("要素数を入力して下さい:");
scanf("%d", &num);
printf("合計数を入力して下さい:");
scanf("%d", &amount);
p = malloc(sizeof(int) * num);
f(num, amount, p);
return 0;
}

755 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:34:17 ]
問題読み違えた。
1から45まで限定で1から9しか使っちゃダメなのか。

756 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:50:08 ]
>>751
#include<stdio.h>
int O00O(int OOO0){
if(OOO0%2) return OOO0/2*(OOO0+1);
return (OOO0+1)/2*OOO0;
}
void OOOO(int O0OO[], int OOO0, int OO0O, int OO00, int O0000){
int O, O000;
if(OO00<=1){
O0OO[OO00]=OOO0;
for(O=1;O<OO0O;O++) printf("%d+", O0OO[O]);
printf("%d\n", O0OO[OO0O]);
return;
}
O000=(OOO0-O00O(OO00-1)-1)/OO00;
for(O=O0000;O<=O000;O++){
O0OO[OO00]=O;
OOOO(O0OO, OOO0-O, OO0O, OO00-1, O+1);
}
}
void O0O0(int OOO0, int OO0O){
int O0OO[1000];
if(OO0O>=sizeof(O0OO)/sizeof(O0OO[0])) return;
OOOO(O0OO, OOO0, OO0O, OO0O, 1);
}
int main(void){
O0O0(100, 10);
return 0;
}

757 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 03:11:13 ]
>>756
難読化乙

758 名前:デフォルトの名無しさん [2008/06/06(金) 11:37:44 ]
#include <stdio.h>
#include <float.h>
int main(void)
{ float f;
double x;
long double ld;
printf("\nTesting the precision of float, double, and long double : \n");
f = 1.0f + 1.0e-7;
printf(" 1.0 + 1.0e-7 = %.10f\n", f);
f = 1.0f + 1.0e-8;
printf(" 1.0 + 1.0e-8 = %.10f\n", f);
x = 1.0l + 1.0e-15;
printf(" 1.0 + 1.0e-15 = %.20lf\n", x);
x = 1.0l + 1.0e-16;
printf(" 1.0 + 1.0e-16 = %.20lf\n", x);
ld = 1.0L + 1.0e-19;
printf(" 1.0 + 1.0e-19 = %.30Lf\n", ld);
ld = 1.0L + 1.0e-20;
printf(" 1.0 + 1.0e-20 = %.30Lf\n", ld);
printf("\nThe experiment above is explained by constants from float.h :\n");
printf(" precision of float : %e\n", FLT_EPSILON);
printf(" precision of double : %.15le\n", DBL_EPSILON);
printf(" precision of long double : %.30Le\n", LDBL_EPSILON);
return 0; }
表示された結果のうち、
1.0 + 1.0e-7 が 1.0000001 にならず、同様に
1.0 + 1.0e-15 が 1.000000000000001 にならず、
1.0 + 1.0e-19 が 1.0000000000000000001 という、きれいな数にならない理由を、FLT_EPSILON, DBL_EPSILON, LDBL_EPSILON との関係から説明してもらえないでしょうか。
よろしくお願いします。



759 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 11:43:55 ]
>>758
単純な話管理できる桁があるので小数点側の切捨てが行われてるだけかと。
たとえば
1.0 + 1.0e-7 を 0.1 + 1.0e-7 や 0.01 + 1.0e-7 とした場合
おそらく.0000001は保持されると思われ。

760 名前:デフォルトの名無しさん [2008/06/06(金) 12:01:07 ]
>>759
それをFLT_EPSILON, DBL_EPSILON, LDBL_EPSILON との関係から考察しなきゃならないんですけどいまいちわからなくて・・・



761 名前:759 mailto:sage [2008/06/06(金) 12:05:21 ]
>>760
www.asahi-net.or.jp/~UC3K-YMD/Lesson/Section03/section03_13.html
ここがいいかも

イプシロン(誤差幅)だそうです。

762 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:06:34 ]
ググったら直ぐ出てきたんだが…怒

763 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:32:01 ]
>>758
質問と関係ないが
printfの %l は整数にしか使えないと思うんだ


764 名前:デフォルトの名無しさん [2008/06/06(金) 12:41:53 ]
複素数を求めるプログラムなのですけど、
#include <stdio.h>
#include <math.h>
typedef struct {
double rel;
double imp;
} complex;
double mulcompl(complex x, complex y); /* 関数の戻り値の型を定義 */

int main(void){
complex c1, c2, c3;
c1.rel = 3.2; c1.imp = 2.7;
c2.rel = 2.5; c2.imp = 1.8;
c3 = mulcompl( c1 , c2 ); /* complex変数c1,c2を仮引数としてmulcompl関数を呼び出す */

printf("複素数の積 \n");
printf("( %.2f + i %.2f ) * ", c1.rel, c1.imp);
printf("( %.2f + i %.2f ) = ", c2.rel, c2.imp);
printf("( %.2f + i %.2f )\n", c3.rel, c3.imp);
return 0;
}
double mulcompl(complex x, complex y) /* 関数の戻り値の型を定義 */
{
complex z;
/* 仮引数x,yを使って複素数の掛け算を計算する */
z.rel = x.rel * y.rel - x.imp * y.imp;
z.imp = x.rel * y.imp + x.imp * y.rel;
return z;
}
それでどうしてエラーが取れないのですがどこが間違っているのか分かりません。
どなたかお願いします。


765 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:42:42 ]
[1] 授業単元:オペレーティングシステム
[2] 問題文(含コード&リンク):forkによる子プロセスの生成

子プロセスを2つ生成して、それぞれに、fork1, fork2 のプログ
ラムを実行させるようなプログラムを作成しなさい。

///fork1.c///
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6800.txt

///fork2.c///
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6801.txt

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:6月11日

前回は本当にありがとうございました。よろしくお願いします。

766 名前:ロベ mailto:sage [2008/06/06(金) 12:43:46 ]
>>646
お願いします!!!!

767 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:58:20 ]
いまどきこれはないだろ。VC++が無料で使えるってのに。
> [3.2] コンパイラ名とバージョン:Borland C++ 5.5.1 for Win32


768 名前:ロベ mailto:sage [2008/06/06(金) 13:00:53 ]
VC++は家でつかってますb

769 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:07:42 ]
>>764
double mulcompl(complex x, complex y) → complex mulcompl(complex x, complex y)


770 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:11:37 ]
>>766
wikipediaみたらOS/2 2.xのヘッダ構造書いてなかったんでやる気無くした。



771 名前:ロベ mailto:sage [2008/06/06(金) 13:14:11 ]
>>770
いちようBMPのヘッダについて書いてあるページは見つけたけど
プログラムの技術がないからできなくて;;
 www.kk.iij4u.or.jp/~kondo/bmp/

772 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:31:33 ]
とあるゲーム機のSS取るのに使った構造体
typedef struct
{
//      char bfType[2];
 unsigned long bfSize;
 unsigned short bfReserved1;
 unsigned short bfReserved2;
 unsigned long bfOffBits;
} BmpFileHed;
typedef struct
{
  unsigned long bcSize;
  short     bcWidth;
  short     bcHeight;
  unsigned short bcPlanes;
  unsigned short bcBitCount;
} BmpFileInfoOS2;
typedef struct
{
  unsigned long biSize;
  long      biWidth;
  long      biHeight;
  unsigned short biPlanes;
  unsigned short biBitCount;
  unsigned long biCompression;
  unsigned long biSizeImage;
  long      biXPixPerMeter;
  long      biYPixPerMeter;
  unsigned long biClrUsed;
  unsigned long biClrImporant;
} BmpFileInfoWindows;

773 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:31:53 ]
残り

typedef struct
{
BmpFileHed     hed;
BmpFileInfoWindows Info;
char        data[480*272*4];
} BmpWindows;

774 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:32:48 ]
でも欠点があってgccでコンパイルすると共通のヘッダ部分に
アライメントが入る。

誰だよBMの後に調整用の領域作らないヘボいフォーマット決めたの

775 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:35:11 ]
typedef struct
{
BmpFileHed     hed;
BmpFileInfoWindows Info;
char        data[2];
} BmpWindows;

typedef struct
{
BmpFileHed     hed;
BmpFileInfoOS2 Info;
char        data[2];
} BmpOS2;

776 名前:ロベ mailto:sage [2008/06/06(金) 13:50:42 ]
>>772 >>773 >>775
この構造体をどう使えば・・・

777 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:54:30 ]
>>766
期限に間に合わなかったので作るのやめたよ


778 名前:ロベ mailto:sage [2008/06/06(金) 13:59:04 ]
>>777
6月10日まで期限延ばしてもらえたので
お願いできませんか?


779 名前:777 mailto:sage [2008/06/06(金) 14:00:06 ]
>>778
作りかけのやつ
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6802.c


780 名前:772 mailto:sage [2008/06/06(金) 14:03:19 ]
>>779
unsigned long bcSize;(unsigned long biSize;)に該当する
部分を
unsigned long bfOffBits;
の後に持ってくると楽



781 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 14:05:06 ]
BMとかどうせ使わないし読み捨てて構造体から排除しちゃえ。

782 名前:ロベ mailto:sage [2008/06/06(金) 14:05:22 ]
>>777
どこまでできてるんですか?

783 名前:ロベ mailto:sage [2008/06/06(金) 14:06:25 ]

>>779 の間違え

784 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 14:06:46 ]
>>781
以前別スレでやってたけど
#pragma pack(push, 1)
この間に調整されたくない構造体を記述
#pragma pack(pop)

するといいらしい

785 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 14:17:44 ]
>>782
こいついったいなんなの?
ソースがあるのにどこまでできているか聞くなんて。
自分で確認もできないのなら何でも適当なものをでっちあげてやれば、
ありがたがってそのまま提出しちゃうんじゃないかw

786 名前:777 mailto:sage [2008/06/06(金) 14:19:47 ]
>>774
gccなら
struct s0 {
char a, b, c;
} __attribute__ ((packed));
でパディングなし

787 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 14:21:14 ]
>>786
おーそうなんだ

継続して作ってないなら続きやろうか?

788 名前:ロベ mailto:sage [2008/06/06(金) 14:22:28 ]
>>787
おねがいできますか?

789 名前:777 mailto:sage [2008/06/06(金) 14:32:31 ]
>>787
どうぞ
自分はグレースケール変換だけやってみる


790 名前:787 mailto:sage [2008/06/06(金) 14:53:08 ]
うほ>>779のを見てると自分の組み方が変則的なのかわかるorz

我流でやってるので悩むorz



791 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:06:00 ]
問03
学科の出席簿作成。
15人分の学生を表示し、入力により内容を変動させる。

表示順番:
出席表
<入力>学生番号0〜14
<入力>曜日番号0〜6
<入力>時限番号0〜3
<入力>出欠番号0〜1
<入力>学生番号0〜14の時に99を入力するとプログラム終了。
頼む。

792 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:10:28 ]
>>646の例題で不明な点があるんだけど
ビットカウントが1,4,8のときはカラーパレットに対して処理するのか?


793 名前:777 mailto:sage [2008/06/06(金) 15:19:54 ]
>>792
もうそれで作りつつある

switch(bit_count) {
// 2値なのでスケール化はできない
case 1:
printf("2値画像のため変換しません\n");
return;
// パレットのみ変更
case 4:
case 8:
pal_count = 1 << bit_count;
for (i = 0; i < pal_count; i++) {
if (os == BMP_OS2) {
y = (unsigned char)(pal3[i].rgbRed * YR + pal3[i].rgbGreen * YG + pal3[i].rgbBlue * YB);
fwrite(&y, 1, 1, out_fp);
fwrite(&y, 1, 1, out_fp);
fwrite(&y, 1, 1, out_fp);
}
else if (os == BMP_WIN) {
y = (unsigned char)(pal4[i].rgbRed * YR + pal4[i].rgbGreen * YG + pal4[i].rgbBlue * YB);
fwrite(&y, 1, 1, out_fp);
fwrite(&y, 1, 1, out_fp);
fwrite(&y, 1, 1, out_fp);
y = 0;
fwrite(&y, 1, 1, out_fp);
}
}


794 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:21:07 ]
いつまでだらだらとスレ消費すんだよw

795 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:21:58 ]
フルフォーマット考えると結構面倒だなw

796 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:26:22 ]
>>777
どうする?すでに読み込み用プログラム公開してるサイト見つけたんだけど・・・・

797 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:27:35 ]
BMPの圧縮関係ってどう対処すれば正解?
biCompressionフィールドって任意に拡張可能だった希ガス

798 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:29:19 ]
>>797
まあそうなんだけどさ・・・
BMPで圧縮してるのなんてみたことないし。

でも出題した教師はこれを知ってかしらないでか出してるしな。
まともに対応を考えるとLibレベルになるよ。

799 名前:デフォルトの名無しさん [2008/06/06(金) 15:29:23 ]
ちなみにBMP関係でこんなの見つけたお
sunpillar2004.hp.infoseek.co.jp/data/files/bmp.html

800 名前:デフォルトの名無しさん [2008/06/06(金) 15:30:24 ]
ああ,色深度16bitの時のビットフィールドの意味とかもいろいろあるし,BEかLEかで違いがあるんだっけか・・・?
忘れた



801 名前:796 mailto:sage [2008/06/06(金) 15:30:30 ]
>>799
www.syuhitu.org/other/bmp/bmp.html
こっちはLibにしてソースまで公開してくれてる。

802 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:30:57 ]
>>800
あるね

かなり面倒だよ、これ。


803 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:34:54 ]
>>801
それでいいなら,プログラムの著者に連絡とって使ってみたら?

804 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:52:20 ]
[1] 授業単元:メディア情報処理
[2] 問題文(含コード&リンク):
マイク入力からの信号をリアルタイムに解析し、音名を表示するプログラムを作れ

(チューナーみたいなもんですかね?)

[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C C++
[4] 期限: 6月8日
[5] その他の制限: なし

805 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:00:53 ]
[1] C
[2]kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6803.txt
[3]
 [3.1] Linux
 [3.3] C
[4] 6月10日
[5] 記載されているプログラムを改訂して作ってください

スーパークイーンが求められません
すいませんお願いします

806 名前:kokoro [2008/06/06(金) 16:16:03 ]
はじめまして。
今、c言語をやっているのですが、分からないので
問題をのせますので、プログラムを作ってほしいです。
お願いします。

807 名前:kokoro [2008/06/06(金) 16:21:12 ]
[1]授業単元:C言語
[2]問題文:
★下記の仕様を満たすプログラムを作成しなさい。
【仕様】 ATM簡易プログラム

 ▼取引は「預け入れ」「引き出し」「残高照会」の3種類とする。始めに
  どの取引をするかを選択させる。0が入力されたらプログラムを終了する。対応していない数字が入力された場合は、
 「入力番号が正しくありません」と表示し、入力画面に戻る。
 ▼どの取引を希望したとしても、次に暗証番号入力を促し、キーボードキーボード入力させる。
 ▼あらかじめ設定しておいた番号と一致していれば、次の処理(最初に選択した取引)に入る。そうでなければ、
  「暗証番号が違います。もう一度入力してください」と表示し、入力させる。
  3回失敗したら、「防犯上の理由により、取引を中止します」と表示し、プログラムを
  終了する。
 ▼「預け入れ」を選択した場合は、預け入れ金額を入力させ、合計金額(あらかじめ適当な金額に設定しておく)
  を表示し、入力画面に戻る。
 ▼「引き出し」を選択した場合は、引き出し金額を入力させ、残り金額を表示し、入力画面に戻る。ただし、
  1回で引き出せる金額は500,000円までとし、それを超える金額を入力したら「1回で引き出せる金額は
  500,000円までです」と表示し、再度入力させる。なお不足の場合は「残高が不足しています」と表示し、
  というメッセージと残高を表示し、再度入力させる。
 ▼「残高照会」を選択した場合は、残高を表示し、入力画面に戻る。

[3]環境
 [3.1]OS:windows xp
[3.2]コンパイラ名:bcc32
[3.3]言語:c言語
[4]期限:2008年6月7日
[5]その他:キーボード入力、if文、for文を使って。

お願いします。


808 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:24:49 ]
>>805
8queenってやったことなかったな〜
で、参考になるサイト

www.pro.or.jp/~fuji/puzzlestudy/8queen.html

809 名前:ロベ mailto:sage [2008/06/06(金) 16:25:00 ]
>>646の課題はわりと単純なものでもかまいません
よろしくおねがいします

810 名前:ねね ◆ia23AXgoXg [2008/06/06(金) 16:30:29 ]
[1] 授業単元: 工学実験(画像処理)
[2] 問題文: 濃度ヒストグラムを伸長(濃度変換)する関数[extend()]を作成せよ
 [3.1] OS:WinXP
 [3.2] コンパイラ名とバージョン: VisualC++6.0
 [3.3] 言語:C++
[4] 期限: 6/9 17:00
[5] その他の制限: 概念くらいしかわかってません…orz
メインプログラムおいときます、無理に使わなくてもいいかと

#include <stdio.h>
#define X 260 /* 画像の横方向の画素数 この例では260 */
#define Y 60 /* 画像の縦方向の画素数 この例では60 */

unsigned char f[Y][X];  /* 入力画像配列 横X画素 ,縦Y画素 */
unsigned char g[Y][X];  /* 入力画像配列 横X画素 ,縦Y画素 */ 

main()



811 名前:ねね ◆ia23AXgoXg [2008/06/06(金) 16:31:12 ]
main()
/* 画像処理を行うメインプログラム */
{
char source[80]; /* 入力ファイル */
char destin[80]; /* 出力ファイル */
unsigned char t; /* 閾値 */

      printf("filename(input) ? ");
scanf("%s",source);
printf("filename(output) ? ");
scanf("%s",destin);
printf("threshold ? ");
scanf("%d",&t);
 
      image_input(f,source); /* 画像の入力処理 */

threshold(f,g,t);    /* 閾値処理の場合 */

image_output(g,destin); /* 画像の出力処理 */ 

どうかよろしくお願いします。・・・

812 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:36:16 ]
>>805
for(k=0; k<3&&j>=0; k++, j--) if(i-3<=board[j] && board[j] <= i+3) flag = 0;
を適当なとこに突っ込んでそれに合わせて少しいじればおk

813 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:55:28 ]
>791
#include <stdio.h>
void view(int attend[][7][4])
{


int main(void)
{
 int n, d, p, a, attend[15][7][4]={0};

 while(0<=fputs("number : ", stdout) && scanf("%d", &n)==1 && 0<=n && n<=14)
 {
  if(0<=fputs("day : ", stdout) && scanf("%d", &d)==1 && 0<=d && d<=6
  && 0<=fputs("period : ", stdout) && scanf("%d", &p)==1 && 0<=p && p<=3
  && 0<=fputs("attend : ", stdout) && scanf("%d", &a)==1 && 0<=a && a<=1)
  {
   attend[n][d][p]=a;
   view(attend);
  }
  else
  {
   fputs("input error.\n", stdout);
  }
 }

 return 0;
}

814 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:05:41 ]
途中で送信しちゃった

void view(int attend[][7][4])
{
 int i,j,k;

 for(i=0; i<15; i++)
 {
  printf("student no.%d : \n", i);
  fputs(" S M T W T F S\n", stdout);
  for(j=0; j<4; j++)
  {
   printf("period %d : ", j);
   for(k=0; k<7; k++)
   {
    printf("%d ", attend[i][k][j]);
   }
   putchar('\n');
  }
 }
}

815 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:09:58 ]
>>807
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6804.txt


816 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:11:23 ]
>>797
っつか、劣化さえずにファイルサイズを小さくするってなら
PNG辺りを

817 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:12:34 ]
>>804
高度すぎてワロタ

818 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:14:42 ]
まあ、最悪マイクからの信号を拾えたとしても
「リアルタイム」で解析し、音名を表示ってえぐいなまた
と言うか音「名」ってなんだ?

819 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:15:22 ]
>>818
ドとかそういうんじゃね?

820 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:16:17 ]
内部で絶対音感を持ってる人に処理させればおk



821 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:18:07 ]
内部で初音ミクが処理してるんですね、わかります

822 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:18:19 ]
MikuMikuVoiceの機能を知りたい手合いか

823 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:21:58 ]
音名ってまた曖昧な

ピアノのド=トランペットのレ=ホルンのソ

実音でいいのにな

824 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:21:58 ]
音名表示のソフトとかフリーであるでしょ
まぁ俺はつくれんがwAPIはむり

825 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:23:04 ]
>>805
スーパークイーン強すぎワロタ

826 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:24:02 ]
>>807
すまん、>>815間違ってるわ
微妙に修正
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6806.txt

827 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:24:45 ]
>>646
グレイスケール化だけ
圧縮には未対応
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6805.c


828 名前:kokoro [2008/06/06(金) 17:27:10 ]
>>826

もうチョット簡単になりませんか?
for文のところの課題なので、for文(多重ループなど)を使ってお願いします。
++count、#defineはまだ勉強してないのです。

829 名前:814 mailto:sage [2008/06/06(金) 17:28:32 ]
>791
こっちのほうがいいかな
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6807.txt

830 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:29:16 ]
>>828
#define ANSHOU_BANGO 1234
これはソース中にANSHOU_BANGOがあればコンパイル時に1234に置き換えますよということだけです。



831 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:32:21 ]
>>828
こういう入力回数が決まってないループはwhileを使わないといけないと思うんだけど
whileは一回も使っちゃダメ?

832 名前:kokoro [2008/06/06(金) 17:34:37 ]
>>831

whileも使ってもおっけいです。

833 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:40:33 ]
ループする条件があるならwhile()特に無しならfor(;;)のが素直だと思う

834 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:42:31 ]
>>828
十分簡単だろうに。一体何が問題なのか理解できん
習ってないから使うな、なんて言われないぞ

835 名前:kokoro [2008/06/06(金) 17:44:17 ]
#include<stdio.h>
int main(void)
の次は、int totalMoney = 10000でいいのですか。

return 0; return 1; と書いてありますが、一番最後はreturn 0;で
終わるようにしたいです。


836 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:48:34 ]
むしろmainにはreturn書いてないけどw
終わらせたければreturn 0;足せば良いじゃないw

837 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:48:46 ]
>>835
なかなか難しい注文だなw

>>826の解はcになれてればどうってことないんだけどなw

838 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:49:44 ]
int main ()
{
int type;

while( true ){

if( ( type = selectMainMenu() ) == 0 )
return 0;

if( inputNumber() == 0 )
return 0;

switch( type ){
case 1: deposit(); break;
case 2: withdraw(); break;
case 3: showMoney(); break;
}

printf( "\n" );
}
return 0;
}

839 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:50:31 ]
あーすまん良く見たら書いてた、その上どっちもreturn 0じゃん

840 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:52:11 ]
>>839
だからmainの最後にreturn 0が無いから心配してるだけなんだけど
実はwhileの中でreturn 0;で抜けてるから問題ないんだけどね・・・



841 名前:kokoro [2008/06/06(金) 17:53:28 ]
>>836
なんていうのかな・・・?
#include<stdio.h>
int main(void)
}  
 ・
    ・
    ・
 return 0;
}
でおわりたい。みたいな・・・?

842 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:55:11 ]
>>832
for文2箇所で使って、#define使わずに
間違ってたところあったのでそれも訂正
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6808.txt

>>835
暗証番号を三回ミスったってのを知らせないといけないから
0と1を区別して返してる、嫌なら関数を使うのをやめないといけないな

843 名前:kokoro [2008/06/06(金) 17:58:26 ]
>>842
関数まだやってないから、先生にみせるときチョット・・・まずいかも・・・

関数なしでできますか?

844 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:01:51 ]
c慣れしてる人に関数無しで・・・ってある意味酷だな

845 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:02:38 ]
後だしで条件つけんなよ

846 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:02:51 ]
そこまで条件を後付けするのはわがまますぎるぞ。
自分でプリプロセッシングすれば済む話だろう

847 名前:kokoro [2008/06/06(金) 18:04:53 ]
>>844

すみません・・・
何とかなりませんか?お願いします。

848 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:07:16 ]
簡単だけどやること多くてめんどくさい課題って初心者に出すには不向きだと思うがなあ

849 名前:kokoro [2008/06/06(金) 18:09:56 ]
そこを何とか・・・お願いします。
本当に困ってるのです。。。

これができないと・・・。

850 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:10:21 ]
>>843
たぶんこれでおk
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6809.txt



851 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:11:23 ]
あーマジで関数却下されるとすげー面倒だなw
思考が関数ありきになってるのでむしろ書けといわれると沸きそうだ

852 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:11:47 ]
このスレで言うのもなんだが、それもできないようじゃ単位落とした方がいいぞ

853 名前:kokoro [2008/06/06(金) 18:12:38 ]
>>850
ありがとうございます!!!
本当に助かりました^^




854 名前:kokoro [2008/06/06(金) 18:15:18 ]
>>852

ゼミでこれを取ったのですが、今後悔です。
本当分からないので、嫌になります・・・
マジ、単位落としそうだもん。

855 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:17:33 ]
わからないからって人任せにしてたら全然上達しないぞ
書いてもらったソースと勉強に使ってる本見比べて
知識を自分のものにしないとな

856 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:20:35 ]
こんな低レベルでもゼミなのかw

857 名前:デフォルトの名無しさん [2008/06/06(金) 18:21:26 ]
てかなんで学生って習ってないのを極端に怖がるの?
「勉強しました」って突っぱねれば問題ないじゃん

858 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:23:23 ]
中高のIT関連の授業の課題かと思ってた。

859 名前:kokoro [2008/06/06(金) 18:25:19 ]
>>858

初めてc言語やりました。
テキストと並列してやっているので、やってないところがあると
まずいかなって。

自分なりのプログラム作ってみます。
でもできないところがあったら、マタお願いしてもいいですか

860 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:34:15 ]
聞くこと前提にしてるとまた後悔するぞw
ここ見てりゃ黙っててもソースが出てくるんだから
それみて自分で弄ってみろw



861 名前:tk [2008/06/06(金) 18:34:39 ]
n個の常連立微分方程式を4次のRunge-Kuttaを使って解くプログラムを教えてください。
配列とか使うみたいなんですけど。

862 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:46:40 ]
>>805
void solve(int n)
{
    int i,j,k,u,l,flag; //kを追加
    if(n==N){
        count++;
        for(i=0;i<N;i++){
            for(j=0;j<N;j++) printf((board[i]==j)?"Q":"+");
            printf("\n");
        }
        printf("No. %d\n\n",count);
        return;
    }
    for(i=0;i<N;i++) {
        j=n-1;u=i+4;l=i-4;flag=1; //uとlの初期値を変更
        for(k=0; k<3 && j>=0 && flag == 1; k++, j--) if(l<board[j] && board[j]<u) flag = 0; //この一行を追加
        while(flag==1 && j>=0){
            if(board[j]==i || board[j]==l || board[j]==u) flag=0;
            u++;l--;j--;
        }
        if(flag==1){
            board[n]=i;
            solve(n+1);
        }
    }
}

問題写すなら正確に写せよ

863 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:56:27 ]
てか,今の時点での未解決問題はどれぐらいなんだ?

864 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:57:25 ]
気になるなら自分で調べればいいだろ。

865 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:11:35 ]
なんだ、今日はやさしい人が多いなあ

866 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:32:11 ]
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6813.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)

[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
6月9日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
スタックを習っているところです。
よろしくお願いします

867 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:45:05 ]
>>808
解答と合わせて知識にしていきたいと思います

>>812
返答ありがとうございます

>>862
返答ありがとうございます
ミスありましたか どうもすいません
#defineのところですかね…


868 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:47:49 ]
>>867
>if(board[i]==i || board[j]==l || board[j]==u) flag=0;
board[i] じゃなくて board[j]

869 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:04:23 ]
>>868
根本と言っても過言ではないところを間違ってましたか
ありがとうございます

870 名前: ◆DuoCt8/SKk mailto:sage [2008/06/06(金) 20:05:36 ]
>>592について考えていたのですが,途中で分からなくなりました.
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6814.txt
良ければ何かアドバイスなどをもらえないでしょうか?(オプション表示の方法や関数など)
よろしくお願いします!



871 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:10:10 ]
>>870
実行してないけどオプションの表示はできてるんじゃないの?
入力させて、それに応じたオプション内容を表示できてるんだから後は
それを変数に入れておけばよいような。
戻り値にしてもいいし、パラメータで受けとってもいいし、グローバルでもいい。

872 名前:デフォルトの名無しさん [2008/06/06(金) 20:10:52 ]
[1] 授業単元:C言語による数値計算
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6815.txt
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン: Windows Visual Studio
 [3.3] 言語: C++
[4] 期限: 6月8日(日)

自分で作ったプログラムがうまく動いてくれません。
どなたかC言語を用いた数値計算(特に行列計算)に長けている方、
プログラミングに詳しい方、どうかよろしくお願いします。



873 名前: ◆DuoCt8/SKk mailto:sage [2008/06/06(金) 20:16:33 ]
>>871
返事ありがとうございます.
実行すると最初の部分はきちんと表示されるのですが
★★★★★★★★操作お疲れ様でした、商品を排出します★★★★★★
以降の表示がされないのです.あと,
>>入力させて、それに応じたオプション内容を表示できてるんだから後は
>>それを変数に入れておけばよいような。
>>戻り値にしてもいいし、パラメータで受けとってもいいし、グローバルでもいい。
の部分は・・・具体的にどのようにすればいいのでしょうか?

874 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:24:23 ]
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):(kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6816.txt)
[3] 環境
 [3.1] OS:Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: ([2008年06月10日まで]
[5] その他の制限:問題の文をベースにして、
new old bodyという変数にして、
ab xy acabcならbodyのabのところにxyを置き換え、またnewの値がなかった場合
そのままbodyを出力するというプログラムを作ることです。

875 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:34:54 ]
>>872
変数 ‘y1’を使ってないようだけど、式は正しい?

876 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:57:48 ]
>>872
b[N]とかa[N][N]ってなにをしたいの?

877 名前:デフォルトの名無しさん [2008/06/06(金) 21:01:44 ]
>>872
>>875

ごめんなさい
指摘どおり間違ってたので修正うp
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6817.txt

y1を入れました

878 名前:デフォルトの名無しさん [2008/06/06(金) 21:08:14 ]
>>876
A*X=Bの方程式のAを行列a[N][N]、Bを行列b[N]として
行列を使ってXを解かないといけないらしくて

つまりX=A^(-1)*BにしてXを求めるみたいです

879 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:09:46 ]
宿題:数式処理ソフトMaximaと同等のソフトウェアを明日までに作れ
ソースファイルの行数は1000行以内。

880 名前:デフォルトの名無しさん [2008/06/06(金) 21:13:19 ]
>>875
>>877

何度もすみません、こっちでした
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6818.txt

そちらは間違ってました



881 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:14:54 ]
>>879
コンソールでコマンド受け付けて裏でmaximaに投げればいい

882 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:16:42 ]
>>878
そういうことじゃなくてb[N]にアクセスすんなってことなんだけど

883 名前:デフォルトの名無しさん [2008/06/06(金) 21:26:29 ]
>>880
バカですみません
printf("y1 = "); scanf("%lf",&y2);じゃなくてprintf("y1 = "); scanf("%lf",&y1);でした


>>882
申し訳ありません、プログラミングに詳しくないので
「b[N]にアクセスするな」とはprintf("%lf\n", b[i]);とdouble gauss( double a[14][14], double b[14] )の
部分ですか?
よろしければ解決策を教えて下さい

884 名前:デフォルトの名無しさん [2008/06/06(金) 21:34:36 ]
>>882
double gauss( double a[14][14], double b[14] )の
/* 後退代入 */
b[N] = b[N]/a[N][N];
のとこはは部分ピボット付きガウス消去法をコピペしてきただけなので
詳しい仕組みやアクセスやらはよく分からないです

885 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:49:16 ]
>>206
double b[14];
こう宣言を行ったときは、b[0] 〜 b[13] までの14要素であって、
b[N] == b[14] にはアクセスしちゃいけないってこと。
Nをdefineしたのに14という数字があちこちに散らばってる
(マジックナンバーていいます)のもよくないよ。

886 名前:885 mailto:sage [2008/06/06(金) 21:50:18 ]
なんかレスアンカミスった><
>>885>>883 宛てです

887 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:59:14 ]
本人が何をしてるかわからないもののデバッグなんてさせんな

888 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:02:09 ]
>>646
とりあえず出来た
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6819.txt


889 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:06:56 ]
何も分からんならmaximaでもmathematicaでも好きに使って解けばいい

890 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:09:26 ]
>>887
じゃあ宿題を片付けますスレに来なければいいじゃんww

分からない人やできない人を貶したいだけなら他に逝けよ



891 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:10:56 ]
>>890
そういうお前も文句つけたいだけだなw

892 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:22:48 ]
>>891
うわぁ.......

まるで餓k(ry

893 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:31:29 ]
>>884
とりあえずループ変数を<=Nじゃなくて<Nまでにしてみたら?

894 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:33:52 ]
一から問題解くならいいけど、腐ったコードの手直しさせられるのは勘弁願いたい
どんだけ凡ミスあるかいちいちチェックしなきゃいけないのかよ

895 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:42:07 ]
俺もあの有名なサイト「初心者のため(ry」でひどいソースを呈示され
「どこが間違ってるんでしょうか」と言われ、あまりのひどさに一からソースを
起こして書いてやったらすぐ書けてしかも正常に動いた。

ところが質問者が「元のソースを手直しして欲しいのです」と来たもんだ。
金もらってるならともかく、こんなボンクラの相手をしている暇はないので
それ以降無視してやった。

896 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:22:21 ]
>>873
張ってあるソースは全然使ってないし、ごちゃごちゃしてわかりずらいかもしれないけど、
できたのでうp (まだ気に入らないところあるけど、言い出したらきりないしね)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6820.c

897 名前: ◆DuoCt8/SKk mailto:sage [2008/06/06(金) 23:30:46 ]
>>896
わざわざソースを書いて頂きありがとうございます!
参考書を使いながら理解に励もうと思います.

898 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:50:38 ]
>>897
質問者の皆が皆こんな感じの人なら気持ちいいのにな
頑張ってね

899 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:59:58 ]
>>897

今回は高度すぎて、、とかじゃなくて理解しようと思いましたかw
いい心がけだとおもいますー。応援してるお

900 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 00:06:41 ]
[1] C
[2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6822.txt
[3]
 [3.1] LINUX
 [3.3] C
[4] 6月9日
[5] 記載のプログラムに付け加える形でお願いします

よろしくお願いします



901 名前:896 mailto:sage [2008/06/07(土) 00:48:25 ]
>>897
一部変数名がなんかおかしいところあるから気をつけてね
最初、optvol_tのところoptmode_tで作ってたのを
あげる前に見直してモードじゃおかしいな、量だなってことでoptmode_t だったのを optvol_tに
代えたんだけど、関連する場所(option_t 内のmode, modeflgとか)変更するの忘れてた
ソースの修正はやっぱ慎重にしなきゃね

902 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 00:49:16 ]
そんな変更エディタの機能でやればいいのに

903 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 01:02:48 ]
置換 mode→vol でおk

904 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 01:05:46 ]
>>874
日本語で

905 名前:896 mailto:sage [2008/06/07(土) 01:09:11 ]
>>897
変数名修正したのあげときます(なんかまだおかしいとこありそうだけど)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6823.c

906 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 01:37:41 ]
>>874
tr コマンドみたいなものでおk?

907 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 01:39:29 ]
この規模なら気にしなくていいけど、エディタの機能でやるときには
慎重にやらないとだなあ。
リファクタリング機能のある開発環境ならさっくりだけど。

908 名前:デフォルトの名無しさん [2008/06/07(土) 03:01:33 ]
[1] 授業単元: C言語
[2] 問題文:
入力文字列からトークンを切り出してchar配列に格納するプログラムを作成する。
 
<入力文字列の指定条件とトークンの切り出しについて>
 ・入力文字はASCIIコードのみとする。
 ・デリミタとなる文字は半角スペースとする。
  例) 入力が「abc defg hij」 → 「abc」、「defg」、「hij」の3つのトークン
 ・半角スペースを含むトークンは"(ダブルクォート)でトークンを囲む。
  例) 入力が「abc "d e f g" hij」 → 「abc」、「d e f g」、「hij」の3つのトークン
 ・トークンに"(ダブルクォート)自体が含まれる場合は""のように2回指定する。
  例) 入力が「abc "d e "" f g" hij」 → 「abc」「d e " f g」「hij」の3つのトークン

[3] 環境
 [3.1] OS: Ubuntu 8.04
 [3.2] コンパイラ名とバージョン: gcc4
 [3.3] 言語: C
[4] 期限: 来週まで
[5] その他の制限:
トークンの個数や入力文字列の長さは特に上限がないので、自分で設定してよいそうです。
試しにstrsep()で空白スペースをデリミタにすると、やはりトークンがおかしくなります。

長くなりましたが、よろしくお願いいたします。

909 名前:デフォルトの名無しさん [2008/06/07(土) 03:53:36 ]
>>908
abc"def""ghi"jkl とかは?

910 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 07:20:12 ]
>>909
4番目の条件に合致しない?



911 名前: ◆DuoCt8/SKk mailto:sage [2008/06/07(土) 08:19:55 ]
>>901
>>905
そうだったのですか・・・全くわかりませんでした,指摘して頂きありがとうございます.
引き続き頑張ってみます!



912 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 09:59:53 ]
>>910
デリミタとして指定されてるのが半角スペースだけだから
abc"def""ghi"jklが
abc
def"ghi
jkl
なのか
abcdef""ghijkl
なのかどっちで作ればいい?ってことでしょ。

913 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 10:02:30 ]
あ、あと4つに分割する可能性もあるのか。

914 名前:639 mailto:sage [2008/06/07(土) 10:33:41 ]
>>639ですが
あれからしばらく自分なりに頑張ってみたのですが
どうにもうまくいかず…
gccは無理なのでしょうか?

すみませんがアドバイスお願いします

915 名前:908 mailto:sage [2008/06/07(土) 10:55:54 ]
>>909
>>910
>>912
入力文字列が「abc"def""ghi"jkl」の場合は、
デリミタの半角スペース無しで"(ダブルクォート)が
指定されたという事でフォーマットエラーとするそうです。
 × 「abc"def""hki"jkl」
 ○ 「abc "def""ghi jkl」

916 名前:908 mailto:sage [2008/06/07(土) 10:58:43 ]
すみません。記述ミスしました。
 × 「abc"def""hki"jkl」 → 'c'の後に'"'なのでフォーマットエラー
 ○ 「abc "def""ghi" jkl」 → 「abc」「"def"hki」「jkl」の3つのトークン

917 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 11:23:57 ]
>>914
物凄くやっつけで完璧に動作するか知らないけどこんなんで良いならどうぞ
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6824.txt

918 名前:908=916 mailto:sage [2008/06/07(土) 11:34:43 ]
また間違えました。もう何か駄目だ…
 × 「abc"def""hki"jkl」 → 'c'の後に""でなく"dとなっているのでフォーマットエラー
 ○ 「abc "def""ghi" jkl」 → 「abc」「def"hki」「jkl」の3つのトークン

919 名前:639 mailto:sage [2008/06/07(土) 11:49:50 ]
>>917氏、ありがとうございます
とてもありがたいですm(_ _)m

920 名前:デフォルトの名無しさん [2008/06/07(土) 12:22:39 ]
>>810
忘れ去られてそうなので…



921 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 12:55:06 ]
>>810 (>>920)
問題の意味が分かりません
ついでにC++?C?

922 名前:ロベ [2008/06/07(土) 13:14:42 ]
>>888
ありがとうございました。
その他の方も色々とありがとうございました。


923 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:48:10 ]
期限過ぎてない奴で反応がない課題(多分)

6/9 >>485 >>866
6/11 >>765
6/14 >>597
6/18 >>608
6/20 >>179

924 名前:874 mailto:sage [2008/06/07(土) 15:19:25 ]
すいません、わかりにくく書いてしまって。
いいたいことは、張ったコードをmember()で利用して
そのアルファベットがあれば置き換えるプログラムが作りたいのです。
よろしくお願いします。

925 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:50:41 ]
>>908
エラー処理がやっつけなので、もっとデバッグする必要あり
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6825.txt

926 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:27:29 ]
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6826.txt

[1] 授業単元:コンピュータグラフィックス
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6826.txt


[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VisualC++6.0
 [3.3] 言語: C++
[4] 期限:6月10日までにお願いします。
[5] その他の制限:元の図をもとに、できるだけ簡単にお願いします。

927 名前:925 mailto:sage [2008/06/07(土) 21:51:07 ]
>>908
スレが進んでいなかったので、自分デバッグしてみた
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6827.txt

928 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:08:47 ]
>>765
fork1とfork2は外部プログラムとして呼ぶの?
それとも、親プログラムに埋め込むの?

929 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:44:44 ]
[1] 授業単元:c言語
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6828.txt
[3] 環境
 [3.1] OS:xp
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限:明日中
[5] その他の制限:できるだけ簡単なプログラムでお願いします
お願いします


930 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:47:06 ]
>>929
問題は?



931 名前:929 mailto:sage [2008/06/07(土) 22:47:29 ]
929です
すいませんが問題の追記です
このプログラムが正常に作動するように記述を追加しなさい
入力される文字列は9文字以下とする
m<_ _>m

932 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:49:51 ]
char *str[NUM] → char str[NUM][10]

933 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:50:08 ]
コメントアウトする馬鹿登場


934 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:51:02 ]

コメントアウトする馬鹿

935 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:53:48 ]
追加限定なら
#include <stdlib.h>
for(i=0; i<NUM; i++) str[i] = malloc(10);
for(i=0; i<NUM; i++) free(str[i]);
をそれぞれ適切な位置に追加

936 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:06:38 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
kadai01.c
コマンドラインから加算もしくは減算の式を入力し
以下のような結果になるように/*記述*/のところを追加して完成させよ
#include <stdio.h>
#include <stdlio.h>
int main(int argc, char *argv[])
{
int result;
/*記述*/
printf("result = %d\n",result);
return(0);
}

結果
kadai01 10 + 21
31

[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)すみませんわかりません
 [3.3] 言語: C
[4] 期限:月曜まで(できるだけ早めで)
[5] その他の制限:大学2年レベルでお願いします

937 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:08:21 ]
>>936

result=argv[0]+argv[2];

938 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:09:48 ]
result = atoi(argv[1]);
if(argv[2]=='+') result += atoi(argv[3]);
else if(argv[2]=='-') result -= atoi(argv[3]);

939 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:10:56 ]
>>932
早い解答ありがとうございます


940 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:12:27 ]
>>938
ちょw



941 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:13:42 ]
>>938
これはひどい

942 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:14:49 ]
argv[2][0]=='+' か strcmp(argv[2],"+")==0 だな

943 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:21:16 ]
936
減算の場合は+をそのまま-にすればいいんでしょうか?

944 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:43:37 ]
[1]プログラミング
[2]問題文
三つの整数値を読み込んで、それらの値が全て等しければ、「三つの値は等しいです。」と、どれか二つの値が等しければ、「二つの値が等しいです。」と、そうでなければ、「三つの値は異なります。」と表示するプログラムを作る。
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明後日まで。
よろしくお願いいたします。

945 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:46:03 ]
条件演算子で済ませる馬鹿


946 名前:↑答える気も無いのに批判しかしないバカ mailto:sage [2008/06/07(土) 23:51:49 ]
 

947 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:52:47 ]
#include <stdio.h>

int main(void)
{
int a, b, c;
char *str[] = {"三つの値は異なります。","二つの値が等しいです。","", "三つの値は等しいです。"};

scanf("%d%d%d", &a, &b, &c);
printf("%s\n", str[(a==b) + (b==c) + (c==a)]);

return 0;
}



948 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:03:59 ]
おい、全部等しかったら死ぬぞ

949 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:05:02 ]
勝手に死んでろよw

950 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:06:06 ]
死なない
空文字列が目に入らぬか?



951 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:07:59 ]
>>948 答えもせず、さらに間違うとは、お前このスレには必要ねーな
一生ROMってろ

952 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:13:19 ]
[1] 授業単元:
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6832.txt
[3] 環境
 [3.1] OS:xp
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限:月曜日まで
[5] その他の制限:大学生レベルでお願いします
よろしくお願いします

953 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:31:35 ]
d = malloc(sizeof(char *) * NUM);
for(i=0; i<NUM; i++) {
for(j=0; p[i][j]; j++);
d[i] = malloc(j + 1);
while(j >=0) {
d[i][j] = p[i][j];
j--;
}
}

func(ccc);

954 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:37:44 ]
>>953
ありがとうございます
ですがmallocをまだ習ってないので
使わずにできませんか?

955 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:39:27 ]
>>954
>d[NUM][文字列の長さ+1]を動的にメモリ上に確保する
それだとこれができない

956 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:39:29 ]
callocは習った?

957 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:40:27 ]
mallocを習わずどうしてfreeが出てくるんだ?

958 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:40:42 ]
>>956
はいcallocは習いました

959 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:42:26 ]
習ってない事はやらないのが大学生レベルですか?

960 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:42:56 ]
じゃあ
malloc(sizeof(char *) * NUM) → calloc(NUM, sizeof(char*))
malloc(j + 1) → calloc(j+1, 1)



961 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:45:47 ]
>>960
ありがとうです!!

962 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:47:01 ]
calloc教えてmalloc教えないとはw
それか単にmallocは習ったけど脳内スルーで習ってないことになってるか

963 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:48:37 ]
realloc、エラ張るとテネスは学びました!バブルソートは習ったけど
基本洗濯、クックソートは学んでいませんです、はいっ!おながいします!

964 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:51:42 ]
953まで誰も答えないのに、954が出たとたんに書き込み増えるってw
ホントにこの時間はケチつけたいだけのヤツがいるんだな

965 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:53:14 ]
>>964
だからそれがお前だろ?

966 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:53:27 ]
別に自己紹介しなくてもいいだろ

967 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:54:33 ]
>>965
いや俺は953で960だ。
ついでに言えば932で935で947でもある。

968 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:55:49 ]
ケチつけてるのは俺だけだけど?

969 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:59:58 ]
>>968
>>890

970 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 01:26:43 ]
>>969
いや、2chなんて捻くれてる人間だから
ケチつけて情報を引き出すの。




971 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 01:32:06 ]
麻呂のクソースはケチをつけられようが、早く出せと言われようが
またーりと記述した後適当にうpするでおじゃるよ?

972 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 04:47:03 ]
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):
非再帰的な方法でヒープソートを実装せよ
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: bcc
 [3.3] 言語: C
[4] 期限: 2008/6/9まで
[5] その他の制限: www2.uploda.org/uporg1469814.txt.html
まで書いたのですが、きちんとソーティングされなくて困ってます。
どこがおかしいのでしょうか?
よろしくお願いします。

973 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 05:27:49 ]
>>972
プロトタイプ宣言が・・・・

974 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 05:32:47 ]
プロトタイプ宣言とソーティングされないのは関係ないだろw

975 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 06:03:42 ]
#include <sys/wait.h>
#include <stdio.h>
#include <unistd.h>
int main() {
pid_t p1, p2;
switch (p1 = fork()) {
case -1: perror("fork"); return 1;
case 0: /* ここに fork1 の内容を書く */
_exit(0);
default: break; }
switch (p2 = fork()) {
case -1: perror("fork"); return 1;
case 0: /* ここに fork2 の内容を書く */
_exit(0);
default: break; }


976 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 06:04:27 ]
for (; p1 != -1 || p2 != -1;) {
pid_t c;
int status;
if ((c = wait3(&status, 0, NULL)) == -1) { perror("wait3"); break; }
if (c == p1) {
if (WIFEXITED(status)) printf("fork1 exit (%d)\n", WEXITSTATUS(status));
else printf("fork1 killed (%d)", WTERMSIG(status));
p1 = -1;
}
if (c == p2) {
if (WIFEXITED(status)) printf("fork2 exit (%d)\n", WEXITSTATUS(status));
else printf("fork2 killed (%d)", WTERMSIG(status));
p2 = -1;
}
}
return 0;
}


977 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 06:28:11 ]
>>972
- iter_heap(a,0,size-2);
+ iter_heap(a,0,size-2);
もう一カ所間違いがあるが、自分で探せ。

978 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 08:09:30 ]
>>977
もちつけ

979 名前:デフォルトの名無しさん [2008/06/08(日) 08:21:35 ]
完全ニ分木って階層を渡って一列に整列できるよね
ある節の子の左の子の添え字を返す関数かいてみてくれない
いやならいいけど
多分嫌だろうけど

980 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 09:31:12 ]
[1] 授業単元: プログラム
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6833.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC6
 [3.3] 言語: c++
[4] 期限: 2008/6/10
[5] その他の制限: 問題文中の制限

お願いします(・ω・`)



981 名前:側近中の側近 ◆0351148456 [2008/06/08(日) 09:45:57 ]
>>980
(っ´▽`)っ
こんな簡単なプログラムなら自分で作ればいいじゃない

982 名前:側近中の側近 ◆0351148456 [2008/06/08(日) 09:50:18 ]
>>980
(っ´▽`)っ

#include <stdio.h>
int main(void)
{
  int h[10];
  int i;
  for(i = 0; i < sizeof(h)/sizeof(h[0]); i++){
    h[i] = 10 - i;
    printf("h[%d] = %d\n", i, h[i]);
  }
  printf("h[%d] = %d\n", 3-1, h[3-1]);
  printf("h[%d] = %d\n", 5-1, h[5-1]);
  return 0;
}

983 名前:側近中の側近 ◆0351148456 [2008/06/08(日) 09:55:27 ]
(っ´▽`)っ
これはC言語であって、C++じゃない
というような野暮なことは言わないように。

984 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 10:28:10 ]
ああc++でした

いくつか似たような問題とかないといけないので参考にさせていただきます
有難うございました(´・ω・)

985 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 10:31:45 ]
すいません、どなたか>>866お願いします

986 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 10:49:57 ]
[1]プログラミング
[2]問題文
要素数がnoであるint型の配列v2の並びを逆順にしたものを配列v1に格納する関数を、動作を確認するための適切なメイン文も含め作る。
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明後日まで。
[5]なるべく単純な書き方にしてもらいたいです。
よろしくお願いいたします。



987 名前:側近中の側近 ◆0351148456 [2008/06/08(日) 11:08:15 ]
>>986
(っ´▽`)っ
以前回答しただろうがっ

988 名前:デフォルトの名無しさん [2008/06/08(日) 11:13:21 ]
>>866
課題1
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6834.txt

989 名前:側近中の側近 ◆0351148456 [2008/06/08(日) 11:14:16 ]
>>986
(っ´▽`)っ

void sortInverse(int *v1, int *v2, int no);

int main(void)
{
  int no;
  int i;
  int v1[] = {1, 2, 4, 8, 16, 32, 64};
  int v2[7];
  no = sizeof(v1)/sizeof(v1[0]);
  for(i = 0; i < no; i++){
    printf("v1[%d] = %d\n", i, v1[i]);
  }
  sortInverse(v1, v2, no);
  for(i = 0; i < no; i++){
    printf("v2[%d] = %d\n", i, v2[i]);
  }
}
return 0;
}

void sortInverse(int *v1, int *v2, int no)
{
  int i;
  for(i = 0; i < no; i++){
    v1[i] = v2[no - i - 1];
  }
  return;
}

990 名前:側近中の側近 ◆0351148456 [2008/06/08(日) 11:14:56 ]
(っ´▽`)っ
>>989は微妙に間違っているがそれがいい。
>>986は苦しめ☆



991 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 11:32:03 ]
>>988
ありがとうございます!
例題では
pop 1 回目 50 をpop します。 スタックの中 [ 40 30 20 10 ]
pop 2 回目 40 をpop します。 スタックの中 [ 30 20 10 ]


のところが、書いてもらったプログラムでは
pop 1 回目 50 をpop します。 スタックの中 [ 10 20 30 40 ]
pop 2 回目 40 をpop します。 スタックの中 [ 10 20 30 ]


となっているのですが、どうすればいいのでしょうか?

992 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 11:36:30 ]
>>991
失礼いたしました。printstack関数を変更して下さい。
/* スタックの出力 */
void printstack(CELL *stack)
{
    int i;
   
    printf("\tスタックの中 [ ");
    for(i = stack->top - 1; i > 0; i--){
        printf("%d ", stack->element[i]);
    }
    /* for文の中に判定文を入れたくなかったから、外に出した */
    if(i == 0){
        printf("%d ", stack->element[i]);
    }
    printf("]\n");
}

993 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 11:40:32 ]
>>992
ご丁寧にありがとうございます。
ちゃんと動作しました!

994 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 12:31:30 ]
次スレ
C/C++の宿題を片付けます 109代目
pc11.2ch.net/test/read.cgi/tech/1212895856/

995 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 12:46:14 ]
>>992
なんで外に出してるの?

996 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 14:49:06 ]
中に出すと出来ちゃうから。

997 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 14:51:11 ]
>>996 指導 減点1

998 名前:765 mailto:sage [2008/06/08(日) 16:49:26 ]
>>928
言葉足らずで申し訳ありませんでした。
外部プログラムとして呼ぶ形でお願いいたします。

999 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 17:02:34 ]
999

1000 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 17:03:10 ]
うめ



1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<305KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef