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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/03/03(金) 14:28:38
あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

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

【前スレ】
C/C++の宿題を片付ケます 60代目
http://pc8.2ch.net/test/read.cgi/tech/1139053955/
【過去スレ一覧】
http://makimo.to/cgi-bin/search/search.cgi?q=C%2B%2B%82%CC%8Fh%91%E8&andor=AND&sf=2&H=&view=table&D=tech&shw=2000
次スレが立たない時の避難所
http://pc8.2ch.net/test/read.cgi/tech/1122705615/
0153デフォルトの名無しさん2006/03/05(日) 23:20:02
>>142
コメントはちゃんとコメントアウトしとけよ
0154デフォルトの名無しさん2006/03/05(日) 23:20:47
  \\_
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_   税込み1500円になります
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
0155デフォルトの名無しさん2006/03/05(日) 23:21:03
>>152 ぐぐれ
0156デフォルトの名無しさん2006/03/05(日) 23:22:30
>>152
俺が引き受けたしばしまたれよ
0157デフォルトの名無しさん2006/03/05(日) 23:23:12
  \\_
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_   手数料2000円になります
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
0158デフォルトの名無しさん2006/03/05(日) 23:23:25
>>154
つまり税抜き1429円だな。
0159補数2006/03/05(日) 23:24:26
>>142さん
すいません^^;

>>155さん
結構探したんですけど、分かりやすいのが見つからなくて^^;
0160デフォルトの名無しさん2006/03/05(日) 23:25:57
シェンロンが途中で値段を上げるw
0161デフォルトの名無しさん2006/03/05(日) 23:27:39
>>140
#include <stdio.h>
#include <math.h>

#define N 4

int bin_sum(char bin1[N], char bin2[N], int sign);

int main(int argc, char* argv[])
{
    char bin1[N] = {'0', '1', '0', '1'};
    char bin2[N] = {'1', '0', '1', '0'};
    int result;

    //正の2進数として加算
    result = bin_sum(bin1, bin2, 0);

    printf("5(0101)+10(1010)=%d\n", result);

    //負の2進数(2の補数)として加算
    result = bin_sum(bin1, bin2, 1);

    printf("5(0101)+(-6)(1010)=%d\n", result);

    return 0;
}

0162デフォルトの名無しさん2006/03/05(日) 23:28:10
>>161続き
int bin_sum(char bin1[N], char bin2[N], int sign)
{
    int dec1= 0, dec2 = 0, result = 0, i;

    if (sign == 0) {//正の2進数を加算
        for (i = N; i > 0; i--) {
            //bin1の2進数を10進数に変換
            if (bin1[N-i] == '1')
                dec1 = dec1 + (int)pow(2.0, (double)(i-1));

            //bin2の2進数を10進数に変換
            if (bin2[N-i] == '1')
                //dec2 = dec2 + 1 * 2^(i-1);
                dec2 = dec2 + (int)pow(2.0, (double)(i-1));
        }
        result = dec1 + dec2;
    } else if (sign == 1) {//2の補数を計算
    ////////////////////////////////////////////////////////
    //    2の補数を計算するプログラム
    ////////////////////////////////////////////////////////////
        for (i = N; i > 0; i--) {
            //bin1の2進数を10進数に変換
            if (bin1[N-i] == '1')
                dec1 = dec1 + (int)pow(2.0, (double)(i-1));

0163デフォルトの名無しさん2006/03/05(日) 23:29:10
  \\_
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_   続きは手数料3000円になります
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
0164デフォルトの名無しさん2006/03/05(日) 23:29:53
            //bin2の2進数を10進数に変換
            if (bin2[N-i] == '1')
                dec2 = dec2 + (int)pow(2.0, (double)(i-1));
        }
        dec2 = ~dec2 + 1;
        result = dec1 + dec2;
    }

    return result;
}
0165デフォルトの名無しさん2006/03/05(日) 23:31:48
200までいじりたかったのに・・・・
0166デフォルトの名無しさん2006/03/05(日) 23:33:24
int bin_sum(char bin1[N], char bin2[N], int sign)
{
    int dec1= 0, dec2 = -sign,result = 0, i;
    for (i = 0; i < N; ++i) {
        dec1=dec1<<1|bin1[i]-'0';
        dec2=dec2<<1|bin2[i]-'0';
    }
    result = dec1 + dec2;
    return result;
}
0167補数2006/03/05(日) 23:35:13
161〜166さん
有難う御座います^^
早速実行してみますね^^
0168デフォルトの名無しさん2006/03/05(日) 23:47:22
符号拡張ミスってたorz
int bin_sum(char bin1[N], char bin2[N], int sign)
{
    int dec1= 0, dec2 = -(bin2[0]&sign),i;
    for (i = 0; i < N; ++i) {
        dec1=dec1<<1|bin1[i]-'0'; 
        dec2=dec2<<1|bin2[i]-'0'; 
    }
    return dec1 + dec2;
}
0169デフォルトの名無しさん2006/03/06(月) 00:11:08
^^ ウザイ
(^^) 山崎渉を思い出す
NullPointerException氏ね
0170デフォルトの名無しさん2006/03/06(月) 00:13:39
>>162
Cなんだから//コメントとかやめようぜ
C99とは限らんだろう
0171デフォルトの名無しさん2006/03/06(月) 00:19:15
Cのみのコンパイラはほぼないからおk
0172デフォルトの名無しさん2006/03/06(月) 00:24:36
>>171
商用UNIXについてるオマケコンパイラとかは
ANSI Cすら非対応だったりするんだが。無論、わざと。
0173デフォルトの名無しさん2006/03/06(月) 00:25:26
ΩΩΩ ナ、ナンダッテー
0174補数2006/03/06(月) 00:26:45
すいません^^;
実行はできたのですが、コマンド画面でどういうコマンドを打ったらいいんですかね??^^;
ちょっとよく分からなくて…
0175デフォルトの名無しさん2006/03/06(月) 00:27:03
このプログラミングの宿題を助けて下さい。
CとC++でお願いします。

【質問テンプレ】
[1] 授業単元:プログラミング言語 
[2] 問題文(含コード&リンク):
問題
1)プログラムは演算式”A+B*Cが記されたテキストファイルを読み取ります。
2)LR分析表を参照し、LR分析アルゴリズムを使ってテキストを分析し、
”id + id * id $”と表示しなさい。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:
c 、.cpp ファイルならどのコンパイラーを使っても良い。
 [3.3] 言語: (CとC++)
[4] 期限: 3月10日18:00まで

どなたかお願いします。
01761752006/03/06(月) 00:27:54
LR 分析アルゴリズム(LR Parsing Algorithm)

以下がReduceしていく演算式の文法 です。
1)E → E + T
2)E → T
3)T → T * F
4) T → F
5) F → ( E )
6)F → id


0177デフォルトの名無しさん2006/03/06(月) 00:29:13
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_   手数料30000円になります
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
0178デフォルトの名無しさん2006/03/06(月) 00:32:04
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_   なんと手数料28000円でやります
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
01791752006/03/06(月) 00:32:24
演算式の文法のLR 分析表です。
(S5はShift 5を意味し、スタックにインプットします。
R2はReduce2を意味し、2) E → T式を使うということを示します。)

 Action|Goto
------------------------------------------------------------------------------
State |id | + | * | ( | ) | $ | E | T | F
------------------------------------------------------------------------------
0S5S41 2 3
1S6Accept
2R2S7R2R2
3R4R4R4R4
4S5S48 2 3
5R6R6R6R6
6S5S493
7S5S410
8S6S11
9R1S7R1R1
10R3R3R3R3
11R5R5R5R5


0180デフォルトの名無しさん2006/03/06(月) 00:32:36
意味不明('A`)
01811752006/03/06(月) 00:33:31
上手く表示されていないので、また打ち直します。
0182デフォルトの名無しさん2006/03/06(月) 00:35:03
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_   意味不明なのでスルー
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
0183デフォルトの名無しさん2006/03/06(月) 00:35:50
神龍はなんてセコイんだ
0184デフォルトの名無しさん2006/03/06(月) 00:37:12
わざわざ7つボールを集めさせて、しかも一つしか願い事聞いてくれないくらいだからw
0185デフォルトの名無しさん2006/03/06(月) 00:39:02
プラス有償になったしな
0186デフォルトの名無しさん2006/03/06(月) 00:39:09
神龍よりポルンガの方が気前がいいや
0187デフォルトの名無しさん2006/03/06(月) 00:39:38
つまり、3.5人の童貞がメイド喫茶に行けばパンツを見せてくれるのですね?
0188デフォルトの名無しさん2006/03/06(月) 00:39:58
タッカラプト ポッポルンガ プピリットパロ
0189デフォルトの名無しさん2006/03/06(月) 00:40:41
LR解析は一時期ぱっと解答を出す人がいた。
・・・興味のある人は過去ログか、ぐぐらばあるだろ。
俺は手で書くなら下向き再帰解析だけど。
0190デフォルトの名無しさん2006/03/06(月) 00:42:01
>>187
意味がわからないが
0191デフォルトの名無しさん2006/03/06(月) 00:43:56
だから童貞なんだよ
0192デフォルトの名無しさん2006/03/06(月) 01:02:32
ここで質問していいのものなのか、ちょっと解らないですが聞いてください。

今ちょっと、プラグイン機能を持つアプリケーションを作成しようとしています。
プラグイン機能は後から、lib.soやdllを追加する事で機能拡張な形にしたいと思っています
このアプリケーションを起動時に特定のディレクトリに存在するdll等を読み込み機能を
実行できるようにしたいと思っています。

このような設計や簡単なサンプルなどを扱っている資料などありませんでしょうか。
、
0193デフォルトの名無しさん2006/03/06(月) 01:05:00
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_   手数料90000円になります
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
0194デフォルトの名無しさん2006/03/06(月) 01:05:16
>>192
>>1
0195デフォルトの名無しさん2006/03/06(月) 01:05:25
手数料がやばくなってきた件について
0196デフォルトの名無しさん2006/03/06(月) 01:06:57
当時の90000円は今の900000リラ
01971752006/03/06(月) 01:10:36
State | Action (id| +| * |( | ) | $) | GOTO (E | T | F)
=================================================================================
State | id | + | * | ( | ) | $ | E | T | F
-----------------------------------------------------------------------------
0 | S5 | # | # | S4 | # | # | 1 | 2 | 3
------------------------------------------------------------------------------
1 | # | S6 | # | # | # |Accept | # | # | #
-----------------------------------------------------------------------------
2 | # | R2 | S7 | # | R2 | R2 | # | # | #
-----------------------------------------------------------------------------
3 | # | R4 | R4 | # | R4 | R4 | # | # | #
------------------------------------------------------------------------------
4 | S5 | # | # | S4 | # | # | 8 | 2 | 3
-----------------------------------------------------------------------------
5 | # | R6 | R6 | # | R6 | R6 | # | # | #
------------------------------------------------------------------------------
01981752006/03/06(月) 01:12:22
6 | S5 | # | # | S4 | # | # | # | 9 | 3
------------------------------------------------------------------------------
7 | S5 | # | # | S4 | # | # | # | | 10
------------------------------------------------------------------------------
8 | # | S6 | # | # | S11 | # | # | # | #
------------------------------------------------------------------------------
9 | # | R1 | S7 | # | R1 | R1 | # | # | #
-----------------------------------------------------------------------------
10 | # | R3 | R3 | # | R3 | R3 | # | # | #
------------------------------------------------------------------------------
11 | # | R5 | R5 | # | R5 | R5 | # | # | #
------------------------------------------------------------------------------
01991752006/03/06(月) 01:13:20
演算式の文法のLR 分析表です。
(S5はShift 5を意味し、スタックにインプットします。
R2はReduce2を意味し、2) E → T式を使うということを示します。)
0200デフォルトの名無しさん2006/03/06(月) 01:14:10
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_   手数料900円になります
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
02011752006/03/06(月) 01:14:41
以下は、id + id * id を分析した場合の手順です。

StackInputAction
0id + id * id $Shift 5
0id5+ id * id $Reduce 6 (use GOTO[0, F])
0F3+ id * id $Reduce 4 (use GOTO[0, T])
0T2+ id * id $Reduce 2 (use GOTO[0, E])
0E1+ id * id $Shift 6
0E1+6id * id $Shift 5
0E1+6id5* id $Reduce 6 (use GOTO[6, F])
0E1+6F3* id $Reduce 4 (use GOTO[6, T])
0E1+6T9* id $Shift 7
0E1+6T9*7id $Shift 5
0E1+6T9*7id5$Reduce 6 (use GOTO[7, F])
0E1+6T9*7F10$Reduce 3 (use GOTO[6, T])
0E1+6T9$Reduce 1 (use GOTO[0, E])
0E1$Accept
0202デフォルトの名無しさん2006/03/06(月) 01:15:44
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_   おやすみ
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
02031752006/03/06(月) 01:16:26
教授に聞くと、
1)ファイルを開く。
2)ファイルからCharを読む
3)CharをTokenに変える (CharはA-Z、+、*、(、)です。)
4)LR分析表を作る
5)Reduceする演算式を使う
の手順で作成するようにと言われました。

締め切りは、3月10日です。
どなたかお願いします。
0204デフォルトの名無しさん2006/03/06(月) 01:17:02
つーか、いいかげんシェンロンウザイ
0205デフォルトの名無しさん2006/03/06(月) 01:18:09
ヒント:みんなとっくにあぼーんしてる
0206デフォルトの名無しさん2006/03/06(月) 01:18:13
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_   技術手数料59,800円+諸経費39,800で
三.ヽ= (⌒ヽ;:;:;,.二) 99,600円になります
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
0207デフォルトの名無しさん2006/03/06(月) 01:24:38
>>192 機種依存ネタだとおもうが、linuxとかWindowsでそれぞれ違う。
0208デフォルトの名無しさん2006/03/06(月) 01:34:21
とりあえず、トリップつけろよ。
必ず荒れるんだから。

なんか、トリップ無し=荒らしのような気がしてならない。
0209デフォルトの名無しさん2006/03/06(月) 01:36:43
はい。荒らしでーす。どーせ4月中旬まで、ネタスレだしー。
0210デフォルトの名無しさん2006/03/06(月) 01:50:06
http://www.uploda.org/uporg328542.jpg
ここの3,4,5を作らなきゃならないんだが
さっぱりワカラナス
授業さぼりすぎた
0211デフォルトの名無しさん2006/03/06(月) 01:56:12
>>210
報酬は?
0212デフォルトの名無しさん2006/03/06(月) 02:06:10
>>210
授業さぼったレベルの話じゃすまされないと思うんだがw?
3.3

i=15
max = i + 10;
a = 0;
for(; i < max; i++){
a = 2 + (3 * i);
fprintf(stderr, "%x\r\n", a);
}
3.4

i = 4
factorial = 1;
while(i > 1){
factorial *= i;
i--;
}
fprintf(stdout, "%x\n", factorial);

3.5

i = 4
factorial = 1;
do{
factorial *= i;
i--;
}while(i > 1);
fprintf(stdout, "%x\n", factorial);
よっぱらってるからあってるかよくわからねぇw
しかしなんだこんなもん解らないんだったら、やばいと思うよ
0213デフォルトの名無しさん2006/03/06(月) 02:06:33
>>211
さすがにこれで報酬とっちゃだめだろw
0214デフォルトの名無しさん2006/03/06(月) 02:06:35
貴様!これから報酬の話をしようと言うときに!
0215デフォルトの名無しさん2006/03/06(月) 02:09:03
>>213
今画像見た
C言語つかプログラミング止めればいいのにと思った
0216デフォルトの名無しさん2006/03/06(月) 02:12:58
わかんねえけど単位のためなんだろきっとwww


それよりも3.6で配列使うなってのがよくわからん
0217デフォルトの名無しさん2006/03/06(月) 02:16:50
分からないなら単位を落とせばいいのにと思った。自主的にサボったんならなおさら。
0218デフォルトの名無しさん2006/03/06(月) 02:16:54
なんで?使わなくてよくね?
0219デフォルトの名無しさん2006/03/06(月) 02:17:51
ポインタ使えばいいんじゃね
それとも前方向リンクリストとか
スタックとかキューでも自作しろって
ことじゃね?
02202162006/03/06(月) 02:19:59
ああ、やっと意図わかった
(xn-u)^2出すには配列に入れんとだめだから2の公式使えってことか
0221デフォルトの名無しさん2006/03/06(月) 02:20:31
>>210
うはwwwww難しいことやってんだなwwwwwwww
0222デフォルトの名無しさん2006/03/06(月) 02:21:27
>>212の回答に悪意を感じるのは俺だけか?w
0223デフォルトの名無しさん2006/03/06(月) 02:24:01
>>21
3つとも書いてくれてありがとう
>>216
まあそんな感じだ
0224デフォルトの名無しさん2006/03/06(月) 02:28:07
配列を使わない、1パスで済ます方法は、C言語によるアルゴリズム事典に載ってる。


・・・はず。
0225デフォルトの名無しさん2006/03/06(月) 02:36:06
デバッグ名目の報酬交渉マダー?(・∀・/)/凵⌒☆チンチン
0226デフォルトの名無しさん2006/03/06(月) 02:39:20
>>222
殺意すら感じる
出題者の単位への
0227デフォルトの名無しさん2006/03/06(月) 06:25:41
[1] 授業単元:C言語演習
[2] 問題文:
読み込んだ文字列に含まれる任意の文字の個数を表示せよ。

例:文字列を入力せよ:aBbccdb
検索する文字を入力せよ:b
文字列aBbccdbの中にはbが2個あります。

(ヒント:char型のポインタを仮引数とする関数を作る。)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語: C
[4] 期限: 2006年3月7日(火)
[5] その他の制限:ポインタや構造体まで習いました。よろしくお願いします。
0228デフォルトの名無しさん2006/03/06(月) 06:36:58
  \\_
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_    文字のカウントとかもう飽きたのでスルー
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
0229デフォルトの名無しさん2006/03/06(月) 06:44:18
>>227
#include <stdio.h>

int CountChar(char *Src, char Word)
{
    int Count=0;

    while (*Src!='\0')
    {
        if (*Src==Word)
        {
            Count++;
        }
        Src++;
    }
    return Count;
}

int main()
{
    char *Src="aBbccdb";
    char Word='b';
    int Count;

    Count=CountChar(Src, Word);
    printf("%d\n", Count);

    return 0;
}
0230デフォルトの名無しさん2006/03/06(月) 06:51:02
>>229
例をよく見ろ
入力はコマンドラインからだろ
0231デフォルトの名無しさん2006/03/06(月) 06:58:12
そこでこの簡単な問題をすかさず俺が華麗に割り込みゲットするわけです
コンパイル通るかしらんがまあ十分っしょ

#include <stdio.h>
int search(char* str, char ch){
int count=0, i;
for(i=0; str[i]; ++i){
count += str[i] == ch;
}
return count;
}
int main(){
char str[256];
char ch[16];
printf("文字列を入力せよ:");
gets(str);
printf("検索する文字を入力せよ:");
gets(ch);
printf("%sの中には%cが%d個あります。\n", str, ch[0], search(str, ch[0]));
return 0;
}
0232デフォルトの名無しさん2006/03/06(月) 07:01:55
>>216 こういうことだろ
#include <stdio.h> 
double f(int n, int m, double *E, double *var, double *min, double *max) {
  if (m < n) {
    double a;
    scanf("%lf", &a);
    *E += a;
    if (*min > a) *min = a;
    if (*max < a) *max = a;
    f(n, m+1, E, var, min, max);
    *var += (a-*E)*(a-*E);
  } else {
    *E /= n;
  }
}
int main() {
  int n;
  scanf("%d", &n);
  double E = 0, var = 0, min = 100000, max = -100000;
  f(n, 0, &E, &var, &min, &max);
  printf("%lf %lf %lf %lf\n", E, var, min, max);
}
0233デフォルトの名無しさん2006/03/06(月) 07:13:09
しばらく書き込みないからもう誰もいないかと思ってたが
けっこういるな
0234デフォルトの名無しさん2006/03/06(月) 07:15:31
http://acm.pku.edu.cn/JudgeOnline/
宿題解くのよりこういうの競ってるほうが楽しくない?
0235デフォルトの名無しさん2006/03/06(月) 07:37:41
探索は嫌いなんだ。
0236デフォルトの名無しさん2006/03/06(月) 07:43:28
>>234
「UVA,PKUなどのオンラインジャッジスレ」でも立ててくれ
02372162006/03/06(月) 08:12:27
>>232
ガーン(゚д゚;) たしかに言われてみればそうだorz
1式だと各値を配列に記憶させないと(xi-u)^2が求められないから2式使いましょうって意図かと思った
つうか教授の意図はそれっぽい気もするんだがこの解答提出したらどういう反応示すのだろうか
0238582006/03/06(月) 10:22:32
>>58 又は >>60 の者です。皆様、ありがとうございました。
一応、組んでみました。
ただ、number of characters の if が数字を読んでいないようです。(inputのtxtに数字が混ざっていた場合)
何か改良方法は有りますか?(これが直れば、意図通りです)

double na, ne, ni, no, nu, L, n;// main numbers in "while"
char a, c;
inFile.ignore(200,'\n');// ignore the 1st line
na = 0;// initial number of a and A
ne = 0;// initial number of e and E
ni = 0;// initial number of i and I
no = 0;// initial number of o and O
nu = 0;// initial number of u and U
L = 0;// initial number of line
n = 1;// initial number of characters
inFile.get(a);
while (inFile.get(c))// loop for counting the number
{
if(c=='a' || c=='A'){na++;}// for a and A (vowels)
if(c=='e' || c=='E'){ne++;}// for e and E (vowels)
if(c=='i' || c=='I'){ni++;}// for i and I (vowels)
if(c=='o' || c=='O'){no++;}// for o and O (vowels)
if(c=='u' || c=='U'){nu++;}// for u and U (vowels)
if(c=='\n'){L++;}// for line (without 1st line)
if(c==c){n++;}// for characters
}// end of loop for counting the number
0239デフォルトの名無しさん2006/03/06(月) 10:38:38
  \\_
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_    スルー
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
0240デフォルトの名無しさん2006/03/06(月) 20:07:29
>>238をみてこめんとをかくこともよしあしだなとおもいました。
0241デフォルトの名無しさん2006/03/06(月) 20:43:50
>>240 こんな感じ?w
/* >>238, 58
とりあえず、コメントを書くときは「わかりやすく意味を伝えることをメインに書いた方がいいよ。
「number of charactersのifが数字を読んでいない」って書いてあるけど、その場所が */ #include <iostream>
/*パッと見てどこだかわからないんじゃ、コメントの意味があんまりないでしょ?
たぶん、今の場合は
if(c==c){n++;}// for characters
のことを言っているんじゃないかと思うんだけど、ここは*/ int main(void){
/* ifの中身が( c==c )と全然意味がないことをやっているんじゃないかい?*/ cout <<
"ここはただ単に、 n++だけでいいんじゃないかと思うよ。ifにする必要なんじゃないか?" << endl;
/* とりあえず、nの内容が文字数を数えるだけなら、それで目的は達成できると思うから。*/return 0;}

0242デフォルトの名無しさん2006/03/06(月) 20:57:28
やべーnamespaceつけ忘れた。コンパイルして、要点を確認したい人は、
cout →std::cout
endl →std::endl
に置換しておくれ
0243デフォルトの名無しさん2006/03/07(火) 01:49:53
>>175です。
>>201を打ち直しました。
どなたかお願いします。

Stack Input Action
0 id + id * id $ Shift 5
0id5 + id * id $ Reduce 6 (use GOTO[0, F])
0F3 + id * id $ Reduce 4 (use GOTO[0, T])
0T2 + id * id $ Reduce 2 (use GOTO[0, E])
0E1 + id * id $ Shift 6
0E1+6 id * id $ Shift 5
0E1+6id5 * id $ Reduce 6 (use GOTO[6, F])
0E1+6F3 * id $ Reduce 4 (use GOTO[6, T])
0E1+6T9 * id $ Shift 7
0E1+6T9*7 id $ Shift 5
0E1+6T9*7id5 $ Reduce 6 (use GOTO[7, F])
0E1+6T9*7F10 $ Reduce 3 (use GOTO[6, T])
0E1+6T9$ Reduce 1 (use GOTO[0, E])
0E1$ Accept
0244デフォルトの名無しさん2006/03/07(火) 01:55:07
  \\_
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_    スルー
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
0245デフォルトの名無しさん2006/03/07(火) 21:22:52
以下のようにデータが保存されたdata.txt ファイルがある

A 9 B 2 C 4 D 8 E 6 F 3

stract data {char name [10]; int val;} da[10];
と宣言された構造体を用いて
このファイルからこれらの整数値データを読み込み
その平均値を求めるプログラムを作成しなさい

この問題が分かりません誰でもいいので教えてください!
0246デフォルトの名無しさん2006/03/07(火) 21:31:29
#define stract struct
0247デフォルトの名無しさん2006/03/07(火) 21:31:57
>>245
テンプレ読むべし>>1
0248デフォルトの名無しさん2006/03/07(火) 21:35:30
>>245

cin >> setbase(16);
int n = 0;
while (cin >> da[i].val)
++n;
int total = 0;
for (int i = 0; i < n; ++i)
total += da[i].val;
cout << setbase(16) << (total / n) << endl;
0249デフォルトの名無しさん2006/03/07(火) 21:40:08
>>245
#include <iostream>
#include <algorithm>
#include <iterator>
#include <numeric>
#include <fstream>

using namespace std;

struct data {char name [10]; int val;} da[10];

data operator+ (const data& lhs, const data& rhs)
{ data result; result.val = lhs.val, result.val += rhs.val; return result; }
istream& operator>>(istream& is, data& d) { is >> d.name >> d.val; return is; }

int main()
{
  ifstream fin("data.txt");
  data *p = copy(istream_iterator<data>(fin), istream_iterator<data>(), da);
  data d = {0};
  cout << (double)accumulate(da, p, d).val / (p - da) << endl;
}
0250デフォルトの名無しさん2006/03/07(火) 21:45:09
>>249
このほうが良くね?
int operator+(int val,const data&d){return val+d.val;}
0251補数2006/03/07(火) 21:53:49
1] 授業単元: c言語
[2] 問題文:後ほど記載いたします
 [3.1] OS:xp
 [3.2] gcc 3.4
 [3.3]C言語のみ
[4] 期限:
[5] その他の制限: ほとんど初歩です^^;
宜しくお願いします。
0252デフォルトの名無しさん2006/03/07(火) 21:54:28
>>246から>>250の方本当にありがとうございます
ただ、本当に申し訳ないのですが
ポインタと構造体とファイルの基礎の基礎しか習ってないので
(#include<stdio.h>から始めるのしか習っていません…)
出来ればそれをふまえてお願いできませんでしょうか?
わがままなやつで本当に申し訳ありません。
■ このスレッドは過去ログ倉庫に格納されています