C/C++の宿題を片付けます 111代目 at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
08/06/27 19:47:22 BE:113605362-2BP(2700)
あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

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

【前スレ】C/C++の宿題を片付けます 110代目
スレリンク(tech板)

2:デフォルトの名無しさん
08/06/27 20:51:44
>>1乙です

3:デフォルトの名無しさん
08/06/27 22:42:01
[1] 授業単元:cプログラミング
[2] 問題文(含コード&リンク):()
URLリンク(kansai2channeler.hp.infoseek.co.jp)
・部分木p から最小のキーを持つノードを削除した部分木を返す関数deleteMinNode を作成せよ.
・上の資料等 を参考にして,コマンドライン引数で指定したキーを持つノードを2 分探索木から削除するプログラムを作成せよ.
ただし,プログラム引数の「整数1 整数2 …」の各値をキーに持つノードを順に挿入して2 分探索木を生成し,
deleteNode 関数を使ってコマンドライン引数の「X1 X2 …」の各値をキーに持つノードを順に2 分探索木より削除する.
また,次のようなプログラム実行例を想定している.

% ./a.out 9 5 11 3 4 15 10 -- 4 5 9
入力データ [9 [5 3 _ 4] _ ] [ 11 10 15 ] ]
deleteNode(4)
==> [9 [5 [ 3 _ _ ] _ ] [ 11 [10 _ _ ] [ 15 _ _ ] ] ]
deleteNode(5)
==> [9 [ 3 _ _ ] [ 11 [ 10 _ _ ] [ 15 _ _ ] ] ]
deleteNode(9)
==> [10 [ 3 _ _ ] [ 11 _ [ 15 _ _ ] ] ]
%
% ./a.out 9 5 11 3 4 15 10 -- 8
入力データ [9 [5 3 _ ] [ 11 _ 15 ] ]
deleteNode(8)
deleteNode: 指定キーのノードがありません
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
6月30日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
スレが変わったのでもう一度書き込ませてもらいます。よろしくお願いします

4:デフォルトの名無しさん
08/06/27 22:47:51
[1] 授業単元:コンピュータアーキテクチャ

[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: bcc
 [3.3] 言語: C
[4] 期限: 06/29
[5] その他の制限: 特にありません

宜しくお願いします


5:デフォルトの名無しさん
08/06/27 22:55:28
前スレ1000www
AYBABTUなつかしいw

6:デフォルトの名無しさん
08/06/27 22:56:21
[1] 授業単元:cプログラミング
[2] 問題文(含コード&リンク):C++の問題なのですが、難しい問題でスレを汚すのも嫌なのでメールにてご助力いただきたいです。
[3] 環境
 [3.1] OS: Winows
 [3.2] コンパイラ名とバージョン:VC6.0
 [3.3] 言語: C++
[4] 期限:6/29
[5] その他の制限: 制限は特にないです。

なかなか解けず苦労しています。よろしくお願いします。

7:デフォルトの名無しさん
08/06/27 22:57:31
>>6
とりあえず貼るほうがいいと思うんだが。
WinowsというOSは経験ないけどもしかしたら分かるかもしれないし

8:デフォルトの名無しさん
08/06/27 22:58:44
>>1に補足

アップローダーを使う場合でも、こちらに、ダイジェスト(概要)を
1行程度でもいいから書いて下さい。
単なるリンクだけじゃ、掲示板をメール代わりに使ってることに
なり運営者に失礼というものです。
アップローダーの内容が消されたり、置き換えられたりした場合は、
このスレも壊れてしまうことになります。

9:デフォルトの名無しさん
08/06/27 23:01:34
>>8
> 掲示板をメール代わりに使ってること
ならねーよw

10:デフォルトの名無しさん
08/06/27 23:04:55
[1]C
[2]URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]LINUX
C
[4]7月6日
[5]上記のプログラムを改訂する形でお願いします。
文章が少し長いですがよろしくお願いします。

11:デフォルトの名無しさん
08/06/27 23:05:00
このスレを使う場合でも、こちらに、アップローダーのURLを
1行程度でもいいから書いて下さい。
ここに長々と書き込むだけじゃ、このスレをチャット代わりに使ってることに
なり、読みづらくなり他の利用者に迷惑というものです。
2ちゃんのサーバーが停止したり、移転したりした場合は、
このスレも壊れてしまうことになります。

12:デフォルトの名無しさん
08/06/27 23:40:34
>>10
#include <stdio.h>
int f(int n){
int cnt = 0;
while(n > 9) {
int c = 1;
while(n) { c *= n % 10; n /= 10; }
n = c;
cnt++;}
return cnt;}
void show(int n){
printf("%d", n);
while(n > 9) {
int c = 1;
while(n) { c *= n % 10; n /= 10; }
n = c;
printf("→%d", n);
}
putchar('\n');
}
int main(void)
{
int i, j, m = 4;
for(i=0; m < 9; i++) {
if(f(i) > m) {
printf("m = %d :", ++m);
show(i);
}
}
return 0;
}

13:デフォルトの名無しさん
08/06/27 23:43:39
>>10
#include<stdio.h>
int hoge(int x, int is_print){
int a,c,n=0;
while(x>9){
if(is_print) printf("%d -> ", x);
c=1;
do{
a=x%10;
x=(x-a)/10;
c=c*a;
}while(x!=0);
x=c;
++n;
}
if(is_print) printf("%d\n", x);
return n;
}
int main(){
int i, j, n, num[10]={0};
for(i=1;;i++){
n=hoge(i, 0);
if(n>=10) continue;
if(num[n]==0){
num[n]=i;
for(j=5;j<=9;j++) if(num[j]==0) break;
if(j>9) break;
}
}
for(j=0;j<=9;j++) hoge(num[j], 1);
return 0;
}

14:デフォルトの名無しさん
08/06/27 23:57:43
1分で、ろだにスレ立てて来る。連立するな。

15:デフォルトの名無しさん
08/06/28 00:42:17
>>964
回答を書いた者だけど
自分が説明するのが下手なのは自覚はしてるけど
本当は下の人間に教えていかないといけない立場になりつつあるから
克服しないといけないなorz

なかなか意思の疎通と言うのは難しいもんだねぇ


16:デフォルトの名無しさん
08/06/28 00:58:17
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):
1、
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday","Saturday"
の7個の文字列の長さを求めて表示させるプログラムを作成せよ。 ただし、ポインタのポインタを使用すること。
2、
まず初めに、入力する整数の個数をキーボードにより指定する。
次に指定され数だけキーボードから整数を入力し、int型配列に格納していく。
この配列について, 「最大値の要素番号」(要素番号とは配列の[]の中の数字)「最小値の要素番号」
の2つを Call by Reference によって求める関数GetMaxMinIndex()を作成し、実行例のように動作するプログラムを作成せよ。(注:関数の引数の個数は任意)
<実行例>
入力する値の個数

値の入力
data #0 : 2
data #1 : -9
data #2 : 6
最大 : data #2 (値:6)
最小 : data #1 (値:-9)
[3] 環境
 [3.1] OS:Linux
 [3.3] 言語: C
[5] その他の制限: 構造体まで習いました。

よろしくお願いします。


17:デフォルトの名無しさん
08/06/28 01:00:13
>>16
1,の実行例

   曜日 文字数
-------------------
  Sunday 6
Monday 6
Tuesday 7
Wednesday 9
Thursday 8
Friday 6
Saturday 8



18:デフォルトの名無しさん
08/06/28 01:02:15
[1] 授業単元:アルゴリズムとデータ構造
[2] 問題文:動的配列を使ってヒープを実現せよ。ただし、各記憶要素xは整数値をとるものとする。
関数として、空のヒープを生成するcreate(),要素xを挿入するinsert(int x),
最小値を削除してその値を返すdeletmain(),ヒープが空かどうかを判定するempty(),
現在のヒープ内容全体を表示するshow()を用意する。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2008年6月28日まで
[5] その他の制限: ポインタはできるだけ使用しないでください
よろしくお願いします。


19:デフォルトの名無しさん
08/06/28 01:19:02
前スレの>>897の方どうもありがとうございます。
勉強になりました

20:デフォルトの名無しさん
08/06/28 01:19:49
>>16
URLリンク(kansai2channeler.hp.infoseek.co.jp)

21:デフォルトの名無しさん
08/06/28 01:20:55
>>16
URLリンク(kansai2channeler.hp.infoseek.co.jp)

ビルドして確認してたら
>>20がorz


22:デフォルトの名無しさん
08/06/28 01:21:36
しかも、2の方条件満たしてねーwww

23:デフォルトの名無しさん
08/06/28 01:23:26
どなたか>>4をお願いします…


24:21
08/06/28 01:26:14
>>16
URLリンク(kansai2channeler.hp.infoseek.co.jp)
2の方を直しました

25:デフォルトの名無しさん
08/06/28 01:32:12
>>16
URLリンク(kansai2channeler.hp.infoseek.co.jp)

26:デフォルトの名無しさん
08/06/28 01:33:27
>>21
1の方はポインタのポインタを使って欲しいんですが…

27:デフォルトの名無しさん
08/06/28 01:42:13
>>16 の1 ボイン太のボイン太を使用
URLリンク(kansai2channeler.hp.infoseek.co.jp)

28:デフォルトの名無しさん
08/06/28 01:55:47
>>4
windows bcc unistd
これらをすべて満たす環境を持ってないんですけどいいですかね。

29:デフォルトの名無しさん
08/06/28 01:57:49
>>28
構わないです
とりあえず全く閃かないので、参考になるものが欲しいです
すいません。。

30:デフォルトの名無しさん
08/06/28 02:08:24
>>16 なんか他人のURL貼ってた
URLリンク(kansai2channeler.hp.infoseek.co.jp)

31:デフォルトの名無しさん
08/06/28 02:10:05
>>29
閃くも何も3の処理を1に入れるくらいはやったんだよね?

32:デフォルトの名無しさん
08/06/28 02:12:14
>>31
はい
家でプログラミングの環境無いため、学校でやりました
上手くいきませんでした…

33:デフォルトの名無しさん
08/06/28 02:14:47
[1] 授業単元:プログラミングC
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:6/30
[5] その他の制限:特になし
よろしくお願いします。


34:デフォルトの名無しさん
08/06/28 02:24:24
>>33
URLリンク(kansai2channeler.hp.infoseek.co.jp)

35:デフォルトの名無しさん
08/06/28 02:27:45
>>32
コンパイルエラーが出てあきらめて帰ってきたのか。
学校で質問すればよかったのにねえ。
以下の宣言を追加
int i,j;
double w[5000],x[5000],y[5000],z[5000];
etimeの算出部は以下のように。
etime = tend.tv_sec - tbgn.tv_sec + tend.tv_usec - tend.tv_usec;
これで動くと思うよ。

36:デフォルトの名無しさん
08/06/28 02:30:35
小出しでごめんね。
単精度浮動小数はfloatに変えればよいよ。
乗算、除算は分かるよね。

あとネックになるのはグラフだと思うけどこればっかりは形式が決まってないのでなんともいえない。
Windowsを使うことができる学校環境のようなので、各結果をまとめてエクセルでグラフ作ればいいかなあ。

37:回答テンプレ(ご協力お願いします)
08/06/28 02:38:23
[1]回答レベル:ヒント・ソースだけ・コンパイル済・テスト済・清書済み(模範解答の自信あり)
[2]コード:リンクの場合はリンクミスで他人に迷惑がかからないように、内容のほうも抜粋で
かまいませんので記入願います。
[3]処理系:コンパイル・テストをした環境をお願いします(Windows/Visual C++ 2003/Cモードコンパイル)
特別なライブラリを使用する場合は、ライブラリファイル一覧もお願いします。
[4]コメント:ソースだけでなく、コメントも入れるようお願いします。

38:デフォルトの名無しさん
08/06/28 02:39:35
>>12
>>13
ありがとうございます
聞きたいんですが、どうやったらこういった問題が解けるようになるんですか?
正直、ソース読んでこんなの書けるとか凄すぎる…とか思ったんですが

39:デフォルトの名無しさん
08/06/28 02:44:02
コメント入れろと仰ってます?

40:デフォルトの名無しさん
08/06/28 02:46:54
>>38
それは読んで理解したと思えばよい?
そうであれば、その積み重ねをすることで自然とかけるようになるよ。

41:デフォルトの名無しさん
08/06/28 02:48:52
>>38
慣れだよ。

42:デフォルトの名無しさん
08/06/28 02:51:07
模範解答の自信あり、なんてつけられてたら逆に怖いけどな。
回答テンプレ使って欲しい!っていってる人がいるのに使ってる回答者がいないってことは
テンプレ推奨派は回答者じゃないってことだよね。
何でテンプレ使って欲しいか書いてよ。本音で。

43:デフォルトの名無しさん
08/06/28 03:02:24
>>38
慣れでできるとだけは思わないほうがいいな
ただしどのようにすればそういう風になれるか、なれるかなれないかを
分ける決定的なものは分からない。熱意があってもダメな人はダメだし。
才能とか天性のものとかいうんじゃなくて、運命づけられたものに近いんじゃ
ないか?

44:デフォルトの名無しさん
08/06/28 03:05:37
12と13以外は答えるなよw

45:デフォルトの名無しさん
08/06/28 03:09:28
通信と教育を区別することは重要

46:デフォルトの名無しさん
08/06/28 03:11:51
>>1 に回答者用のテンプレなんてないぞ???
っつか、ここでは回答する義務も何もあるわけじゃないし
有志者が適当に答えているのに、答えるなら
親切丁寧に、分かりやすく答えろって催促はないだろ。
そこまでしなくてもコードを書いて質問者が気に入らなきゃそれまでだし
コメントをつけろって半ば命令っぽい指図はないだろ。
あまりしつこいと、回答者が減るぞ。

47:デフォルトの名無しさん
08/06/28 04:12:50
>>46
>>37

48:デフォルトの名無しさん
08/06/28 05:56:11
[1] 授業単元:コンピュータアーキテクチャ

[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: bcc
 [3.3] 言語: C
[4] 期限: 06/29
[5] その他の制限: 特にありません

[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:WindowsXP
 [3.3] 言語:C++
[4] 期限:6/28
[5] その他の制限:急ですいませんがよろしくお願いします。


[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
2つのint型引数を受け取って、小さいほうの値を戻す関数minを作る
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:6/28
[5] その他の制限:特になし
どなたかよろしくお願いします

と書いて欲しかったな

49:未解決?
08/06/28 05:57:36
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:6/28
[5] その他の制限:特になし
どなたかよろしくお願いします

[1] 授業単元:情報処理技法
[2] 問題文(含コード&リンク):2分木に関する問題
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語:C++
[4] 期限:08年06月30日
[5]よろしくお願いします

1] 授業単元:ネットワーク応用
[2] 問題文:
インターネットに接続されたPC同士で、同一のアプリケーションの状態を、
同期・共有させるソフトウェアの作成
つまりはフォトショップを持っている人同士で、高度なお絵かきチャット
を出来るようにするソフトみたいな。
[3] 環境
 [3.1] OS: Windows[3.2] VC++ 2005[3.3] 言語: どちらでも可
[4] 期限: 7月1日
[5] その他の制限: 特になし
どういったことをすればそういうことが実現出来るのか、
についても可能であればご教授賜りたいです

50:デフォルトの名無しさん
08/06/28 06:30:02
>>3
BSTREE_NODE *deleteMinNode(BSTREE_NODE *p, BSTREE_K_TYPE *min){
if(p->left == NULL){
*min = p->key;
return deleteRootNode(p, *min);
}
p->left = deleteMinNode(p->left, min);
return p;
}
int main(int argc, char *argv[]){
BSTREE_NODE *bstree = NULL;
BSTREE_NODE *result;
BSTREE_K_TYPE x;
int n1, i;
bstree = inputBSTree(bstree, &argv[1], argc -1, &n1);
if (n1 < 1 || argc -1 - n1 < 2)
error("引数の指定方法: 整数1 整数2 … -- X");
printf("入力データ "); printBSTree(bstree, 0, 1);
for(i = n1 + 2; i < argc; ++i){
x = atoi(argv[i]);
printf("deleteNode(%d)\n", x);
result = deleteNode(bstree, x);
printf("==> "); printBSTree(result, 0, 0);
bstree = result;
}
destroyBSTree(bstree);
return 0;
}

51:デフォルトの名無しさん
08/06/28 09:21:13
コード貼る前に質問者がここに来てるか確認してから貼れば?
「今から送りますよ」
とね。

52:デフォルトの名無しさん
08/06/28 09:25:08
未解決問題はあるか?

53:デフォルトの名無しさん
08/06/28 09:40:48
あと6つぐらい?

54:デフォルトの名無しさん
08/06/28 09:52:16
>>50
ありがとうございます!
実行例では
% ./a.out 9 5 11 3 4 15 10 -- 8
入力データ [9 [5 3 _ ] [ 11 _ 15 ] ]
deleteNode(8)

となるところで、

$ ./a.exe 9 5 11 3 4 15 10 -- 8
入力データ [ 9 [ 5 [ 3 _ 4 ] _ ] [ 11 10 15 ] ]
deleteNode(8)
deleteNode: 指定キーのノードがありません

となるのですが、実行例のほうがおかしいんですかね?
明らかにそうっぽいですが・・

55:デフォルトの名無しさん
08/06/28 09:56:48
どなたか前スレ900をお願いします

56:デフォルトの名無しさん
08/06/28 09:58:24
見に行くの面倒だからこっちに張れよ。

57:OpenQuestion()
08/06/28 10:53:30
質問はテンプレに沿った形で行って下さい。

特に質問者はトリップを使って下さい。
トリップを使っていない名前の質問は、正式な質問では無いものとします。
(「荒らし」扱いですが、必ずしも排撃されるわけではありません。)

再質問の場合は、アンカーで元質問に誘導して下さい。
特に複数スレに跨がる場合は前スレがDAT落ちする場合が多いので
再質問であることを明記の上、同じフォーマットで質問を上げ直して下さい。

外部サイトに問題文の表示をデリゲートする場合でも、質問の概要だけでも
書いて下さい(リンクのみは禁止です)ミスリンクがあった場合に問題が生じます。

問題の訂正は、最初の質問から30分以内に2回を上限として行うことが出来ます。
しかし一般的にいって問題を訂正した場合回答される可能性は著しく低くなると思っ
て下さい。30分以内の3回目の、或は30分を経過してからの訂正を意味するレス
を質問者が行った場合は、質問はその時点で自動的にクローズされるものとします。
回答者は回答をしないで下さい。質問者に対するペナルティとして、24時間以内に
同じIDの質問が発生した場合でも、質問は即時クローズされます。回答者は回答しな
いで下さい。

質問は、テンプレ項目の期限以内でも、48時間経過したら自動的にクローズ
されるものとします。テンプレ項目の期限前30分でも、オープンされていれば
自動的にクローズされます。

58:デフォルトの名無しさん
08/06/28 10:58:04
なんだこのバカは

59:デフォルトの名無しさん
08/06/28 11:14:22
>>54
deleteNode(8)の入力データの表示は実行例がおかしい
入力してる4と10が何もしてないのにどっかいってる

60:デフォルトの名無しさん
08/06/28 11:19:38
>>36
寝てしまっていました。
エクセルでグラフ作成するだと思います!

61:デフォルトの名無しさん
08/06/28 11:24:47
>>57
検索しても出ないあたり、まさか手書きか?

62:デフォルトの名無しさん
08/06/28 12:49:21
前スレ>>972
ありがとうございます
fours.txtの方を変えればいいのでしょうか?

63:デフォルトの名無しさん
08/06/28 12:49:42
>>57
っつか、何だよあんた?w
一人なに必死になってんだ???
うpロダ使えに激しく反発したり、自分勝手過ぎやしないか???
少し黙っててくれ。ここに用があるなら、宿題に答えろよ?

64:デフォルトの名無しさん
08/06/28 12:56:56
URLリンク(slashdot.jp)
>あと、2chの宿題スレッドやmixiの課題丸投げコミュニティはレベルが
>低いのでほとんど参考にならないよと学生には言ってあります。そのせ
>いか、私が出した課題がそれらに出たことはないようです。

だそうだ

65:デフォルトの名無しさん
08/06/28 13:00:37
>>63
回答テンプレを使えという自治厨に対して、じゃあ質問者もこうしろよっていう
別の自治厨がわいただけ

66:デフォルトの名無しさん
08/06/28 13:05:11
>>64
ここで回答している身としてはレベル低いと言われて快くはないが、
それはさておき、教師が2chやmixiをチェックしていると言っている時点で
学生は2chやmixiに丸投げしないだろうな

67:デフォルトの名無しさん
08/06/28 13:11:32
つまり丸投げするようなレベルの低い人間に適した場所って意味だろ

68:デフォルトの名無しさん
08/06/28 13:17:42
適した場所ではあるが、出題者の教師はそのように主張していないらしい

69:デフォルトの名無しさん
08/06/28 13:21:26
その先生のソースみたいなw

70:デフォルトの名無しさん
08/06/28 13:41:04
でも実際、前スレでも行列の指数関数の近似やら自動車の燃費やらは回答されてなかったよな。
あの辺になると俺も自分の課題でしかやらんし、苦労してやっと作れるレベルのは丸投げしても回答もらえる確率の方が低いだろう。

71:デフォルトの名無しさん
08/06/28 13:43:54
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):()
URLリンク(kansai2channeler.hp.infoseek.co.jp)
↑資料

E1: ノードp が葉の場合は,空の木を返す.min にはノードp のキーを格納.
E2: ノードp が左部分木を持つ場合は,左部分木から最小のキーを持つノードを削除した部分木p を返す.
min には左部分木の最少のキーを格納.
E3: ノードp が右部分木だけを持つ場合は,右部分木を返す. min ノードp のキーを格納する.

以上の処理の場合分けを行った、部分木p から最小のキーを持つノードを削除した部分木を返す関数deleteMinNodeを作成せよ。
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
6/30
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
すいません、>>3なのですが、
deleteMinNode関数の処理の場合分けの記載を忘れていました。
どなたかdeleteMinNode関数だけ作り直していただけないでしょうか?
よろしくお願いします

72:デフォルトの名無しさん
08/06/28 13:47:26
>>70
それらはプログラムの問題より、プログラムで扱う各内容の問題になってるしw

”何々する”問題をプログラムで作れって、
だけでプログラムの問題になるならプログラマは万能優秀な人間じゃなきゃ務まらないわな

流体力学をシミュレートして飛行機が飛ぶプログラムを作れ
とか

73:デフォルトの名無しさん
08/06/28 13:56:24
☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ毎日新聞社による日本人女性への誹謗中傷☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ

・母親は受験勉強をする息子の学力向上のためにフェラチオをする
・日本人女性の55%は、出会ったその日に男と寝る
・ファストフードは女子高生たちを性的狂乱状態におとしいれる
・ティーンたちはバイアグラを使ってウサギのようにセックスをする
・女子高生は、刺激のためにノーブラ・ノーパンになる
・日本の最新の流行 : 70歳の売春婦
・老人の売春婦の人気にもかかわらず、日本では小学生の売春婦にも仕事がある
・日本の若い看護婦は売春婦に勝る
・24時間オルガズムが止まらない病気で苦しむ日本人女性の数が増えている
・15未満の子供を対象とした疑似ポルノが日本に蔓延している
・OLの72%が、セックスをより堪能するために何らかのトレーニングを受けている
・人妻は気分転換の目的で昔の恋人に抱かれに行く
・主婦は郊外のコイン・シャワーで売春をしている
・日本男子は柔道や空手の部活で男相手に童貞を捨てている
・ほとんどすべての漁師は海でマンタとSEXしている
・まだ10代の少年から退職した老人までみんな2980円の手コキを利用している
・六本木のあるレストランでは、食事の前にその材料となる動物と獣姦する

※同社が全年齢向けコーナーで七年以上にわたり世界に向けて配信していたものの一部です
※同社の行為は日本人への偏見や人種差別、婦女暴行、幼児虐待を助長するものです

◆毎日新聞の英語版サイトがひどすぎる まとめ@wiki
 URLリンク(www9.atwiki.jp)
◆毎日新聞問題の情報集積wiki
 URLリンク(www8.atwiki.jp)

つまり日本国民は
URLリンク(www.vipper.net)

74:デフォルトの名無しさん
08/06/28 13:59:18
>>35
etimeの算出は
etime = (tend.tv_sec + (double)tend.tv_usec*1e-6) - (tbgn.tv_sec + (double)tbgn.tv_usec*1e-6);

こうじゃyない?
gettimeofdayを使ったことないんだけど、ぐぐったらこうなってたんだが


75:74
08/06/28 14:00:54
URLリンク(kansai2channeler.hp.infoseek.co.jp)

一応ソース


76:デフォルトの名無しさん
08/06/28 14:06:01
>>72
プログラムが書けるのと
問題の内容が理解できるのとでは別問題だからねぇ
高卒な俺には理解できない内容あるからなorz

ぐぐれば何とかなる事もあるけど


77:デフォルトの名無しさん
08/06/28 14:12:32
>>74
windowsは良く知らないんだが、timersubが使えるならば、
それを使ったようが良くない?

78:デフォルトの名無しさん
08/06/28 14:21:11
>>77
>>4の問題文でgettimeofdayを使ってるから


79:デフォルトの名無しさん
08/06/28 14:46:10
単位が足りないので単位を修得するプログラムを書いてください

80:デフォルトの名無しさん
08/06/28 14:50:44
>>79
日本にはお中元という風習がありますよ

81:デフォルトの名無しさん
08/06/28 16:24:04
[1] 授業単元:C
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC 2005
 [3.3] 言語:C++
[4] 期限:7/4
[5] その他の制限: 特になし

82:デフォルトの名無しさん
08/06/28 16:25:41
>>74
ほんとですね。フォローありがとうございます。

83:当面これで行くか?
08/06/28 17:11:28
※質問者は質問をオープンする。質問をオープンした者が質問者である。
※質問は所定の形式である必要がある。(テンプレ)
※質問者は質問をオープンしてから一定時間はその質問内容を一定回数まで訂正できる。
※回答者は質問者の最後の訂正があってから所定時刻が経過するまで回答してはならない。
※回答する場合は、質問者に回答通告を出す。質問者の回答通告応答があった場合は
通信確立で所定形式で回答できる。質問者の回答許可が出ない段階での回答は許可されない。
※通信確立以後の通信確立解除までの通信形式は自由である。特に他の参加者からの
割り込みはこれを拒否することは出来ない。( 公開掲示板システム上の制約)
※質問者は同時に複数の回答者と通信を確立することは出来ない。最初に通信を確立した
回答者との通信が終了するまで、別の回答者との通信を確立することは出来ない。
ただし、回答者との通信が終了した時点で、質問をクローズしない限り、別の回答者が
存在する場合は通信を確立することが出来る。
※通信確立以後、質問者のキーワード「ありがとうございました」で通信確立が解除される。
※一定の時刻到達時点、或は質問時刻から一定時間経過時点、或は質問者の明示で
質問はクローズされる。
※質問がクローズされるまで、回答者は回答通告を出すことが出来る。
※回答通告を出した回答者は、質問者の通信が確立してから所定時間内に回答しなければなら
ない。所定時間経過後は、自動的に回答通告は取り消される。質問者は回答通告を出した
回答者が回答しないことを批判することは出来ない。
※回答通告を出してから質問者の通信確立応答が無いまま、所定時間経過した或は質問が
クローズされた場合は回答通告は自動的に無効になる。この場合、回答者は質問者を
誹謗することが出来る。

84:デフォルトの名無しさん
08/06/28 17:17:48
[1] 授業単元:c言語プログラミング
[2] 問題文(含コード&リンク):(URLリンク(kansai2channeler.hp.infoseek.co.jp))
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:c言語
[4] 期限:6月30日まで
[5] ポインタの演習項目です。

85:デフォルトの名無しさん
08/06/28 17:19:42
未解決のほとんどが今日期限だな

86:デフォルトの名無しさん
08/06/28 17:28:54
プログラム板自治スレッド その2
スレリンク(tech板)

87:デフォルトの名無しさん
08/06/28 17:33:09
まあそろそろ期末が終わってレポートの期限だからな

88:デフォルトの名無しさん
08/06/28 17:34:44
未解決問題じゃなくて、所詮はどっか(宿題を出した人)に模範解答がある宿題の未回答質問だよ。
あなたの未解決問題かも知れないけど。

89:デフォルトの名無しさん
08/06/28 17:45:22
どうしたらそんな的外れな事を言えるのか想像が付かないな。

90:デフォルトの名無しさん
08/06/28 17:49:26
>>75
一箇所訂正
誤:w[i] = y[i] * z[i] * w[i];
正:x[i] = y[i] * z[i] * w[i];


91:デフォルトの名無しさん
08/06/28 18:02:03
>>84
URLリンク(kansai2channeler.hp.infoseek.co.jp)

これでいいかな?

結果表示は16進になってるんで
自分で適当に変更してください

92:デフォルトの名無しさん
08/06/28 18:21:07
前スレの未解決問題貼りなおしてもいいですか?

93:デフォルトの名無しさん
08/06/28 18:26:48
おk

94:デフォルトの名無しさん
08/06/28 18:27:52
ただし期限切れの場合、貼った人が一応質問者とみなされますんで

95:デフォルトの名無しさん
08/06/28 18:28:09
誰も手をつけない問題に多いのが、
問題を出した本人にしか分らない部分がある等の問題内容に不備があるか
扱う内容がプログラムレベル以上に高くて面倒か、のどちらかだと思う…

圧倒的に前者が多い気がするが…

”問題”の丸投げは良いが…
誰もがお前と同じ講義を取ってる訳じゃない、
講義取ってる人間しか分らない”問題文”を丸投げするなって事だ

96:デフォルトの名無しさん
08/06/28 18:29:48
ダメ元で投げてるんだろう

97:デフォルトの名無しさん
08/06/28 18:32:36
[1] 授業単元:c言語プログラミング
[2] 問題文(含コード&リンク):(URLリンク(kansai2channeler.hp.infoseek.co.jp))
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:c言語
[4] 期限:6月30日まで
[5] ポインタの問題です。

98:デフォルトの名無しさん
08/06/28 18:38:42
>>97
#include <string.h>
#define cmemmove memmove

cmemmove(char*dest ,char*src, int length);

99:デフォルトの名無しさん
08/06/28 18:43:03
>>97
C言語の範囲では、結果が未定義になっていいなら回答するけど、どうする?
# この問題を最も手軽に解く方法の一つにポインタの大小を判定する方法があるが、
# ポインタの大小は同じ配列を指しているときしか比較できない。
# たまたま同じ配列を指していないポインタの大小を比較したら結果が未定義になるorz
# 結果が未定義にならないようにもできるが、とてつもなく遅くなる。

100:デフォルトの名無しさん
08/06/28 18:45:44
>>98
天才だが間違いなく再提出だな

101:デフォルトの名無しさん
08/06/28 18:46:30
>>98
【関数】cmemmove(char*dest ,char*src, int length)を作れ

102:デフォルトの名無しさん
08/06/28 18:50:42
srcで示されるアドレスからlengthバイト分だけの領域を、destで示される領域へコピーする
関数cmemmove(char*dest ,char*src, int length)を作れ、なお、送り元の領域と送り先領域
がオーバーラップしていても、正しくコピーできるしようにせよ。なおchar型の配列を宣言し、
cmemmove()が正確に動作すること確認(メモリ領域の内容を整数値として表示)するプログラム
を作成せよ。

103:デフォルトの名無しさん
08/06/28 18:55:07
5行ですね

104:デフォルトの名無しさん
08/06/28 18:55:32
cmemmove(void*dest ,void*src, int length)
{
if (stc <= src || (char *)stc >= ((char *)src + length)) {
/*
* Non-Overlapping Buffers
* copy from lower addresses to higher addresses
*/
while (length--) {
*(char *)stc = *(char *)src;
stc = (char *)stc + 1;
src = (char *)src + 1;
}
}
else {
/*
* Overlapping Buffers
* copy from higher addresses to lower addresses
*/
stc = (char *)stc + length - 1;
src = (char *)src + length - 1;

while (length--) {
*(char *)stc = *(char *)src;
stc = (char *)stc - 1;
src = (char *)src - 1;
}
}
}
まあ、汎用型だが書き換えは楽だろ。

105:デフォルトの名無しさん
08/06/28 18:56:52
>>99問題の補足に[※malloc()関数の使い方を知っている者はchar型の配列を宣言する代わりに
malloc()を使ってメモリ領域を確保し、comemmove()が正確に動作することを確認するプログラム
を作れ]とありんですが。結果が未定義ということは問題の実行例のようにならないということでしょうか?

106:デフォルトの名無しさん
08/06/28 18:58:22
叱ってあげて下さい

107:デフォルトの名無しさん
08/06/28 18:58:26
void cmemmove(char*dest ,char*src, int length)
{
memmove(dest,src,length);
}

108:デフォルトの名無しさん
08/06/28 18:59:09
>>105
厳密にいえば未定義だが、たいていの場合104のようなプログラムでうまくいく。
Linuxなら多分OK.

109:デフォルトの名無しさん
08/06/28 19:02:05
malloc関数でバイト数lengthの配列確保してコピーして先生を驚かせてやればいいんだな

110:デフォルトの名無しさん
08/06/28 19:02:21
できればmainの方も教えていただきたいのですが

111:デフォルトの名無しさん
08/06/28 19:33:41
>>91
> void main


112:デフォルトの名無しさん
08/06/28 19:34:33
>>83
>>99


113:デフォルトの名無しさん
08/06/28 20:15:34
97の回答ありがとうございました。
ですがすみません
もう一度質問させてください
[1] 授業単元:c言語プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:c言語
[4] 期限:6月30日まで
[5]>>105さんの回答でLinuxならOKなのはわかりましたが{その関数comemmove()が正確に動作する
ことを確認するプログラムを作れ}のところのmain関数のプログラムが分かりません
できればmain含めた全体のソースがしりたいのですが?

114:デフォルトの名無しさん
08/06/28 20:39:29
んなもん
char *str="sorekuraijibunndekake";
printf'("%s\n",str);
comemmove(str+3,str,5);
printf'("%s\n",str);
とでもすれば分かるだろ。

115:デフォルトの名無しさん
08/06/28 22:17:07
コードを上げる時に、仮定している処理系をきちんと書けば、その上に仮想メモリ空間が
サポートされているOSかどうかすぐわかるし、そういったOSの上で動作する処理系の場合は
2つのポインタについて比較は自由に出来るとしてまずOKだと思う。
(ポインタが指している内容の参照は勿論できるとは限らないけど)
仮定している処理系が書かれていないと、比較が許されていない処理系にも対応した
コードとしなければならなくなるだけ。

116:デフォルトの名無しさん
08/06/28 22:28:49
でっていうw

117:デフォルトの名無しさん
08/06/28 22:44:11
>>71
BSTREE_NODE *deleteMinNode(BSTREE_NODE *p, BSTREE_K_TYPE *min){
BSTREE_NODE *sub;

if(isLeafNode(p)){
*min = p->key;
destroyNode(p);
return NULL;
} else if(p->left != NULL){
p->left = deleteMinNode(p->left, min);
return p;
} else {
sub = p->right;
*min = p->key;
destroyNode(p);
return sub;
}
}

118:デフォルトの名無しさん
08/06/28 22:57:52
c言語
windows
VC++

*問題文*
(1)double型の変数a,bを仮引数とし、それらの和を返す関数プログラム『add_ab』の
  プロトタイプ宣言を行う、関数値はdouble型。
(2)double型の変数x,yにキーボードから実数を入力、x,yを実引数として『add_ab』を
  呼び出し、xとyの和を表示するメインプログラムを作成。
(3)double型の変数a,bを仮引数とし、それらの和を返す関数プログラム『add_ab』を
  作成せよ。

よろしくお願します

119:デフォルトの名無しさん
08/06/28 23:03:48
#include<stdio.h>

double add_ab(double a, double b);

int main()

120:デフォルトの名無しさん
08/06/28 23:13:33
{
double x, y;
printf("実数x:");
scanf("%lf", &x); getchar();
printf("実数y:");
scanf("%lf", &y); getchar();
printf("%lf", add_ab(x, y));
getchar();
return 0;
}

double add_ab(double a, double b)
{
return a + b;
}


121:前スレ939
08/06/28 23:18:09
>>前スレ946さん
再帰の使い方も理解でき大変助かりました。
ありがとうございました。

122:デフォルトの名無しさん
08/06/28 23:27:04
>>120
エラーでちゃいました><

123:デフォルトの名無しさん
08/06/28 23:38:57
>>117
ありがとうございました!

124:デフォルトの名無しさん
08/06/28 23:40:18
エスパーはいない

125:デフォルトの名無しさん
08/06/28 23:44:56
>>122
× printf("%lf", add_ab(x, y));

○ printf("%f", add_ab(x, y));


126:>>118
08/06/28 23:51:01
コンパイルボタンが灰色のままでコンパイルボタン押せなくなっちゃいました

以下エラー文
intermediate.manifest : general error c1010070: Failed to load and parse the manifest.

127:デフォルトの名無しさん
08/06/29 00:13:03
だからどうした?

128:デフォルトの名無しさん
08/06/29 00:14:48
どなたか>>18をお願いします


129:デフォルトの名無しさん
08/06/29 00:20:37
動的配列でヒープを実現せよって問題なのに、ポインタはできるだけ使うなって言われてもなあw

130:デフォルトの名無しさん
08/06/29 00:28:17
たぶん子から親を参照するときポインタを使わずi/2(切捨て)とするんだと思います

131:デフォルトの名無しさん
08/06/29 00:32:45
前スレ970
一度ヒント頂いてるのですがまだわかりません
もう少しおねがいします

[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)

URLリンク(up.sussiweb.com)
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: MS Visual C++
 [3.3] 言語: C
[4] 期限: 2008/07/10
[5] その他の制限: よろしくおねがいします


132:回答じゃないよ
08/06/29 01:43:41
>>131
数学とか理系とかの板で質問すれば、プログラムが何をしたいのか
空気を読んでくれて直してくれるかも知れないが、
プログラム板では、コンパイルが通ってOSと衝突することなく動作す
るプログラムは仕様が明記されていない限り、AS IS(ありのままの姿
で受けいれるしかない。
前スレで誰かが、そのコードを若干修正して、ほぼ正しく動作する
プログラムだとしてたが、ああいった感じにしたいというのであれば
要求仕様をまとめてみよう。

133:デフォルトの名無しさん
08/06/29 03:05:04
>>131
添削するのは出題者の仕事
ここは基本的に問題に答えるだけのスレ

134:デフォルトの名無しさん
08/06/29 04:36:59
>>18
URLリンク(kansai2channeler.hp.infoseek.co.jp)
こんなんで良いのかわからないけど、うp

135:デフォルトの名無しさん
08/06/29 06:40:27
>>131
係数を求めるのは手計算じゃあ駄目なのか?
(この程度の問題なら手計算の方が簡単...)
あと、kはループの度に初期化しとけよ。

136:デフォルトの名無しさん
08/06/29 10:13:37
>>97
#include<stdio.h>
#include<stdlib.h>

#define BUFSIZE 18

void buf_print(char *buf, int bufsize){
int i;
for(i=0;i<bufsize;i++) printf("%d ", buf[i]);
printf("\n");
}
void cmemmove(char*dest ,char*src, int length){
int i;
if(dest<src) for(i=0;i<length;i++) dest[i]=src[i];
if(dest>src) for(i=length-1;i>=0;i--) dest[i]=src[i];
}
int main(void){
char *buf;
int i;

buf=malloc(BUFSIZE);
for(i=0;i<5;i++) buf[i]=i+1;
for(;i<BUFSIZE;i++) buf[i]=0;

buf_print(buf, BUFSIZE);
cmemmove(&buf[10], &buf[0], 5);
buf_print(buf, BUFSIZE);
cmemmove(&buf[3], &buf[0], 5);
buf_print(buf, BUFSIZE);
return 0;
}

137:デフォルトの名無しさん
08/06/29 12:09:55
>>134
ありがとうございました!


138:デフォルトの名無しさん
08/06/29 13:44:08
エラトステネスの篩の問題で、2以上で10000以下の自然数を入力し、2から入力した自然数以下の素数を全て表示する。
素数間にタブを入れ、3個区切りで表示せよ。*一次配列を使うこと。
という問題なのですが、ちょっと分からないので質問しました。
ちにみに素数間にタブを入れというのは、
2 3 5
7 11 13
こんな感じに表示されるらしいです。
■■■■■■■■■■■■■■■■■■■■■■■■■■■
一次元配列を使った問題で実行結果が、
----------
1番目の点数を入力して下さい。
67
1番目の点数は67点です。
2番目の点数を入力して下さい。
89
2番目の点数は89です。
3番目の点数を入力して下さい。
55
3番目の点数は89です。
4番目の点数を入力して下さい。
101
合計は○○.○
平均は○○.○
点数 平均からの差
67 -○○.○
89 ○○.○
55 -○○.○
----------
こんな感じなのですが、
*入力した番目は1以上100未満として
入力の終わりは101とします。


139:138
08/06/29 13:48:27
1] 授業単元:c言語プログラミング
[2] 問題文 >>138
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:c言語
[4] 期限:6月30日まで
[5] エラトステネスの篩/一次元配列

140:デフォルトの名無しさん
08/06/29 14:04:53
>>138
エラトステネスの篩
#include <stdio.h>

int main(void)
{
int i, j, n;
char sieve[10001] = {1,1};

scanf("%d", &n);

for(i=4; i<=n; i+=2) sieve[i] = 1;
for(i=3; i*i<=n; i++) if(!sieve[i]) for(j=i*i; j<=n; j+=i) sieve[j] = 1;

for(i=0, j=1; i<=n; i++) if(!sieve[i]) printf(j++ % 3 ? "%d\t" : "%d\n" , i);

return 0;
}

141:131
08/06/29 14:08:17
回答ありがとうございます。
係数は求められるのですが、それをf(t)に代入する部分を教えていただきたいです。

>>132
まさに前スレでの回答のようにしたいです。
仕様とはなんですか?
f(t) フーリエ展開から求めたもの
0.004052 0.000000
0.200007 0.200000
0.400001 0.400000
0.599999 0.600000
0.799993 0.800000
0.995948 1.000000
0.799993 0.800000
0.599999 0.600000
0.400001 0.400000
0.200007 0.200000
0.004052 0.000000

>>135
係数はプログラムで計算しないと駄目です


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

5369日前に更新/196 KB
担当:undef