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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG?2BP(12)
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

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

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

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

【前スレ】
C/C++の宿題を片付けます 95代目
http://pc11.2ch.net/test/read.cgi/tech/1187944110/
0596 ◆vLIz8KOkPM 2007/10/01(月) 20:36:46
どなたか>>568をお願いします。期限が明日朝9時なんです…
0597デフォルトの名無しさん2007/10/01(月) 20:44:22
>>559
#include<stdio.h>

int main(int argc, char *argv[])
{
int day=29, question=108;

if(argc>=2) sscanf(argv[1], "%d", &day);
if(argc>=3) sscanf(argv[2], "%d", &question);

printf("%d問:%d日\n", question/day, day-(question%day));
if(question%day) printf("%d問:%d日\n", question/day+1, question%day);

return 0;
}
0598デフォルトの名無しさん2007/10/01(月) 20:48:02
>>556
異常なファイルの内容kwsk
0599デフォルトの名無しさん2007/10/01(月) 21:02:38
>>578
ネタを書くか、もしくは探して URL を…
#include<stdio.h>

int main(int argc, char *argv[]){
char *message[]={
"A「隣の空き地に囲いができたってね?」\nB「へー」\n",
"A : Do you know that fence was completed in the next vacant lot?\nB : Hey,really?!\n"
};
int choice=-1;

printf("0 か 1 を入力して下さい (0:日本語 1:English) :");
scanf("%d", &choice);

switch(choice){
case 0:
case 1:
printf("%s", message[choice]);
break;
default:
printf("\nERROR : Invalid number ! %d\n", choice);
}

return 0;
}
0600デフォルトの名無しさん2007/10/01(月) 21:04:15
>>596
わり。作ってアップすんの忘れてた。
>>494だそうなんで、入力をループで回すとこは入れてないよ。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5007.txt
0601デフォルトの名無しさん2007/10/01(月) 21:20:05
>>586
ソースコードがルー大柴でわろた
0602デフォルトの名無しさん2007/10/01(月) 22:09:52
>>595ありがとうございました。感謝です
0603 ◆vLIz8KOkPM 2007/10/02(火) 00:14:04
>>600
ありがとうございますm(__)mお陰様で大変助かりました。感謝しています。
0604デフォルトの名無しさん2007/10/02(火) 02:50:52
>>586
ギャルゲのスクリプトが作りたくなってきた
0605デフォルトの名無しさん2007/10/02(火) 12:41:42
[1] 授業単元:C言語
[3.1] OS(Windows)
3.2] bcc5.5
 [3.3] 言語: (C++)
[4] 期限:今日中
文字列aと文字列cを入力し
aに含まれる文字の数とaで最初にcが出てくる位置、最後にcが出てくる位置を
表示するプログラムを作成しなさい。
#include <stdio.h>
int str_src(char *,char);
int str_src2(char *,char);
int main(void)
{
char a[255],c;
printf("aを入力してください -> ");
scanf("%s",a);
printf("cを入力してください ->");
scanf(" %c",&c);
printf("%sの中に%cは%i個です\n",a,c,str_src(a,c));
printf("%s");
return 0;
}
int str_src(char *a,char c)
{
int count=0;
int i;
for(i=0; a[i]!='\0'; ++i)
if(a[i] == c) ++count;
return count;
}
ここまではやったのですが残りわからないのでお願い致します。
0606デフォルトの名無しさん2007/10/02(火) 12:46:46
文字列cと書いてあるが、ソースみると一文字だけど、一文字の方でいいんだよな?
0607デフォルトの名無しさん2007/10/02(火) 12:49:18
>>606
あ、すみません文字列aだけでcは文字です。
0608デフォルトの名無しさん2007/10/02(火) 13:43:25
>>605>>607
str_srcでカウントして何が楽しいのか分からなかったから
やりかけのソース無視した。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5010.txt
0609デフォルトの名無しさん2007/10/02(火) 13:46:49
ちょっと訂正
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5011.txt
06106072007/10/02(火) 14:03:01
>>609
本当にありがとうございました。
助かりました。
0611デフォルトの名無しさん2007/10/02(火) 14:50:45
[1] 授業単元: 総合
[2] 問題文:じゃんけんプログラムを作りなさい。(あいこも作ること)
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] BorlandC++
 [3.3] 言語:C++
0612デフォルトの名無しさん2007/10/02(火) 15:35:08
じゃんけん以外に特に指定無し?
0613デフォルトの名無しさん2007/10/02(火) 16:16:44
>>611
普通に作るつもりだったのに、魔がさした
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5012.txt
0614デフォルトの名無しさん2007/10/02(火) 16:46:16
判定なげー
0615デフォルトの名無しさん2007/10/02(火) 17:08:20
同じく判定みて吹いた。
0616デフォルトの名無しさん2007/10/02(火) 17:26:13
判定部分だけ書いてみた
//判定
switch((enemy-player+3)%3){
case 0: //あいこ
aiko = true;
break;
case 1: //勝ち
end = true;
win = true;
break;
default: //負け
end = true;
win = false;
break;
}

でも、
result = (enemy-player+3) % 3;
だけでいいと思う
0617デフォルトの名無しさん2007/10/02(火) 17:29:13
少なくとも、あいこの判定はplayer == enemyだけでいいと思うんだ。
0618デフォルトの名無しさん2007/10/02(火) 17:33:43
[1]授業単元:プログラミング演習
[2]問題文:float x,y;char a,b;と宣言し、各変数x,y,a,bのアドレスを出力するプログラムを作って、コンパイル/実行し、それぞれのメモリサイズが満たされていることを確認する。
注)メモリアドレスをprintf()を用いて出力する場合は、unsigned int型と同じく%uを出力変換に使うこと。
[3]Windows XP Visual Studio Japan20005
[4]C言語
[5]10月4日まで。お願いします。
0619デフォルトの名無しさん2007/10/02(火) 17:39:19
>それぞれのメモリサイズが満たされていることを確認する。
アドレスを出力しただけで、それが満たされているかは確認できません。
0620デフォルトの名無しさん2007/10/02(火) 17:50:41
stdioから直ってると思ったら、20005にフイタ
0621デフォルトの名無しさん2007/10/02(火) 17:53:49
20005が出る頃には、intが65536ビットくらいになってるのかな
0622デフォルトの名無しさん2007/10/02(火) 17:58:06
>>621
きっと可変長bitをCPUでサポートしてくれてる
0623デフォルトの名無しさん2007/10/02(火) 18:01:09
メモリアドレスをprintf()を用いて出力する場合は、unsigned int型と同じく%uを出力変換に使うこと。ここだけでいいんで教えてください。
0624デフォルトの名無しさん2007/10/02(火) 18:02:41
printf("%u",&x);
0625デフォルトの名無しさん2007/10/02(火) 19:40:21
>>622
ってかbitなんてなくなってる
06266132007/10/02(火) 20:09:52
見直してみて自分でも吹いた。やっちゃったZE。
0627デフォルトの名無しさん2007/10/02(火) 20:19:20
ふちゅーは%pじゃないか?
0628デフォルトの名無しさん2007/10/02(火) 20:24:42
0x%Xじゃね?
0629デフォルトの名無しさん2007/10/02(火) 21:36:01
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): ユーザが整数を入力すると、その整数をINT型の変数に入れ、そのビット列を表示するプログラム。
ただ、INT型のビット数は環境によって変わる可能性があるため、
sizeof()演算子を利用してINT型の変数のビット数を求め、そのビット数分だけ表示するようにせよ。
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: Visual C++ 2005
 [3.3] 言語: C
[4] 期限: 明日中
[5] その他の制限: なし

お願いします。

0630デフォルトの名無しさん2007/10/02(火) 21:46:43
>>629
これでおk

unsigned int v, bit = 1 << sizeof(int) * 8 - 1;
scanf("%d", &v);
while(bit) {
  putchar(bit & v ? '1' : '0');
  bit >>= 1;
}
puts("");
0631デフォルトの名無しさん2007/10/02(火) 21:48:02
>>629
1バイトが8ビットとは限らないけどこれでよければどうぞ。

#include<stdio.h>

int main(void)
{
int in;
int cnt;

scanf( "%d", &in );

for ( cnt = sizeof( int ) * 8; cnt > 0 ; cnt-- ) {
printf ( "%d", ( in >> ( cnt - 1 ) ) & 1 );
}

return 0;
}
0632デフォルトの名無しさん2007/10/02(火) 21:49:46
>>630
入力が負の数だったときに処理系依存で無限ループじゃね?
0633デフォルトの名無しさん2007/10/02(火) 21:56:13
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): じゃんけんを10回行い、その対戦結果(対戦譜)をCSV形式で出力するもの。
ただし、出力先は(/デスクトップ/じゃんけん結果)フォルダで、ファイル名は日付を含むこと。
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: BCC
 [3.3] 言語: C++
[4] 期限: 明日中
[5] その他の制限: 出力したCSVファイルはExcelで開いて確認すること。

お願いします。
0634デフォルトの名無しさん2007/10/02(火) 21:57:20
>>630-631
ありがとうございます。
参考にさせていただきます。
0635デフォルトの名無しさん2007/10/02(火) 22:05:50
>>632
kwsk
0636デフォルトの名無しさん2007/10/02(火) 22:19:01
>>633
>[1] 授業単元: C言語
> [3.3] 言語: C++
どっちやねん
0637デフォルトの名無しさん2007/10/02(火) 22:23:04
とりあえずC言語でやっておけばおk。どうせC++コンパイラでもC言語のソースは
コンパイルできるし。
0638デフォルトの名無しさん2007/10/02(火) 23:24:31
>>635
あ、ごめん。unsignedつけてたらOKだっけ?
負の数の右シフトが算術シフトになるか論理シフトになるかは
処理系依存だったと思ったから・・・
あいまいで、そーりー
0639デフォルトの名無しさん2007/10/02(火) 23:32:29
何が言いたいのか今一よく判らんが、unsignedなら負の数にはならないんだな、これが。
0640デフォルトの名無しさん2007/10/02(火) 23:38:17
符号無し!
0641デフォルトの名無しさん2007/10/02(火) 23:39:18
>>380
めんどくさいんでcharで説明。
[10101010]を右に1ビットシフトした場合[10010101]になるか[01010101]になるかは処理系依存

調べたらやっぱ、unsignedは問題なかった。スマソ
http://proger.blog10.fc2.com/blog-entry-62.html
0642デフォルトの名無しさん2007/10/02(火) 23:41:57
とりあえず、何をシフトしてるかぐらいは理解してくれ
0643デフォルトの名無しさん2007/10/03(水) 00:27:59
>>641
> [10101010]を右に1ビットシフトした場合
> [10010101]になるか[01010101]になるかは処理系依存

(http://proger.blog10.fc2.com/blog-entry-62.html)
> C言語の規格として、算術シフトか論理シフトかは不定

うそ。規格では次のようになっている。ISO/IEC 9899, 1999 より:
> 6.5.7
> The result of E1 >> E2 is E1 right-shifted E2 bit positions.
> If E1 has an unsigned type or if E1 has a signed type and a
> nonnegative value, the value of the result is the integral
> part of the quotient of E1 / 2^E2. If E1 has a signed type
> and a negative value, the resulting value is implementation-defined.

つまり、E1 が unsigned であるか、もしくは signed かつ E1 ≧ 0 のときに
限って右シフトの動作は定められており、それ以外は implementation-defined。
すなわち、論理シフトやら算術シフトの範囲を超えて処理系の自由。
0644デフォルトの名無しさん2007/10/03(水) 00:58:12
負数の右シフトは値がぶっ飛んだって問題ないでOK?
0645デフォルトの名無しさん2007/10/03(水) 00:59:42
日本語でおk
0646デフォルトの名無しさん2007/10/03(水) 02:29:31
そもそも負って言っても2進数で表すと、どういう表現になるか?
考えてみよー
0647デフォルトの名無しさん2007/10/03(水) 03:04:07
[1] 授業単元:
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5013.txt
[3] 環境
 [3.1] OS: windows 
[3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 10月4日22:00まで
[5] その他の制限: ありません
大変お手数ですが、よろしくお願いいたします
0648デフォルトの名無しさん2007/10/03(水) 05:48:29
>>647
問題1
#include <stdio.h>
#include <math.h>

int fac(int n) { return n==1 ? 1 : n * fac(n-1); }

int geo(int a, int r, int n) { return n==1 ? a : geo(a, r, n-1) * (pow(r, n) - 1) / (pow(r, n-1) - 1); }

int fib(int n) { return n==1 || n==2 ? 1 : fib(n-1) + fib(n-2); }

double a[] = { 1, 2, 3, 4, 5};

double hor(double x, int n) { return n==0 ? a[n] : hor(x, n-1) * x + a[n]; }

int main(void)
{
    printf("10! = %d\n", fac(10));
    printf("2^0 + 2^1 + 2^2 + ... + 2^9 = %d\n", geo(1, 2, 10));
    printf("fibonacci 20: %d\n", fib(20));
    printf("f(2) = %.2f\n",hor(2, 4));

    return 0;
}
0649デフォルトの名無しさん2007/10/03(水) 08:58:37
>>646
考える前に仕様書を読んでくれ。6.2.6.2 に書いてあるから。要点は
・value bits / padding bits / sign bit からなる。
・どこの bit が value bits/padding bits/sign bit であるかは処理系定義。
・sign bit が 0 のときは正の数,1 のときは負の数を表現する。
・数表現が「絶対値と符号,二の補数,一の補数」のどれかは処理系定義。
0650デフォルトの名無しさん2007/10/03(水) 09:14:49
>>631
> 1バイトが8ビットとは限らない
それよりもこれについて悔しく
0651デフォルトの名無しさん2007/10/03(水) 09:19:45
知らなくても普通は問題ないが、そういう特殊な環境もあるらしい。
0652デフォルトの名無しさん2007/10/03(水) 09:22:07
やな環境だなぁ。そんな環境を作っている奴、使っている奴は確実に変わり者。
0653デフォルトの名無しさん2007/10/03(水) 09:25:09
身の回りが世界だと思ってるほうが後々痛い目にあうしなぁ・・・
0654デフォルトの名無しさん2007/10/03(水) 09:29:54
1バイトが7ビットとか・・・ぷっ・・・ぷぷぷっ・・・ぷぅ〜〜〜(屁)が出ちゃうぜ
0655デフォルトの名無しさん2007/10/03(水) 09:32:52
650のバカが突っ込んだつもりで不勉強を晒しただけだな。
0656デフォルトの名無しさん2007/10/03(水) 09:41:06
というわけで (UINT_MAX-UINT_MIN) の数値からunsigned intのビット数をどうにかして得てからやったほうが無難なときもあるよ,と
0657デフォルトの名無しさん2007/10/03(水) 09:52:48
[email protected]
0658デフォルトの名無しさん2007/10/03(水) 09:56:42
>>654
CHAR_BITは8以上と定められているので、流石にそれではISO準拠を名乗れない。
0659デフォルトの名無しさん2007/10/03(水) 10:02:58
>>655
っつかお前さっきっから偉そうにうぜぇよ?詰まらん突込みに必死になりすぎw
んなの知っててわざとお前みたいなでしゃばりに答えさせているだけだろ。
ほんっと、最近うぜぇガキが増えたな。
>>653
>>651
>>649
>>643
↑こいつキモイ
0660デフォルトの名無しさん2007/10/03(水) 10:04:26
655 名前:デフォルトの名無しさん 投稿日:2007/10/03(水) 09:32:52
650のバカが突っ込んだつもりで不勉強を晒しただけだな。
650のバカが突っ込んだつもりで不勉強を晒しただけだな。
650のバカが突っ込んだつもりで不勉強を晒しただけだな。
↑バカとか言っているし、なんだこいつ?不勉強だってw
>>650には知らないとか存在しないとは書かれていない。
しかも「悔しく」ってボケているところに気づかない2ちゃん初心者ワロスw
モロに釣られたな、このでしゃばり、知識をひけらかしたい厨房。

653 名前:デフォルトの名無しさん 投稿日:2007/10/03(水) 09:25:09
身の回りが世界だと思ってるほうが後々痛い目にあうしなぁ・・・
身の回りが世界だと思ってるほうが後々痛い目にあうしなぁ・・・
身の回りが世界だと思ってるほうが後々痛い目にあうしなぁ・・・

0661デフォルトの名無しさん2007/10/03(水) 10:06:54
>>656
UINT_MINは存在しない。
存在したとしても常に0だろうし。
0662デフォルトの名無しさん2007/10/03(水) 10:07:36
ttp://ja.wikipedia.org/wiki/%E3%83%90%E3%82%A4%E3%83%88_(%E6%83%85%E5%A0%B1)
> 初期のコンピューターでの1バイトは6ビットである(英文文字(キャラクタ)コードが
> 源であった)。1バイトを7ビットや9ビットとして扱うコンピュータもあり
> (DECのPDP-10、NECのACOS-6など)、このため情報通信の分野では
> 常に8ビットを表すために、バイトではなくオクテットと呼ぶのが適切である。
さてと、どっちが不勉強の無知を晒したか、分かったよな?8ビットを1バイトとしない環境があるとしても
それはバイトではなく 何と 言うでしょう〜〜か?ったく、知ったかのバカが無知を晒したよw
>>655 >>655 >>655 >>655 >>655 >>655 <こいつなw
0663デフォルトの名無しさん2007/10/03(水) 10:08:37
>>661
いい加減知ったかはうるさいよ
>>655のバカさんw
>>651 >>653
0664デフォルトの名無しさん2007/10/03(水) 10:11:32
なんでもかんでも例外をキャッチするなよ
しかもバグってるし…
0665デフォルトの名無しさん2007/10/03(水) 10:13:43
良い感じに水掛け論になってきたなwwwwwwwwwwwwww
0666デフォルトの名無しさん2007/10/03(水) 10:15:08
>>661
http://www.google.co.jp/search?hl=ja&client=firefox&rls=org.mozilla%3Aja%3Aofficial&hs=Dcs&q=UINT_MIN&btnG=%E6%A4%9C%E7%B4%A2&lr=
っつか、ほんまバカにバカって言われるとなんとも。まぁ、どっちが知識があるとか
競い合っているようじゃまだまだ子供だな。ちゃんと調べようぜ?
UINT_MINが存在するしないを一個人が決めて良いもんだろうか?
強いて決めるなら、って話なら分かる。
0667デフォルトの名無しさん2007/10/03(水) 10:17:45
>>655さんよぉ、とっとと謝罪してくれないかねぇ?どこが バカ なのか説明してくれ。
突っ込んだ質問にさも知ったような口で答えたつもりが、相手が無知だと勘違いして
墓穴を掘るとは・・・敢えて突っ込まれて正確に、事細かに説明できないなら黙ってた方が良いよ。
あと、ここ、宿題スレだから。続きがやりたいなら別の質問関連のスレで頼むわ。
0668デフォルトの名無しさん2007/10/03(水) 10:19:18
30分かけて一生懸命調べてからファビョってるところが笑える
0669デフォルトの名無しさん2007/10/03(水) 10:21:53
>>662
・1バイトは通常8ビットであり、古くは6ビット、7ビット、9ビットの物が存在した。
・よって「常に8ビット」を表すために情報通信分野ではオクテットという用語がある。
その機械で1バイトが8ビット以外と定められているのなら、バイト以外ありえないが。
まさかオクテットだなどと言うまい?
0670デフォルトの名無しさん2007/10/03(水) 10:22:24
>>668
負け犬の遠吠え乙w 正確な説明も出来ないくせに他人をバカ呼ばわりしてんじゃねーよ
0671デフォルトの名無しさん2007/10/03(水) 10:23:54
>>669
問題はそこじゃない。>>650が無知だったという証拠は?
詳しくと突っ込まれて答えたのがそうでない環境があるってことだけだろ?
そんなの知ってんだよ、こっちは情報関係の分野を専攻してたからねぇ。
具体的に答えたのはむしろボケた俺の方だろ?w
0672デフォルトの名無しさん2007/10/03(水) 10:26:12
いつになったら中途半端な知識で突っ込んで、指摘されたら逆切れ連投&釣り宣言の馬鹿コンボを
やめてくれるんだろう。
何回このパターン見たことか。
0673デフォルトの名無しさん2007/10/03(水) 10:27:56
っつか、マジでスレ違いだし、ここらで俺が結論づけておくわ。
>>655のバカが突っ込んだつもりで不勉強を晒しただけだな。
他人をバカ呼ばわりする前に自分の知ったかな不十分な知識で偉そうにしていて
相手を勝手に無知、不勉強にするな。調べもしない奴こそいい加減。
悪いがこっちは調べたんじゃなくて知ってたが、敢えて誰もが見られる文献に
リンクをしただけ。普通は自分で調べるだろ、調べる奴は。
0674デフォルトの名無しさん2007/10/03(水) 10:36:35
>>650,652,654,659,660,662,663,666,667,670,671,673

相変わらず恐ろしいほどの瞬発力だ
0675デフォルトの名無しさん2007/10/03(水) 10:45:04
>>672
まあ、わかりやすいから見かけたら即あぼーんで対処するしかないな。

馬鹿は馬鹿である引け目があるが故に馬鹿と指摘されると馬鹿のように怒り始めるから
あまり馬鹿にしてやらないほうが良い。馬鹿にも馬鹿なりの自尊心というやつがあるの
だろう。本当に馬鹿ではなく自分に絶対の自信があるのなら、馬鹿にされても聞き流せ
るはずだから、本来はとても馬鹿馬鹿しい事だが。まあ、わざわざ相手して馬鹿をみる
こともない。
0676デフォルトの名無しさん2007/10/03(水) 10:46:32
沸きすぎワロタww
0677デフォルトの名無しさん2007/10/03(水) 10:50:16
久々に覗いて見たらまたいつもの人か
相変わらずだなここも
0678デフォルトの名無しさん2007/10/03(水) 13:28:34
ここの板もいい加減ID制にして欲しいよ
あぼーんするのが面倒だ
0679デフォルトの名無しさん2007/10/03(水) 15:18:03
つhttp://pc11.2ch.net/test/read.cgi/tech/1051039126/
0680デフォルトの名無しさん2007/10/03(水) 15:36:19
別にIDにしなくてもいいや、いい加減慣れた
長くても一日放置すれば飽きるみたいだし
0681デフォルトの名無しさん2007/10/03(水) 23:37:15
[1] 授業単元:C++プログラミング
[2] 問題文(含コード&リンク):
「年(西暦)」「月」を入力したら,その月のカレンダーを表示するプログラムを作成しなさい。ただし,下記の条件を満たすものとする。
【条件】
(1)カレンダークラスを作成し,main関数でカレンダークラスの実体を生成し,カレンダークラス内のメンバ関数(show関数)を呼び出してカレンダーを表示する。
(2)カレンダークラスはカプセル化されていること。
(3)カレンダー表示には,年,月および曜日,日を表示すること。
(4)「閏年」「祝日」「六曜」「節句」「二十四節気」の表記を可能にする。
(5)上記以外については自由に作成してよい。

[3] 環境
 [3.1] OS: Windows VISTA or XP
 [3.2] visual studio 2005
 [3.3] 言語: C++
[4] 期限: 2007/10/5まで。
[5] その他の制限: 特になし

よろしくお願いします。
0682デフォルトの名無しさん2007/10/03(水) 23:43:05
>>681
「六曜」の計算式plz
0683デフォルトの名無しさん2007/10/04(木) 00:06:49
>>682

(月+日)÷6=?…あまり
大安 0
赤口 1
先勝 2
友引 3
先負 4
仏滅 5
例:
十五夜(8月15日) : 8+15=23, 23÷6=3あまり5→仏滅
十三夜(9月13日) : 9+13=22, 22÷6=3あまり4→先負
七夕(7月7日): 7+7=14, 14÷6=2あまり2→先勝
0684デフォルトの名無しさん2007/10/04(木) 00:11:44
>>683
六曜は月の暦(太陰暦)だから太陽暦での月の途中でリセットされるよ
0685デフォルトの名無しさん2007/10/04(木) 00:25:37
やべぇ、5年もホテルでバイトしてて六曜が重要だったのに
そんな単純な計算式で出るなんて初めて知った・・・
0686デフォルトの名無しさん2007/10/04(木) 00:36:50
ラブホか
0687デフォルトの名無しさん2007/10/04(木) 00:44:54
(; ・`д・´)これConsoleでやるのか!
0688デフォルトの名無しさん2007/10/04(木) 00:51:38
太陽暦と太陰暦変換の計算式って中々見つからない
海上保安庁の
http://www1.kaiho.mlit.go.jp/KOHO/syoshi/pr_eph.htm
に計算式があるようだが 解読できないです。
0689デフォルトの名無しさん2007/10/04(木) 02:50:41
[1] 授業単元:
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5013.txt
[3] 環境
 [3.1] OS: windows 
[3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 10月5日6:00まで
[5] その他の制限: ありません
大変お手数ですが、よろしくお願いいたします
0690デフォルトの名無しさん2007/10/04(木) 03:55:44
>>689
問題2の1つ目のループの計測
2つ目以降は計測してるループのとことかnの値とかそこらへんを書きかえればok
#include <stdio.h>
#include <sys/time.h>
int main(void)
{
    int i, j, n, sum;
    hrtime_t start, finish;

    printf("1.\n");
    printf("+----+---------+---------+---------+---------+---------+\n");
    printf("| n | 2000000| 4000000| 6000000| 8000000| 10000000|\n");
    printf("+----+---------+---------+---------+---------+---------+\n");
    printf("|time|");

    for(n=2000000; n<=10000000; n+=2000000) {
        start = gethrtime(); /* 計測開始 */
        sum = 0;
        for(i=0; i<n; i++) sum++;
        finish = gethrtime(); /* 計測終了 */
        printf("%9f|", (double)(finish-start) / NANSEC);
    }

    printf("\n+----+---------+---------+---------+---------+---------+\n");

    return 0;
}
0691デフォルトの名無しさん2007/10/04(木) 04:02:44
>>689
関数名が情けないことになってるので、書きなおしておいて
#include<stdio.h>
int kaijo(int n){
if(n<=1) return 1;
return n*kaijo(n-1);
}
double touhikyusu(double a0, double x, int n){
if(n<=0) return a0;
return touhikyusu(a0*x, x, n-1);
}
int fibonacchi(int n){
if(n<=1) return 1;
return fibonacchi(n-1)+fibonacchi(n-2);
}
double honer(double x, double keisu[], int keisu_num){
if(keisu_num<=0) return 0.0;
return honer(x, keisu, keisu_num-1)*x+keisu[keisu_num-1];
}
int main(void){
double sum;

printf("%d\n", kaijo(10));
for(i=0,sum=0.0;i<10;i++) sum+=touhikyusu(1.0, 2.0, i));
printf("%f\n", sum);
printf("%d\n", fibonacchi(10));
printf("%f\n", honer(2.0, (double [5]){1.0, 2.0, 3.0, 4.0, 5.0}, 5));
return 0;
}
0692デフォルトの名無しさん2007/10/04(木) 04:34:39
動作確認ぐらいしろよ
0693デフォルトの名無しさん2007/10/04(木) 09:51:29
関数名touhikyusuなのに、等比級数を返さないってのはどうよ?
0694デフォルトの名無しさん2007/10/04(木) 10:17:28
double touhikyusu(double a0, double r, int n){
if(n<=0) return a0;
return touhikyusu(a0, r, n-1)*r+a0;
}
0695デフォルトの名無しさん2007/10/04(木) 11:27:50
>>694
なにそれ?
■ このスレッドは過去ログ倉庫に格納されています