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

ぼるじょあがC/C++の宿題を片付けますYO! 37代目

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
(・3・)エェー C++房のぼるじょあですYO!わからない宿題を片づけますYO!
――【注意点】―――――――――――――――――――――――――
・質問は必ず【質問テンプレ】に従ってください。
・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。
・複雑なAAはスレが荒れたり問題が埋もれる原因になりますので使用を控えてください。
―――――――――――――――――――――――――――――――

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS:
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:yyyy年mm月dd日hh:mmまで/無期限 のいずれか
[5] その他の制限:

【アップローダー】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

【歴代スレは>>1-10辺り】
36代目: http://pc5.2ch.net/test/read.cgi/tech/1102753497/
35代目: http://pc5.2ch.net/test/read.cgi/tech/1101568895/
34代目: http://pc5.2ch.net/test/read.cgi/tech/1100530682/
33代目: http://pc5.2ch.net/test/read.cgi/tech/1097932699/
32代目: http://pc5.2ch.net/test/read.cgi/tech/1097592876/
31代目: http://pc5.2ch.net/test/read.cgi/tech/1095075678/
30代目: http://pc5.2ch.net/test/read.cgi/tech/1091954342/
29代目: http://pc5.2ch.net/test/read.cgi/tech/1090765027/
0002デフォルトの名無しさんNGNG
28代目: http://pc5.2ch.net/test/read.cgi/tech/1089974839/
27代目: http://pc5.2ch.net/test/read.cgi/tech/1089448445/
26代目: http://pc5.2ch.net/test/read.cgi/tech/1088860889/
25代目: http://pc5.2ch.net/test/read.cgi/tech/1087929711/
24代目: http://pc5.2ch.net/test/read.cgi/tech/1086612317/
23代目: http://pc5.2ch.net/test/read.cgi/tech/1085149383/
22代目: http://pc5.2ch.net/test/read.cgi/tech/1083050221/
21代目: http://pc5.2ch.net/test/read.cgi/tech/1078157730/
20代目: http://pc5.2ch.net/test/read.cgi/tech/1075217631/
19代目: http://pc5.2ch.net/test/read.cgi/tech/1073566342/
18代目: http://pc5.2ch.net/test/read.cgi/tech/1071407728/
17代目: http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html
16代目: http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html
15代目: http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html
14代目: http://pc5.2ch.net/tech/kako/1067/10671/1067175933.html
13代目: http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html
12代目: http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html
11代目: http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html
10代目: http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html
9代目: http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html
8代目: http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html
7代目: http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html
6代目: http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html
5代目: http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
1代目: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
0003デフォルトの名無しさんNGNG
ノノ*^ω^)<次はもきゅえりりんがC/C++の宿題を片付けますよ?
0004デフォルトの名無しさんNGNG
         ヘ  o ,    ── /   __,   /  _,   /_/_/       __,   /
          /  \ ´   ── /        /   ─'  /    _       / 
         _/    \   __ /   ___/   ___/     /   ___/
                                     ̄ ̄ ̄
                    _ , ― 、
                  ,−'  `      ̄ヽ_
                 ,'            ヽ
                (   `ー'ー'ヽ`ー'ー'ヽ  )        
               (  ノ ''''''   '''''':::::::ヽ  )
               ( . )(●),   、(●)、.:( ) +
               ( )   ,,ノ(、_, )ヽ、,, .::::( )    <ヨン様が華麗に4get!
               . ヽ )   `-=ニ=- ' .:::::::|ノ  +
                  \  `ニニ´  .:::::/      +
               ,,.....イ.ヽヽ、ニ__ ーーノ゙-、.
               :   |  '; \_____ ノ.| ヽ i






0005デフォルトの名無しさんNGNG
ぼるじょあスレッドキターーーーーーーーーーーーーーーーーーーーーーーーーー!!!!!!
>>1
GJだYO!
0006終了しますた。。。NGNG
真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ
0007終了しますた。。。NGNG
真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ
0008デフォルトの名無しさんNGNG
>>1
トリップついていないぞ。
0009ぼるじょあ ◆yBEncckFOU NGNG
(・3・)エェー ただの付け忘れだYO
0010デフォルトの名無しさんNGNG
>>1 乙オツ
0011前スレ990-972NGNG
>>1乙
0012デフォルトの名無しさんNGNG
>前スレ993
使った数字何回でも使ってよければ0000以外何でもできると思うぞ
0013デフォルトの名無しさんNGNG
>>13
結論から言うと、4つの数字を一回ずつ使って10にするという昔からある算数パズル。
poland.txtを取り込んで逆ポーランドから演変換するのは作ったけど
もともとの課題がそれでいいのかどうかわからんので保留中。
0014デフォルトの名無しさんNGNG
数学スレ池
0015デフォルトの名無しさんNGNG
[2] 問題:音源と幾何情報を1chとする音声のマルチチャネル伝送
[3] 環境
 [3.1] OS:Win
 [3.2] コンパイラ:Visual Studio
 [3.3] 言語:C/C++/どちらでも
[4] 期限:2004年12月27日午前中

チャットくらいはなんとかなったのですが
音声通信の所がどうも理解できません。
ヒント程度でいいので、よろしくお願いいたします。
0016デフォルトの名無しさんNGNG
>>15
そんな短期間で作成して提出しなければならない宿題なのか?
0017デフォルトの名無しさんNGNG
>16
いえ、もうちょっと猶予があったんですが
自分でなんとかしようともがいているうちにこんな状態に‥orz
0018デフォルトの名無しさんNGNG
仕事を宿題と偽ってここにうpすうrな
0019デフォルトの名無しさんNGNG
仕事じゃなくて釣りだろ。
仕事でちょっとでもプログラムやってるようなら、こんな馬鹿くさい質問の仕方ができるわけない。
0020デフォルトの名無しさんNGNG
てか、躓いてるのはCじゃないじゃん。
環境依存だし。
0021デフォルトの名無しさんNGNG
俺様がクールにあげてやるぜ
0022デフォルトの名無しさんNGNG
クールとフールの違い分かる?
0023デフォルトの名無しさんNGNG
>>15
oggに変換してソケット?
0024デフォルトの名無しさんNGNG
俺様がフールにあげてやるぜ
0025しゅんぺい ◆Ib0wMmHGGI NGNG
[1] 授業単元:
[2] WAVEファイル(PCMでステレオ・モノラルなどの各種形式は問わない)のデータの位相を反転させ、元のデータと合成することによって、無音になることをプログラムを作成し実証しなさい。
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ(バージョン): Visual Studio6
 [3.3] 言語:C
[4] 期限:2005年01月15日 8:50まで
0026デフォルトの名無しさんNGNG
>>25
形式を指定して下さい。あなたが。
0027デフォルトの名無しさんNGNG
当たり前すぎて宿題なんだろうか・・・・・?
0028デフォルトの名無しさんNGNG
すみません、どなたか36代目のスレッドのファイルくれませんか?
0029デフォルトの名無しさんNGNG
>>28
http://data.uploda.net/anonymous/etc2/dat3/upload25020.html
いいろだが無かった orz
0030デフォルトの名無しさんNGNG
皆さん、冬休みの宿題は早めに依頼しておきましょうねぇage
0031しゅんぺい ◆Ib0wMmHGGI NGNG
>>25
どうやら、形式を問わないとは、モノラルでもステレオでも8bitでも16bitでも、どの形式でも読み込めるということらしいです。
0032デフォルトの名無しさんNGNG
形式を判定する関数くらいは作ってくれないと
0033しゅんぺい ◆Ib0wMmHGGI NGNG
すみません。
でも、素人的な見解ですけど、データ部分について、位相反転させればいいってことは、ステレオ、モノラルは問わないってことですよね?
後、必要な情報は、8bitか16bitだけってことですから・・・・。
生意気な口利いて申し訳ないのですが、waveファイルから8bitか16bitのデータを読み出して、そのまま保存するプログラムを作成してもらえませんか?
残りの合成やら、他の事に関しては、私が自分でやります。お願いします。
0034デフォルトの名無しさんNGNG
だからお前が形式を判定するプログラム作れよ。
プログラミングとしては、合成やらなんやらするよりよっぽど簡単な作業だろ。
WAVEフォーマットについて調べるのが面倒とか言うなよ?
0035デフォルトの名無しさんNGNG
> そのまま保存するプログラムを作成してもらえませんか?

氏ね。
0036デフォルトの名無しさんNGNG
任意の数を入力して入力し終わったら、そこからランダムで6個の数字を
取り出すプログラムを教えて下さい。
0037デフォルトの名無しさんNGNG
int i=atoi(gets()),j=0,a[20];while(i){a[j]=i%10;i/=10;j++;}
j--;
for(i=0;i<6;i++)printf("%d\n",a[bound_rand(0,j)]);
0038デフォルトの名無しさんNGNG
JPEGからPNG
PNGからGIP
GIFからBMP
上記プログラムを別々に作成しなければいけません。
環境はVC6.0またはBorlandC++でも可です。
1月4日までに必要なのでよろしくお願いします。
可能ならどこかのサイトにアップしてください。
だめならここに分割して乗せてください。
0039デフォルトの名無しさんNGNG
char s[22];//NOTE:スタック溢れの危険
…gets(s)…

int b_rand(lo,hi)int hi,lo;
{
//RAND_MAXとrand()でかけ
}
0040デフォルトの名無しさんNGNG
ただでやるもんか
0041デフォルトの名無しさんNGNG
画像の変換めんどくせえよ・・・
0042デフォルトの名無しさんNGNG
補足です。
JPEGからPNGとありますが直接が難しい場合は
JPEG⇒BMP⇒PNG
でもかまいません。ただ、既存のライブラリを使ってはだめといわれました。
よろしくお願いいたします。
0043デフォルトの名無しさんNGNG
できたら金くれる?
0044デフォルトの名無しさんNGNG
1モリタポあげる
004542 ◆opL87fRjm. NGNG
>>43
私が理解できて自分で先生に説明できるぐらいわかりやすいものを作っていただけるのでしたら。
一つあたり5000円でいかがでしょうか?
0046デフォルトの名無しさんNGNG
断る
004742 ◆opL87fRjm. NGNG
>>46
わかりやすいものは作れないってことでしょうか?
ある程度までなら妥協しますが・・・
0048デフォルトの名無しさんNGNG
ま、4日まで頑張れ。LZ77展開くらいまでは作れるだろ。
0049デフォルトの名無しさんNGNG
て言うかそんなもん5000円で作るくらいだったら商用ライブラリにするよ。
0050デフォルトの名無しさんNGNG
そういえば前、中間記法で書かれた計算式の文字列を計算するだけのコード書いて
1万貰ったな。
0051デフォルトの名無しさんNGNG
>>36
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <vector>

int main()
{
    std::srand(static_cast<unsigned int>(std::time(0)));
    std::vector<int> v;
    int temp;
    while (std::cin >> temp)
        v.push_back(temp);
    std::random_shuffle(v.begin(), v.end());
    if (v.size() >= 6)
        for (int i = 0; i < 6; ++i)
            std::cout << v[i] << std::endl;
    else
        std::cout << "指定した数が少ないです" << std::endl;
    return 0;
}
0052デフォルトの名無しさんNGNG
>>51
キサマそれでもC++使いか!

#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <vector>

int main(){
std::srand(static_cast<unsigned int>(std::time(0)));
std::vector<int> v;
std::copy(std::istream_iterator<int>(std::cin), std::istream_iterator<int>(), std::back_inserter(v));
std::random_shuffle(v.begin(), v.end());
if (v.size() >= 6)
copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, "\n"));
else
std::cout << "指定した数が少ないです" << std::endl;
}
005352NGNG
コンパイル通したらいろいろミスがあったorz
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <vector>
#include <iterator>

int main(){
std::srand(static_cast<unsigned int>(std::time(0)));
std::vector<int> v;
std::copy(std::istream_iterator<int>(std::cin), std::istream_iterator<int>(), std::back_inserter(v));
std::random_shuffle(v.begin(), v.end());
if(v.size() >= 6)
std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, "\n"));
else
std::cout << "指定した数が少ないです" << std::endl;
}
0054デフォルトの名無しさんNGNG
取り出すのは6個
std::copy(v.begin(), v.end() → v.begin(), v.begin() + 6
0055デフォルトの名無しさんNGNG
>>38
jpegもpngも仕様策定団体が公式サイトでライブラリを公開している。
従って、常識的にはそれを使うべきかと。
#GifはCompuServeが権利を持っているけどいいんだっけ?
005642 ◆opL87fRjm. NGNG
>>55
大学の宿題です。
ライブラリは使えません。
皆さんの実力を発揮してください。よろしくお願いします。
0057デフォルトの名無しさんNGNG
>>56
自分でやれ。
金払ってる親が泣くぞ。
何のために大学に行っている?
学ぶ気がないならさっさと辞めて社会に出た方がよい。
0058デフォルトの名無しさんNGNG
>>56
ばれたら落ちる。やめなって。ここでできるのは情報収集だけだよ。
005942 ◆opL87fRjm. NGNG
>>58
そうですか・・・
ではせめてヒントをお願いします。
元ネタになるソースがあればもっとうれしいです。
0060デフォルトの名無しさんNGNG
ここで解答しても、解答者に著作権があるわけではないから、質問者が自分でやった
と言っても全然問題ないんじゃないの?
0061デフォルトの名無しさんNGNG
libpngとか良く無いかい?
0062デフォルトの名無しさんNGNG
以下抜かり無いか?

ファイル入出力の基礎。
jpeg,gif,pngの関連ソースと仕様の入手。
コーディングの基礎。

winで動くlib*などのソースは、cygwinのミラーから取れ。susie,imagemagickなどのソースはgoogleで探せ。
0063デフォルトの名無しさんNGNG
>>60
何を訳のわからんことを。
0064デフォルトの名無しさんNGNG
いいか。今から支障が出ない程度に睡眠時間を削れ。掲示板にレスする暇もコンパイルする暇もないぞ。ビットマップの知識はあるな?

まずファイルのデータ構造を知り、ファイル全体を一気に読み込んでみろ。
0065デフォルトの名無しさんNGNG
int main(int argc,char *argv[])
{
char data[1024 * 1024 * 1024];

FILE *fp = fopen("data.jpg","r");

fread(fp,1,1024 * 1024 * 1024,data);

fclose(fp);

return 0;
}

次は何やればいい?おっさん。
006642 ◆opL87fRjm. NGNG
>>64
ビットマップの知識はあります。

>まずファイルのデータ構造を知り、ファイル全体を一気に読み込んでみろ。
申し訳ありません。おっしゃっている意味が今ひとつわかりません。
0067デフォルトの名無しさんNGNG
次にどんな汚い方法でもいい、読んだもんに基づいて、構造体データとビットマップを作れ。
0068デフォルトの名無しさんNGNG
あと6日でjpeg,gif,pngの独自実装か。死ねるな。
006942 ◆opL87fRjm. NGNG
>>67
もしかして私から変われていますか?
007042 ◆opL87fRjm. NGNG
>>69
誤爆です。

>>67
もしかして私からかわれていますか?
0071デフォルトの名無しさんNGNG
返事は短く!

ファイル種ごとに分析用の関数を分けろ。画像の仕様をみれば構造が分かる
0072デフォルトの名無しさんNGNG
ややこしいことがあったら、手短にメモれ
0073デフォルトの名無しさんNGNG
質問スレで質問したらなんかアホがいました。・・・と。
0074デフォルトの名無しさんNGNG
皆ども、状況報告せよ!
0075デフォルトの名無しさんNGNG
読み込みコード完成!
0076デフォルトの名無しさんNGNG
よろしい。では書き込みコードをかけ
0077デフォルトの名無しさんNGNG
構造体って何ですか
0078デフォルトの名無しさんNGNG
だまれ!偽物め!
007942 ◆opL87fRjm. NGNG
すみません。もう一度聞きたいことを整理します。

JPEGからPNG、PNGからGIP、GIFからBMP
上記変換プログラムを別々に作成しなければいけません。

ただ直接変換が難しければJPEG→BMP→PNGといった感じでもかまいません。

C,C++は一通りできます。ビットマップの構造も知っています。

アドバイスよろしくお願いします。
0080デフォルトの名無しさんNGNG
こら、まだjpeg,gif仕様を入手してないのか!急げ!
0081デフォルトの名無しさんNGNG
状況報告せよ!
008242 ◆opL87fRjm. NGNG
>>80
すみません。どこで入手できるんでしょうか?
ぐぐっているんですけどそれっぽいのがでてこなくて・・・
0083デフォルトの名無しさんNGNG
>>82
http://www.wotsit.org/search.asp?s=jpeg
http://www.wotsit.org/search.asp?s=gif
0084デフォルトの名無しさんNGNG
司令官は怠け者に与える時間はないぞ!報告せよ!
0085デフォルトの名無しさんNGNG
>>84
じゃあさっさとバイト行け。
008642 ◆opL87fRjm. NGNG
>>83
ありがとうございます。

英語なのでどこまでできるかわかりませんが読んでみます。

日本語があったらうれしいけど贅沢はいえませんよね・・・
0087デフォルトの名無しさんNGNG
各ファイル種の構造がわかったら、報告せよ!
0088デフォルトの名無しさんNGNG
今、場合分けしてバイト列を書いているところです。
0089デフォルトの名無しさんNGNG
こらー、私語を慎んで専念しろ!
0090デフォルトの名無しさんNGNG
場合分けでは、{}で内包的表記をするとよい。
0091デフォルトの名無しさんNGNG
何だこの新入りは?
自動翻訳も電子辞書も使えないのか
0092デフォルトの名無しさんNGNG
JPEG解読しました!
0093デフォルトの名無しさんNGNG
よろしい。では、関数の独立性に注意して、先のファイル全体読み込みコードとJPEG分析コードを組み合わせてみよ!急げ!
0094デフォルトの名無しさんNGNG
時間掛りそうなトラブルがあれば必ず報告せよ!
0095デフォルトの名無しさんNGNG
jpegっていうとウェーブレット変換とかもやるの?
興味あるんだけど
0096デフォルトの名無しさんNGNG
JPEGファイルの構造も分かり、
何とか全部自分でできるような気がしてきたので、もう大丈夫です。迷惑をお掛けして済みませんでした。これまでどうもありがとうございました。
0097デフォルトの名無しさんNGNG
もうなにがなんだか
009842 ◆opL87fRjm. NGNG
GIFのフォーマットは大体わかりました。
ただ、LZWの圧縮方法がよくわかりません。
申し訳ありませんがソースか詳しく解説しているホームページがあれば教えていただけないでしょうか?
0099デフォルトの名無しさんNGNG
ソースを教えたらダメだよ〉皆さん
0100デフォルトの名無しさんNGNG
LZW法は特許で守られています。
0101デフォルトの名無しさんNGNG
アドレス教えたらダメね<皆様
0102デフォルトの名無しさんNGNG
あー、あれだ。せっかくだから特許に抵触しない展開法とやら使え。
0103デフォルトの名無しさんNGNG
>>100
いつの話をしているんだよ。
0104デフォルトの名無しさんNGNG
ワトソン君、もうつまづいたのかい? LZW法が違法なのにGIF読み込みのフリーウェアがあるのはどうしてだろうなー。世界のどこかに答えがあるだろうか。
010542 ◆opL87fRjm. NGNG
>>102
詳しくご教授願えないでしょうか?
0106デフォルトの名無しさんNGNG
>>105
特許なんてとっくの昔に切れたから心配せずに使え。
0107デフォルトの名無しさんNGNG
特許切れてるから抵触する展開法なんか無いような・・・
010842 ◆opL87fRjm. NGNG
>>106
使う前に方法がわかりません。
ヒントとしてホームページだけでも教えていただけないでしょうか?
0109デフォルトの名無しさんNGNG
やれやれ、webのキーワード検索も知らないと見える。
0110デフォルトの名無しさんNGNG
情報Aの教科書(高校)に検索の仕方が書いてある。
良くも悪くもそんな時代です。
0111デフォルトの名無しさんNGNG
googleのヘルプを見て勉強しな
0112デフォルトの名無しさんNGNG
ー終了ー
0113デフォルトの名無しさんNGNG
#include <stdio.h>
main()
{
int i,j;
for(i=2;i<101;i++)
{
for(j=2;j<101;j++)
{
if(i%j==1)
{
if(i==j)
{
printf("%d\n",i);
}
}
}
}
}
2から100までの数字の素数を求めるプログラムを考えたのですが、
どう間違っているのか教えて頂けませんか?
自分の考え方は、素数は2以上の数ではその素数でしか割れないので、
余りが1のときにi=jになると考えたのですが、
実行結果はPress any key to continueとしか表示されません。よろしくお願いします。
0114デフォルトの名無しさんNGNG
if(i%j==1)
{
if(i==j)
{

等しい数で割って1余るっておかしいだろ
0115デフォルトの名無しさんNGNG
>>114
そうですね、すみません・・。
商と余りを逆に考えてました・・。
011651NGNG
>>52
できるだけ教育的プログラムを書いたわけだが。
0117デフォルトの名無しさんNGNG
>>113

#include <stdio.h>

int main(int argc, char *argv[])
{
int i, j = 0, k, sosuu[50];
sosuu[j] = 2;

for(i = 3; i <= 100; i++){
for(k = 0; k <= j; k++)
if((i % sosuu[k]) == 0)
break;
if(k == j + 1)
sosuu[++j] = i;
}
for(k = 0; k <= j; k++)
printf("%2d\n", sosuu[k]);

return 0;
}

ガッツだ。
0118デフォルトの名無しさんNGNG
>>116
ふーん
0119デフォルトの名無しさんNGNG
>>33
もう見てないかもしれないが、それはACMにも対応しなければならないのか?
それとも無圧縮WAVだけに対応すればいいのか?それによってすることが若干
変わって来るんだが。
0120デフォルトの名無しさんNGNG
>>119
どの形式でも読めるようにって注文だ
0121デフォルトの名無しさんNGNG
('A`)マンドクセ
0122デフォルトの名無しさんNGNG
こいつをCに書き直して使え。
ttp://www.vector.co.jp/soft/win95/prog/se214677.html
0123デフォルトの名無しさんNGNG
汚ねぇソースだな
0124デフォルトの名無しさんNGNG
>>113
眠れないから、java勉強しつつ作ってみた。
#include<stdio.h>

int main(void){
int i,j,k;
k=0;

for(i=2;i<=100;i++){
for(j=2;j<=100;j++){
if((i!=j) && (i%j == 0))
break;
if((i==j) && (i%j == 0)){
k++;
printf("素数%d個目=%d\n",k,i);
break;
}
}
}
return 0;
}
気合だ!
0125デフォルトの名無しさんNGNG
age
012642 ◆opL87fRjm. NGNG
GIP→BMPは大体できました。
簡単な動作確認はとれたので時間が余ったらちゃんとしたテストをすることにします。

JPEGの方で相談なんですが、処理方式に
・基本DCT変換
・拡張DCT変換
・可逆方式
・ハイアラーキカル方式
の4つがあるようなのですが、ハイアラーキカル方式に関する情報が手に入りません。
ここで回答してくださっている方はとても優秀な方だと思いますので、
ハイアラーキカル方式の変換ロジックを作製していただけないでしょうか?
よろしくお願いします。
0127デフォルトの名無しさんNGNG
他人に丸投げしてもやってもらえるわけないだろうに。
とりあえず、自分で書けるとこまで書いたモノを出してみたら?
努力の跡が認められればヒントくらいはもらえると思うよ
0128デフォルトの名無しさんNGNG
>>126
ttp://www.cs.sfu.ca/~bbastani/personal/courses/820/Assg2/
0129デフォルトの名無しさんNGNG
>>42
ここは宿題投下スレだ。

[C言語なら俺に聞け]

http://pc5.2ch.net/test/read.cgi/tech/1104114259/l50

こっちにいけ
013042 ◆opL87fRjm. NGNG
>>129
?
宿題投下しましたが跳ね返されたんですが?
C言語は対応できない、と言っていますか?
0131デフォルトの名無しさんNGNG
130
ホットケーキ
0132デフォルトの名無しさんNGNG
変換ルーチン3×2=6個必要。このペースじゃ間に合わないよ。コンパイルする暇ないぞ!急げ!
0133113NGNG
>>117,124
ありがとうございます。
自分は素数未満の2以上の数で素数は割り切れないのでこんな感じでやりました。
#include <stdio.h>
main()
{
int i,j;
for(i=2;i<101;i++)
{
for(j=2;j<101;j++)
{
if((i>j)&&(i%j==0))break;
if(i==j) printf("%4d",i);
}
}
}
0134デフォルトの名無しさんNGNG
>>130が気持ち悪いよー
「ですが?」
この語尾気持ち悪いよー
0135デフォルトの名無しさんNGNG
>>133
求める素数の個数が増えてくると>>117の方が爆発的に速いと思う。
0136デフォルトの名無しさんNGNG
すいません、冬休みの課題がわからないので
お願いします。

英文のテキストファイルを入力し、アルファベットの出現度数
と割合を表示するプログラムを以下の仕様に基づいて作れ。

入力:
英文テキストのファイル名(main関数で入力)

処理1(input関数):
ファイルを開き、その内容を一文字ずつ読み込み
アルファベット文字ごとに数える(大文字、小文字は区別しない)
・引数…ファイル名(char*)、アルファベット勘定用配列(int*)
・戻り値…なし(void)
0137136NGNG
処理2(sort関数):
ファイルの出現度数をキーに降順(大きい順)に並べ替える
(どのアルファベットかも分かるように)
・引数…アルファベット文字用配列(char*)、
    アルファベット勘定用配列(int*)
・戻り値…なし(void)

出力(output関数):
アルファベットの文字、その出現度数と割合、割合に応じて
「*」を表示したグラフを新しいファイルと画面に表示する。
・引数…アルファベット文字用配列(char*)、
    アルファベット勘定用配列(int*)
・戻り値…なし(void)
0138136(ここからヒント)NGNG
アルファベット文字用配列:
char a[26];
a[0]〜a[25]に'A'コード(65)〜'Z'コード(90)までを入力しておく。
あとで、ソートと出力の際に利用する。

アルファベット勘定用配列:
int b[26];
'A'の出現度数をb[0]へ、以下1ずつずらして'Z'の出現度数
はb[25]へ勘定するようにする。
0139136NGNG
input関数:
ファイルを開いてファイルの内容を1文字ずつ読み込む。
int c;
FILE *fp;
if(NULL==(fp=fopen(fi,"r"))){
fprintf(stderr,"error:file open[%s].\n,fi);
exit;
}
while(EOF!=(c=getc(fp))){

(アルファベットの勘定)
  (アルファベットだったら大文字にして勘定する)

}
0140(・∀・)イイ!! ◆LC7P44pfbg NGNG
大晦日に、人の宿題をするのも(・∀・)イイ!!
0141136NGNG
sort関数:
sortでアルファベット文字用配列a[]とアルファベット勘定
用配列b[]の両方の要素を同時に入れ替える。
(入れ替えたときにアルファベット文字がどこに対応するか
分からなくならないようにする)

例(降順)
int b[5]={3,1,4,5,2},tmp;
for(i=0;i<4;j++){
for(j=i+1;j<5;j++){
if(b[i]<b[j]){
tmp=b[i];
b[i]=b[j];
b[j]=tmp;
}
}
}
0142デフォルトの名無しさんNGNG
>>136
初仕事。出来るだけ君の要望に沿ってみた。
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>

void input(char *fi, int *b){
    int c;
    FILE *fp;
    if (NULL == (fp = fopen(fi, "r"))){
        fprintf(stderr, "error:file open\[%s\].\n", fi);
        exit(1);
    }
    while (EOF != (c = getc(fp))) if (isalpha(c)) b[toupper(c) - 'A']++;
    fclose(fp);
}

void sort(char *a, int *b){
    int i, j, tmpi;
    char tmpc;
    for (i = 0; i < 25; i++)
        for (j = i + 1; j < 26; j++)
            if (b[i] < b[j]){
                tmpi = b[i];
                b[i] = b[j];
                b[j] = tmpi;
                tmpc = a[i];
                a[i] = a[j];
                a[j] = tmpc;
            }
}
0143142(続き)NGNG
void output(char *a, int *b){
    int i, j, sum = 0;
    printf("character:frequency:percentage\n");
    for (i = 0; i < 26; i++) sum += b[i];
    for (i = 0; i < 26; i++){
        printf("%c:%3d:%3d:", a[i], b[i], (int)((double)b[i] / sum * 100));
        for (j = 0; j < (int)((double)b[i] / sum * 50); j++) printf("*");
        printf("\n");
    }
}

int main(void){
    char fi[256], a[26];
    int b[26], i;
    printf("input file name:");
    scanf("%[^\n]s", fi);
    for (i = 0; i < 26; i++) b[i] = 0;
    input(fi, b);
    for (i = 0; i < 26; i++) a[i] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[i];
    sort(a, b);
    output(a, b);
    return 0;
}
0144(・∀・)イイ!! ◆LC7P44pfbg NGNG
正月に人の宿題をするのも(・∀・)イイ!!
0145デフォルトの名無しさんNGNG
正月に宿題を出す方も解く方もどうかと思うが
0146136NGNG
>>142
ありがとうございます!
本当に助かります・・・。極限感謝!
>>145
そんなこと言わないで・・・。
0147デフォルトの名無しさんNGNG
おれも解きてえ。
仕事が詰まりすぎてるからぜひ現実逃避させてくれ。
0148デフォルトの名無しさんNGNG
1.任意のテキストファイルから英単語を抽出せよ。
2.文字列ポインタで与えられた単語群から最長のしりとり列を作れ。
3.対話的にしりとりをせよ。
0149デフォルトの名無しさんNGNG
早く解けよ
0150デフォルトの名無しさんNGNG
>>148 1.
#include <cctype>
#include <iostream>
#include <iterator>
#include <fstream>
#include <set>
#include <string>
int main()
{
    std::string filename;
    std::cout << "input file name:"; std::cin >> filename;
    std::string str(std::istreambuf_iterator<char>(std::ifstream(filename.c_str()).rdbuf()), std::istreambuf_iterator<char>());
    std::set<std::string> words;
    const char delimiters[] = " ,.\t\n:';!?\"";
    std::string::size_type start_index = str.find_first_not_of(delimiters);
    while (start_index != std::string::npos)
    {
        std::string::size_type end_index = str.find_first_of(delimiters, start_index);
        if (end_index == std::string::npos) end_index = str.length();
        if (end_index - start_index != 0)
        {
            std::string word(str.substr(start_index, end_index - start_index));
            if (words.find(word) == words.end()) words.insert(word);
        }
        start_index = str.find_first_not_of(delimiters, end_index);
    }
    for (std::set<std::string>::iterator first = words.begin(), last = words.end(); first != last; ++first)
        std::cout << *first << ' ';
    return 0;
}
0151デフォルトの名無しさんNGNG
しりとり。
0152 【大凶】 【844円】 NGNG
キタ━━━━━━━━━━━(゚∀゚)━━━━━━━━━━━!!!
0153 【570円】 !mikujiNGNG
test
0154 【大吉】 【1678円】 NGNG
0155デフォルトの名無しさんNGNG
おみくじどうやってやるんですか
0156デフォルトの名無しさんNGNG
>>155
名前欄に記入
御神籤:!omikuji
お年玉:!DAMA
0157!DAMANGNG
tes
0158デフォルトの名無しさんNGNG
>>156
間違えた小文字で!damaね
0159 【吉】 【503円】 NGNG
てs
0160デフォルトの名無しさんNGNG
>>156
どうも。
0161 【吉】 【1638円】 NGNG
oppai
0162 【小吉】 【1255円】 NGNG
test
0163デフォルトの名無しさんNGNG
これからはテスト禁止にしますね。
0164 【大凶】 【402円】 NGNG
もっとも宿題こないとこのスレやることないし
0165デフォルトの名無しさんNGNG
>>148 2.
トリビアの種とttp://al.cs.tuat.ac.jp/~yshinano/shiritori/を参照。

>>148 3.
>>148 2.を参照。
0166デフォルトの名無しさんNGNG
C言語です。お願いします。
10人のアルファベット表記の名前を
    (1)マージソート
    (2)クイックソート
で辞書順に出力するプログラムを各々作成せよ。
10人の名前は2次元配列で作成しmain関数以外の
関数も作成して実行せよ。
ってのが宿題なんですが、できればstrcpyを使わず
strcmpで作っていただきたいですm(_ _)m
お願いしますm(_ _)m
0167デフォルトの名無しさんNGNG
>>166
マージソートがどういう性質のものかわかってんのか?
0168デフォルトの名無しさんNGNG
配列の型はポインタの型に変換できる。Cでは通常、文字列を0=='\0'で終る文字の配列のように扱う。つまり、文字の二次配列は、文字列ポインタのポインタに変換できる。
char names[10][MAX_NAMELEN]={略};
char*pch; int i=0;
pch=names[i]; //これはOK
0169デフォルトの名無しさんNGNG
>>167
一応わかってるんですが〜自分でやったのがstrcpyを
使ってしまうんです・・・。
一応貼り付けます。
#include <stdio.h>
#include <string.h>
void merge(char [][10],int,int,int,int);
void merge_sort(char [][10],int,int);
int main()
{
int i;
char name[][10] = {
"suzuki","kimura","sato","watanabe","takeuti",
"ito","kobayasi","moroisi","hukuda","maejima",
"iwasaki","yanagida","saito","toyodome","umino",
"endo","hasimoto","morita","yosida","watahiki",
"onai","isibasi","aizawa","isitobi","sugaya",
"huruta","onnoda","noguti","usuba","doguti",
"mori","tokunaga","tani","watahiki","simizu",
"jono","hukasawa","hosoyati","yamauti","minowa",
"sakuragi","rukawa","anzai","yazawa","soeta",
"baba","sakai","kobayasi","tuemura","amarume",
};
0170デフォルトの名無しさんNGNG
puts("--- ソート前 ---");
for( i = 0; i <=49; i++){
printf("%s\n",name[i]);
}
merge_sort(name, 0, 49);
puts("--- ソート後 ---");
for( i = 0; i <= 49; i++){
printf("%s\n",name[i]);
}
return 0;
}
0171デフォルトの名無しさんNGNG
void merge(char name[][10],int begin1,int end1,int begin2,int end2)
{
int left = begin1, right = begin2;
int k = 0, i;
char tmp[50][10] = {0};

/* 左側か、右側か、どちらか短い方の終端まで比較処理を行なう */
while( (left <= end1) && (right <= end2) ){
if(strcmp(name[left], name[right]) < 1){
strcpy(tmp[k++], name[left++]);
}else{
strcpy(tmp[k++], name[right++]);
}
}

/* 左側が残っていれば、すべてコピー */
while( left <= end1 ){
strcpy(tmp[k++], name[left++]);
}

/* 右側が残っていれば、すべてコピー */
while( right <= end2 ){
strcpy(tmp[k++], name[right++]);
}

/* 整列済みデータの書き戻し */
for(i = 0; i < k; ++i){
strcpy(name[begin1+i], tmp[i]);
}
}
0172デフォルトの名無しさんNGNG

void merge_sort(char name[][10],int begin,int end)
{
int mid;
char tmp[10] = {0};

if(end == begin)
return;

if(end == begin+1){
if(strcmp(name[begin], name[end]) > 0){
/* 値交換 */
strcpy(tmp, name[begin]);
strcpy(name[begin], name[end]);
strcpy(name[end], tmp);
}
return;
}
mid = (begin + end) / 2;
merge_sort(name, begin, mid); /* 左側の部分ソート */
merge_sort(name, mid+1, end); /* 右側の部分ソート */
merge(name, begin, mid, mid+1, end); /* 併合処理 */
}
0173デフォルトの名無しさんNGNG
[10][]だよ。高次が左
0174デフォルトの名無しさんNGNG
>>167
こんな感じです。ちなみに50人でやった場合です。
0175デフォルトの名無しさんNGNG
関数の仮引数に配列使うな。ポインタに直せ
0176デフォルトの名無しさんNGNG
はい。直しておきます。
それとどうすればstrcpyを使わない
プログラムにできるんですか?
0177デフォルトの名無しさんNGNG
実体をコピーせずにindexやpointerで参照する配列を作ると早い
0178デフォルトの名無しさんNGNG
この手の宿題見るといつも思うんだけどさぁ、
文字列処理なんてC言語でするなよ。
せめてC++でstd::string型使って。

俺の経験上、Cで出された課題もC++で書いて出して、
おまけで「いまどきCで文字列処理なんてやってんじゃねぇよ」
(実際提出する際には口調は穏やかに)って書いとけば優もらえるよ。
0179デフォルトの名無しさんNGNG
>>178
それが〜C言語でやらなきゃいけないんですよ〜。
できればクイックソートの問題解いてもらえませんか?
0180デフォルトの名無しさんNGNG
>>179
いや、だから、先生に「C言語で」といわれてるにもかかわらず、
C++で出した上に文句書いて優もらえた経験がある。

俺の環境が恵まれてるのか?
0181デフォルトの名無しさんNGNG
>>180
教授の人格にもよります。
オレの習ってる教授ではダメなんですよ〜。
0182デフォルトの名無しさんNGNG
褒める先生も居れば怒る先生も居るだろう。
指定通りに書けば怒られることはない。
0183デフォルトの名無しさんNGNG
そういうわけで誰かクイックソートの問題を
解いていただきたいのですが〜・・・。
0184デフォルトの名無しさんNGNG
実力あるんだから、自分でやるんだ。実体をコピー&ソートしないで、別の配列に(弱い)参照を用意してそれをソートすろよ
0185デフォルトの名無しさんNGNG
しまいにはstring algorithms library使って
「標準ライブラリなんか使ってんじゃねぇよ」ってか?
ただのDQNだな
0186デフォルトの名無しさんNGNG
qsortという便利な関数を使うとなお良い(使えれば)。
0187デフォルトの名無しさんNGNG
ついでに、const,registry,restrictedキーワードも使いこなしてくれれば…
0188デフォルトの名無しさんNGNG
つか、ソートの勉強するのにqsort使ったら本末転倒やん。
0189デフォルトの名無しさんNGNG
アセンブリとクロスレファレンスも吐き出してくれないか
0190デフォルトの名無しさんNGNG
ついでにx86アセンブリ勉強して、ソートをpentium用に最適化してくれないか。
0191デフォルトの名無しさんNGNG
なんで逃げられたんだろ…
0192デフォルトの名無しさんNGNG
非標準の関数を1ミリ秒早くするのにものすごい苦労があるのさ
0193デフォルトの名無しさんNGNG
「標準入力から C 言語などのプログラムテキストファイルを読み込み、
使用している関数名を頻度順に並べなさい。
これは宣言文と実際の式のどちらも含みます。
なお、同じ頻度の関数は辞書順に並べなさい。
レポートでは、実行例として、作成したソースプログラムをプログラムに
入力した出力を示しなさい。
なお、取り扱える行数は実行時のコンピュータのメモリーのサイズのみに
依存しなければなりません。勝手な上限を設けてはいけません。
但し、関数名の長さは高々 255 文字と仮定して良い。」
という課題が出てるのですができないので教えてください。
10日までによろしくい願いします。
0194デフォルトの名無しさんNGNG
「標準入力から C 言語などのプログラムテキストファイルを読み込み、
              ~~~~~~
0195デフォルトの名無しさんNGNG
「標準入力から C 言語のプログラムテキストファイルを読み込み、
使用している関数名を頻度順に並べなさい。
これは宣言文と実際の式のどちらも含みます。
なお、同じ頻度の関数は辞書順に並べなさい。
レポートでは、実行例として、作成したソースプログラムをプログラムに
入力した出力を示しなさい。
なお、取り扱える行数は実行時のコンピュータのメモリーのサイズのみに
依存しなければなりません。勝手な上限を設けてはいけません。
但し、関数名の長さは高々 255 文字と仮定して良い。」
という課題が出てるのですができないので教えてください。
10日までによろしくい願いします。
0196デフォルトの名無しさんNGNG
答える必要ないな。自分でやれ。
0197デフォルトの名無しさんNGNG
パーサ合成技術
0198デフォルトの名無しさんNGNG
>>195
い願いされてもな。パースがむばれ
0199デフォルトの名無しさんNGNG
>>195
とりあえずcdecl拾ってくりゃ8割方完成
0200デフォルトの名無しさんNGNG
>>195
提出日当日に

「先生!
#define M(a, b) a##b
とか
#define M(a) #a
の扱いが判らなかったので、出来ませんですた」

と言えば、多分許してくれると思う。
0201デフォルトの名無しさんNGNG
>>195
括弧の直前にある名前は関数名として考えていいと思う。
それが{}に囲まれている範囲内なら関数呼び出しで、
トップレベルなら宣言ということにしていいんじゃないかな。

実際には関数の中で関数の宣言をすることは可能なんだけど、
やってることはめったに無いってことで。
0202デフォルトの名無しさんNGNG
gcc2.Xから.yファイル拾ってきて関数のとこだけ書き出すようにすりゃ完成。
0203デフォルトの名無しさんNGNG
>>195とは別人なんですけど、>>201読んで
#include<stdio.h>
main()
{
int func( char *str)
{ printf(str); }
func("func()");
}
とやったら通ったんですが(gcc)、こういうのは認められてるやり方なんですか?
0204デフォルトの名無しさんNGNG
一文字入力させるときどういうふうに書いてますか?
0205デフォルトの名無しさんNGNG
>>203
gcc拡張。VCとかだと通んない。
0206201NGNG
>>203,205
関数定義の中で関数定義をするのは規格で認められていないかもしれないが、
(プロトタイプ)宣言だけなら可能なはず。
0207デフォルトの名無しさんNGNG
Dなら認められているよね。関数のネスト。
0208201NGNG
>>207
パスカルでもね。
0209デフォルトの名無しさんNGNG
冬休みの課題で出た問題がひとつだけわかりません……
ヒントだけでも結構ですので、どうかよろしくお願いします

[2] 入力されたデータがランダムかどうか判別するプログラムを作成せよ
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ(バージョン): gcc(3.3.5?)
 [3.3] 言語:C
[4] 期限:2005年01月07日23:59まで
0210デフォルトの名無しさんNGNG
不可能

つかネタだろ
0211デフォルトの名無しさんNGNG
>>210
無学だな。
0212デフォルトの名無しさんNGNG
>>209
ランダムを定義しないと
0213デフォルトの名無しさんNGNG
>>209
入力されるデータはどういう型なの?
0214デフォルトの名無しさんNGNG
・何をもって、ランダムとするか
・入力データってのは何であるか(数限定とか)
その辺がわかりません。ヒント下さい。
0215デフォルトの名無しさんNGNG
まぁ、ランダム判定の方法はいくらでもあるわけだが…
http://www.kinyuu.co.jp/report/rep000306.htm
0216デフォルトの名無しさんNGNG
// データの規則性の高さを返す。
// 全く乱雑な時、intの最大値を返す。
int kisokusei(void*data,size_t size);
0217デフォルトの名無しさんNGNG
で、結局ネタだったの?
0218209NGNG
任意のチューリングマシンが有限回のステップの後に停止するかどうかを判別するプログラムも課題で出ています。
これを落とすと卒業できなくなってしまいます!助けてください!!!!
0219デフォルトの名無しさんNGNG
度合いしか測定できねえべ。

「ランダムである」って言い切ってるしなあ
0220デフォルトの名無しさんNGNG
>>218
ネタですね。
0221デフォルトの名無しさんNGNG
>>218
落しとけ
0222デフォルトの名無しさんNGNG
ネタですな
0223デフォルトの名無しさんNGNG
TMの停止問題は有名
0224デフォルトの名無しさんNGNG
>>211
たまには数学も勉強しろよ?
0225デフォルトの名無しさんNGNG
>>224
ほげほげ!
0226デフォルトの名無しさんNGNG
>>224
先生!入力されたデータがランダムであるかどうか判定できない事を数学的に証明
してください!
0227デフォルトの名無しさんNGNG
>>226
たまには数学も勉強しろよ m9(^Д^)プギャー
ttp://members.at.infoseek.co.jp/nbz/ref/random.html
0228デフォルトの名無しさんNGNG
>>227
すごい!さすが先生です!こんな証明をなさるなんて!
0229デフォルトの名無しさんNGNG
>>227は本当にゲーデルの不完全性定理を完全に理解しているのだろうか…
0230デフォルトの名無しさんNGNG
負け惜しみ
0231デフォルトの名無しさんNGNG
冬休み早く終わらないかな。
0232デフォルトの名無しさんNGNG
年中夏休み冬休み
0233デフォルトの名無しさんNGNG
>>201
ANSI-C以前のソースを見ると山ほど出てくるぞ。
/* こんなのとか */
int func(foo)
char *foo;
{
char buf[BUFSIZ];
FILE *fopen();
FILE *fp = fopen(foo, "r");
int bar = fgets(buf, sizeof(buf), fp);
fclose(fp);
return bar;
}
0234デフォルトの名無しさんNGNG
C言語でお聞きしたいのですが、
ファイルの中に縦1列に並んだ2、3桁の数字を配列
に格納して表示しようとしてるんですが・・・
どのようにすればa[m]として
for(m=0;m==\0;m++)printf("%d%d",m,atoi(a))を実行
した時にm=0,1,2,...となってくれるのでしょうか?

0235デフォルトの名無しさんNGNG
あ、間違いです。
for(m=0;a[m]==\0;m++)printf("%d%d\n",m,atoi(a));
でした。
お願いします。
0236デフォルトの名無しさんNGNG
ちゃんと喋れ
0237デフォルトの名無しさんNGNG
言ってる意味がよくわからん
0238デフォルトの名無しさんNGNG
>>234-235
無理です。諦めましょう。
0239デフォルトの名無しさんNGNG
forの終了条件を日本語で説明しろ。

目的と対象をちゃんと記述しろ。例えば、ここに赤と青のボールがあった時に「ボール持って来て」と君が命令しても、すぐに対処できないし、聞き返すのも時間の無駄。
0240デフォルトの名無しさんNGNG
自己解決しました。ありがとうございました。
0241エスパーNGNG
C言語でお聞きしたいのですが、
ファイルの中に縦1列に並んだ2、3桁の数字を配列
に格納して表示しようとしてるんですが・・・
こんな感じで並んでいます
458
236
11
25
69
42
140
どのようにすればa[m]として
"458"を458に変換できて
for(m=0;m==\0;m++)printf("%d%d",m,atoi(a[m]))
を実行した時に
a[0], a[1], a[2], a[3]...
の中身を表示してくれるのでしょうか?
0242デフォルトの名無しさんNGNG
>>241
それでも言ってる意味がさっぱりわからん
0243デフォルトの名無しさんNGNG
>241に問題です。
atoi(a[m])の値は何を表すか?
上記のforループでの終了条件は、文法も論理も完全に間違っていますが、正しい終了条件を日本語で記述しなさい。
0244デフォルトの名無しさんNGNG
日本語がダメならスワヒリ語で機械にもよく分かるように終了条件を説明しろ。
0245デフォルトの名無しさんNGNG
ファイルから何行読み込んだか分かるか?
0246デフォルトの名無しさんNGNG
また逃げられたか…
0247デフォルトの名無しさんNGNG
自己解決しました。ありがとうございました。
0248デフォルトの名無しさんNGNG
>>243
atoi(a[m])1行ずつの数字をあらわすようにしたいです。
>>245
わかりません・・・。
0249デフォルトの名無しさんNGNG
>> どのようにすればa[m]として
>> "458"を458に変換できて
itoa

一行ずつなら\nごとにパースすればいいと思うが
0250デフォルトの名無しさんNGNG
何行来るか分からないのに全部配列に格納できないよ。型って知ってる?
int i; char s[行の最長の長さ];
fgetsで文字列をsに読み込む。
失敗したらやめる。
atoiでsを整数として解釈した結果をiに代入。繰り返し。
0251デフォルトの名無しさんNGNG
日本語おかしかった、スマソ

あとvector<int> aにつっこんでけばできるでそ
0252デフォルトの名無しさんNGNG
それなら
ファイルa.txtとb.txtには1行に1つ整数値が書かれている。
しかも小さい順にソートされている。a.txtとb.txtの整数値を
あわせてソートさせて表示するプログラムを書け。
というレポートがあるんですがこれは配列は使わない
ってことなんですか?
0253デフォルトの名無しさんNGNG
>252
#include<stdlib.h>
malloc, realloc, free
で格納場所を陣取っておけ
0254デフォルトの名無しさんNGNG
>253
すみません。どうやればいいかわかりません。
0255デフォルトの名無しさんNGNG
int*pi=NULL;
...
pi=(int*)realloc(sizeof(int)*n);
...
free(pi);
0256デフォルトの名無しさんNGNG
...realloc(pi, sizeof...
0257デフォルトの名無しさんNGNG
> ファイルa.txtとb.txtには1行に1つ整数値が書かれている。
> しかも小さい順にソートされている。a.txtとb.txtの整数値を
> あわせてソートさせて表示するプログラムを書け。

これなら配列は要らない
0258デフォルトの名無しさんNGNG
>255
よくわからないです。
つまり配列に格納はできないですよね?
0259デフォルトの名無しさんNGNG
>257
配列いらないのですか?
ではどのように考えればいいのですか?
0260デフォルトの名無しさんNGNG
>259
2ファイル同時に開いて小さい方の値を選んで出力していけ。
0261デフォルトの名無しさんNGNG
>260
わかりました。がんばってみます。
できないときはもう一度ここでヒントをもらいますので
そのときはお願いします。ありがとうございました。
0262デフォルトの名無しさんNGNG
>258
pi!=NULLならば、0<=i<nの範囲でpi[i]がint値として使える。
0263デフォルトの名無しさんNGNG
GOTOを使うと逮捕なんですか。

岩手大生がGOTO、現行犯逮捕
 岩手県警盛岡東署は4日、盛岡市高松、岩手大人文社会科学部4年
 容疑者(22)をGOTOの現行犯で逮捕した。(読売新聞)
0264デフォルトの名無しさんNGNG
逮捕だけじゃない、変なレッテルが付いてるとgoto hellに陥る
0265デフォルトの名無しさんNGNG

[2] 問題文(含コード&リンク): 1〜100までの素数を表示するプログラムを作成するというプログラムで、
For文を使った場合とWhile文を使った場合でプログラムを作成という冬休み課題がでているのですが
For文はわかったのですがWhile文の場合だとどのようにすればいいか検討がつきません。
よろしくお願いいたしますm(_ _)m

[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ(バージョン): ボーランドフリーコンパイラ
 [3.3] 言語:C
0266デフォルトの名無しさんNGNG
for(init();cond();cont()){
doit();
}
は
init();
while(cond()){
doit();
cont();
}
と同じ
0267デフォルトの名無しさんNGNG
for文で書いたものを出せ
そうすりゃそれをwhile文に書き直してやる
0268265NGNG
#include "stdafx.h"

int main(void)
{
int i,j,k,d;
k=0;
for (i=2;i<=100;i++){
d=0;
for (j=2;j<=i;j++){
if ((i%j==0)&&(i!=j)){

d=1;
}
}
if (d==0){
k++;
printf("素数%d個目=%d\n",k,i);
}

}

return 0;
}

FORだとこれです。
0269デフォルトの名無しさんNGNG
0270デフォルトの名無しさんNGNG
>>268
無駄な計算が多いな
動くことは動くが、もうちょと考えてみてはどうだ
0271デフォルトの名無しさんNGNG
#include "stdafx.h"
int main(void)
{
int i,j,k,d;
k=0;
i=2;
while (i<=100){
d=0;
j=2;
while (j<=i){
if ((i%j==0)&&(i!=j)){
d=1;
}
j++;
}
if (d==0){
k++;
printf("素数%d個目=%d\n",k,i);
}
i++;
}
return 0;
}
0272デフォルトの名無しさんNGNG
すみません。
ファイルa.txtとb.txtには1行に1つ整数値が書かれている。
しかも小さい順にソートされている。a.txtとb.txtの整数値を
あわせてソートさせて表示するプログラムを書け。
が、がんばったんですができませんでした。
おしえてください!!
0273デフォルトの名無しさんNGNG
>272
どこまでできた?
0274デフォルトの名無しさんNGNG
一つのファイルでソートできているプログラムがあるなら、
system("cat a.txt > c.txt");
system("cat b.txt >> c.txt");
を走らせて、c.txtをソーティング。
かなり外道なやり方だけどね。
0275265NGNG
>>271

ありがとうございました!!
0276デフォルトの名無しさんNGNG
とりあえずaのファイルの出力だけです・・・。
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp,*fp2;
char c[128],d[128];
int m,n,k;

fp=fopen("a.txt","r"),fp2=fopen("b,txt","r");
while(fgets(c,128,fp)!=NULL){
for(m=0;c[m]!='\n'; ){
for(k=0;c[m]!='\n';m++){
e[k]=c[m];
k++;
}
e[k]='\0';
printf("%d\n",atoi(e));
}
}
fclose(fp);
fclose(fp2);
return 0;
}
0277デフォルトの名無しさんNGNG
>273
276です。まだまだ全然ダメです。
0278デフォルトの名無しさんNGNG
break;と書くと、ループを抜けられるぞ。条件式が一度に書けないなら、一時的な変数にfgetsの結果を置け。ここでは改行チェックをしなくてもよい
0279デフォルトの名無しさんNGNG
+std::vector<int> v;

-print("%d\n",atoi(e));
+v.push_back(atoi(e));

+std::sort(v.begin(), v.end());
0280デフォルトの名無しさんNGNG
atoiは後ろの改行を無視するはずだ。改行を消さずとも
0281デフォルトの名無しさんNGNG
かけ算九九表を出力するという宿題がでたのですが
一の段 二の段 三の段 四の段 五の段・・・
というかんじでループさせて出力させたいのですがどのようにかけばよいのでしょうか?
0282デフォルトの名無しさんNGNG
for(i=1;i<10;i++){
for(j=1;j<10;j++){
sum=i*j;
printf("%3d",sum);
}
printf("\n");
}
0283デフォルトの名無しさんNGNG
>281
二重のforループ中で掛け算してprintfで左上から右下まで吐き出せばいい。
0284デフォルトの名無しさんNGNG
>282
ありが�d
0285デフォルトの名無しさんNGNG
タブキーのアスキーコード教えてください。
0286デフォルトの名無しさんNGNG
'\t'
0287デフォルトの名無しさんNGNG
>>286
数字で教えてください。よろしくお願いします。
0288デフォルトの名無しさんNGNG
printf("%d",'\t');
0289デフォルトの名無しさんNGNG
printf("%d\n", '\t');

自分で調べろや('A`)
0x09じゃないか?
0290デフォルトの名無しさんNGNG
かぶったorz
0291デフォルトの名無しさんNGNG
>>289
サンクスえりまっち
0292デフォルトの名無しさんNGNG
printf("%d\n",'\t');
0293デフォルトの名無しさんNGNG
なんか他のスレが開けないのでここで・・・
WinSDKなんですが、RichEditにキー入力されたのを取得するには
どうしたらいいんでしょうか?
0294デフォルトの名無しさんNGNG
任意長の文字列を
"\n"→"\\n"
"\t"→"\\t"
のように変換して、別のバッファに格納する関数ってありますか?
0295デフォルトの名無しさんNGNG
>>294
boost::algorithm::replace_all
0296デフォルトの名無しさんNGNG
>>294
%s/\n/\\nでも使っとけ。
0297デフォルトの名無しさんNGNG
void replace_es(char *dest, char *buf)
{
  while(*dest != '\0'){
    switch(*dest){
      case '\n':
        *buf++ = '\\';
        *buf++ = 'n';
        break;
      case '\t':
        *buf++ = '\\';
        *buf++ = 't';
        break;
      default:
        *buf++ = *dest;
        break;
    }
    dest++;
  }
  return;
}
0298281NGNG
>>283
ヒントありがとうございます。

While文で作れと指示があって色々いじってみているのですがうまくいきません・・・

#include <stdio.h>
void main(void)
{
int i,k,j;
i=1;
while (i<=9)i++{
j=1;
while (j<=9)j++{
k=i*j;
printf("%d ",k);
}
printf("\n");
}
return 0;
}

と入力してコンパイルしたのですがERRORがでてコンパイルできません・・・・
どこが悪いのでしょうか?
0299デフォルトの名無しさんNGNG
i=1;
while (i<=9)i++{ //ココと
j=1;
while (j<=9)j++{ //ココ
k=i*j;
printf("%d ",k);
}
0300デフォルトの名無しさんNGNG
わらた
0301デフォルトの名無しさんNGNG
>297 buf と dest 意味逆ぢゃね?
あと、文字列ぢゃなくね?
0302デフォルトの名無しさんNGNG
1+2+3+4+・・・・の和が結果が、初めて1000を超える時の数と、
その和を出力するプログラムを作成せよ。という課題がでたのですが、
int goukei=0,i;

for(i=1;i

と、考えたのですがそれ以降どのようにかけばいいかわかりません・・・
どのように書けばよいのでしょうか?
0303デフォルトの名無しさんNGNG
int main(int argc,char *argv[]){
int i;
int sum=0;
for(i=1;sum<1000;i++,sum+=i){
}

printf("%d\t%d\n",i,sum);
return(0);
}
0304デフォルトの名無しさんNGNG
>>302
#include <stdio.h>
int main()
{
int goukei,i;
for(goukei=0,i=2;goukei<=1000;i++)
goukei=i*(i+1)/2;
printf("始めて(ry: %d\n和: %d\n",i,goukei);
return 0;
}
0305304NGNG
累積するんだから毎回計算する必要ねーし。
0306デフォルトの名無しさんNGNG
>>305
君は何を言っているんだ?
0307デフォルトの名無しさんNGNG
馬鹿ばっかりだなここ
0308303NGNG
あ、間違えた。

int main(int argc,char *argv[]){
int i;
int sum=1;
for(i=1;sum<1000;i++,sum+=i){
}

printf("%d\t%d\n",i,sum);
return(0);
}
0309デフォルトの名無しさんNGNG
>>306
毎回いちいち総和を計算しなくてもいいってこと。
0310デフォルトの名無しさんNGNG
>>309
そうか。
ってことは>>308より速いって事?試してみてよ。
0311デフォルトの名無しさんNGNG
むしろ304は答えがまちがっとる
0312デフォルトの名無しさんNGNG
間違ってるってか無限ループじゃねぇか?
0313デフォルトの名無しさんNGNG
>>312
それはない
0314デフォルトの名無しさんNGNG
int n = 1000;
int x = ((-1+sqrt(8*n+1.0)) / 2) + 1;
printf ("%d\t%d\n", x, x*(x+1)/2);
0315デフォルトの名無しさんNGNG
普通にたしていったほうが早いと思う。
0316デフォルトの名無しさんNGNG
int n = 1000;
int x = ((-1+sqrt((n<<3)+1.0)) / 2) + 1;
printf ("%d\t%d\n", x, (x*(x+1)>>1));
0317デフォルトの名無しさんNGNG
304はコード自体も稚拙だな
0318デフォルトの名無しさんNGNG
sum+=i の方がよっぽど早くてわかりやすい
足し算と掛け算割り算は等速じゃないぞ
0319デフォルトの名無しさんNGNG
>>318
ところが速度だけで見れば>>316の方が早かったりするわけで
0320302NGNG
>>303,304,305,306,308,309

ありがとうございました!!308でコンパイルできました。

0321デフォルトの名無しさんNGNG
どこに性能の重きを置くかって問題だからねぇ。
ループで足していくのも、ループ使わないのも、どっちもそんな悪いコードじゃないと思うけど。
0322デフォルトの名無しさんNGNG
この場合は明らかに可読性を取ってループを使うべきかと
0323302NGNG
すいません、While文を使うとどのようになりますでしょうか?
0324(・∀・)イイ!! ◆LC7P44pfbg NGNG
>>323
空気の読めないレス(・∀・)イイ!!
0325デフォルトの名無しさんNGNG
for文で書いたやつがあるんだから、
while文に書き直すくらい自分でやりなさいよ・・・
0326(・∀・)イイ!! ◆LC7P44pfbg NGNG
for (A;B;C){
〜
}


=

A
while (B){
〜
C
}
0327302NGNG
すいませんでした・・・
今書き換え中です。。。
0328デフォルトの名無しさんNGNG
>>326
A;
while (B){
〜
C;
}
0329デフォルトの名無しさんNGNG
for文とwhile文を相互変換できないなんて一切理解してないんですね
0330デフォルトの名無しさんNGNG
ifとgotoでなんでも出来るんだが
0331デフォルトの名無しさんNGNG
0と1で何でもできるんだが。
0332302NGNG
やっとWhileにできました^^;)
教科書類もってかえるの忘れてとんでもないめにあってしまった・・・
0333デフォルトの名無しさんNGNG
代入型言語厨、臭う。
0334デフォルトの名無しさんNGNG
BrainFuckなら <[+-.,]> だけでなんでもできる。
0335デフォルトの名無しさんNGNG
>>334
へー
じゃあもGUI作れますか??
0336デフォルトの名無しさんNGNG
VMをそういう仕様にすれば作れるんじゃない?
特定のメモリアドレスに値が書き込まれたらウインドウを作る、とか。

…まあ絶対やりたくないけど
0337デフォルトの名無しさんNGNG
>>336
パズル的言語として面白いかもな。
0338デフォルトの名無しさんNGNG
実用するなら最低限forthくらいは必要だと思うけどな。
0339デフォルトの名無しさんNGNG
スタックは欲しいよね
0340デフォルトの名無しさんNGNG
コマンドを実行して標準出力と標準エラー出力を別々にファイルに出力できるかね、チミー?
0341御神籤:!omikujiNGNG
わー
0342デフォルトの名無しさんNGNG
行動が遅いぞ
0343デフォルトの名無しさんNGNG
>>340
シェルによっては。
0344デフォルトの名無しさんNGNG
>343
シェルのない環境はどうするよ、チミー?
0345343NGNG
>>344
WindowsならGetStdHandleでごにょごにょ
0346デフォルトの名無しさんNGNG
>>344
きもいですー にゃんにゃん
0347デフォルトの名無しさんNGNG
>345
ROMやDOSでは動かない。それに〜、、、Cじゃないシィ〜
0348デフォルトの名無しさんNGNG
>346
どの辺りが気持ちいい?
0349デフォルトの名無しさんNGNG
>340は釣りでした。でもホントに知らない人多いんだな〜
0350デフォルトの名無しさんNGNG
>>340
Cmd.exe上でならhoge > out.txt 2> error.txt
0351デフォルトの名無しさんNGNG
3点を通る円の中心を求める計算プログラムを作成しろという課題が出たのですが、
連立方程式をどうやってプログラムに直したらよいか分かりません。
どなたか教えてください。
0352デフォルトの名無しさんNGNG
3点の座標をscanfで入力。
計算した結果を代入。結果をprintfで出力。
0353デフォルトの名無しさんNGNG
行列使え
0354351NGNG
>>352 scanfに代入する式が分からないです。
0355351NGNG
すいません書き方を間違えました。
x^2+y^2+ax+by+c=0というのは分かるのですが、
これをどうプログラムにしたら良いか分からないです。
0356デフォルトの名無しさんNGNG
手作業で解くやり方を入力しろ
0357351NGNG
>>356 手作業って何がありますか?
0358デフォルトの名無しさんNGNG
1,3,9,27・・・のとうに、数値を三倍していき、その時々の各数値を表示するプログラムを作成しなさい。
ただし、数値が10000を超えたら処理を終了させるようにすること。

という宿題なのですが下記のように入力したところ1,が永遠に表示されてしまいます。
どのように訂正すればよいのでしょうか?


void main(void)
{
int a,k;

k=1;

for (a=1;k<=10000;a+2){
k=a*a;
printf("%d,",k);
}
}
0359デフォルトの名無しさんNGNG
授業をモーレツに聞け。教科書見ろ。掛け算は*、割り算は/だ。+,(,)はそのまま。
0360デフォルトの名無しさんNGNG
× a+2
○ a+=2 もしくは a = a + 2
0361デフォルトの名無しさんNGNG
a+2は代入でない
0362デフォルトの名無しさんNGNG
void main(void)
{
int k;

for(k = 1; k <= 10000; k *= 3){
printf("%d", k);
}
}
0363デフォルトの名無しさんNGNG
int main(void)にしろ
0364351NGNG
#include <stdio.h>
#include <math.h>
int main()
{
int i,j,k; double cx,cy,r; double x[3],y[3];
double pivot; double a[3][4]; double erase;
printf("始点:"); scanf("%lf,%lf", &x[0], &y[0]);
printf("中間点:"); scanf("%lf,%lf", &x[1], &y[1]);
printf("終点:"); scanf("%lf,%lf", &x[2], &y[2]);
for(i=0; i<3; i++) {
a[i][0] = x[i]; a[i][1] = y[i]; a[i][2] = 1.0; a[i][3] = (x[i]*x[i] + y[i]*y[i]);
}
for(i=0; i<3; i++) {
pivot = a[i][i];
for(j=0; j<4; j++) {
a[i][j] /= pivot;
}
for(k=0; k<3; k++) {
erase=a[k][i];
for(j=i; j<4; j++){
if(k != i) a[k][j] -= erase*a[i][j];
}
}
}
0365351NGNG
cx = a[0][3]/2; cy = a[1][3]/2;
r = sqrt((cx*cx) + (cy*cy) - a[2][3]);
printf("中心:(%lf, %lf)", cx, cy);
printf("半径:%lf", r);
return 0;
}
一応作ってみたんですが、これだと簡単な計算はできるのですが、
小数点などのちょっと複雑な計算だとエラーが出てしまいます。
どこを改良したらよいでしょうか?

0366358NGNG
>>359〜363
レスありがとういございます。

362でできました。

0367デフォルトの名無しさんNGNG
宿題の答え載せるなボケ
0368デフォルトの名無しさんNGNG
スレの存在意義を否定するなボケ
0369デフォルトの名無しさんNGNG
学校から苦情来るんだボケ
0370デフォルトの名無しさんNGNG
誰に苦情が来るの?
0371デフォルトの名無しさんNGNG
で、351はちったあわかったのか?
0372デフォルトの名無しさんNGNG
つうか>>351よ、その先生はmath使えと言っていたのか?
0373351NGNG
いえ、使えと言ってませんでした。
0374デフォルトの名無しさんNGNG
こんなスレイラネ
0375デフォルトの名無しさんNGNG
良スレハケーン(大学受験板)・・・スレタイを見よ。
http://school4.2ch.net/test/read.cgi/kouri/1102125273/

なんともム板にふさわしいスレタイではないか。「真」だ!!!
0376デフォルトの名無しさんNGNG
1月11日〆切の冬休みの課題が出たのですが、よくわかりません…
[問題文]元日からの日数を入力して、何月何日かを出力する。
    閏年ではない年として計算してよい。
<入力例> 
 72
<出力例>
3月13日

よろしくお願いしますm(__)m

0377デフォルトの名無しさんNGNG
英単語を任意個入力して、それをアルファベット順に並び替えるプログラムを
作りたいのですが、分かりません・・・。
制御構造と関数を必ず使わなければならないそうです。
言語はCです。明日22時提出なので、よろしくお願いします!!
0378デフォルトの名無しさんNGNG
>>376
Cか、C++か、はっきり汁。と言うかテンプレ使って質問汁。
0379デフォルトの名無しさんNGNG
sort
0380デフォルトの名無しさんNGNG
自己解決しました。ありがとうございました。
0381377NGNG
すいません関数=「自分で定義した関数」のことです。
紛らわしくてごめんなさい。。
0382378NGNG
>>376
一応Cで。
#include <stdio.h>

int main(void){
    int i, num, days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    printf("日数:");
    scanf("%d", &num);
    for (i = 0; i < 12; i++) if ((num -= days[i]) <= 0) break;
    if (i == 12) printf("日数大きすぎ");
    else printf("%d月%d日", i + 1, num + days[i]);
}
0383デフォルトの名無しさんNGNG
>>377
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct field_tag{
    char name[16];
    struct field_tag *next;
} field;
void search_and_insert(field *dest, const field *src){
    field *temp;
    if (dest->next == NULL) {
        dest->next = (field*)malloc(sizeof(field));
        memcpy(dest->next, src, sizeof(field));
    }
    else if (!(strcmp(dest->next->name, src->name) < 0)) {
        temp = (field*)malloc(sizeof(field));
        memcpy(temp, src, sizeof(field));
        temp->next = dest->next;
        dest->next = temp;
    }
    else search_and_insert(dest->next, src);
}
void free_all(field *ptr){
    if (ptr->next != NULL) free_all(ptr->next);
    free(ptr);
}
0384383(続き)NGNG
int main(void){
    field *root= (field*)malloc(sizeof(field)), *cur = root, temp;
    memset(root, 0, sizeof(field));
    temp.next = NULL;
    while(scanf("%s", temp.name) != EOF){
        search_and_insert(cur, &temp);
        memset(&temp, 0, sizeof(field));
    }
    cur = root;
    while (cur != NULL){
        printf("%15s\n", cur->name);
        cur = cur->next;
    }
    if (root != NULL) free_all(root);
    return 0;
}
0385377NGNG
>>383
ありがとうございます!!なにやら難しそうなプログラムなんですね。。
コンピュータ音痴で困ってました。助かります!!
0386383NGNG
>>385
いや、もっと簡単に出来るんだが、手元に作り溜めがあったから、
そのままコピペしただけ。
0387デフォルトの名無しさんNGNG
195と同じ質問になってしまうのですが教えてください。
プログラム全くなのでお願いします。
「標準入力から C 言語のプログラムテキストファイルを読み込み、
使用している関数名を頻度順に並べなさい。
これは宣言文と実際の式のどちらも含みます。
なお、同じ頻度の関数は辞書順に並べなさい。
レポートでは、実行例として、作成したソースプログラムをプログラムに
入力した出力を示しなさい。
なお、取り扱える行数は実行時のコンピュータのメモリーのサイズのみに
依存しなければなりません。勝手な上限を設けてはいけません。
但し、関数名の長さは高々 255 文字と仮定して良い。」


0388デフォルトの名無しさんNGNG
>387
君の実力だとCでは無理かも知れない。ヒントは、cdecl cproto wc flex bison yacc パーサー
0389デフォルトの名無しさんNGNG
動的確保とか習っていないのに使うと教師に注目される可能性がある
0390デフォルトの名無しさんNGNG
boost::tokenizer や boost::spirit や std::vector に似た機能を作って
実装すると教師に注目される可能性がある
0391デフォルトの名無しさんNGNG
君がどうしようもない怠け者だったら、C++ parserでぐぐれ。
0392201NGNG
>>387

>これは宣言文と実際の式のどちらも含みます。
というのはどう解釈したらいいんだろ。
区別しないということでいいのか?
0393デフォルトの名無しさんNGNG
[2] 文字列のリストをファイルから文字型の2次元配列に読み込み
  キーボードから読み込んだ文字列を逐次検索するプログラムを作成せよ。
[3] 環境
 [3.1] OS:ウィンドウズXP
 [3.2] コンパイラ(バージョン): コマンドプロンプト?
 [3.3] 言語:C言語
[4] 期限:2005年01月7日 午後まで

ファイルを読み込むぐらいしかわからないです、その後の検索からさっぱり
もの凄い簡単ぽいですがよかったら教えてください
0394デフォルトの名無しさんNGNG
>>393
書いたところまででいいから晒してみ。
0395デフォルトの名無しさんNGNG
コンパイラが何か判ってない辺り、実は全然書いてない悪寒。
0396デフォルトの名無しさんNGNG
>>393
コンパイラがネ申
0397393NGNG
コマンドプロンプトで bcc32 ***.c ってやってるんだけどこれコンパイラじゃないの?

とりあえず適当だけどやったソース貼ります

main()
{
FILE *f1;
char a[3][11];
char moji[3];
int i,n;

n=3;
f1=fopen("word.txt", "r");
for(i=1; i<=n; i++);
fgets(a[i], 3, f1);
fclose(f1);

printf("検索したい文字列を入力してください\n");
scanf("%s", moji);

0398393NGNG
/* 逐次検索 */

  while(i<n && a[i]!=moji)
i++;

if(a[i]==moji)
printf("%3s は %3d 番目にみつかりました\n", moji, i);
else
printf("%3s は見つかりませんでした\n", moji);

return 0;
}

なんかずれた、後一番上に
#include <stdio.h>
#include <string.h>
抜けてました
0399デフォルトの名無しさんNGNG
専門か大学かは知らんが、その程度のことも教えられていないし、自分で調べようともしていないのか
0400デフォルトの名無しさんNGNG
>>397

それボーランドのフリーコンパイラー。
0401デフォルトの名無しさんNGNG
>>393
突っ込みどころが多過ぎ。
特に酷いのは、
・二次元配列の使い方
・検索ロジック
の2点。
前者は勉強し直せ。後者は標準ライブラリ関数を使うのが無難。
そうそう、配列の要素数の取り扱いについても要注意で。
0402デフォルトの名無しさんNGNG
>397は、プログラムは全てウィンドウを持っていると思い込んでいる悪寒。
少なくとも、bcc32が独立したプログラムと認識してないと思われ。
0403デフォルトの名無しさんNGNG
まあ、ゆっくり料理の本を読もうゼ。
0404デフォルトの名無しさんNGNG
なんでstring.hをインクルードしてるのに比較を(ry
0405デフォルトの名無しさんNGNG
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):1.キーボードから5つの実数データを入力し、その
・合計
・平均
・最大値
・最小値
・範囲
を求めるプログラムを作成せよ。
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ(バージョン): ?
 [3.3] 言語:C/C++/どちらでも可 のいずれか :C
[4] 期限:yyyy年mm月dd日hh:mmまで/無期限 のいずれか 2005年01月06日17:00
[5] その他の制限:
お願いします
0406デフォルトの名無しさんNGNG
>>405
おいてめーマルチしてんだろうが
C言語なら俺に聞けのスレであやまってきたら解いてやるぜはげ
0407デフォルトの名無しさんNGNG
ていうか過去ログ読めば答え載ってそうだけど?
0408デフォルトの名無しさんNGNG
その程度なら自分でできるべ
つーかなんで使ってるコンパイラさえ知らないんだヴォケ
とマルチ初心者厨に言ってみる
0409デフォルトの名無しさんNGNG
>1-407
解決しました
0410デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>
#define NaN (0)/* 数値が得られないことを示せればいい */
#define numberof(x) (sizeof(x)/sizeof(*(x)))
static double total(double * pValues, int nValues)
{
int ic;
double total = 0;
for (ic = 0; ic < nValues; ++ic) {
total += pValues[ic];
}
return total;
}

static double average(double * pValues, int nValues)
{return nValues == 0 ? NaN : total(pValues, nValues) / nValues;}

static double maximum(double * pValues, int nValues)
{
int ic;
double maximum;
if (nValues == 0) {
return NaN;
}
maximum = pValues[0];
for (ic = 1; ic < nValues; ++ic) {
if (maximum < pValues[ic]) {
maximum = pValues[ic];
}
}
return maximum;
}
0411デフォルトの名無しさんNGNG
static double range(double * pValues, int nValues)
{return maximum(pValues, nValues) - minimum(pValues, nValues);}

int main(void)
{
static const char * const sLabels[] = {"1st", "2nd", "3rd", "4th", "5th",};
double values[numberof(sLabels)];
int ic;
for (ic = 0; ic < numberof(sLabels); ++ic) {
char buf[100];/* 実数値一個のためにはこんなに要らね */
printf("Input %s value.\n", sLabels[ic]);
if (fgets(buf, sizeof(buf), stdin) == NULL) {
return EXIT_FAILURE;
}
values[ic] = atof(buf);
}
printf("total:%.10g\n"
"average:%.10g\n"
"maximum:%.10g\n"
"minimum:%.10g\n"
"range:%.10g\n",
total(values, ic),
average(values, ic),
maximum(values, ic),
minimum(values, ic),
range(values, ic));
return EXIT_SUCCESS;
}
0412デフォルトの名無しさんNGNG
見肉
0413デフォルトの名無しさんNGNG
/* これで充分 */
int main(void)
{
 char buf[100]; /* 実数値一個のためにはこんなに要らね */
 unsigned num = 0;
 double total = 0;
 double minimum = NaN;
 double maximum = NaN;

 while (fgets(buf, sizeof(buf), stdin)) {
  double value = atof(buf);
  ++num;
  total += value;
  if (num == 1 || value > maximum) {
   maximum = value;
  }
  if (num == 1 || value < minimum) {
   minimum = value;
  }
 }
 printf("total:%.10g\n"
  "average:%.10g\n"
  "maximum:%.10g\n"
  "minimum:%.10g\n"
  "range:%.10g\n",
  total,
  total / num,
  maximum,
  minimum,
  maximum - minimum);
 return EXIT_SUCCESS;
}
0414デフォルトの名無しさんNGNG
0x07 (0111) の
 右から1番目のbitは?  → 1
 右から2番目のbitは?  → 1
 右から3番目のbitは?  → 1
 右から4番目のbitは?  → 0

って感じにしたいんだがどうやればいいんだ?
標準関数で、任意の位置のbitを調べるものとかってある?
0415デフォルトの名無しさんNGNG
シフトして逐一mod2とか?
0416デフォルトの名無しさんNGNG
CとC++どっちがいい?
0417デフォルトの名無しさんNGNG
>414
整数nの左からi+1番目のビットは!!(n&(1<<i))です。
0418デフォルトの名無しさんNGNG
>417
右の間違い
0419デフォルトの名無しさんNGNG
あ、忘れてた。C言語でお願いしたい

for(a=7;a!=0,a>>=1){
b=a;
if (b&=1) ==1) printf( "bit=%d",b);
}
ってのを自分考えたんだけど
0420デフォルトの名無しさんNGNG
>>414
マスク処理
0421デフォルトの名無しさんNGNG
>417-418 ありがと
0422デフォルトの名無しさんNGNG
// C++
#include <iostream>
#include <bitset>
using namespace std;

int main(){
    bitset<4> bs(0x07);
    for(int i = 0; i < bs.size(); i++)
        cout << "右から" << i << "番目のbitは? → " << bs[i] << endl;
    return 0;
}

/* C(もちろんC++でもOK) */
int main(){
    unsigned int n = 0x07;
    for(int i = 0; i < 4; i++)
        printf("右から%d番目のbitは? → %d\n", i, n >> i & 1);
    return 0;
}
0423デフォルトの名無しさんNGNG
書き忘れ

後者に#include <stdio.h>
0424デフォルトの名無しさんNGNG
ミスって途中で送信

ってのを自分では考えたんだけど、これだと元の値が変わってしまう
3変数使えば問題なくできるんだけど、なんか上手い方法はないかなぁ、と


と書いていたら返答が。皆ありがとう
0425デフォルトの名無しさんNGNG
すみません、よろしくお願いします。

[1] 授業単元: 数値計算プログラミング実習
[2] 問題文(含コード&リンク):
1・二次関数の二次の係数、一次の係数、定数 a,b,c と
xの最大値、最小値およびyの最大値、最小値を入力し、二次関数のグラフを描画するプログラムを作成してください。
xの最小値、最大値が1行めから20行目に
yの最小値、最大値が1ます目から40ます目に対応するようにしてください。
グラフは '*" で描画してください。

2・上記グラフに、X軸Y軸を'+'で描画し
グラフ上のf(x)=0の解の近傍点を'@"で描画してください。
[3] 環境
OS:solaris
言語:C言語
[4] 期限:2005年1月11日
[5] その他の制限:includeするのは、できるだけ<stdio.h>のみ。
0426デフォルトの名無しさんNGNG
<問題>
保存してあるファイルの内容を読み出して、各文字列の先頭に行番号を
付けて、画面に1ページごとに表示するプログラムを作成する

<制限>
getchを使う
ページが変わっても番号は振りなおさない

よろしくお願いします
0427デフォルトの名無しさんNGNG
>425
char[][]仮想画面で描くのが一番かっこいいやり方だ。分からなかったらy軸を平行にたどりながら、左上から右下に描いていきな
0428デフォルトの名無しさんNGNG
>426
小さな紳士よ、重複投稿は顧客を失うゾ
0429デフォルトの名無しさんNGNG
>>428
すいません、問題自体を丸投げする場合はやはりこちらかと思いまして・・
以後気をつけます。
0430デフォルトの名無しさんNGNG
[3] 環境
 [3.1] OS: LINUX
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C言語

直線をBMPファイルで保存するプログラムを作成したのですが、
出来た画像が上下さかさまになってしまいました。
課題はこのままで提出しましたが、何故上下さかさまになる理由がわかりません。
どうか教えてください。お願いします


0431デフォルトの名無しさんNGNG
BMPは左下から保存するから。
0432デフォルトの名無しさんNGNG
>430
M$の設計したデータ仕様に例外はつきものさ。確か高さを負にしなければy座標が逆になる。BITMAPINFO,BITMAPINFOHEADERを参照。
0433デフォルトの名無しさんNGNG
ディスプレイ表示上の理由が無いではない。
0434デフォルトの名無しさんNGNG
C++Builder を使用しています。
ブラックジャックを作るうえで、
1.実際のカードの数値とブラックジャックで使用する数値が異なる点(Kが13ではなく10であったり)
2.Aは1と11と、場合によって二つの数値になるので、それをどう処理するか。
  Aが複数手元に来た場合、片方だけ11から1にするにはどうしたらよいのか

悩んでいます。何か良い方法は無いでしょうか?
0435デフォルトの名無しさんNGNG
[1] 授業単元:信号処理
[2] 問題文(含コード&リンク):単純移動平均を用いて、入力sin(400πt)+cos(200πt)+1+U
(ただしUは一様乱数、データ数2000点、サンプリング間隔τ=0.0001[s])に対して
平滑化点数m=5 (N=11)としたときの結果を出力せよ。
[3] 環境
 [3.1] OS: WinXP
 [3.2] コンパイラ(バージョン): Cygwin?
 [3.3] 言語:C
[4] 期限:来週まで
[5] その他の制限: なし。
ソース→ ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
 ろだの宿題の答えはここに書け!!No49のソースで入力信号はデータとして出力できるのですが、単純移動平均を
適用するためにどう変形すればいいかわかりません。データ点数が11個あるので、
前後5つのデータと自身を単純平均したデータを一つのデータとして出力するのでしょうが・・
よろしくおねがいします。

0436デフォルトの名無しさんNGNG
>>434
2番について
1枚目のAは保留にしておく
2枚目以降のAは必ず「1」とする
最後に1枚目のAを21を超えないように決定する
の順でいいかと
0437デフォルトの名無しさんNGNG
>>431 >>432 >>433 SAMA
どうもありがとうございました
0438デフォルトの名無しさんNGNG
>>426
こんな感じ?

【テキストファイル】
zero one two three ...
twenty_five twenty_six twenty_seven twenty_eight ...

【実行内容】
[1ページ目]
0 zero
1 one
2 two
3 three
...

(矢印キー等を押す)

[2ページ目]
0 twenty_five
1 twenty_six
2 twenty_seven
3 twenty_eight
...
0439デフォルトの名無しさんNGNG
>>438
> ページが変わっても番号は振りなおさない
                    ~~~~~~~~~~
0440デフォルトの名無しさんNGNG
Whileを使い1〜10までの整数の二乗を計算して表示するプログラムを作成しなさい。
という宿題なのですがうまくコンパイルできませんどこがわるいのでしょうか?

#include <stdio.h>
void main(void)
{
int s,k;

printf("X X**2\n");

k=1;

while(k<=10){
s=k*k;
printf("%d…  %d\n",k,s);
}
k++;
printf("\n");
}
return 0;
}

0441デフォルトの名無しさんNGNG
>>440
printf("%d…  %d\n",k,s);
} ←こいつが余計
k++;
0442デフォルトの名無しさんNGNG
中括弧がちゃんと全部対応してるか確認しなさい。
0443デフォルトの名無しさんNGNG
前にも思ったんだけど、こいつWhileなんて書いてる時点で
学校やめた方がいいと思う
0444デフォルトの名無しさんNGNG
VBの香りがするな、懐かしい…
0445440NGNG
>>441

ありがとうございました。
きちんとコンパイルされました。
0446デフォルトの名無しさんNGNG
>>440
スマートに書くとこんなカンジ

#include <stdio.h>
int main(void)
{
printf("X X**2\n");
for(int k=1; k<=10; k++) printf("%d… %d\n", k, k*k);
printf("\n");
return 0;
}
0447440NGNG
>>446
For版で書いていただきありがとうございます。
今回の宿題ForとWhileの二つ提出でForは私も考えられたのですが、
Whileの変換でへんなところに{いれててエラーになってました・・・
0448434NGNG
>>436
ありがとうございました。

トランプの識別は構造体を利用しているんですが、1番の質問に何か良い考えはないものでしょうか…。
上手い方法が全く思い浮かばなくて。
0449デフォルトの名無しさんNGNG
構造体に得点のメンバつければいいだけちゃうんかと
0450デフォルトの名無しさんNGNG
>>391
C++ parserって何ですか?
0451デフォルトの名無しさんNGNG
>>450
 _, ._
(;゚д゚) ・・・・


"C++ parser" じゃなくて、C++ と parser だろ。
0452デフォルトの名無しさんNGNG
http://www.empathy.com/pccts/ ここ?
0453デフォルトの名無しさんNGNG
>>451
C++ と parser ???
どうゆうことですか?
0454デフォルトの名無しさんNGNG
ぐぐる[ラ四動詞] Google(などの検索エンジン)で検索すること。

つまり

Googleで"C++ parser"をキーワードにして検索しろってこった
0455デフォルトの名無しさんNGNG
検索してみたのですが文法がでているやつですか?
0456デフォルトの名無しさんNGNG
並べ替えたい単語数を入力して、
英単語をその数だけ入力して、
アルファベット順に並べるプログラムってどうやって作れますか?

どうかよろしくお願いします。
0457デフォルトの名無しさんNGNG
>>561 マルチいくない。
英単語アルファベット順にソートするなら
strncmpあたりか先頭文字の値を比較すればいいんでないかな。
あんま覚えてないんで間違ってるかもしれない。

宿題じゃないんですが…宿題の一部で、なんとかならないかなと
思うところがあるので質問させていただきます。
[2] 問題文(含コード&リンク):
12345…Nのという数列があるとする。
数を並びえた数列はN!個あるが、それらをすべて列挙するアルゴリズムきぼん。

例えばN=3のときは3!=6個、以下のように求める。
0:123  1:132
2:213  3:231
4:312  5:321

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ(バージョン): GCC
 [3.3] 言語:C
[5] その他の制限:
ただし、以下のような総当りをしてはいけない。
111->false  112->false
113->false  121->false
122->false  123->TRUE
また、生成値を与えると一意に数列が決まったりするとなお良い。
例:0を引数にすると123を返し
1を引数にすると132を返し
5を引数にすると321を返す、など.

スレ違いかと存じますが、いい案があったら教えてください
0458457NGNG
アンカー誤爆。
>>561は別スレの>>456でしたorz
0459デフォルトの名無しさんNGNG
>457
最初の数字で場合分けしたら、次の文字で場合分けし、…(略)。これで場合分けの木ができる。木の要素を規則的に並び換え、番号を付ける。
0460デフォルトの名無しさんNGNG
>455
怠け者決定
0461デフォルトの名無しさんNGNG
>>457

int Factorial(int n){
    int m = 1, i;
    for(i = 2; i <= n; i++)
        m *= i;
    return m;
}

void swap(char *v1, char *v2)
{
    char tmp;
    tmp = *v1;
    *v1 = *v2;
    *v2 = tmp;
    return;
}

/* 次に続く */
0462デフォルトの名無しさんNGNG
/* 前の続き */

int GetSeries(int number, int order)
{
    int i, n;
    char *tmp = malloc(number + 1);

    for(i = 0; i < number; i++)
        tmp[i] = '1' + i;
    tmp[number] = '\0';

    for(i = 0; i < number - 1; i++){
        n = order / Factorial(number - i - 1);
        swap(tmp+i, tmp + i + n);
        //printf("%d→", order);
        order %= Factorial(number - i - 1);
        //printf("%d\n", order);
    }
    n = atoi(tmp);
        free(tmp);
    return n;
}

int main(void)
{
    int i, n = 4;
    for(i = 0; i < Factorial(n); i++)
        printf("%d: %d\n", i, GetSeries(n, i));
    return 0;
}
0463デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>
これつけといてorz

工房の弱い頭で考えたらこれが限界。ショボくてスマソorz
0464デフォルトの名無しさんNGNG
>>457
#include <stdio.h>

void hoge(int x, int n, unsigned bits, char buf[])
{
  int i;

  if (x > n) {
    puts(buf);
    return;
  }
  for (i = 0; i < 9; i++) {
    if (bits & (1 << i)) {
      buf[x - 1] = '1' + i;
      bits &= ~(1 << i);
      hoge(x + 1, n, bits, buf);
      bits |= (1 << i);
    }
  }
}

int main(int argc, char *argv[])
{
  int n = argv[1][0] - '0';
  unsigned bits = ~((~0) << n);
  static char buf[10];

  hoge(1, n, bits, buf);
  return 0;
}
0465デフォルトの名無しさんNGNG
1〜9までの階乗を求め表示するプログラムを作成しないさい。
例:
5の階乗 5!=120 求め方→5!=5*4*3*2*1
9の階乗 9!=362880 求め方→9!=9*8*7*6*5*4*3*2*1

という課題なのですが

#include <stdio.h>
void main(void)
{
int a,b,c;

for(a=1;a<=9;a--){

までしか考えられないのですがどのように書けばよいのでしょうか?よろしくお願いいたします。
0466426NGNG
>>438
それだと思います^^;どのようにしたらよいのでしょうか?
MSXベーシックなら簡単なのに・・・
0467デフォルトの名無しさんNGNG
int a,b,c;

for(a=1;a<=9;a--){

までしか考えられないのですがどのように書けばよいのでしょうか?よろしくお願いいたします。

466 名前:426 :05/01/07 10:34:24
>>438
それだと思います^^;どのようにしたらよいのでしょうか?
MSXベーシックなら簡単なのに・・・

名前: E-mail:
0468デフォルトの名無しさんNGNG
>>465
long Factorial(int x)
{
    int i;
    long y;
    for (i = 1; i <= x; i++)
        y *= x;
    return y;
}

int main(void)
{
    int i;
    for (i = 1; i <= 9; i++)
        printf("%d!\t%ld\n", i, Factorial(i));
    return 0;
}
0469デフォルトの名無しさんNGNG
>>466
C++でgetchの制限さえなければCより簡単。宿題だから仕方ないけど。
0470デフォルトの名無しさんNGNG
>>465
int main(void)
{
 int a=1, i;
 for (i=1; i<=9; ++i) {
  a *= i;
  printf("%d!\t%ld\n", i, a);
 }
 return 0;
}
0471デフォルトの名無しさんNGNG
>>457で、一意に数列を返す
#include<stdio.h>
#include <stdlib.h>
unsigned d;
void sub( char *s, unsigned n, unsigned x, unsigned a )
{
  unsigned i,t;
  for( i=0; i<n; i++ ){
    if( n==1 ) if( a==0 || ++d==a ) printf("%s\n", s);
    t=*(s+x-n),*(s+x-n)=*(s+x-n+i),*(s+x-n+i)=t;
    sub( s, n-1, x , a );
    t=*(s+x-n),*(s+x-n)=*(s+x-n+i),*(s+x-n+i)=t;
  }
}
int main( int argc, char *argv[] ){
  char str[10]={0}, i, n=(argc>=2)?atoi(argv[1]):0;
  d=0;
  for( i=0; i<n; i++ ) str[i]=i+'0'+1;
  sub( str, i, i, (argc>=3)?atoi(argv[2]):0 );
}
0472デフォルトの名無しさんNGNG
[2] 問題文(含コード&リンク):
n個の英単語を入力し、アルファベット順に並び替えて
  出力するプログラムを、関数及び制御構造を必ず用いて
  作成せよ。なお、nは有限であっても良いが固定であっては
  ならない。
[3] 環境
 [3.1] OS: Windows XP Home
 [3.2] コンパイラ(バージョン): Visual Studio.NET 2003
 [3.3] 言語:C
[4] 期限:2005年01月07日22:00まで

出直してきました。どうかお願い致します。
0473デフォルトの名無しさんNGNG
>>470

ありがとうございました!!printf少しいじって例題のように出力できるようになりました。
0474C言語です。NGNG
int a,b,x,y;


if(a>b){
x
} else if(a<b){
y
}

この式あってますか?

もしa>bならx,b<aならyとしたいのですが。
0475デフォルトの名無しさんNGNG
a==bの時は?
そもそも何をxにしたいの?
0476デフォルトの名無しさんNGNG
a==bのときはどうするんだ?
0477デフォルトの名無しさんNGNG
x,yは文ではないようですね
0478474NGNG
みなさんありがとうございます。

まずa==bは無視しています。

xは赤、yは青という意味です。
0479デフォルトの名無しさんNGNG
>>478
いやそうじゃなくて、プログラム中に
1+2; と書いても間違いではないけど意味はないだろ
xとyをどうしたいのさ
0480474NGNG
えっと、474と同じようなプログラムが他に3つあるのですが、
それぞれのプログラム内で、青か赤かを認識させといて、
4つを総合させたいんです。。
0481474NGNG
・・・なんか意味不明ですよね^^;
うまく書けない(><)
0482デフォルトの名無しさんNGNG
[2] 問題文(含コード&リンク):
文字列を入力として受付け、“end”が入力されるまで入力を繰り返し受け付ける。
“end”が入力された場合、それまで入力した文字列の内、長さが一番長いものを出力する。
ただし、最大の要素数の指定にはマクロを用いること。

例)
a
ab
abc
abcd
end
出力結果:abcd
[3] 環境
 [3.1] OS:Windows XP pro
 [3.2] コンパイラ(バージョン):Visual C++.net 2003
 [3.3] 言語:C
[4] 期限:2005年1月8日朝9:00まで

どなたかお願い致します。もう全然お手上げなんです。
0483デフォルトの名無しさんNGNG
急に増えてきたな。そろそろ学生の正月休みが終わる頃だからかな。
0484デフォルトの名無しさんNGNG
>>482
#include <stdio.h>
#include <string.h>
#define N 10 // 最大要素数
int main()
{
  char buf[N][256];
  int i=0, len_max=0, len, index=0;
  for(;;) {
    fgets(buf[i], sizeof(buf[i]), stdin);
    len = strlen(buf[i]);
    buf[i][len-1]='\0';
    if (strcmp(buf[i], "end") == 0)
      break;
    if (len_max < len) {
      index = i;
      len_max = len;
    }
    if (++i == N)
      break;
  }
  if (i != 0)
    printf("%s\n", buf[index]);
  return 0;
}

あまりスマートじゃないですが orz
0485デフォルトの名無しさんNGNG
>>484
スマートさは兎も角、fgets()!=NULLは確認する癖をつけたほうがいい。
0486デフォルトの名無しさんNGNG
>>472
改行思いっきり詰めたから適当に直して
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char** add_str(char** a,int n,const char* s)
{
char** p;
p=realloc(a,sizeof(char**)*(n+1));
if(p){p[n]=malloc(strlen(s));if(p[n]){strcpy(p[n],s);}else{p=NULL;}}
return p;
}
int sort_sub(const void* x,const void* y){return strcmp(*(char**)x,*(char**)y);}
#define MAX_STR1024
int main()
{
int i,n;
char** a=NULL;
char** p;
char s[MAX_STR];
puts("Ctrl+Z [ENTER] で終了");
for(n=0;;n++){
printf("%d>",n);
if(fgets(s,MAX_STR,stdin)==NULL)break;
p=add_str(a,n,s);
if(p==NULL){puts("メモリ不足");exit(1);}
a=p;
}
qsort(a,n,sizeof(char**),sort_sub);
for(i=0;i<n;i++){printf("%s",a[i]);}
return 0;// 解放はOSにまかすさよなら
}
0487デフォルトの名無しさんNGNG
[訂正]
ああスペースがつぶれた.↓
#define MAX_STR 1024
0488デフォルトの名無しさんNGNG
>>485
あ、忘れてました…
指摘ありがとうございます。
0489457NGNG
みなさんありがとうございます。
まだ内容を吟味はしていないのですが、理解に努めますorz
0490472NGNG
どうか助けて下さい m(_ _)m
0491デフォルトの名無しさんNGNG
>>490
上のほうでだれか書いてなかったっけ
0492デフォルトの名無しさんNGNG
C言語の宿題です。ちょっと分りにくいかも。

**** text.txt ****

awsedr
ftgy
*
hujikolp
*
zsxdc
vcgbn
*
vnytk
wruigf
 ・
 ・

***************

こんな感じのtext.txtというテキストファイルがあって
不規則的に「*」が数行置きに置かれてます。
これを

hoge[0].str[0]={"awsedr"}
hoge[0].str[1]={"ftgy"}
hoge[1].str[0]={"hujikolp"}
hoge[2].str[0]={"zsxdc"}
hoge[2].str[1]={"vcgdn"}

こんな感じにします。
これはどうやればいいんですか?
とりあえずforを使うっていうのは分ったんですが・・・
0493デフォルトの名無しさんNGNG
while(fgets(buf, sizeof(buf), /*** ファイル ポインタ ***/) != NULL){
  if(!strcmp(buf, "*")){
    i++;
    j = 0;
  } else {
    /*** hogeを動的に確保する場合は数に応じて拡張 ***/
    strcpy(&(hoge[i].str[j]), buf);
    j++;
  }
}
0494492NGNG
>>493
レスありがとうございます。
でもコードが難しくてよく理解できないので
もし良かったら、どういう仕組み(?)に
なっているのか教えてください。
bufがファイルポインタなのかな・・・?
0495デフォルトの名無しさんNGNG
>>494
コードが難しいから理解できないんじゃなくて、
単に君の知識が不足してるから理解できないだけなわけだが。
0496デフォルトの名無しさんNGNG
×知識
○知能
0497デフォルトの名無しさんNGNG
>>495
ほとんど同じ意味だろソレ
0498デフォルトの名無しさんNGNG
毒舌吐かないと気がすまない人はカルシウム不足
0499492NGNG
本当に分らないんです。
while(fgets(buf, sizeof(buf), /*** ファイル ポインタ ***/) != NULL){
このコメントのところに、ファイルポインタを書くという意味ですか?
だとすると、bufは何の変数なんでしょうか
0500482NGNG
>>484
早い解答、ありがとうございました!
0501464NGNG
464
sage
>>457 463さんの方法で464の順列を生成してみました
#include <stdio.h>
long kaijo[] = {1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880};
long hoge(int n, long d) {
  int i, j, a, b;
  unsigned bits = ~((~0) << n);
  long x = 0;
  for (i = 1; i <= n; i++) {
    a = d / kaijo[n - i];
    b = 0;
    for (j = 0; j < 9; j++) {
      if (bits & (1 << j))
        b++;
      if (b > a)
        break;
    }
    x = x * 10 + (1 + j);
    bits &= ~(1 << j);
    d %= kaijo[n - i];
  }
  return x;
}
int main(int argc, char *argv[]) {
  int n = argv[1][0] - '0';
  long i;
  for (i = 0; i < kaijo[n]; i++)
    printf("%ld\n", hoge(n, i));
  return 0;
}
0502デフォルトの名無しさんNGNG
>>499
man fgets
0503201NGNG
>>499
バッファ(Buffer)
0504デフォルトの名無しさんNGNG
ファイル入出力
http://www9.plala.or.jp/sgwr-t/c/sec17.html
0505492NGNG
なんかエラーが出るんですけど・・・
'strcpy' : 1 番目の引数を 'char (*)[256]' から 'char *' に変換できません。
ヽ(`Д´)ノウワァァン!!
0506デフォルトの名無しさんNGNG
&とれよ
0507492NGNG
>>506
コンパイルできました!ありがとうございます!
頭いいですね!
0508デフォルトの名無しさんNGNG
>>507
お前が馬鹿すぎるんだよ。
0509デフォルトの名無しさんNGNG
こういう課題が出るってことは最低でも高校生だよなぁ
とてもそうは思えない奴が多すぎだ

出来のいい奴はこんなところに来ないだろうから、特にそう見えるのかもしれないが
0510デフォルトの名無しさんNGNG
まぁ、ちょっと調べればできることなのに何も調べないなさそうな奴多そうだし。
0511デフォルトの名無しさんNGNG
ちょっと調べるより、質問丸投げの方が楽だからな…
0512デフォルトの名無しさんNGNG
そうでもない。
0513デフォルトの名無しさんNGNG
さんざん答えた後に言うなよ・・・
0514デフォルトの名無しさんNGNG
まあ、なんて聞いたらいいのか解らんときもあるさ
0515デフォルトの名無しさんNGNG
[1] 授業単元: 情報処理
[2] 問題文(含コード&リンク):
テキストファイルの入力に対して行数の短い順に並べて出力しなさい。空行は出力しないこと。

例)
abcd
abcdef
ab
abc

出力結果:
ab
abc
abcd
abcdef

[3] 環境
 [3.1] OS: Windows XP pro
 [3.2] コンパイラ(バージョン): Visual Studio 6
 [3.3] 言語:Cのみ
[4] 期限:2005年01月14日22:00まで
自力で半月頑張りましたが、ファイル読み込みまでしかうまく出来ませんでした
どうかお願いします。
0516515NGNG
自己解決しました。ありがとうございました。
0517ぼるじょあ ◆yBEncckFOU NGNG
(・3・) エェー どういたしましてですYO
0518515NGNG
数分で解決出来たらこんなに悩んでませんorz
0519デフォルトの名無しさんNGNG
7分で解決出来てるじゃんw
0520515NGNG
>>519
一目瞭然だと思いますが、516は偽者の発言です
0521デフォルトの名無しさんNGNG
>>515
ソートするの
行あたり文字数の上限は
どこに出力するの
0522デフォルトの名無しさんNGNG
C++とかJavaとかじゃないと解く気しねーな
0523515NGNG
>>521
80行を超えた分は無視して読み込まないで、
表示は実行ウインドウに表示されれば良いみたいです。
0524デフォルトの名無しさんNGNG
行数の上限はあるの?
0525515NGNG
行数の上限の指定はありませんでした。
0526515NGNG
>>213
80行を超えた分 ->80文字
でした。何度もすいません。
0527515NGNG
>>523
80行を超えた分 ->80文字を超えた分
でした。
徹夜で何かパニくってましたorz
ホントに何度もすみません。
0528デフォルトの名無しさんNGNG
空行って改行しかない行?
それともスペースやタブしかない行?
0529デフォルトの名無しさんNGNG
>>515
反応がないので空行=改行しかない行として作ったぞ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/50.txt
0530529NGNG
全然だめぽなんで作り直すからちょっと待ってて
0531515NGNG
すいません、少し席をはずしてました。
こんなに早く作って頂きまして、ホントに感謝です!
さっそく実行してみますね。
0532515NGNG
>>528
空行は改行しかない行で良いと思います。
0533529NGNG
>>515
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/52.txt
ちゃんと動くかどうか確かめたいけどもう眠気を抑えきれん…
ちゃんと動いたとしても部品の出来が糞なんで
自分で改良して提出してくれ…

んじゃ漏れはもう寝る…
0534515NGNG
529さん、ありがとう御座います。
これから色々試して出きる限り動くように頑張ろうと思います。
おかげさまで助かりました!
0535デフォルトの名無しさんNGNG
ぬるっぽ
0536デフォルトの名無しさんNGNG
ぐるっがああっ
0537デフォルトの名無しさんNGNG
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: UNIX Solaris
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C++

質問したいのは、主に どのようにして辞書順にソートするかです。
インプットは、一行に一単語のテキスト形式で それを読み込み、辞書順に
並び替えて別のテキストに出力するという 単純なプログラムを作らなけれ
ばなりません。

ポイントとしましては、
Typeをmainとは別ファイルに作る。
makefileを作る。

自分が一番分からないところは、どのように辞書順に並び替えるかです。
strcmpでは、辞書順にならないし、もちろん >や<でもなりません。
又、Typeを別ファイルで作るという事ですが 多分、Compareや、Sortといった
ファイルを作って、単語同士の比較をそちらにやらせるという感じになると
思うのですが、今一具体的に アイデアがわきません。

助けてください! 御願いします。。
0538デフォルトの名無しさんNGNG
>>537
std::lexicographical_compare()
0539デフォルトの名無しさんNGNG
ソート基準は関数オブジェクトで
0540デフォルトの名無しさんNGNG
>>537
条件を満たしてないので参考までに

#include <fstream>
#include <algorithm>
#include <vector>
#include <string>
#include <iterator>
#include <utility>
#include <functional>

using namespace std ;

inline bool my_comp( const string& lhv, const string& rhv )
{ return lexicographical_compare( lhv.begin(), lhv.end(), rhv.begin(), rhv.end() ) ; }

int main( int argc, const char* argv[] )
{
vector<string> strs ;
ifstream ifile( argv[1] ) ;
ofstream ofile( argv[2] ) ;
copy( istream_iterator<string>( ifile ), istream_iterator<string>(), back_inserter( strs ) ) ;
sort( strs.begin(), strs.end(), ptr_fun( &my_comp ) ) ;
copy( strs.begin(), strs.end(), ostream_iterator<string>( ofile, "\n" ) ) ;
return 0 ;
}

0541デフォルトの名無しさんNGNG
CでDOSスロットマシーンを作るのですうわなにをするやめrppppppp@@@@@@@@@@@
0542デフォルトの名無しさんNGNG
tes
0543デフォルトの名無しさんNGNG
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/53.txt
課題をここまでやったのですが実行結果が変なのです
試行錯誤したんですが限界で・・・どなたかお願いします
0544デフォルトの名無しさんNGNG
>>543
mplus関数にn,mの情報が渡されてない
あと
main関数の下から5行目はnじゃなくてm
0545デフォルトの名無しさんNGNG
>544
分かりました、何とかやってみます
0546537NGNG
すばやい返答ありがとうございました!
早速、lexical_compareを使ってやってみたいと思います。

又分からない事がでてきたら、よろしくおねがいします。
0547537NGNG
537です。

540さんと、538さんの発言をヒントに、lexicographical_compareを使ってやっていたのですが、コンパイルエラーが出て困っています。
一つだけ出るのですが、ClassのDeclareに問題がある模様です。おかしい所は無いように、
私には見えるのですが。。。

一応、無理やりですが 宿題の指示通り、 別クラスにタイプを作ってどうこうしなければならない
ので、mainを sorter.cppに入れて、 そのほかに compare.cpp と compare.h を作りました。
これらのファイルのリンクが上手くいっていないのかな。。

一応今まで書いたコードをUPしてみましたので もしよかったら目を通してやってください。
問題点があまり分からないです。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/54.zip

参考になるかわかりませんが、宿題の内容もアップしておきました。英語ですいません。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/55.txt

よろしく御願いします!
0548デフォルトの名無しさんNGNG
>>547
std::lexicographical_compare()なんて使うならstd::stringのメンバ関数の
operator<()使っても何の違いもないと思うんだけど。
0549デフォルトの名無しさんNGNG
>>547
そっち、突っ込みどころだらけ。次のコードのmy_compを別ファイルに
移せば一応条件は満たしていると思うが。
#include <fstream>
#include <algorithm>
#include <vector>
#include <string>
#include <iterator>
#include <utility>
#include <functional>

struct my_comp
{
    bool operator()(const std::string& x, const std::string& y)
    {
        return std::lexicographical_compare(x.begin(), x.end(), y.begin(), y.end());
    }
};

int main(int argc, char* argv[])
{
    if (argc < 3) return 1;
    std::ifstream input(argv[1]);
    std::ofstream output(argv[2]);
    if (!input.is_open() || !output.is_open()) return 1;
    std::vector<std::string> dic;
    dic.assign(std::istream_iterator<std::string>(input), std::istream_iterator<std::string>());
    std::sort(dic.begin(), dic.end(), my_comp());
    std::copy(dic.begin(), dic.end(), std::ostream_iterator<std::string>(output, "\n"));
    return 0 ;
}
0550537NGNG
>549さん

やはり、突っ込みどころだらけですか。。 我ながら低レベルなコードだと思います。

逆に、549さんのコードは ハイレベル過ぎて今一わからない部分があります。
たくさんIncludeされてますが、半分ほど 初めてみるようなLibraryです。

my_compを別ファイルに移すというのは、具体的にどのようにするのでしょうか?

my_comp.cpp と my_comp.h を作って、my_compの実行コードを my_comp.cppに
移して、my_comp.hにSpecificationを書いて、 mainのあるファイル内でinclude <my_comp.h>
すればよいということでしょうか?
0551デフォルトの名無しさんNGNG
円周率πの値を計算するモンテカルロシミュレーションのプログラムが分かる
人是非教えてください。お願いします。
0552537NGNG
もしよければ 私のコードのどこら辺がおかしいか 大まかにでも教えて
頂けませんか? なるべく理解して 修正していきたいので よろしく御願いします。。

私の考え的には、
1.テキストファイルから単語を読んで、string list[100]に保存していく。(最高100単語)
2.保存していく際に、以下の方法で 辞書順に並び替えながら保存していく。
3.まず単語をstring wordに保存し、wordをlist[n] (最初はn=0) と見比べる。この時、外部Methodを呼ぶ。
4.外部Methodはパラメーターに渡された二つのstringを比べて、Booleanを返す。
5.外部Methodは二つのstringが同じ場合、もしくは比べる単語が、比べられる単語より辞書順で前に来る場合、Falseを返す。 比べる単語が、比べられる単語より後に来る場合Trueを返す。
6.mainで、methodの返し値がTrueの場合 wordをlist[n++]と比べる。
  methodの返し値がFalseの場合 wordをlist[n]とスワップしてから、n++して、3に戻る。
7.最終的に、wordはlist内の一番最後のword (空白)とスワップされる。よって、wordが空白に
なった時に このループを終える。
8.list内のデータをファイルに出力する。

以上の事が、私がやりたかった事です。やりたい事がわかっているのに、コードにできないのはとても
歯痒いですね。。多分 以上のアルゴリズムは全くもって低レベルなのでしょうけど。。
0553デフォルトの名無しさんNGNG
>>551
http://www.google.co.jp/search?hl=ja&q=%E5%86%86%E5%91%A8%E7%8E%87%E3%80%80%E3%83%A2%E3%83%B3%E3%83%86%E3%82%AB%E3%83%AB%E3%83%AD&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
死ぬほど出てきますが…
0554デフォルトの名無しさんNGNG
std::vector, list 等につっこんで sort
これでよけいなことは考えなくてすむ
0555551NGNG
>>553
C++を使ったプログラムがわからないのです…
0556デフォルトの名無しさんNGNG
>>551
てきとー
#include <iostream>
#include <cstdlib>
#include <ctime>
#define N 100000
using namespace std;
int main()
{
 int cnt=0;
 double x,y;
 srand((unsigned int)time(0));
 for (int i=0; i<N; i++) {
  x = (double)rand() / RAND_MAX;
  y = (double)rand() / RAND_MAX;
  if ((x*x + y*y) <= 1)
   cnt++;
 }
 cout << "π=" << (double)cnt/N*4 << endl;
}
0557デフォルトの名無しさんNGNG
>>552
ちょっと待ってなさい
0558537NGNG
>557さん

ほんと感謝します:D
0559デフォルトの名無しさんNGNG
メモリモデルについて説明せよ。
0560548=549=557NGNG
>>558
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/56.zip
コンパイルは通るが結果がソートされない。つまり、元々ソートのアルゴリズムが
間違っている。そこは自分でやるかい?
0561537NGNG
>557さん

こんな丁寧に自分のコードを直された事がなかったので 大変嬉しいです。
分かりやすい解説をどうもありがとう。

教えてもらった通りに書き換えてみたのですが、Compileエラーがいくつか出てしまいます。
環境に依存するものでしょうか?(Solarisです)

>g++ -o sorter sorter.cpp と打つと

Undefined first referenced
symbol in file
Compare::Compare(std::string, std::string)/var/tmp/ccLKVSfb.o
Compare::Compare_To_Each_Other() /var/tmp/ccLKVSfb.o
ld: fatal: Symbol referencing errors. No output written to sroter
collect2: ld returned 1 exit status.

とでます。何か心当たりはありませんでしょうか?
取り合えずコンパイルされて どのようにソートされるかを見て、できるだけ自分で
アルゴリズムから考えなおしてみます。
0562デフォルトの名無しさんNGNG
ねぇねぇCでスロットマシーン作りたいの
0563デフォルトの名無しさんNGNG
g++ -o sorter sorter.cpp compare.cpp
0564デフォルトの名無しさんNGNG
>562
'\r'出力とgetch使って試してくんろ
0565デフォルトの名無しさんNGNG
"1234567〓♂☆★"
♂:1チェリー ♂♂:2チェリー
♂♂♂:3チェリー
〓〓:2バー 〓〓〓:3バー
111〜777:大当たり
☆☆☆:確率変動
★★★:ディスク初期化
0566デフォルトの名無しさんNGNG
>>565
ワロア
0567デフォルトの名無しさんNGNG
>>565
ワローデッド
0568デフォルトの名無しさんNGNG
\r出力で行の先頭に移動できる。
期待得点=(得点×確率)の和。
期待減点=(減点×確率)の和。
期待点=期待得点-期待減点≒0となるように3ドラムを設計。
0569デフォルトの名無しさんNGNG
#define D_SIZE ドラムの大きさ
char dd[3][D_SIZE][10]={{ドラム1設計},...};
int di[3]={ドラム1の位置,...};
...
printf("%s\r",dd[i][di[i]]);
0570デフォルトの名無しさんNGNG
sleep関数を使ってアニメ化のための遅延(時間待ち)を行うとよい。ここまでで質問はないか?
0571デフォルトの名無しさんNGNG
ディスク初期化は何点に相当しますか?
0572デフォルトの名無しさんNGNG
>571
-666点
0573ぼるじょあ ◆yBEncckFOU NGNG
sage
0574ぼるじょあ ◆yBEncckFOU NGNG
ぼるじょあ#ぶるじょあ
0575551NGNG
このプログラムはある系列(SEEDというグローバル変数)の[0,1]なる擬似一様乱数
を発生し表示するプログラムなんですけど、これを参考にして円周率πの値を計算
するモンテカルロシミュレーションのプログラムが作れません。教えてください。
よろしくお願いします!


#include<iostream>
#include<cstdlib>
#define SEED 100000

int main(int argc, char **argv)
{
unsigned int SEED;
unsigned int MAXNUM;

if(argc != 3){
cerr << "USAGE:uniform SEED MAXNUM\n";
exit(1);
}

SEED = atoi(argv[1]);
MAXNUM = atoi(argv[2]);
srand(SEED);
for(unsigned int i =1; i <= MAXNUM; i++){
double x = (double)rand() / (double)RAND_MAX;
cout << i << '\t' << x << '\n';
}
return(0);
}
0576デフォルトの名無しさんNGNG
もう解答出てないか?
0577デフォルトの名無しさんNGNG
>575
なぜ過去スレやGoogleで調べようとしない? 乱数生成ルーチンを関数にしろ。それから、針が乱雑に落ちる場合を図に描き、その図から円周率を含む式を考えろ
0578デフォルトの名無しさんNGNG
まるち!マルチ!multi!まるち!マルチ!multi!まるち!マルチ!multi!
0579デフォルトの名無しさんNGNG
過去スレというか…
>>556をちょっと変えるだけでいいんじゃないの?
0580デフォルトの名無しさんNGNG

_ , '⌒ ⌒\
\\ ノノレノ )))
  (○) |||ノ
  'へ゛゛ーノ   ‖
   (  ̄ ̄ ̄《目
   |  ===《目
   |__|    ‖
   ∠|_|_|_|_ゝ  ‖
    |__|_|     ‖
    | | |     ‖
    |__|__|     ‖
    | \\   皿皿
0581551NGNG
考えてはみたんですけど分からないのです。本当に教えてください。お願いします。
0582デフォルトの名無しさんNGNG
556の何が不満なんだ?
0583デフォルトの名無しさんNGNG
ファイルを読み込んで1行に空白で区切ってある数字があります。
1行に数字が何個あるかは決まってなく、ファイルの終わりまでの
すべての数字を読み込んで総和を出すプログラムなんですが・・・。
もっと簡単になりませんかね?
#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *fp;
char a[256], b[10];
int i,k,sum=0;
fp=fopen("data.txt","r");
while(fgets(a,255,fp)!=NULL){
i=0;
while( a[i]!='\n'){
k=0;
for( ; a[i]!=' '&& a[i]!='\n'&& a[i]!='\0'; i++){
b[k]=a[i]; k++;
}
b[k]='\0';
sum += atoi(b);
for( ;a[i]==' ';i++);
}
}
printf("総和は%d",sum);
fclose(fp);
return 0;
}
0584デフォルトの名無しさんNGNG
>583
atoiは数字より後の数字以外の文字を無視するから、配列bにコピーするのは無駄
0585デフォルトの名無しさんNGNG
>>583
C++ならこうなる。
#include <fstream>
#include <iostream>
#include <iterator>
#include <numeric>

int main()
{
    std::ifstream data("data.txt");
    std::cout << std::accumulate(std::istream_iterator<int>(data), std::istream_iterator<int>(), 0) << std::endl;
    return 0;
}
0586デフォルトの名無しさんNGNG
584>
どこをかえればいいんですか?
0587デフォルトの名無しさんNGNG
C言語で因子分析のプログラムを作成したいのですが、誰か参考になるプログラムなどありませんか?
0588デフォルトの名無しさんNGNG
>>583
strtolをうまく使え
0589575NGNG
誰かわかりませんか?
0590デフォルトの名無しさんNGNG
釣りはツマンネ
0591デフォルトの名無しさんNGNG
モロトフカクテル
0592585NGNG
>>583
自分の求める以外のレスにも何か反応したらどうだい?C限定ならこうなる。
#include <ctype.h>
#include <stdio.h>

int main(void)
{
    FILE *fp;
    int c, num = 0, sum = 0;
    if ((fp = fopen("data.txt", "r")) == NULL) return 1;
    while ((c = getc(fp)) != EOF) {
        if (isdigit(c)) {
            num *= 10;
            num += c - '0';
        }
        else {
            sum += num;
            num = 0;
            while (!isdigit(c = getc(fp)));
            ungetc(c, fp);
        }
    }
    sum += num;
    fclose(fp);
    printf("%d", sum);
    return 0;
}
0593デフォルトの名無しさんNGNG
>>592
ungetcとか要るの?
#include <ctype.h>
#include <stdio.h>
int main(void)
{
  FILE *fp;
  int ch, n=0, t=0;
  if ( !(fp=fopen("data.txt","r")) ) return 1;
  while( (ch=getc(fp))!=EOF )
    if( isdigit(ch) ) n=n*10+ch-'0'; else t+=n,n=0;
  fclose(fp);
  printf("total:%d", t+n);
  return 0;
}
0594デフォルトの名無しさんNGNG
583ではないんですけど、
n=n*10+ch-'0'
の-'0'ってなにをしてるんっすか?
0595デフォルトの名無しさんNGNG
n = '3' - '0'; // n == 3
0596デフォルトの名無しさんNGNG
>594
'0'からの相対位置。Win+R キーを押した後「charmap」と入力してEnter押してみろ
0597デフォルトの名無しさんNGNG
Win+Rで出ることを初めて知った…
0598デフォルトの名無しさんNGNG
>>595-596
おぉなるほど!
ありがとうございましたっm(_ _)m
0599434NGNG
ブラックジャックを作っています。一連の流れは作り終えたのですが。
一度対戦を終え、もう一度やり直すと、必ず固まってしまいます。

C++Builderを使用しております。
スタートボタンで「カードをシャッフル・コンピュータとプレイヤーにカードを2枚配る・カードの値の判定と表示」
を行っているのですが。一度はきちんと動くんですが、2回目からは固まるのです。
つまり、スタートボタンが2度は押せないのです。
プログラムはおかしくないとは思うのですが。こういった時の原因ってどう発見すれば良いんでしょうか。
0600デフォルトの名無しさんNGNG
>>599
プログラムがおかしいんです。
現実逃避を止めましょう
0601デフォルトの名無しさんNGNG
>>562
randでも使ってやってみろ
0602434NGNG
>>600
そうなのかもしれませんが。一度目はきちんと作動するんです。
二回目からも、不自然な動作をする訳じゃなく、ただ固まるだけなので。
それで困ってるんです。
0603575NGNG
考えても分かりません。誰か教えてくれませんか!!
0604デフォルトの名無しさんNGNG
>603
どこで分からないか説明できないのなら、きっぱりあきらめなさい。
0605デフォルトの名無しさんNGNG
>>599
・サンプルなりチュートリアルなりを参考にしているならそれらをよく読む。
・コードを晒す。
ま、どっちかかな。
0606575NGNG
申し訳ないんですけどプログラム作ってもらえませんか。
0607デフォルトの名無しさんNGNG
まるち〜
0608デフォルトの名無しさんNGNG
>>606
自分で作れチンカス
0609575NGNG
分からないから頼んでるんですよ。お願いします!
0610575NGNG
分からないから頼んでるんですよ。お願いします!
0611575NGNG
早く俺の宿題やれチンカスども!もう眠いから寝るが、明日の昼までにやっとけ
0612デフォルトの名無しさんNGNG
>599

1度目→2度目の時にやっておかなければならない初期化等の漏れ
0613デフォルトの名無しさんNGNG
正直ここの住人は尊敬するよ。
0614デフォルトの名無しさんNGNG
正直hereのinhabitantはrespectするよ。
0615デフォルトの名無しさんNGNG
ポーカーでカード配るのは出来るんですが、いらないカードを交換する部分が上手くいきません
0616デフォルトの名無しさんNGNG
>>615
独り言なら他の板でやってくれないかな
0617537NGNG
537です。

549さんのコードを理解しようとしているのですが、最後から3つ目と2つ目の行の
sortとcopyは、Iteratorというライブラリに収容されているMethodでしょうか?
調べてみた所、random_iteratorやら、reserve_iteratorやらと 色々なiteratorがあるようですが、
549さんのコードには、iterator のみがincludeされていますよね。これ一つで、全種類の
iteratorが使えるようになるのでしょうか?
やっていることは分かるのですが、将来も使えるMethodなら使いたいので 教えてください。

後、もう一つだけ教えてください。
多分、ファイルのリンクが上手く行っていないとおもうのですが、549さんのコードでいう
my_comp、(私は自分で、compare.cpp compare.hという二つのファイルに、ちょっと違うコードを
書いてみました)なのですが、 Typeを別クラスに収納するやりかたは ぼんやりですが分かっている
のですが ファンクションのみというのは、どのようにするのでしょうか?やってみたのですが、
二つだけ、コンパイルエラーがでてしまいます。。
以下に、549さんのコードをヒントに書いてみたコードのリンクを張っておきますので、時間があるときに
目を通していただいて、間違っている所を指摘していただければ幸いです。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/58.zip

宜しく御願いします。
0618デフォルトの名無しさんNGNG
プログラム はじめたばかりの大学生ですが
・授業単元:配列?
・環境
・ OS: win XP
・コンパイラ(バージョン):bcpad
・言語:C++
・期限:1989年1月10日:   今日中だとうれしいです
よろしくお願いいたします。
3問課題が出題されたのですが、後の2問がりかいできませんでした。
申し訳ありませんが協力おねがいします。

�@
#include <stdio.h>
void main(void)
{
int a[ ]={ 65,82,47,98,100,83,71,39,54,26};
int b[10],i;
for(i=0;i<=9;i++){
b[i]=a[i];
}
for(i=0;i<=9;i++){
printf(“a[%d]=%d b[%d]=%d\n”,i,a[i],i,b[i]);
}
}
0619618NGNG
�A
 �@の配列 aの要素値を多きい順に並び替えるプログラム。
�B
 �@の配列 aの要素値の最大値と最小値を求め、表示するプログラムを作成。

以上の2問です。  すいませんが頼らせていただきます。よろしくお願いします。
0620デフォルトの名無しさんNGNG
>・期限:1989年1月10日:   今日中だとうれしいです

?????
0621デフォルトの名無しさんNGNG
�A
#include <iostream>
#include <iterator>
#include <algorithm>
#include <functional>

template <class T, std::size_t N>
inline std::size_t numOf(const T (&)[N])
{ return N; }

int main()
{
std::sort(&a[0], &a[numOf(a)], std::greater());
}
�B
template <class T, std::size_t N>
inline std::size_t numOf(const T (&)[N])
{ return N; }

template <class T, std::size_t N>
inline T min(const T (&t)[N])
{ return *std::min_element(&t[0], &t[N]); }

template <class T, std::size_t N>
inline T max(const T (&t)[N])
{ return *std::max_element(&t[0], &t[N]); }

int main()
{
std::cout << min(a) << ' ' << max(a) << std::endl;
}
漏れの脳内コンパイルは通った
0622デフォルトの名無しさんNGNG
>>621
2ですけど
missing template arguments before '(' token
って出てしまいます。
0623デフォルトの名無しさんNGNG
maze[x][y]==KITA;
if(maze[y][x+1] == AKI)座標(x+1,y)をプッシュダウン
if(maze[y+1][x] == AKI)座標(x,y+1)をプッシュダウン
if(maze[y][x-1] == AKI)座標(x-1,y)をプッシュダウン
if(maze[y-1][x] == AKI)座標(x,y-1)をプッシュダウン
スタックを使った迷路なんですが、これはfindgoal()という関数の中の
一文です。1つの座標に一方向ではなく、四方向を検索してすべての
迷路の経路と距離を再帰関数を使わずに求めるにはどうしたらいいでしょう?
スタックでは、x,y座標以外に検索方向dを加えています。まだ検索してない座標

は(x,y,d)をスタックにプッシュダウンします。dが0なら右,1なら下,2なら左,3
なら上,4なら終了という意味にしています。
0624デフォルトの名無しさんNGNG
>>617
sortとcopyは<algorithm>内に収められている。
<iterator>はistream_iterator/ostream_iterator用。
iterator自体はコンテナのヘッダや<string>をインクルードすれば使える。
0625デフォルトの名無しさんNGNG
>>623
関数findgoal()の書き換えで求めるんですが、
プログラム文が短くてわかりづらかったらご指摘ください。
よろしくお願いします。
0626618NGNG
>>620
弟の誕生日入れてまいました。すいません


>>621,622
朝からありがとうございます。        
0627デフォルトの名無しさんNGNG
1989というと俺と同級か
0628デフォルトの名無しさんNGNG
>>627
若いねー。俺なんて1978だよ。もうオッサン腹だよ。
このスレの住人ってどのくらいの年齢層なんだろうね。
まぁ宿題持ってくる奴は18〜22が平均なのだろうが。
0629デフォルトの名無しさんNGNG
>>627
俺とも同級だw
0630デフォルトの名無しさんNGNG
>>627,629
タメ多いね
自分も同級だよ

>>628
ちなみに解答Only
0631デフォルトの名無しさんNGNG
>>628
藻前様よりもずっと年上だよ。でも未だに二十歳のときの体型維持しているがね。
0632デフォルトの名無しさんNGNG
[1] 授業単元:
[2] 問題文(含コード&リンク):HTTPクライアントとサーバの作成

クライアントの動作

1 起動後、
2 標準入力からURL (http: で始まるものだけ) を入力し、 その情報をもとにサーバにTCPで接続し、 上記プロトコル(HTTP 1.1 のサブセット)に従い、
コンテンツ (message-body) の転送要求を行い、 結果を画面に表示する。 (サーバのポート番号は URL の中で指定できるようにすること)
3 2. の動作を繰り返す。

サーバの動作

1 引数は TCPのポート番号とする
2 起動後、
3 クライアントからのコネクション待ちに入る。
4 クライアントのコネクション確立後、 クライアントからのコンテンツ転送要求に応じてコンテンツを転送する。
5 2. の状態に戻る。

詳細はこちらに http://www.kuis.kyoto-u.ac.jp/isle/le2/http.html


[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ(バージョン):gcc バージョンはわかりません
 [3.3] 言語:C
[4] 期限:なるべく早く
[5] その他の制限:


よろしくお願いします。
0633デフォルトの名無しさんNGNG
勢いでスロットを作ってしまった。いm(ry

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/57.txt
0634デフォルトの名無しさんNGNG
>633
新入りにしてはまずまずの出来だな。kbhitを使えばキー押しチェックできる。infoseekは直リンク封じてたので、別リンクあげ。
57.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=32
0635デフォルトの名無しさんNGNG
>634
残念。infoseekのCGIには直リンク不能と思われ。
0636デフォルトの名無しさんNGNG
[2]ニュートンラプソン法を用いて方程式を解く問題で
fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
というエラーがでて解決法がわかりません。
 [3.1] OS:win XP
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C++
[4] 1/10中でお願いします
0637デフォルトの名無しさんNGNG
書いたプログラムは
#include <stdio.h>
#include <math.h>
main()
{
const float eps = 1.0e-14
float x0,x1;
float f(float x);
float fd(float x);
x1=1;
do
{
x0 = x1;
x1 = x0-f(x0)/fd(x0);
}
while (fabs(x1-x0) > eps);
printf("x = %g\n" ,x1);
}
float f(float x)
{
return (x*x-3*cos(x)+sin(x));
}
float fd(float x)
{
return (2*x+3*sin(x)+cos(x));
}
0638デフォルトの名無しさんNGNG
>>637
const float eps = 1.0e-14
にセミコロンがありませんよ。
>>fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
って事はVC使ってるかな?
プロジェクトの設定見直した方がいいかも。g++では通りましたよ。
0639デフォルトの名無しさんNGNG
はいVCです。設定ですか?
さっぱりわかりません(TT)
0640デフォルトの名無しさんNGNG
コンソールアプリケーションだよね。
プロパティー→C/C++→プリコンパイルの
プリコンパイル済みヘッダーの作成/使用を「使用しないに」。
0641デフォルトの名無しさんNGNG
教えていただいて申し訳ないですが見つからないです。
0642デフォルトの名無しさんNGNG
うーむ。バージョンが違うのかなぁ。
どっかに、プリコンパイル済みヘッダーの作成/使用に関する設定がないかなぁ
0643デフォルトの名無しさんNGNG
いっそプロジェクト作りなおすとか
0644デフォルトの名無しさんNGNG
2003使ってるんですが
ツール→オプション→エディットコンティニュ
にプリコンパイルを許可するって欄があってチェック外したのですが
変化なしです
0645デフォルトの名無しさんNGNG
あれ、2003だったら、プロジェクト→(プロジェクト名)のプロパティに例の項目無い?
0646デフォルトの名無しさんNGNG
は!ありました。どうもご迷惑おかけしました。
無事ビルドできましたありがとうございます!!
0647デフォルトの名無しさんNGNG
>>637
のプログラム書いた者なんですがこのプログラムって
あってるんでしょうか?
0648デフォルトの名無しさんNGNG
ニュートン法?
0649デフォルトの名無しさんNGNG
はい。度々申し訳ないですが解答が
x=0.9〜ってのはおかしいと
0650デフォルトの名無しさんNGNG
このスレの宿題って「C言語による最新アルゴリズム辞典」のコピペで解決するやつ多くないか?
高校ならともかく大学でこの本を置いてないってことは考えにくいからとりあえずテンプレに書いておくのはどうよ。
http://www.amazon.co.jp/exec/obidos/ASIN/4874084141/249-0080744-2490736

正誤表とソースコード
http://oku.edu.mie-u.ac.jp/~okumura/algo/
0651デフォルトの名無しさんNGNG
というかその本からのコピペでやっても
0.955909…になるなぁ
変なところで収束してるんじゃなかろか
0652デフォルトの名無しさんNGNG
根本的にCをわかってないのも多いから、奥村先生の本読んでも
コードのどこをどう使えばいいのか分からないだろうから、意味がない
0653デフォルトの名無しさんNGNG
方程式にムリがあるんですかね?
0654デフォルトの名無しさんNGNG
初期値に無理があるんだろ。ニュートン法は解が複数ある方程式の場合は
どこに収束するかは初期値次第だからな。
0655デフォルトの名無しさんNGNG
解は-1.314485609と0.9559087985ですね。
原因は>>654が正しいかと
0656デフォルトの名無しさんNGNG
>>655
その解の値を元の方程式につっこんでも0にならないのはなんででしょ?
0657デフォルトの名無しさんNGNG
>>656
(ほぼ)0になるよ。
勿論誤差はあるけど。
0658デフォルトの名無しさんNGNG
Mathematicaで吐かせたら解けない言われてもた(;´Д`)
>>657
ああ…指数表現に惑わされてました。確かにほぼ0ですね。スンマソン

0659デフォルトの名無しさんNGNG
みなさんありがとうございました。
0660デフォルトの名無しさんNGNG
初期値を-.200805にすると面白いと思うよ。
#経過を表示してないと判らないと思うけど。
0661デフォルトの名無しさんNGNG
いきなり-154に跳ね上がるのね
0662デフォルトの名無しさんNGNG
>>661
導関数値が0に近いからね。
0663デフォルトの名無しさんNGNG
 XYZ
-)ZYX
───

の条件を満たす数 X Y Z を求め、
表示するプログラムを作成しなさいという宿題がでたのですが
どのように書けばよいのでしょうか?
0664デフォルトの名無しさんNGNG
XYZ - ZYXがどうなるのが条件なんだ?
0665デフォルトの名無しさんNGNG
>663
条件式中の引き算の結果は?
0666デフォルトの名無しさんNGNG
>>663
その条件わかんね

>>664-666
の怒涛の突っ込み
0667デフォルトの名無しさんNGNG
出題ミスかも?
出題者に条件を聞いてみたら?
0668デフォルトの名無しさんNGNG
>1-1001
自己解決しました。有難うございました
0669デフォルトの名無しさんNGNG
>>668
藻前>>663?
0670デフォルトの名無しさんNGNG
ネタなのかな〜・・・・OTZ
0671663NGNG
すいませんかきわすれてました・・・

 XYZ
-)ZYX
───
 1XY
です。よろしくお願いいたします。
0672デフォルトの名無しさんNGNG
>663
総当りで調べるが良い
すなわち
for(x=1; x<=9; ++x){
for(y=0; y<=9; ++y){
for(z=1; z<=9; ++z){
if(z*100+y*10+z-(z*100+y*10+x)==100+x*10+y){ // ここで表示! }
}
}
}

※3桁の先頭が0にならないと考えた、一応
0673デフォルトの名無しさんNGNG
x,y,zを0〜9の数として三重forループで生成した後、条件に合うものを使えば良い
0674デフォルトの名無しさんNGNG
>>663
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/59.txt
>>672
条件ちょっとミスってるから^^;
0675デフォルトの名無しさんNGNG
>674
infoseek直接リンクダメだって
0676デフォルトの名無しさんNGNG
どうせなら一重ループでやれや
0677デフォルトの名無しさんNGNG
[1] 授業単元:
[2] 問題文(含コード&リンク): AKSアルゴリズムによる素数判定時間の表示
 希望動作 
 1.桁数nを入力
 2.指定桁数内で乱数a生成(10^(n-1)〜10^n -1の間)
 3.乱数aが素数(prime)か合成数(composite)かを判定
 4.乱数aの素数判定の処理時間をだす(乱数生成時間は含まない)
 5.乱数aと素数判定結果(素数か否か)と処理時間をファイル出力or表示
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ(バージョン): Borland C++(Ver5.5.1)
 [3.3] 言語:C/C++/どちらでも可(なるべくCで)
[4] 期限:05年1月17日くらい(なるべく早めに)
[5] その他の制限:
  AKSアルゴリズムを使った素数判定でお願いします
  AKSアルゴリズムの内容(日本語) ttp://www.h4.dion.ne.jp/~a00/ms_project_jp.html

よろしくお願いします。
0678デフォルトの名無しさんNGNG
>>675
スレイプニルだったらOK
0679デフォルトの名無しさんNGNG
OperaもOK
0680デフォルトの名無しさんNGNG
へ〜 AKSアルゴリズム知らなかったけど面白そうだね
0681663NGNG
>>674

ありがとうございました。これで冬休みの課題終了しました!!
ここの住人本当に感謝します!!
0682デフォルトの名無しさんNGNG
>>676
main(){
int x;
for( x=100; x<1000; x++ )
if( (x-x/100)%10*99==100+x%10*10+x/10%10 )
printf("x:%d y:%d z:%d\n",x%10,x*10%10,x*100%10);
}
これで満足か
0683デフォルトの名無しさんNGNG
printf("x:%d y:%d z:%d\n",x%10,x/10%10,x/100%10);
0684デフォルトの名無しさんNGNG
AKSのオーダーは?
0685デフォルトの名無しさんNGNG
XYZ % 10 = Z
XYZ * 10 % 10 = 0
XYZ * 100 % 10 = 0
0686デフォルトの名無しさんNGNG
>>682
そういう意地悪すんなや。
バックトラックとか、スマートなやりかたがあるだろ。
0687デフォルトの名無しさんNGNG
>>686
お前が書け
0688デフォルトの名無しさんNGNG
AKSアルゴリズムだけでかなりの量になるわけだが・・・
0689デフォルトの名無しさんNGNG
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
    int a = 0;
    double n, hoge, piyo;

    printf("桁数入力-->");
    scanf("%lf", &n);

    srand(time(NULL));
    hoge = pow(10.0, n);
    piyo = pow(10.0, n-1);

    while(a < (int)piyo) {
        a = rand() % (int)hoge;
    }

    return 0;
}

AKSアルゴを実装してから持って来てくれ。
俺にはよく理解できなかった。
とりあえず、1・2だけ。
0690デフォルトの名無しさんNGNG
16X16の行列の積を出来るだけ速く、省メモリに計算する関数を作って下さい。
言語はCです。OSに依存するコードは駄目です。コンパイラは何でも構いません。
100行以内でお願いします。

C=A * B
matmul(double *A,double *B,double *C){
}
0691677NGNG
AKSアルゴリズムのC++のサンプルコードらしきものを見つけたのですが
コンパイルしようとすると私の環境ではエラーをはいてしまいます
もし参考になるのであれば幸いです
サイトの下のほうにあります
 ttp://www.tcs.hut.fi/~helger/crypto/link/primality_tests/aks.html

あとオーダーというのはどういう意味でしょうか?
質問を質問で返してしまい申し訳ありません
0692デフォルトの名無しさんNGNG
>>691
ソース見たけど、長いねぇ(400行ぐらいかな)。
アップするにしても、あぷろだになるね。

まぁ、別の人に頼んで。(←ヘタレ)
0693デフォルトの名無しさんNGNG
本当はもっと短く書けますが…
0694デフォルトの名無しさんNGNG
>>693
じゃあ書いちくり
0695677NGNG
動作不明ですがAKSアルゴリズムをCで書いたと思われる
ソースがありましたのであぷろだにあげてみました
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/60.txt
0696デフォルトの名無しさんNGNG
>>691
オーダーくらいぐぐれ
0697デフォルトの名無しさんNGNG
>>691
f(n)がO(g(n))である ⇔ lim[n→∞](f(n)/g(n))≦c
0698デフォルトの名無しさんNGNG
C言語におけるpgm形式の画像処理の宿題です。(配列を使って。

ttp://robotics.me.es.osaka-u.ac.jp/~masutani/Jouki2001/Kadai/kadai3.html

に載ってる波紋や回転を参考に作ってみたのですが、まったくうまくいきません。
どなたか、配列への代入のソースを作ってはいただけないでしょうか?よろしくお願いします。
0699677NGNG
オーダーについてなんとなく理解できてきました
 f(n)=O(log^10.5 n) もしくは f(n)=O(log^12 n)
でお願いします。 表記等が間違っていたらすいません。
0700デフォルトの名無しさんNGNG
はて、何をお願いされたのか
0701デフォルトの名無しさんNGNG
>>699
オーダーはプログラムを書くときには関係ない。
0702デフォルトの名無しさんNGNG
ttp://jp.thespoke.net/MessageBoard/MessageBoard_ViewThread.aspx?postid=486

あの似顔絵ウィザードも含めて、HomeStyle+ って
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.NET Framework で書かれてるんですね。。。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
逆アセンブルしてみたら気づきました・・・・。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ああいうのを作品に組み込むのも面白いかも(笑)

MSの製品を逆汗するような奴をMSはMVPに選んでいるんです。MSは逆汗を認めていると
0703デフォルトの名無しさんNGNG
>>698
pgm画像データの配列への代入?
xv/ImageMagick/libpgm/libpnm辺りのソースを探そう。
0704デフォルトの名無しさんNGNG
すみません。レポートの問題が全然分からないのでどうか皆様のお力を貸して下さい。

自分は機会工学科の学生でCAD/CAMの授業を受けていたのですが、3回目のレポートにして
プログラムの問題が出題されて苦悩しています。
これまでの課題は機械的な問題だったので解けたもののプログラムはチンプンカンプンで、
これまでの不勉強を悔やむばかりです。

こんな深夜に大変あつかましいお願いですが、どうぞよろしくお願いします。

[1] 授業単元: CAD/CAM
[2] 問題文: 以下の関数を使ってどうやって三角錐の体積を求めているか説明せよ。
  ベクトルを使った体積計算  1/6a ( b×c ) (a,b,cはベクトル)  が基本になっている
  というのがヒントでした。

[4] 期限:2005年1月11日14:00まで 今日ですね…
0705704 続きです。NGNG
double svolume(s)
solid *s;
{
Face *f;
Loop *l;
HalfEdge *he1, *he2;
vector c;
double res:

res = 0 . 0;
f = s-> sfaces;
while (f)
{
l = f -> floops;
while (l)
{
he1 = l -> ledg;
he2 = he1 -> nxt;
do
{
cross (c, he1 -> vtx -> vcoord,
he2 -> vtx -> vcoord);
res += dot (he2 -> ntx -> vtx -> vcoord, c);
}
while ( (he2 = he2 -> nxt) !=he1);
l = l -> nextl;
}
f = f -> nextf;
}
return (res / 6.0);
}
0706デフォルトの名無しさんNGNG
文系の学生です
般教で情報処理を取ってC言語の宿題が出たんですがさっぱらわかりません
問題は
�@一つ126円のハンバーガーと一杯105円のコーヒーをそれぞれいくつかづつ購入し
1000円で支払った場合のおつりを計算して画面に表示しなさい
�A二つの数値を入力しその2数の積が20の倍数かどうかを判断するプログラムを作りなさい
�B数値を入力しその回数だけ自分の名前を画面に表示するプログラムを作りなさい

親切な方教えてください
0707デフォルトの名無しさんNGNG
「文系」なんてわざわざ断るような香具師に教える気はさらさらない。
つーか、文系と宣言するくらいならまともな日本語を書け。
そもそも情報処理を取っててなんで「さっぱら」判らないんだ?
0708デフォルトの名無しさんNGNG
>>706
(1)
#include <stdio.h>
int main(void)
{
int a, b;
printf("ハンバーガーの個数: ");
scanf("%d", &a);
printf("コーヒーの個数: ");
scanf("%d", &b);
printf("おつり: %d\n", 1000 - 126 * a - 105 * b);
return 0;
}
0709デフォルトの名無しさんNGNG
>>706
(2)
#include <stdio.h>
int main(void)
{
int a, b;
scanf("%d", &a);
scanf("%d", &b);
if (a * b % 20 == 0) { printf("20の倍数\n"); }
else { printf("20の倍数ではない\n"); }
return 0;
}
0710デフォルトの名無しさんNGNG
>>706
(3)
#include <stdio.h>
int main(void)
{
int i, n;
scanf("%d", &n);
for (i = 0; i < n; i++) { printf("自分の名前\n"); }
return 0;
}
0711デフォルトの名無しさんNGNG
問題文: 山くずしゲーム.
コンピュータ側が任意の自然数を乱数として設定し(これを石の数とする)、
対局者とコンピュータとで交互に1個ないし2個の石を取り続ける。
最後の石をとったほうが勝ち。
このゲームでコンピュータ側が最強になるようなアルゴリズムを作れ。
なおコンピュータ側から
“石の残り××個です。何個取りますか?”
“石の残り××個です。私は×個とります。”
などのメッセージを表示しながら、決着がつくまで進めること。
(ヒントとして石の数が3の倍数になるようにして残して対局者に
渡すことが出来れば、必ずコンピュータ側が最後の石を取ることが出来る。
3の倍数に出来ないなら、仕方なくコンピュータ側は1個でも取って相手に渡し、
相手が失敗するのを待つしかない)
とありました…


[3]言語:C言語
[4]期限:2005年1月11日19:00まで

よろしくお願いします…
0712デフォルトの名無しさんNGNG
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
PGMの画像ファイルを、判別分析法で求めた閾値で2値化するプログラムを作れ。

http://www.page.sannet.ne.jp/ikenoue/type2/lena/lena.html 
にC++でつくってあるソースがあります。これをC言語に書き直してくれてもいいです。

[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ(バージョン): Cygwin
 [3.3] 言語:C/C++/どちらでも可 のいずれか :C
[4] [4] 期限:yyyy年mm月dd日hh:mmまで/無期限 のいずれか 2005年01月13日19:00
[5] その他の制限:

http://www007.upp.so-net.ne.jp/coin_locker/ip/ip06.html
にCソースがあるのですが”ファイル情報と画素数が一致しません”というエラー
がでて上手くいきません。

どうかよろしくお願いします。
0713デフォルトの名無しさんNGNG
>711
これは未知数を使った簡単なパズルのようなものだ。コンピュータ側が最後に勝つように最終局から総当たりで現在の状態になるような手順を場合分けの木を使ってじっくり考えたまえ
0714デフォルトの名無しさんNGNG
>711
例えばコンピュータの番の時、4個残っていたら、どうするか。この場合、コンピュータには必勝法がある
0715デフォルトの名無しさんNGNG
>>711
#include <stdio.h>
#include <stdlib.h>
const char *person(int *pnstone) {
  int n = 0;
  char s[8];
  do {
    fprintf(stderr, "%d: ", *pnstone);
    fgets(s, sizeof(s), stdin);
    n = atoi(s);
  } while ((n != 1 && n != 2) || *pnstone < n);
  *pnstone -= n;
  return "";
}
const char *computer(int *pnstone) {
  static int result_array[] = {1, 1, 2};
  *pnstone -= result_array[*pnstone % 3];
  return "";
}
0716715NGNG
int judge(int *pnstone, const char *(*func)(int *)) {
  int n = *pnstone;
  const char *who = func(pnstone);
  if (!*pnstone) {
    fprintf(stderr, "%s\n", who);
    return 0;
  }
  else {
    fprintf(stderr, "%s%d\n", who, n - *pnstone);
    return 1;
  }
}
int main(void) {
  int nstone;
  srand(time(NULL));
  nstone = rand() % 20 + 5;
  while (judge(&nstone, person) && judge(&nstone, computer))
    ;
  return 0;
}

以上、課題提出にはまず使えない(けど動く)コードでしたw
0717715NGNG
うげ、このXサーバ、日本語の変換してくれないのなorz
じゃあもう一度初めからスマン
#include <stdio.h>
#include <stdlib.h>
const char *person(int *pnstone) {
  int n = 0;
  char s[8];
  do {
    fprintf(stderr, "石は%d個ある。とる石の数を入力しやがれ\
: ", *pnstone);
    fgets(s, sizeof(s), stdin);
    n = atoi(s);
  } while ((n != 1 && n != 2) || *pnstone < n);
  *pnstone -= n;
  return "あなた";
}
const char *computer(int *pnstone) {
  static int result_array[] = {1, 1, 2};
  *pnstone -= result_array[*pnstone % 3];
  return "コンピュータ";
}
0718715NGNG
int judge(int *pnstone, const char *(*func)(int *)) {
  int n = *pnstone;
  const char *who = func(pnstone);
  if (!*pnstone) {
    fprintf(stderr, "%sの勝ち\n", who);
    return 0;
  }
  else {
    fprintf(stderr, "%sは%d個とりました\n", who, n - *pnsto\
ne);
    return 1;
  }
}
int main(void) {
  int nstone;
  srand(time(NULL));
  nstone = rand() % 20 + 5;
  while (judge(&nstone, person) && judge(&nstone, computer))
    ;
  return 0;
}

…全くネタを張るときには気をつけろとあれだけ
0719706NGNG
>>708>>709>>710
ありがとうございます
助かりました
0720デフォルトの名無しさんNGNG
>>703 いえ、質問の仕方が間違っていました。すみません。

波紋や任意の角度における回転のアルゴリズムを教えてください。
ソースを書いていただけるとうれしいです。
0721デフォルトの名無しさんNGNG
>>720
(ある程度高機能な)画像編集ソフトを持っていたら、カスタムフィルター機能があると思う。
それに適当に値を入れて試してみ。

例えば、
0 0 0
0 1 0
0 0 1
のフィルターなら斜め方向にぼかせる。
他にも
0 0 0
3 0 1
0 0 0
でゴーストっぽいとか。

波紋や回転も要は座標変換を行なえばいい。
つまり、新画像[x, y] = 旧画像[座標変換(x, y)]のイメージ。
#逆でもいいけどその場合、隙間ができないように注意。
直交座標では計算しにくいと言うなら、一回極座標に変換すればいい。
詳しくは画像処理スレで。
#あっちだと私がついていけないけどw
0722デフォルトの名無しさんNGNG
>>720
アルゴリズムを教えるのと、
ソースを書いて貰うのは違うぞ。
0723デフォルトの名無しさんNGNG
「標準入力から C 言語のプログラムテキストファイルを読み込み、
使用している関数名を頻度順に並べなさい。
これは宣言文と実際の式のどちらも含みます。
なお、同じ頻度の関数は辞書順に並べなさい。
レポートでは、実行例として、作成したソースプログラムをプログラムに
入力した出力を示しなさい。
なお、取り扱える行数は実行時のコンピュータのメモリーのサイズのみに
依存しなければなりません。勝手な上限を設けてはいけません。
但し、関数名の長さは高々 255 文字と仮定して良い。」

期限:2005年1月11日23:00まで

ネ申 求 む !

0724723NGNG
実行例
入力
int combination(int n, int m){
if(m==0){return 1;}
else if(n==m){return 1;}
return combination(n-1,m-1)+combination(n-1,m);
}
main(){
int n=5,m=2;
printf("%dC%d = %d\n",n,m,combination(n,m));
}
出力
combination: 4
main: 1
printf: 1
0725デフォルトの名無しさんNGNG
>>723
sine
0726デフォルトの名無しさんNGNG
>>725
おまえも同類、必死杉
0727デフォルトの名無しさんNGNG
[1] 授業単元:情報処理
[2] 問題文:
次のプログラムの実行結果が同じになるようにfor命令を用いて書き換えよ

#include <stdio.h>
main()
{
int i,n,sum=0
printf("6個のデータを入力してください。\n");
i=O
while(i<6){
scanf("%d",&n);
sum=sumth;
i++;
printf("%d個のデータの合計=%d\n",i,sum);
}
[3] 環境:C言語
[4] 期限:2005年1月13日まで

親切な人お願いします。。。
0728デフォルトの名無しさんNGNG
>>727
#include <stdio.h>
main()
{
int i,n,sum=0
printf("6個のデータを入力してください。\n");
for(i=1;i<=6;i++){
scanf("%d",&n);
sum=sum+n;
}

printf("%d個のデータの合計=%d\n",i,sum);
}
0729デフォルトの名無しさんNGNG
 1山くずしゲーム。コンピュータ側が任意の自然数を乱数として設定し(これを石の数
とする)。対局者とコンピュータとで交互に1個または2個の石を取り続ける。最後の石
を取った方が勝ち。このゲームでコンピュータ側が最強になるようなアルゴリズムを作り
なさい。
 なお、コンピュータ側から
”石の残り○○個です。何個とりますか?”
”石の残り○○個です。私は○個とります。”
などのメッセージを表示しながら、決着がつくまで進めること。

ヒント)石の数が3の倍数になるように残して対局者に渡すことができれば、必ず
コンピュータ側が最後の石を取ることができる。3の倍数にできないのなら、仕方なく
コンピュータ側は1個でも取って相手に渡し、相手が失敗するのを待つしかない。

お願いしますm(_ _)m
0730デフォルトの名無しさんNGNG
>>721 >>722
すみませんでした。波紋、回転、ゴーストを起こすソースを書いていただけ無いでしょうか?
0731デフォルトの名無しさんNGNG
>>712
上のサイトのを使うなら
stdlib.hをインクルードして
unsigned char (*Gray)[X_SIZE] = new unsigned char[Y_SIZE][X_SIZE]; を
unsigned char (*Gray)[X_SIZE] = malloc(Y_SIZE*X_SIZE);

delete [] Gray; を
free(Gray);
にするだけ
0732デフォルトの名無しさんNGNG
>729
3で割ったときの余りに着目して、
m=3n, m=3n+1, ないしm=3n+2
と場合分けして考えろ。
0733デフォルトの名無しさんNGNG
>>729
こういうので最強のアルゴリズム作っても面白くないよな
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// [s,e]の範囲の整数を入力
int getn(int s,int e)
{
int n;
do{scanf("%d",&n);}while(s>n||n>e);
return n;
}
int main()
{
int n,m,player;
srand(time(NULL));
n=(rand()&0x1F)+3;// 3〜34個
printf("石の数は%d個\n",n);
printf("先手を決めてください(コンピュータ:0 / あなた:1)\n");
player=getn(0,1);
for(;;){
printf("石の残り%d個です。",n);
if(player){printf("何個とりますか?>");m=getn(1,n>=2?2:1);}else{m=(n%3)?n%3:1;printf("私は%d個とります。\n",m);}
n-=m;
if(n==0)break;
player=1-player;
}
printf("%sの勝ちです\n",player?"あなた":"コンピュータ");
return 0;
}
0734デフォルトの名無しさんNGNG
[1] 授業単元:「50音が出るプログラム」
[2] 問題文(含コード&リンク):以下のプログラムでは「あ」から「お」までは出るのですが、「ka」のような2文字以上ではエラーが出てしまいます。
どのように記述すれば、2文字(出来れば3文字)処理できるようになるかご教授ください。
input01.txtは、「aka」と記述してます。kとaを別々の文字として判断されているのでエラーが出ます。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/61.txt

 [3.1] OS: xp
 [3.2] コンパイラ(バージョン): MS VC++7.1
 [3.3] 言語:C++
[4] 期限:2005年01月末日まで
0735デフォルトの名無しさんNGNG
>>734
struct{
char roma[4];// ローマ字
char roma_len;// ローマ字の長さ
char kanji[5];// ひらがな
}aiu[]={
{"\0",1,""}
{"a",1,"あ"},{"i",1,"い"},{"u",1,"う"},{"e",1,"え"},{"o",1,"お"},
{"ka",2,"か"},{"ki",2,"き"},{"ku",2,"く"},{"ke",2,"け"},{"ko",2,"こ"},
//   :  以下略
};

ハッシュじゃないから遅いけどこの表で
int roma2kanji(char* buf)
{
for(j=0;j<sizeof(aiu);j++){
if(memcmp(buf,aiu[j].roma,aiu[j].len)==0){
return aiu[j].len;
}
return 0;
}

呼び出し側
for(i=0;i<len;){
r=roma2kanji(&buf[i]);
if(r==0){
printf(error);
break;
}
i+=r;
}
0736デフォルトの名無しさんNGNG
なにやってんだ俺は…エロ画像の見すぎだ
int roma2kanji(char* buf)
{
int i;
char name[256];
for(i=0;i<sizeof(aiu);i++){
if(memcmp(buf,aiu[i].roma,aiu[i].roma_len)==0){
printf(aiu[i]);
sprintf(name,"%s.wav",aiu[i].roma);
PlaySound("a.wav", NULL, SND_FILENAME | SND_SYNC);
return aiu[i].roma_len;
}
0737デフォルトの名無しさんNGNG
>>729
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/62.txt

これ最強!?w
0738デフォルトの名無しさんNGNG
>735
IMEのヘルプにローマ字表がある。別の方法として母音と子音の関係でまとめると
{...,{"じゃ","じぃ","じゅ","じぇ","じょ"},...}
{...,{"jy",1},{"zh",1},...}
置換後の文字列長は埋め込んだ方が速そう。
0739デフォルトの名無しさんNGNG
>738
何言ってるんだ。オレだったらswitchの中で出力文字列と長さを代入するぜ。
0740737NGNG
>>729
ちょこっと修正
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/63.txt
0741デフォルトの名無しさんNGNG
>>734
どうみてもC++とは思えないからC風にした。かなり手抜き
#include <windows.h>
#include <cstdio>
#include <cstring>
#include <clocale>
using namespace std;

wchar_t KanaTable[][5] = {
    {L"あいうえお"},
    {L"かきくけこ"},
    {L"さしすせそ"},
    {L"たちつてと"},
    {L"なにぬねの"},
    {L"はひふへほ"},
    {L"まみむめも"},
    {L"や ゆ よ"},
    {L"らりるれろ"},
    {L"わゐ ゑを"},
};

const int BUF_LEN = 256;
0742デフォルトの名無しさんNGNG
int main(void) {
    FILE *fp = fopen("input01.txt", "r");
    char buf[BUF_LEN];
    if (fp) {
        setlocale(LC_ALL, "jpn");
        while (fgets(buf, BUF_LEN, fp)) {
            int i;
            int len = strlen(buf) - 1;
            for (i = 0; i < len; i++) {
                const char *Shiin = "kstnhmyrw";
                const char *Boin = "aiueo";
                int offset;
                char FileName[7], *pFileName = FileName;
                const char *p = strchr(Shiin, buf[i]);
                if (p) {
                    *pFileName++ = buf[i++];
                    offset = p - Shiin + 1;
                } else {
                    offset = 0;
                }
0743デフォルトの名無しさんNGNG
                p = strchr(Boin, buf[i]);
                if (p) {
                    *pFileName++ = *p;
                    strcpy(pFileName, ".wav");
                    putwchar(KanaTable[offset][p - Boin]);
                    PlaySound(FileName, NULL, SND_FILENAME | SND_SYNC);
                } else {
                    puts("error");
                }
            }
            putchar('\n');
        }
        if (ferror(fp))
            puts("file read error");
        fclose(fp);
        return 0;
    } else {
        puts("file open error");
        return 1;
    }
}
0744デフォルトの名無しさんNGNG
なお、漢字を含む文章をローマ字表記にしたいなら、KAKASIを参考にするとよい
0745734NGNG
皆様ありがとうございました。
助かりました。
0746デフォルトの名無しさんNGNG
>>742
「ん」は?
0747デフォルトの名無しさんNGNG
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
文の中に含まれている単語の個数を返す関数strcnt()を作成せよ。
int strcnt(const char *s1,const char *2);
文字列(文)s1に含まれている文字列(単語)s2の個数を返す。
なお、2つの単語間には空白文字があるとする。
[例]
s1="The theory of computation is a branch of meta-mathematics that
has been developed since the early 1900's.",s2="the"のとき、
strcnt(s1,s2)の値は2である。
[3] 環境
 [3.1] OS: Fedora Core3
 [3.2] コンパイラ(バージョン):gcc?
 [3.3] 言語:C
[4] 期限:2005年1月12日12:00
[5] その他の制限:特になし。
よろしくお願いします。
0748デフォルトの名無しさんNGNG
大文字小文字はどうすんだ
0749747NGNG
この問題文からすると、大文字小文字両方ともカウントするみたいです。
0750デフォルトの名無しさんNGNG
>>746
そこらへんが手抜き
0751デフォルトの名無しさんNGNG
>>747
strstr()でs2見つけて、後ろに空白あるか確かめれ。
0752デフォルトの名無しさんNGNG
[1] 授業単元: c言語
[2] 問題文:
螺旋形状のグラフを作成するために必要な数値データを作成するプログラムを作成せよ。

数値データファイル名:output.csv
PAI:3.14159
include:stdio.h,math.h

また、以下の文を使用すること。
for(i=0; i<360; i++){
   r=(double)i*0.1;
   theta = PAI*(double)i/180.0;

   x=r*cos(theta);
   y=r*sin(theta);

   fprintf(fp,"%8.4f,%8.4f\n",x,y);
}
[3] 環境
  言語:C言語
[4] 期限:2005年1月12日まで
よろしくお願いします。
0753デフォルトの名無しさんNGNG
出題者はPIをPAIと間違えてるし、何で定数M_PIを使わない?
出題者と出題校の実力を疑う(でも就職率は高いんだナァこれが)。
0754デフォルトの名無しさんNGNG
>>753
M_PIは必ずしもあるとは限らないから使わないが吉。
0755デフォルトの名無しさんNGNG
[1] 授業単元: c言語
[2] 問題文:
以下の仕様に基づいて,ハッシュ表(連結リスト)から指定された日にちをもつ予定データ(ノード)を表示する関数
void show_plan_day(NODE **tbl, int day);
を定義し,main()関数への必要な記述をおこなって,関数を実行できるプログラムを作成せよ
また,この関数の処理内容を説明せよ.
* 関数名:show_plan_day
* 仮引数NODE **tbl:データを探索するハッシュ表を受け取る.
* 仮引数 int day:探索する日にち(問題1参照).
* 戻り値なし(void型)
* 機能:関数hash()の実引数としてdayを渡して,ハッシュ値を得る.
このハッシュ値に基づいて,ハッシュ表(連結リスト)から,指定されたdayとおなじDayをもつ
すべての予定データ(ノード)を探索し表示する.
連結リストでは時間の昇順に並んでいるため,同一日にち内であれば,先頭ノードから探索して表示するだけで,時間順に表示される.
0756デフォルトの名無しさんNGNG
>752
三角関数の式は回転を表している。この回転をz軸方向にずらしていくと、らせんになるはず。csvの中身を見てみろ。読めそうな気にならないか?
0757デフォルトの名無しさんNGNG
>755
できるだけ自分で設計してみろ。
typedef struct _NODE {
何のデータが必要かな?
}NUDE;
0758747NGNG
>>751
strstr()というのは聞いたことが無い=授業では習っていないので、
出来るだけ使わないほうが良いと思うのですが、
それ以外の方法は無いですかね?
あと、それだと、文の終わりとかに[.]がついている単語はカウントされない
と思うんですけど。
0759デフォルトの名無しさんNGNG
>>758
アホか。
授業で習っていようがいまいが使って良いに決まっているだろ。
それとも、使ってはいけないという指示でも出ているのか?
0760デフォルトの名無しさんNGNG
>>758
それなら後ろの文字をispunctかisspaceが真になるかどうかで確かめろ。
0761747NGNG
>>759
そういう指示は出ていませんが、なるべく、便利技みたいなのは、使わない
やり方というものが知りたかったので。すいません。
その方法でやってみます。

>>760
これはよく使い方が分かりませんが、情報をありがとうございます。
0762デフォルトの名無しさんNGNG
>>747
strstr()を使わないやり方
int strcnt( const char *s1, const char *s2)
{
int c=0;
const char *p=s1,*q=s2;
for(;;){
if( q==s2+strlen(s2) ) if(*p==' '||*p=='\0') c++;
for( ;*p==' '; p++)
if( *p=='\0' ) break;
for( q=s2; *q&&*p;) if(tolower(*p++)!=tolower(*q++)) break;
}
return c;
}
0763デフォルトの名無しさんNGNG
>761
最初の文字がないか、ポインタを動かして探…(以下略
0764デフォルトの名無しさんNGNG
>>762
下から六行目、セミコロンが抜けてるぞ。
0765762NGNG
これじゃ止まらないね。
for( ;*p==' '; p++);
でした。ごめん
0766デフォルトの名無しさんNGNG
int strcnt(const char *s1, const char *s2)
{
    const char *p = s2;
    int cnt = 0;
    do{
        printf("%c %c %c\n", *p, *s1, *s2);
        if(*p == '\0' && (*s1 == '\0' || *s1 == ' ')) cnt++;
        if(*s1 != *p){
            while(*s1 != ' ') s1++;
            p = s2;
        }
        else p++;
        s1++;
    }while(*s1 != '\0');
    return cnt;
}

0767デフォルトの名無しさんNGNG
先に書き込まれてるし、デバッグのprintfつけたままだし


鬱打氏脳
0768デフォルトの名無しさんNGNG
>>765-766
s1のさらに後ろにアクセスする可能性があります。再提出してください。
0769デフォルトの名無しさんNGNG
すみません。レポートの問題が全然分からないのでどうか教えて下さい。

[1] 授業単元:情報処理
[2] 問題文(含コード&リンク): オリジナルのプログラミングを作る。内容・プログラムの大小は問わないが、
                 関数・クラス・ポインタの内容を必ず用いること。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ(バージョン):Microsoft Visual C++
 [3.3] 言語:C++
[4] 期限:2005年1月13日17:00まで
0770デフォルトの名無しさんNGNG
>>768
空白までのスキップに問題有りやね
まぁ先に書いてる人居るからいいや
0771デフォルトの名無しさんNGNG
>>769
で、何を作りたいんだ?それがなければ作りようがない。
それじゃまるで「PC買ったんだけど何したらいい?」と言っているようなもの。
それから、締め切りがある以上あまり長くなるようなものも作れないから
そこは考慮するように。
0772デフォルトの名無しさんNGNG
>769
独自の(オリジナルの; original)プログラムを作れって。身の周りでこんなツールがあったらなーと思うヤツを形にしてみろ。
0773デフォルトの名無しさんNGNG
>>771
いや、ほんとになんでもいいんです。
とりあえず、関数・クラス・ポインタさえ使っていれば、どんなプログラムでもかまわないんで、
なんとかお願いできませんか?
0774デフォルトの名無しさんNGNG
クラスやポインタ使うなら、内部データが動的に変わるものがよい
0775デフォルトの名無しさんNGNG
>>768
アンカー間違い?>>762のやつってマズイの?
0776デフォルトの名無しさんNGNG
>>775
アンカーが1個ずれてると思う
0777デフォルトの名無しさんNGNG
なんでもいいなら
class a{ int *a; void func(); };
int main(){ return 0; }
でいいじゃん。ちゃんとクラス・関数・ポインタ使ってるよ。
0778デフォルトの名無しさんNGNG
全世界情報部員管理システムとか、国家予算管理システムとか、落下する複数の物体にボールを投げ当てるシステムとかはどうだ?
0779デフォルトの名無しさんNGNG
鼻毛記録システムなんてどうだい? 長い鼻毛と汚い鼻毛などをクラスに分類して、ボタンひとつで鼻毛記録の表示方法を変えられるとか?
0780デフォルトの名無しさんNGNG
学校で課題が出て困ってます。
スロットマシーンを作るプログラムです。
・数字+Enterキーの入力をきっかけに乱数を発生し、0 から 9 までの数値を形成する
・これを三回繰り返し、得られた数字の並び方で点数を付ける
・三回とも同じなら 10 点、二個同じなら 2 点、並び順なら 5 点を与える
・これを十回繰り返して、合計を表示する
このプログラムできる方は教えて下さい!お願いします!
OS:UNIX
期限1月14日
0781デフォルトの名無しさんNGNG
>>780
きっかけにって、その入力された数字は無視?
0782デフォルトの名無しさんNGNG
>>781
乱数のseedにしろってことでしょ?
0783デフォルトの名無しさんNGNG
>>781
無視でお願いします。
0784デフォルトの名無しさんNGNG
エクセルで簡単な足し算や掛け算、引き算が20問くらい出題されて最後に採点される計算問題集作りたいんですけど、どんなプログラムかけばいいのかおしえてください。お願いします。
0785デフォルトの名無しさんNGNG
>>784
●EXCEL・VBAの勉強法教えてスレ●
http://pc5.2ch.net/test/read.cgi/tech/1054356121/
0786デフォルトの名無しさんNGNG
ポインタの質問です。初心者なので教えてください。 
int a; int *b; int c;

これを使って、
1.aに100を代入する
2.ポインタ変数bにaのアドレスを代入する
3.bの値をcに代入して、cを表示させて下さい。
(100が表示されればOKです。)
A アドレス(&c)を使う方法:変数のアドレスを代入する方法
B ポインタ(*b)を使う方法:値を代入する方法
注:c=a と代入した場合は100と表示されても認めません!
宜しくお願い致します。
0787デフォルトの名無しさんNGNG
b = &a;
c = *b;
printf("%d", c);

授業ちゃんと聞け
0788デフォルトの名無しさんNGNG
>初心者なので教えてください。 
>初心者なので教えてください。 
>初心者なので教えてください。 
>初心者なので教えてください。 
>初心者なので教えてください。 
0789デフォルトの名無しさんNGNG
A ムリ
B a=100,b=&a,c=*b;
0790デフォルトの名無しさんNGNG
>>788
むかついてるのはおまえだけじゃないぜ
0791デフォルトの名無しさんNGNG
786≠788です。
0792デフォルトの名無しさんNGNG
簡単な計算ソフトってどんなプログラムかけばできるんですか。
0793デフォルトの名無しさんNGNG
>>792
マルチ乙。
0794747NGNG
出来ました!
答えてくださった方々、ありがとうございました。
0795デフォルトの名無しさんNGNG
[1] 授業単元:
[2] 問題文(含コード&リンク):

#include<stdio.h>
main()
{
int i,n,sum=0;
printf("6つのデータを入力\n");
i=0;
while(i<6){
scanf
sum=sum+n;
i++;
printf("%d個のデータの合計=%d\n",i,sum);
}
}
↑を実行結果が同じになるようにfor命令で書き換え

[3] 環境
 [3.1] OS: win
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C/C++/どちらでも
[4] 期限:05年01月13日午前中
[5] その他の制限: 特に無し


お願いします
0796デフォルトの名無しさんNGNG
>>795
>>727-728
0797デフォルトの名無しさんNGNG
#include<stdio.h>
main()
{
int i,n,sum=0;
printf("6つのデータを入力\n");
for(i=0;i<6;i++){
scanf // 何だよこれ
sum=sum+n;
printf("%d個のデータの合計=%d\n",i,sum);
}
}

i=0, i++の位置とか分かりやすくしてくれてるのに・・・
0798デフォルトの名無しさんNGNG
>>796-797
すいません検索し忘れてました。
ありがとうございました
0799デフォルトの名無しさんNGNG
#include <stdio.h>
main()
{
int i,n,sum=0
printf("6個のデータを入力してください。\n");
i=O
for(;i<6;){
scanf("%d",&n);
sum=sumth;
i++;
printf("%d個のデータの合計=%d\n",i,sum);
}
0800デフォルトの名無しさんNGNG
int i,n,sum=0;
printf("6つのデータを入力\n");
i=0;
for(;i<6; sum=sum+n,i++,printf("%d個のデータの合計=%d\n",i,sum))
scanf // 何だよこれ
0801デフォルトの名無しさんNGNG
C++で、以下のプログラムを書けというアサイメントです。

int n を読み込み、arctan(1)のTaylor Seriesのゼロではないn個目までの和を求めて、πのだいたいの値を出力するプログラムを作れ。 プログラムには Double Precision arithmeticを使う事。

ちょっとこんがらがってしまって、自分では力不足なので お助け下さい。
0802デフォルトの名無しさんNGNG
[1] 授業単元: c言語
[2] 問題文:
以下の仕様に基づいて,ハッシュ表(連結リスト)から指定された日にちをもつ予定データ(ノード)を表示する関数
void show_plan_day(NODE **tbl, int day);
を定義し,main()関数への必要な記述をおこなって,関数を実行できるプログラムを作成せよ
また,この関数の処理内容を説明せよ.
* 関数名:show_plan_day
* 仮引数NODE **tbl:データを探索するハッシュ表を受け取る.
* 仮引数 int day:探索する日にち
* 戻り値なし(void型)
* 機能:関数hash()の実引数としてdayを渡して,ハッシュ値を得る.
このハッシュ値に基づいて,ハッシュ表(連結リスト)から,指定されたdayとおなじDayをもつ
すべての予定データ(ノード)を探索し表示する.
連結リストでは時間の昇順に並んでいるため,同一日にち内であれば,先頭ノードから探索して表示するだけで,時間順に表示

お願いします
0803デフォルトの名無しさんNGNG
>802
どこまでできた?
後でつまづかないように設計は自力でやってくれ
0804デフォルトの名無しさんNGNG
学校の宿題じゃないんですが質問いいでしょうか?C++です

int a,b,c,d;
a = b == c ? d : 0; //←この文の意味を教えてください
0805デフォルトの名無しさんNGNG
if (b == c) {
a = d;
}
else {
a = 0;
}
0806デフォルトの名無しさんNGNG
>>805
わかりました、ありがとうございます。
0807デフォルトの名無しさんNGNG
>802
ハッシュと連結リストの意味はわかってるんだな? 自分なりに説明してみろ。
0808デフォルトの名無しさんNGNG
>>801
超テキトー C++ は知りません。
#include <stdio.h>
#include <stdlib.h>

int main( int argc, char **argv)
{
 if( argc < 2 ) {
  printf( "usage: test_pi [n]\n");
  return EXIT_FAILURE;
 }

 /* calculate: arctan(1) */
 int i, n = atoi( argv[1]);

 int sign = 1;
 int a = 1;
 double x = 0;

 for( i = 0; i < n; ++i ) {
  if( sign )
   x += (double)1.0 / a;
  else
   x -= (double)1.0 / a;
0809デフォルトの名無しさんNGNG
>801
根拠となる式と条件はわかってるな? 論理破綻していないなら、もう一人の自分が混乱した箇所をassertやデバッガでデバッグしてみろ。
0810808NGNG

  a += 2;
  sign = !sign;
 }

 /* calcuate: pi */
 printf( "pi is about %f\n.", x * 4);

 return EXIT_SUCCESS;
}

結果
$ ./test_pi 10000
pi is about 3.141493
0811デフォルトの名無しさんNGNG
>>802
ハッシュ表(連結リスト)って言葉の意味がわからない
オープントハッシュのことか?
NODEの構造を示してくれないと仕様に沿ったプログラムは出してもらえないぞ
#define HASH_SIZE 366
int hash(int n){return n%HASH_SIZE;}
void show_plan_day(NODE **tbl, int day)
{
int h=hash(day);
NODE* node=tbl[h];
while(node!=NULL){
if(node->Day==day){
printf("%s\n",node->Schedule);
}
node=node->next;
}
}
0812801NGNG
801です

808さんのをヒントに自分のコードを見直して、作り直してみみたら ちゃんと動きました!
感謝感謝でうs。どうもありがとうーー
0813デフォルトの名無しさんNGNG
>808,>810
精度が落ちた原因は、絶対値の大きい数から加減したことと、後で4倍したことにある。
0814デフォルトの名無しさんNGNG
>>813
ソースきぼん
0815デフォルトの名無しさんNGNG
×ソース ○ソースコード
0816デフォルトの名無しさんNGNG
タルタルソース
0817M野さんNGNG
分数の計算を行うためにクラスRationalを作り、そのクラスをテストするメインプログラムを書け。
このクラスのprivateデータ:分子と分母は整数型の変数にする。
このクラスのオブジェクトが宣言されたときに初期化されるよう、コンストラクタ関数を用意する。
初期値が与えられない場合はデフォルト値をセットすること。コンストラクタは、分数を通分した形で格納しなければならない。
例えば、分数2/4の場合、分子は1、分母は2としてオブジェクト内に格納する。また、次の2項演算子を多重定義すること。

(a)+演算子で2つの分数の加算を行う。結果は通分した形で保存すること。
(b)-演算子で2つの分数の減算を行う。結果は通分した形で保存すること。
(c)*演算子で2つの分数の乗算を行う。結果は通分した形で保存すること。
(d)/演算子で2つの分数の除算を行う。結果は通分した形で保存すること。

また、次のようなメンバ関数を定義すること。

(e)分数をa/bの形式でプリントする。ここでaは分子、bは分母。
(f)分数を浮動小数点形式でプリントする。

↑の問題が分からなくて困っています(ToT)/~~~
よろしくおねがいします(*^_^*)☆♪
0818デフォルトの名無しさんNGNG
[3.1] OS: xp
 [3.3] C++でVC
[4] 1/12中
以下の計算を9回ループさせたいのですが方法がわかりません。
よろしくお願いします。
#include <stdio.h>
#include <math.h>
main()
{
double x0,x1,x2;
double f(double x);
x0 = 0; x1 = 10;
while ()
{
x2 = x0+(x1-x0)/2;
if (f(x2+1.0e-6) > f(x2-1.0e-6)) x2 = x1;
else x2 = x0;
}
printf("x0 = %g\n",x0);
printf("x1 = %g\n",x1);
}
double f(double x)
{
double y;
y = x+14/x;
return (y);
}
0819デフォルトの名無しさんNGNG
>818
int i;
for(i=0;i<9;i++)
じゃダメか?
0820デフォルトの名無しさんNGNG
結構大きめのプログラムなのですが、本当にどこから手をつけていいのやら 全く持って分かりません・・
どなたか 助けてくださいいいい

プロジェクト内容をリンクしておきました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/64.txt

全く持って、頭に構想さえも浮かんできません。ていうか、まじ分かりません。
どなたか お手伝い願えませんか。。お願いします!!
0821デフォルトの名無しさんNGNG
>817 できるところまでやってみろ!
class Rational{
private:int m_num,m_denom;
public:Rational(){...}
Rational(int _n,int _d){...}
Rational operator+(const Rational&a,const Rational&b){...return Rational(...,...);}...
};
0822デフォルトの名無しさんNGNG
>820
もうここで解くレベルじゃないな。何を使って作るんだい?
わからん言葉があったら聞くんだな。
0823デフォルトの名無しさんNGNG
>820
ビットのチェックは、bit-wise演算子か、ビットフィールドを使え。ファイルの読み込みは、fread使えば良い。日頃からコードの再利用を考えてないから、大きなプロジェクトであたふたしちゃうんだろ?
0824820NGNG
すいません、忘れていました。 C++です。
てんぱってしまっています。。
0825デフォルトの名無しさんNGNG
>821
friendの指定忘れてるぞー
0826デフォルトの名無しさんNGNG
>>817
boost::rational
0827デフォルトの名無しさんNGNG
>>826
よくもまぁ、BOOSTなんて非標準な物を使えと言えるもんだなぁ。
0828デフォルトの名無しさんNGNG
>>827
いいじゃないか、4年後には標準になるんだから
0829デフォルトの名無しさんNGNG
BOOSTが標準でついてくるVC++6がほしい!
0830デフォルトの名無しさんNGNG
【問題】
C言語で標準入力から C 言語などのプログラムテキストファイルを読み込み
使用している関数名を頻度順に並べなさい。
これは宣言文と実際の式のどちらも含みます。
なお、同じ頻度の関数は辞書順に並べなさい。
なお、取り扱える行数は実行時のコンピュータのメモリーのサイズのみに依存しなければなりません。
勝手な上限を設けてはいけません。
但し、関数名の長さは高々 255 文字と仮定して良い。
(注)どちらもWindows の API は使用しないで作って下さい。
0831デフォルトの名無しさんNGNG
環境:C言語
学習範囲:for文・while文
問題:1から6までのそれぞれの階乗を計算して表示するプログラムを書きなさい。
ヒント:i=1からスタートして逐次(n-1)!*nを計算する。


ここまではやってみたのですがここから先にすすめません。よろしくお願いします。

#include <stdio.h>

int main(void)

{

int i;

for (i=1; i<6; i++) {
0832デフォルトの名無しさんNGNG
[1] 授業単元:情報工学
[2] 問題文(含コード&リンク):(一次元配列の問題)フィボナッチ数列a[0]〜a[n]を作る。
nの値は3以上30以下とする。異常終了の場合、(nの値が2以下、31以上の場合)例えば
 「40はnの値として不適切です!」という文を出す。
 a[0]=1
a[1]=1
a[2]=2
a[3]=3
・
 ・
 ・  という実行結果を出す。
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ(バージョン):Visual Basic Studio.net
 [3.3] 言語:C++
[4] 期限:2005年1月18日まで
[5] その他の制限: 特になし
  みなさんお願いします!
0833デフォルトの名無しさんNGNG
>>831
そこまでやったんだら、
int main(void)
{
int i;
for (i = 1; i <= 6; ++i) {
/* (n - 1) ! * n を計算する。 */
/* n! を表示する。 */
}
return 0;
}
くらい書いておけばいいのに。
で、
int main(void)
{
int i;
int val;
for (i = 1, val = 1; i <= 6; ++i) {
val *= i;
printf("%d の階乗は %d\n", i, val);
}
return 0;
}
こんなもんかな。
0834デフォルトの名無しさんNGNG
>831
直前の階乗f_(i-1)にiを掛けるとf_iになる。なお、0!=f_0=1.
int f;
0835デフォルトの名無しさんNGNG
>>830 >>832
過去ログ参照。
0836デフォルトの名無しさんNGNG
>832
数学的帰納法を思い出せ。任意のa[i]とa[i+1]からa[i+2]が求まる。
0837デフォルトの名無しさんNGNG
>>833-834
ありがとうございます
0838デフォルトの名無しさんNGNG
Visual Basic Studio.net?

template <int n>
class CFib{
enum{val=(int)CFib<n-1>::val+(int)CFib<n-2>::val};
};
template <> class CFib<0>{enum{val=0}};
template <> class CFib<1>{enum{val=1}};
0839デフォルトの名無しさんNGNG
>>832
cでやってみた。あとは頑張れ。
#include<stdio.h>
int fibonacci(int);

int main(void){
int a[40],i,x;
a[0]=a[1]=1;

printf("フィボナッチのn項まで求めます(3<=n<=30)n=");
scanf("%d",&x);

if(3>x || 30<x)
printf("%dはnの値として不適切です。",x);
else{
printf("フィボナッチ1項a[0]=%d\nフィボナッチ2項a[1]=%d\n",a[0],a[1]);
for(i=3;i<x;i++){
a[i-1]=fibonacci(i);
printf("フィボナッチ%d項a[%d]=%d\n",i,i-1,a[i-1]);
}
}
return 0;
}

int fibonacci(int n){

if(n==1 && n==2)
return 1;
if(n>3)
return fibonacci(n-1)+fibonacci(n-2);
}
0840デフォルトの名無しさんNGNG
フィボナッチ数列って典型的な「再帰は使わない方がいい」課題だと思うが…
別に再帰使えとは書いてないだろ?
0841デフォルトの名無しさんNGNG
すぐ再起使いたがる香具師は素人
ってかフィボナッチに再帰はさすがに酷いな。

頑張れば定数時間だし、ちょっと工夫するだけで対数時間なのに
0842デフォルトの名無しさんNGNG
宿題なんだから定義をそのまま函数にするだけで十分じゃないか?

ところで定数時間ってどうやるの?
0843デフォルトの名無しさんNGNG
>>840,841
大学とかの課題だと、再帰の勉強のために
フィボナッチや階乗計算とかを再帰で解けとか言われなかったっけ?
0844デフォルトの名無しさんNGNG
>>843
指定されてりゃしょうがないけど、
この場合指定がないんだから再帰を使わないべきでは?
0845デフォルトの名無しさんNGNG
使うべきでも使わないべきでもないだろ
0846デフォルトの名無しさんNGNG
#include <stdio.h>
#include <math.h>
int main()
{
int n,i;
int a[30];
printf("(3 <= n <= 30)\nn = ");
scanf("%d", &n);
if (n < 3 || 30 < n) {
printf("%d は不適切です\n", n);
return 1;
}
for (i=1; i<=n; i++) {
a[i-1] = (int)(exp(-0.804719 + i * 0.481212) + 0.5);
printf("%d : %d\n", i, a[i-1]);
}
return 0;
}

ひねくれるとこんな感じか
0847846NGNG
スマン、26項で誤差出る _| ̄|○
0848デフォルトの名無しさんNGNG
オリジナルのプログラミングを作る。内容・プログラムの大小は問わないが、
関数・クラス・ポインタの内容を必ず用いること。
という宿題が出て、このスレに乗せて

class a{ int *a; void func(); };
int main(){ return 0; }

というのを教えていただいたのですが、

d:\新しいフォルダ (2)\cpp1.cpp(1) : error C2580: クラス名 'a' が再定義されています。
d:\新しいフォルダ (2)\cpp1.cpp(1) : 'a' の宣言を確認してください。

というエラーが出ます。
どこをどう直せばいいのでしょうか?
環境はこんな感じです。
 [3.1] OS:Windows
 [3.2] コンパイラ(バージョン):Microsoft Visual C++
 [3.3] 言語:C++
0849デフォルトの名無しさんNGNG
>>848
class aとint *aで同じ a という名前を使っているからそうなる。
どっちかを別の名前に変えろ。
0850デフォルトの名無しさんNGNG
#include <vector>
class a{static vector<int> v;};

このような場合どのようしにて静的メンバ変数
を再宣言すればいいのでしょうか?
教えてください。
0851デフォルトの名無しさんNGNG
vector<int> a::v;
0852デフォルトの名無しさんNGNG
>>849
ありがとうございました!!
0853デフォルトの名無しさんNGNG
>>851
ありがとうございます
0854デフォルトの名無しさんNGNG
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):質量5kgの物体を初速度v[m/s]で、水平な地面に対し角度10度〜80度までそれぞれ10度ずつ変えて射出した。
                その時の物体の位置が最も高くなる時の高さ、物体の着地地点、着地までの時間をそれぞれの角度において計算するプログラムを作成せよ。
                なお、物体の初期位置を水平軸x=0、垂直軸y=0とし、場所は地球表面、初速度vは4とする。
                また、ポイント・関数・クラスの使用を必須とする。
[3] 環境
 [3.1] OS:Win
 [3.2] コンパイラ(バージョン):Visual C++
 [3.3] 言語:C++
[4] 期限:2005年1月13日16:00まで
[5] その他の制限:プログラムの文頭に「#include<math.h>」を加えること。

自分で考えてはみたのですが、全然わかりません。
どなたかよろしくお願いします。
0855デフォルトの名無しさんNGNG
>848
クラス、関数、ポインタの「内容」を実質的に使っていない。そんなに落第生になりたいのか?
0856デフォルトの名無しさんNGNG
>>855
すいません。間違えていました。
ポイント・関数・クラスの使用は関係ありませんでした。
0857デフォルトの名無しさんNGNG
>>854
重力加速度は9.8でいいのん?
0858デフォルトの名無しさんNGNG
>>854
解析的に解ける問題じゃないか。
出題者はなんで解析的に解けない問題を出さないんだろう。
0859デフォルトの名無しさんNGNG
>>857
M_PI * M_PI でw
0860デフォルトの名無しさんNGNG
>854
三角関数使えば、初速のx,y成分が分かる。後は物理公式か積分使えばOK。空気抵抗は?
0861デフォルトの名無しさんNGNG
>>855
では、ポイント・関数・クラスを使ったプログラムを教えていただけませんか?
0862デフォルトの名無しさんNGNG
>>860
空気抵抗は考えないでいいみたいです。
0863デフォルトの名無しさんNGNG
>>861
どういう問題を解いて欲しい?
0864850NGNG
class a{static int b;};
int a::b;
a::b = 10;
コンパイルすると「2回以上初期化されている」とエラーがでるのですが、
どういうことなんでしょうか?教えてください。
0865デフォルトの名無しさんNGNG
>861
お前のホッペをバッコーン☆
0866デフォルトの名無しさんNGNG
>>862
粘性抵抗は?
0867デフォルトの名無しさんNGNG
>>864
int a::b = 10;
0868デフォルトの名無しさんNGNG
>>864
int a::b = 10;
0869850NGNG
int a::b;
a::b = 10;
だとエラーが出て、
int a::b = 10;
だとエラーがでないのはなぜなんでしょうか
0870デフォルトの名無しさんNGNG
初期化と代入は違う
0871デフォルトの名無しさんNGNG
>>863
どんなものでもいいんです。
プログラムの大小は問わないらしいので。
0872850NGNG
>>867,>>868,>>870
ありがとうございました。
0873デフォルトの名無しさんNGNG
>>860
プログラムの組み立て方がわからないので、できれば組み立てていただきたいのですが。。
0874デフォルトの名無しさんNGNG
>871
自分でやれ〜パ〜ンチ!☆
0875デフォルトの名無しさんNGNG
>873
角度tを仮引数にした関数で求めたい変数を出す。
mainの中でforループで角度変えながら関数呼んで計算結果を簡単な表にする。
0876デフォルトの名無しさんNGNG
なんだよ、このスレ。
役たたずしかいないな。
宿題を片付けますYO!だって?誰もできないんだったら意味ないじゃないww
0877デフォルトの名無しさんNGNG
>>876=871
もう来なくていいよ
0878デフォルトの名無しさんNGNG
>876
ぼるじょあが留守だから、拙者が代わりに助言してる次第。不満あらば帰れよ
0879デフォルトの名無しさんNGNG
>>873
math.hって書いてあるからCで書いたけど、いいのかな?

#include <stdio.h>
#include <math.h>
#ifndef M_PI
#define M_PI 3.14159265
#endif
int main()
{
 double v=4.0, g=9.8;
 double h, t, x, rad, c, vs, vc;
 for (c=10.0; c<=80.0; c+=10.0) {
  rad = c*2*M_PI/360;
  vs = v*sin(rad); vc = v*cos(rad);
  h = vs*vs/(2*g);
  t = 2*vs/g;
  x = vc*t;
  printf("%d°:\n\t最高点 y=%g[m]\n\t着地時間 %g[sec]\n\t着地点 x=%g[m]\n", (int)c, h, t, x);
 }
 return 0;
}
0880デフォルトの名無しさんNGNG
>>879
ありがとうございます!!
0881デフォルトの名無しさんNGNG
どなたか関数・ポインタ・クラスを使ったプログラムを組み立ててはいただけませんか?
プログラムの大小はどうでもいいので、どなたかお願いします。
環境はWindouws・Microsoft Visual C++です。
0882デフォルトの名無しさんNGNG
わざわざ質量が書いてあるってことは、
もしかしてgもその都度求めないといけないとか…(´Д`)
0883879NGNG
> ポイント・関数・クラスの使用を必須とする。
これ見落としてたわ…
0884デフォルトの名無しさんNGNG
>>883
あっ、そこは気にしないでください。
私が打ち間違っただけなので。。
0885デフォルトの名無しさんNGNG
>881
図書館逝けばソースがころがってるというのに、あきらめの悪いヤツだ。次のうちから選べ。目覚まし時計、電卓、年号変換、データベース管理、生年月日から年齢を求める
0886デフォルトの名無しさんNGNG
多倍長整数クラスでも作れば?
0887デフォルトの名無しさんNGNG
>886
彼の実力じゃ無理
0888 NGNG
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
#include<stdio.h>
int beki(int a,int b);
main()
{
 int a,b;
 a=3;
 b=2;
 printf("%dの%d3乗は%d\n",a,b,beki(a,b));
 a=5;
 b=4;
 printf("%dの%d3乗は%d\n",a,b,beki(a,b));
}
int i,ans;
{
 ans=1;
 for(i=1;i<=b;i++){
   fans=ans*a;
 }
 return(ans);
}
0889デフォルトの名無しさんNGNG
>>888を変更して、関数bekiの中で計算した結果も表示するようにせよ。
mainは次のプログラムを使用せよ
#include<stdio.h>
int beki(int a,int b)
main()
{
 beki(3,2);
 beki(5,4);
}
[3] 環境:C言語
[4] 期限:2005年1月13日まで

よろしくお願いします
0890デフォルトの名無しさんNGNG
>>885
では、生年月日から年齢を求める。というのをお願いできますか?
0891デフォルトの名無しさんNGNG
>>889
#include <stdio.h>
void beki(int, int);
main()
{
 beki(3,2);
 beki(5,4);
}
void beki(int a, int b)
{
 int i, ans=1;
 if(b<0) return;
 for(i=0;i<b;i++)
  ans = ans * a;
 printf("%d\n",ans);
}
0892デフォルトの名無しさんNGNG
>890
time_tは日付と時刻を表す型だ。struct tmは日付と時刻を表す構造体だ。これとlocaltime,mktime,strftime,time関数を使えば簡単。関数ヘルプで見よ
0893デフォルトの名無しさんNGNG
>>881
出たばっかだしboost::serializationでも使ってみれば?
0894デフォルトの名無しさんNGNG
difftime関数は、2つのtime_tを比較し、秒数の差をdouble型で返す。ヘルプを見よ。

注意 #include<time.h>を忘れるな!
0895デフォルトの名無しさんNGNG
>>892
すいません。どうやったらいいかわからないんで、組み立てて教えていただけませんか?
0896デフォルトの名無しさんNGNG
わかっているとは思うが、1時間は60×60=3600秒。1日は24時間。
0897デフォルトの名無しさんNGNG
>>895
検索した方がアホみたいにソースが出るわけだが
0898デフォルトの名無しさんNGNG
>895
生年月日を尋ね、struct tm bdataに入力。
bdataから生年月日のtime_t birthを求める。
現在の日時をtime_t nowに格納。
difftime関数でnowとbirthを比較。
年齢が分かる。
0899デフォルトの名無しさんNGNG
すごく丁寧に説明してもらっているのですが、やっぱりどうやって組み立てるかわかりません。。
ばかですいません。。
0900デフォルトの名無しさんNGNG
>899
それぞれの関数のヘルプを見る前にあきらめてはいけない。VC++を使ってるなら、ヘルプで関数名を検索すれば見れる。関数で何ができるかが分かる。
0901デフォルトの名無しさんNGNG
tmの内容をヘルプで見ながら続きを書いてみよ。
struct tm bdata;
printf("何年: ");
scanf("%d",&bdata.tm_yday);
printf("何月: ");
...
0902デフォルトの名無しさんNGNG
[2] 問題:入力した文字列を逆順に表示する
[3] 環境
 OS:Unix
 言語:C
[4] 期限:2005年1月20日正午

スタックを利用して入力した文字列を逆順に出力するプログラムなのですが
コンパイル時にオーバーフロウとなってしまいました。その原因がわかりませ
ん。あとreverse_str関数がうまくできなっかたのでそれも教えていただきたいです。
一応作れたプログラムを載せます。
#include <stdio.h>
#include <stdlib.h>
#define STACK_EMPTY -32768

struct cell {
char data;
struct cell *link;
};

struct cell *getcell();
struct cell *create();
void insert(struct cell *, int, char);
void delete(struct cell *, int);
void push(struct cell *, char);
char pop(struct cell *);
void reverse_str( char *);

0903デフォルトの名無しさんNGNG
int main(void)
{
char string[100];
struct cell *stack;

printf("Input String: "); scanf("%s", string);
reverse_str( string );
printf("Reverse String: %s\n", string);
return 0;
}
0904デフォルトの名無しさんNGNG
void insert(struct cell *plist, int n, char data)
{
int i;
struct cell *p;
void delete(struct cell *list, int n)
{
int i;
struct cell *p;

if(n<=0) {
printf("Error\n");
exit(0);
}

for(i=0; i<n-1 && list->link != NULL; list=list->link, i++);
0905デフォルトの名無しさんNGNG
if(list->link == NULL) {
printf("Error\n");
exit(0);
}
p = list->link;
list->link = p->link;
free(p);
}

struct cell *getcell()
{
struct cell *p;

p = (struct cell *)malloc(sizeof(struct cell));
if(p==NULL) {
printf("Error\n");
exit(0);
}
return p;
}  

for(i = 1; i<n; i++) {
if(plist ==NULL) {
printf("Error\n");
exit(1);
}
plist = plist->link;
}

0906デフォルトの名無しさんNGNG
>902
スタックを食い潰すまで止まらないのが原因。前提や終了条件が間違ってるのでは?
0907デフォルトの名無しさんNGNG
p = getcell();
p->data = data;
p->link = plist;
plist = p;
}

void push(struct cell *stack, char data)
{
insert( stack, 1, data );
}
char pop( struct cell *stack )
{ char data;
if(stack->link == NULL) {
data = STACK_EMPTY;
}
else {
data = stack->link->data;
delete( stack, 1 );
}
return data;
}
struct cell *create()
{
struct cell *p;

p = getcell();
p->data = -1;
p->link = NULL;
return p;
}

0908デフォルトの名無しさんNGNG
void swap(char* lhs, char* rhs)
{
char oldLhs = *lhs;
*lhs = *rhs;
*rhs = oldLhs;
}

void reverseStringRange(char* first, char* last)
{
for (; first < last; ++first) {
swap(first, --last);
}
}

void reverseString(char* string)
{ reverseStringRange(string, string + strlen(string)); }

int main(void)
{
char s[] = "qwert";
printf("%s", s);
reverseString(s);
printf("%s", s);

return 0;
}
0909デフォルトの名無しさんNGNG
>899
関数や構造体のヘルプが見れないの?
VCのヘルプの使い方が分からないの?
0910デフォルトの名無しさんNGNG
>>909
ヘルプが見れないんです。
0911デフォルトの名無しさんNGNG
>>902
6回もわけて書くんだったらあぷろーだつかえばか
0912デフォルトの名無しさんNGNG
VCで何もない余白にtimeって入力してその単語の上をクリックして、キーボードの左上のF1ボタンを押してごらん。何か出てこないか?
0913デフォルトの名無しさんNGNG
>>899
わからないんじゃなくてわかろうとしていないんだろうが

ほんの少しでも考えたのなら、全然形になっていなくてもいいからコードをここに書いてみろよ
考えたふりすらしてない奴に教える気なんぞない
0914デフォルトの名無しさんNGNG
>910
お〜い、>912を読んだか〜?
0915デフォルトの名無しさんNGNG
ヘルプを表示できません。っていうメッセージが出てきます。
0916デフォルトの名無しさんNGNG
>915
timeは半角で入力した?
チカチカ点滅するヤツ(キャレット)はちゃんとtimeの上に乗っかってる? timeと他の単語がくっついてない?
0917デフォルトの名無しさんNGNG
>>916
ちゃんとあってますよ。
でも、何回やっても表示できませんって出るんです。
0918デフォルトの名無しさんNGNG
>917
それは大変だ、ではしかたない、ヘルプのウィンドウにコンボボックスとタブ(つまみのようなもの)が見えるか〜? 見えなかったら >> のようなボタンをクリックして〜
0919デフォルトの名無しさんNGNG
ココってぼるじょあスレじゃねーの?
0920デフォルトの名無しさんNGNG
疲れた
0921デフォルトの名無しさんNGNG
>>919
ぼるじょあは氏にました。
次回から大原ゆきが宿題を片付けます。
0922デフォルトの名無しさんNGNG
>>919
何を今更
0923デフォルトの名無しさんNGNG
だめだこりゃ
0924デフォルトの名無しさんNGNG
次はだれだろワクワク
>>950スレ立てよろしく。
0925デフォルトの名無しさんNGNG
ギコになったことってあったっけ
0926デフォルトの名無しさんNGNG
スタックを利用して逆順にする関数を知りたいのですが...
0927デフォルトの名無しさんNGNG
>>926
普通 auto な変数はスタックを利用しているけど?
0928デフォルトの名無しさんNGNG
>926
template<class t_type>
void rev(t_type* p,int n){
if(n<2)return;
t_type tmp=*p;
*p=p[n-1];
p[n-1]=tmp;
rev(++p,n-2);
}
0929デフォルトの名無しさんNGNG
>>902
この宿題は、関数呼び出しの際にコンパイラに使われるスタックを
使って再帰を実行しなさいと言うことではなくて、スタックを自分で
用意しなければならないのかい?
0930デフォルトの名無しさんNGNG
>>928
末尾再帰かよ(w
0931デフォルトの名無しさんNGNG
データを格納するpushとpopの関数を作成してそれを利用して
逆順に表示するように言われています。
0932929NGNG
>>931
「関数の再帰をしてはならない」と言う言外の指示を感じるだが、
君自身はどう思うかい?それによって解答が多少変わると思う
んだが。
0933デフォルトの名無しさんNGNG
関数も使用するなと言われてます。
0934デフォルトの名無しさんNGNG
[2] 問題:0〜99まで、1行に10個ずつ、桁を揃えて表示せよ。
実行例
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
.....
90 91 92 93 94 95 96 97 98 99

[3] 環境 :C言語
[4] 期限:2005年1月14日

よろしくお願い致します。
0935デフォルトの名無しさんNGNG
>>934
#include <stdio.h>
int main(void) {
 int i;
 for (i=0; i<100; i++) {
  if (i!=0 && i%10==0) printf("\n");
  printf("%2d ",i);
 }
 return 0;
}
0936デフォルトの名無しさんNGNG
まだスタックについて詳しく習っていないので再帰についてなんともいえません。
すみません。スタックの性質の先に入れたデータが後から出てくることを利用しなさいと
言われていてreverse_str中のpopとpushの利用法がわからないんです。
0937sageNGNG
>>935
ありがとうございました。
助かりました。
0938デフォルトの名無しさんNGNG
先生に確認を取りました。
「コンパイラに使われるスタックを使って作りなさい」との事でした。
0939902NGNG
938は僕でありません
0940デフォルトの名無しさんNGNG
文字列全部pushでいれたあと、全部popで出せばいいんでは?
0941デフォルトの名無しさんNGNG
[1] C言語
[2]
  関数名:recursive_func  仮引数int n, int c:
  戻り値(int型):再帰的に計算した結果を返す.1から9までの整数が返る.
  機能:以下の式に基づいて,ラッキーナンバーを計算する.
  
   recursive_func(n,c)=
n=0の時 c mod 9+1
n>0の時 (n*recursive_fucn(n-1,c)+c)mod 9+1

 第2引数として,指定した日にちを渡す.そして,
 recursive_func()関数によって返された値がその日にちのラッキーナンバーとなる.
 たとえば,15日(土曜日(6))のラッキーナンバーを計算するための関数呼び出しは,
  recursive_func(6, 15)
 となる.

0942902NGNG
はい、やってみます。
0943デフォルトの名無しさんNGNG
>>941
int recursive_func(int n, int c)
{
    if (n == 0) return c % 9 + 1;
    else if (n > 0) return (n * recursive_func(n - 1, c) + c) % 9 + 1;
    else exit(1);
}
0944デフォルトの名無しさんNGNG
名前:
E-mail:
内容:
【質問テンプレ】
[2] 問題:Cでビットマップ画像を処理をする。1つはモノクロ化で
     もう1つは画像の明るさを調節する。
[3] 環境
 [3.1] OS:Win
 [3.3] 言語:C

明るさ調節はわかったのですが、モノクロ化がいまいちわからないので
おしえてください。


http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/65.txt
0945デフォルトの名無しさんNGNG
>>944
実は手法がいくつかあって、見えかたが違ってくる。
0946デフォルトの名無しさんNGNG
RGBをYCrCbにしてYだけ取ってくるとか、二値画像変換とか、
色々あるからなあ
0947デフォルトの名無しさんNGNG
2値画像は違うと思うぞ。
0948デフォルトの名無しさんNGNG
>>947
モノクロプリンタへ送ってるデータは2値画像データですね。
0949デフォルトの名無しさんNGNG
まずグレースケール作って、判別分析法かなんかで2値化ですかねぇ?

グレースケールは画像処理のテンプレから
Q:カラー画像をグレースケールに変換するには?
A:グレースケールへの変換には、完全な解答はありません。
一般には、下式が用いられるようです。
グレースケール = 0.299R + 0.587G + 0.114B
ちなみに、(R+G+B)/3はオススメできません

判別分析法はぐぐってくれ。

もちろん、解はこれ以外にもあるのは>>945>>946のとおり
0950デフォルトの名無しさんNGNG
点数(実数値)を入力して、0以上60未満はC、60以上80未満はB、
80以上100以下はAと表示せよ。但し、それ以外の値はエラーとする。

int main(void)
{
double no;
printf("点数を入力:");
scanf(「 (1) 」);
if (「 (2) 」)
puts("入力エラーです");
else if (「 (3) 」)
puts("C");
else if (「 (4) 」)
puts("B");
else
puts("A");
return (0);

どなたか教えてください。
0951デフォルトの名無しさんNGNG
>>950
#include<stdio.h>
int main(void)
{
double no;
printf("点数を入力:");
scanf("%lf",&no);
if (no<0 || no>100)
puts("入力エラーです");
else if (no>=0 && no<60)
puts("C");
else if (no>=60 && no<80)
puts("B");
else
puts("A");
return (0);
}
0952デフォルトの名無しさんNGNG
>>951
間違っては無いかもしれないが・・・
0953デフォルトの名無しさんNGNG
>>952
・・・の部分を教えてくれ
0954デフォルトの名無しさんNGNG
#include<stdio.h>
int main(void)
{
double no;
printf("点数を入力:");
scanf("%lf",&no);
if (no<0.0 || no>100.0)
puts("入力エラーです");
else if (no<60.0)
puts("C");
else if (no<80.0)
puts("B");
else
puts("A");
return 0;
}
0955デフォルトの名無しさんNGNG
問い
(0,1)で一様分布する変数 xi から
標準正規分布する変数 yj を
作るには、次の式を用いる。
yj=Σ(i=1,12) xi-6.0

rand() を用いて xi を12000個
発生させて、作成した yj の
分布を
-5〜5までの間で
* を用いた棒グラフにせよ。

お願いします
0956デフォルトの名無しさんNGNG
以下のプログラムがうまく動きませんどこがおかしいのでしょうか?
#include <stdio.h>
#include <math.h>
main()
{
int i;
double x0,x1,x2;
double f(double x);
x0 = 0; x1 = 10; i=0;
while (i<=9)
{
x2 = x0+(x1-x0)/2;
if (f(x2+1.0e-6) > f(x2-1.0e-6)) x2 = x1;
else x2 = x0;
i=+1;
}
printf("x0 = %g\n",x0);
printf("x1 = %g\n",x1);
}
double f(double x)
{
double y;
y = x+14/x;
return (y);
0957デフォルトの名無しさんNGNG
>>956
朝から釣りご苦労さま。
0958デフォルトの名無しさんNGNG
>>956
>どこがおかしいのでしょうか?
あんたの頭。
0959デフォルトの名無しさんNGNG
>956
ifの条件が誤差を考慮してない。区間の縮小で論理錯誤。最後に}がない。全て一からやり直せ。この場合、2分法を使うとよい。
0960デフォルトの名無しさんNGNG
>955
//疑似乱数∈開区間(0,1)
#define myrand() \
(rand()+1.0)/(RAND_MAX+2.0)
0961デフォルトの名無しさんNGNG
>>959
プ
0962デフォルトの名無しさんNGNG
5桁のHex character stringをバイナリ形式のInt
に変換するには、どのようにしたらよいのでしょうか?

たとえば
String a=”B0070”
これをバイナリ形式のIntに変換したいのです。

よろしくお願いします。
0963デフォルトの名無しさんNGNG
このスレ、香ばしいやつが常駐してるよな。(ワラ
0964デフォルトの名無しさんNGNG
>962
strtoi,sscanf
0965デフォルトの名無しさんNGNG
LCQ48:ナヌヤサイヤオカ,ヒカタサイタ,ラカヲヨミツロ
0966デフォルトの名無しさんNGNG
LCN48:TXT:BEG:^E<$50.143.59.94>^M:END
0967デフォルトの名無しさんNGNG
>>963
おまえが一番におってるって^^
0968デフォルトの名無しさんNGNG
問
リスト構造を用い、任意の要素数n個の疎行列を
LU分解法によって解くプログラムを作れ。
ただし、以下のような構造にすること。
・疎行列のデータは外部から入力させる。
・(0の入力を省略するなどして)メモリを節約する構造にする。
・疎行列の0を含む割合を変えられる構造にする。

おながいします。
OSはUNIX、言語はCです。
0969832NGNG
#include <stdio.h>
#include <math.h>
#define N 30
void main()
{
int n,i;
int a[30];
printf("フィボナッチ数列を作るプログラムです \n\n");
/*データの個数の入力*/
printf("nの値(3以上30以下の整数)を入力して下さい\nn = ");
scanf("%d", &n);
/*nが3以上30以下の整数でない場合*/
if (n < 3 || 30 < n) {
printf("%d は不適切です! \n", n);
}
for (i=1; i<=n; i=i+1) {
a[i-1] = (int)(exp(-0.804719 + i * 0.481212) + 0.5);
printf("a[%d] : %d\n", i, a[i-1]);
}
}
フィボナッチの数列の課題を聞いたものです。ここまでは出来てるんですが、
a[i-1] = (int)(exp(-0.804719 + i * 0.481212) + 0.5) の部分がよく分かりません。
何かの公式ですか? あと、異常終了がうまくいかないので、誰か教えて下さい!
0970デフォルトの名無しさんNGNG
公式は知らんけど、a[1]=1,a[2]=1 としてa[i]=a[i-1]+a[i-2]にを求めるだけだろ
for文をelseの中に入れないから3未満31以上の数字でも実行してしまう
0971デフォルトの名無しさんNGNG
>>969
その公式は誤差出るって書いただろうに。゜(゚´Д`゚)゜。
ちなみにα=(1+√5)/2と置いて、
α^n / √5 に一番近い整数がn番目のフィボナッチ数 ていう
ビネの公式を簡略化したもの。

#include <stdio.h>
#include <math.h>

int main()
{
 int n, i, s=1;
 int a[30];
 printf("フィボナッチ数列を作るプログラムです \n\n");
 /* データの個数の入力 */
 printf("nの値(3以上30以下の整数)を入力して下さい\nn = ");
 scanf("%d", &n);
 if (n<3 || 30<n) {
  printf("%d は不適切です! \n", n);
  return 1;
 }
 a[0]=1; a[1]=1;
 for (i=2; i<n; i++) {
  a[i] = a[i-1] + a[i-2];
 }
 for (i=0; i<n; i++) {
  printf("a[%d] : %d\n", i+1, a[i]);
 }
 return 0;
}
0972デフォルトの名無しさんNGNG
#include <math.h>
削除し忘れた…
0973832NGNG
>>971
本当にありがとうございます。
#include <stdio.h>
#include <math.h>
#define N 30
void main()
{
int n,i;
int a[30];
printf("フィボナッチ数列を作るプログラムです \n\n");
/*データの個数の入力*/
printf("nの値(3以上30以下の整数)を入力して下さい\nn = ");
scanf("%d", &n);
/*nが3以上30以下の整数でない場合*/
if (n < 3 || 30 < n) {
printf("%d は不適切です! \n", n);
}
a[0]=1; a[1]=1;
 for (i=2; i<n; i++) {
  a[i] = a[i-1] + a[i-2];
 }
 for (i=0; i<n; i++) {
  printf("a[%d] : %d\n", i+1, a[i]);
 }
うちの授業、returnとか使うの習ってないんですよ・・最初に言ってなくてすいません。
でも、これで3以上30以下の場合は動くんですけど、やっぱ異常終了はうまくいかなくて・・
よく分からんのです
0974デフォルトの名無しさんNGNG
>>973
if (n < 3 || 30 < n) {
 printf("%d は不適切です! \n", n);
} else {
 a[0]=1; a[1]=1;
 for (i=2; i<n; i++) {
  a[i] = a[i-1] + a[i-2];
 }
 for (i=0; i<n; i++) {
  printf("a[%d] : %d\n", i+1, a[i]);
 }
}
0975832NGNG
ありがとうございました!!
付け足ししてごめんなさい。ほんとに助かりました。
0976955NGNG
≫960
本当にありがとうございます
0977.kansaiNGNG
初心者の質問ですいませんが、以下の問題に快く答えてくれる方がいればお願いします。
機械語(アセンブラなど)でプログラムを書いている場合は見過ごされるが、
プログラミング言語(C言語)のコンパイラでは発見されるエラーってどんなのがありますか?
0978デフォルトの名無しさんNGNG
>>977
例えばポインタと整数の混同とか。(Cではキャストしないとエラーになる)
0979デフォルトの名無しさんNGNG
どこかで誰かがC/C++の宿題を片付けます 38代目
http://pc5.2ch.net/test/read.cgi/tech/1105541524/l50
0980デフォルトの名無しさんNGNG
>>977
>機械語(アセンブラなど)

アセンブラもプログラミング言語の一つだ。


# 機械語≠アセンブラ
0981デフォルトの名無しさんNGNG
どうでもいいけどアセンブラはアセンブリ言語のコードをマシン語に変換するソフトのことだぞ
0982デフォルトの名無しさんNGNG
>>981
うるせーよじじい
0983デフォルトの名無しさんNGNG
>>982
無知蒙昧
新解け。
0984デフォルトの名無しさんNGNG
整数を入力すると、その数字の読み方を出力するプログラムを作成してください。
入力する数字は9桁までとする。

例 158 one hundred and fifty eight
63567 sixty three thousand five hundred and sixty seven
0985デフォルトの名無しさんNGNG
学生のとき思ったんだけどさあ、なんで列挙したりするときに
ナントカカントカアーンドナントカみたいに、アンド入れるわけ?
何個目にいれなきゃいけないとか決まりがあるの?
0986デフォルトの名無しさんNGNG
正の数だけでいいのかな
0987984NGNG
>>986
okです
0988デフォルトの名無しさんNGNG
>>985
列挙する言葉の最後の前に入れる、
という規則があるような気がするんだけどよくはしらない。
反例も今のところ知らない。
0989デフォルトの名無しさんNGNG
>>985
言語によってまちまち。
例えばドイツ語の98を直訳すると「八と九十」になる。
どこの言語かは忘れたが、これが「八、十と四つの二十」になる。
0990デフォルトの名無しさんNGNG
それってプログラム言語以前に英文法の基本じゃないの?
英語はそういうもの、と思ってたんだけど違うのかな。
0991デフォルトの名無しさんNGNG
その日本語はほぼ完全な十進法だから非常に算数に向いている
はずなのだが。この数学・算数嫌いの多さは何事か。
0992デフォルトの名無しさんNGNG
向き不向きと好き嫌いが一致しなくてもおかしくないとおもうが
0993デフォルトの名無しさんNGNG
>>981
流行ったもん勝ち
0994デフォルトの名無しさんNGNG
#include<stdio.h>

int main()
{
    unsigned int i, m, n, t;
    char *reading_unit[] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
    char *reading_ten[] = {"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
    char *reading_tens[] = {"", "ten", "twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety"};
    char *reading_sep[] = {"million ", "thousand ", ""};

    scanf("%u", &n);
    if(n != 0){
        for(i = 0, m = 1000000; i < 3; i++, m /= 1000){
            t = n / m;
            if(t != 0){
                if(t / 100 % 10 != 0){
                    printf("%s hundred ", reading_unit[t/100%10]);
                    if(t % 100 != 0) printf("and ");
                }

                if(t / 10 % 10== 1 && t % 10 > 0) printf("%s ", reading_ten[t % 10]);
                else {
                    if(t / 10 % 10 != 0) printf("%s ", reading_tens[t/10%10]);
                    if(t % 10 != 0) printf("%s ", reading_unit[t%10]);
                }
                printf("%s", reading_sep[i]);
            }
        }
    }
    else printf(reading_unit[0]);
    return 0 ;
}
0995デフォルトの名無しさんNGNG
こつこつと梅梅
0996デフォルトの名無しさんNGNG
埋めるぞゴルァ!!
0997デフォルトの名無しさんNGNG
酢豚にパイナップル入れてんじゃねーぞゴルァ!!
0998デフォルトの名無しさんNGNG
メロンに生ハム乗せてんじゃねーぞゴルァ!!
0999デフォルトの名無しさんNGNG
ネタが尽きてんじゃねーぞゴルァ!!

↓↓ 誰か来いやゴルァ!! ↓↓
1000デフォルトの名無しさんNGNG
カレーに1000getしてんじゃねーぞゴルァ!!
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。