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


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

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



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

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

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

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

前スレ
C/C++の宿題片付けます 130代目
pc12.2ch.net/test/read.cgi/tech/1250204272/

92 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 02:48:57 ]
いや、問題ないよ
>>90の勘違いじゃないかな

93 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 02:59:15 ]
>>92
int main() (笑)

94 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 03:06:15 ]
>>93

95 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 03:06:28 ]
わからん。
int main(void)
と書かないとダメとか程度の低い勘違いをしてるんじゃないよな?

96 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 03:13:51 ]
>言語:C++
これが読めない文盲なんだろ。

97 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 03:14:19 ]
アワレだな

98 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 03:23:17 ]
>>96
>>84
問2
#include <stdio.h>

int main() (笑)

99 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 03:29:34 ]
96 名前:デフォルトの名無しさん 投稿日:2009/10/20(火) 03:13:51
>言語:C++
これが読めない文盲なんだろ。

文盲(笑) 差別用語(笑) 池沼レベルの発言(苦笑)

100 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 03:38:52 ]
Cでint main()がダメだという人って多いよね。
どこでそんな知識得たの?



101 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 03:58:05 ]
>>80
[1] 授業単元:c言語
言語:C++

問2
#include <stdio.h>

int main() (笑)


102 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 04:03:44 ]
Xeno091017 正式版
koreawatcher.at.infoseek.co.jp/janexeno.htm
・正式版として最初のリリース。
・Jane終了時の挙動のみ091015試作品から変更された。
───────────────────────
予告どおり、正式版をリリースしました。×ボタンのツールチップ
ヒントに関して、真魚のソースを参考にして修正を試みました。
JaneNidaの開発は事実上終了です。2chの仕様変更などで
対応するかもしれません。

103 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 04:04:03 ]
> [1] 授業単元:c言語
> 言語:C++
(苦笑)

104 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 04:40:11 ]
96 名前:デフォルトの名無しさん 投稿日:2009/10/20(火) 03:13:51
>言語:C++
これが読めない文盲なんだろ。

>>80
> [1] 授業単元:c言語
これが読めない文盲なんだろ。

105 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 04:58:56 ]
>>90
int main() (笑)?

106 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 05:19:56 ]
相変わらずすごい粘着力だw

107 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 07:35:21 ]
Cならint main(void){}
C++ならint main(){}またはint main(void){}お好みで。

108 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 08:31:11 ]
#include <stdio.h>
int main() (笑)

109 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 08:33:12 ]
ビルダで言われるがままにしか作ったことないんだろ。
逆に可哀相な奴なんだから気にすることない。

110 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 09:01:57 ]
96 名前:デフォルトの名無しさん 投稿日:2009/10/20(火) 03:13:51
>言語:C++
これが読めない文盲なんだろ。

#include <stdio.h>  < はい注目!

>>96はこれが見えない文盲なんだろ。



111 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 09:40:57 ]
別にそれでもC++としてコンパイルできるけど。

112 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 12:01:36 ]
C++でstdio.hをインクルードしてもまったく問題ないと思うけど
>>113はどう思う

113 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 12:13:26 ]
単に質問者が間違えただけだろ
いちいち揚げ足とんな>>90

114 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 12:53:25 ]
>>81で早々にツッコミ入ってるのに

115 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 17:05:36 ]
>>53
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9996.txt

116 名前:デフォルトの名無しさん [2009/10/20(火) 17:14:46 ]
>>63
期限は10/21の16:00でお願いします。

117 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 17:20:30 ]
特定のプラットフォーム限定のコード書いてコンパイラの独自機能
使いまくりなのに、標準を気にするなんておかしいね。
ターゲットようのコンパイラに通りゃなにやったって正義。

118 名前:C初心者 [2009/10/20(火) 18:36:06 ]
Unix、C言語のみで、はじめにユーザーに整数入力を要求し、
その入力された整数を次の一行にその整数とHexに変換されたもの
を出力、その次の行には、はじめに入力された整数を少数にして
それをまたHexに変換。
もしユーザーが数字以外を入力した場合にエラーと表示させ、
”0”と打ち込めば終了。
というプログラムです。一行目はきちんと出てくるのですが、
入力された値を2行目で少数に変換し、それをまたHexにかえる
というのがわかりません。

こんな感じで出したいのですが、、

>1
    1 0x00000001
 1.00 0x3F800000

> 

どうぞよろしくお願いいたします。

119 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 19:37:27 ]
>>118 template 無いから、これでいいか。
#include <stdio.h>
int main(void) {
  union{
    float a;
    unsigned char c[4];
  } data;
  int i, b;

  b = 1;
  data.a = b;
  for(i=3;i>=0;i--) {
    printf("%02X", data.c[i]);
  }
}

120 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 20:17:13 ]
>>90 >>93 >>98 >> 101 >>105 >>108
pc12.2ch.net/test/read.cgi/tech/1250204272/940

>ANSI以前との互換性のために、ANSI-Cではプロトタイプ宣言の時だけは引数にvoidを
>明示しないとならないことになっている。
>定義ではvoidの明示は不要。
>C++ではプロトタイプ宣言でも関数定義でもvoidの明示は不要。
>
>つまり、ANSI-Cで引数の無いmain関数のプロトタイプを書く場合だけは、引数の型を
>voidとするのが正式。それ以外の場所は省略しても正式。




121 名前:C初心者 [2009/10/20(火) 20:23:21 ]
>119さん
返信ありがとうございます。初心者過ぎてコードが読めないんですが、
forループの中ではHexのみをプリントアウトするようになっていますか?
scanfでユーザーの入力を読み込んで、それを整数からHEXへ、少数から
Hexへ変換して表示させるにはどうしたらよいのでしょうか。
それが、unionというものをまだ習っていないので、出来れば使いたくな
いのですが、sizeof(int), sizeof(float)を使ってどのように変換したら
良いのでしょうか?

printf("> %d", n);
if("%d" == char) //CHARではCharを読むことは出来ないんですね?
printf("error");
else if ("%d" == "0"); //これも違いました、、、
return 0;
else{
printf("%10d 0x%08x", n, n);
printf("%10.2f 0x%08X", f, n);
}

よろしくお願いいたします。

122 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 20:29:07 ]
>>121
何かしたいのかがわからん

123 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 20:40:58 ]
>>120
なんでそんな、この宿題スレの過去ログでも争って結論が出たのを
今更蒸し返してんの?w
C言語とC++についてもISO、ANSI準拠の標準スタイルについて
説明されていたよ。で、あんたはC++で#include <stdio.h>とするのね?w

124 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 20:43:24 ]
>>123
するだろ?
C++の規格のどこかにCのライブラリを用いてはならないって書いてあった?

125 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 20:45:45 ]
>>124
このキチガイさんは<cstdio>って書いて欲しいんだよ

126 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:46:53 ]
>>120
なんか引っかき回してすまないんだが、
mainのプロトタイプってどこかに書かれてる?
無いなら、最初に出てきた時、つまりmainの定義を以て宣言とする挙動になるはずだよね。

127 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:48:57 ]
ANSI-Cにおいて、int main()が非合法であるかの確認をしたいです。

128 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:54:16 ]
>>126
宣言のときなんていってなくね?
プロトタイプ宣言の時なんだから実体の定義を伴う宣言とは別だろ

129 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:55:20 ]
>>118 unionを知らなくても、FILE*は知ってるだろう。もしscanfの使い方知りたいなら別のスレいけ。
#include <stdio.h>
int main(void) {
  int i, b;
  float a;
  unsigned char c[4];
  FILE *fp;

  b = 1;
  a = b;
  fp = fopen("a.txt", "wb");
  if(fp == NULL) {puts("ERR"); return 1;}
  fwrite(&a, 4, 1, fp);
  fclose(fp);

  fp = fopen("a.txt", "rb");
  if(fp == NULL) {puts("ERR"); return 1;}
  fread(&c, 4, 1, fp);
  fclose(fp);

  for(i=3;i>=0;i--) {
    printf("%02X", c[i]);
  }
  return 0;
}

130 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:07:21 ]
>>128
void hoge(void);
void hoge() {}
int main() { hoge(1); return 0; }

このコードの1行目が無ければコンパイルできるじゃん。
それは、関数の定義内容を元にプロトタイプ宣言と見なしているってことじゃないの?



131 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:08:41 ]
C++です。

  x[0] = rand()%6;
  x[1] = rand()%6;
  x[2] = rand()%6;
  y =x[0] + x[1] + x[2];
  z[y] = z[y]+1;

変数がわかりにくくてすみません。
xの配列に0〜5の値を保存して合計してyに入れます。
それからzの配列(15こぶん)に入れたいのですが、うまくできません。

たとえば、yが3のとき、z[3]に入れたいのですが・・・。
最終的にどの値が何回出たか表示するためにzの配列に保存しています。

この部分の記述は間違っていないでしょうか??

132 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:10:15 ]
>>131
いいよ。
z[y]++;
にしてもいい。

133 名前:132 mailto:sage [2009/10/20(火) 22:11:49 ]
あ。zは0-15までの16個ぶん必要だよ。

134 名前:>>118 mailto:sage [2009/10/20(火) 22:24:40 ]
>>131
// C言語です。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
  int i, x[3], y, z[15];

  srand(time(0));
  for(i=0;i<15;i++) z[i] = 0;
  for(i=0;i<100;i++) {
    x[0] = rand()%6;
    x[1] = rand()%6;
    x[2] = rand()%6;
    y = x[0]+x[1]+x[2];
    z[y] = z[y] + 1;
  }

  for(i=0;i<15;i++) printf("%2d %2d\n", i, z[i]);
  return getc(stdin);
}

135 名前:>>118 mailto:sage [2009/10/20(火) 22:26:23 ]
int i, x[3], y, z[16];

136 名前:>>118 mailto:sage [2009/10/20(火) 22:29:08 ]
for(i=0;i<16;i++) z[i] = 0;
for(i=0;i<16;i++) printf("%2d %2d\n", i, z[i]);
ソーリー

137 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:30:33 ]
>>132
ありがとうございます。
この場合変数の宣言はどのようにするのがよいのでしょうか?

138 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:32:05 ]
>>137
今まで通りでいいよ。

139 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:34:23 ]
C言語です

「キーボードから数を入力して、当たればHIT、はずれはMISSEDを表示し、はずれた場合に限り
正しい数はなんであったかも表示する」

という課題なのですが、自分で↓のようなプログラムを作ったのですがうまくいかずどこがいけないのかがわかりません・・・
どうかよろしくお願いします

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int x,y;
srand(time(0));

x=(rand()%3)+1;

printf("imput number=?"); scanf("%d",&y);

if(x=y)
printf("HIT");
else {
printf("MISSED\n");
printf("correct number=x");
}
return(0);
}

140 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:34:54 ]
>>134
>>138
できました!ありがとうございます。

配列の宣言部分がおかしかったようです。



141 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:35:41 ]
>>139
if(x=y)って大入試気になってね?

142 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:36:10 ]
代入式!ええい・・・糞IMEめ

143 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:39:08 ]
そこを直しても、ミスったときの表示はおかしいけどな

144 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:40:50 ]
惜しかったなぁ。
まぁ、ここまで作れたならそれは大丈夫でしょう。

145 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:42:19 ]
代入式・・・?

>>141-144
すみません初心者で・・・

146 名前:デフォルトの名無しさん [2009/10/20(火) 22:44:50 ]
>>145
x = yだとxにyの値が入っちゃうので
x == yにしないといけないよって言う話

147 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:45:02 ]
>>145
=でつないじゃったら右を左に入れるだから
==じゃないとだめよ

148 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:46:11 ]
あとはずれた場合に正解を表示させないとね

149 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:48:07 ]
>>146-147
そうでしたか!なるほど・・・
どうもありがとうございます!

>>148
そっちにも問題がありそうですねorz
ちょっと試行錯誤してみます!

150 名前:デフォルトの名無しさん [2009/10/20(火) 22:50:39 ]
>>149
まぁ'='と'=='の勘違いは誰もが通る道だから
気にしなくていいよ



151 名前:139 mailto:sage [2009/10/20(火) 22:56:39 ]
>>150
ありがとうございます!


無事にプログラムが完成しました!

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int x,y;
srand(time(0));

x=(rand()%3)+1;

printf("imput number=?"); scanf("%d",&y);

if(x==y)
puts("HIT");
else {
printf("MISSED\n");
printf("correct number=%d",x);
}
return(0);
}


こうしなければいけなかったのですね

大変お世話になりました!

152 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:56:59 ]
その上気づきにくい、、、が、コンパイラが警告出してくれてると思うよ。
警告 : 条件文書くとこで代入してるけど、これ意図して書いてる?
みたいなの。

153 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:58:01 ]
おめでとう。imputはご愛嬌。

154 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:03:19 ]
>>152
英語が苦手で警告文を解読するのも一苦労です・・・

>>153
ぶはw
これは恥ずかしいです・・・

155 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:48:47 ]
C++のソースコードを書きます(キリッ)
#include <stdio.h>
int main()
{
return 0;
}
できますた!C++コンパイラでコンパイルして下さい!(キリッ)

156 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:53:45 ]
>>155
問題なくコンパイルできますね。(g++, bcc32)


157 名前:デフォルトの名無しさん [2009/10/20(火) 23:54:45 ]
>>155の何が面白いのか真剣にわからない

158 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:08:41 ]
宿題の答えくれなくて自暴自棄になってるんだと思う。

159 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:10:19 ]
この粘着はCスレによく出没する頭のおかしい人だから、スルーしてください。

160 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:26:52 ]
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):
  問1、符号無し整数xを右にnビット回転した値を返す関数
     unsigned right(unsigned x,int n)
{
}
を作成せよ

[3] 環境
 [3.1] mac
 [3.2] gcc?(よくわかりません)
 [3.3] C言語
[4] 期限: 2009年10月22日(木)
よろしくお願いします。



161 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:30:49 ]
右シフトしたのと左シフトしたのの和でいこう。

162 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:43:35 ]
乱数を使って半径rの球面上に一様に点をうつ方法を分かりやすく教えてください。
指向性を考える必要があるため割と難しい問題だと感じます。

163 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:46:34 ]
>>162
質問スレでどうぞ
(ヒント:極座標[0,2π]x[0,π])

164 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:48:33 ]
>>162
極座標使ったら簡単じゃねーの?

165 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:51:53 ]
>>160
unsigned right(unsigned x, int n)
{
reutrn x >> n | x << (sizeof(unsigned) * 8 - n);
}

166 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 01:26:01 ]
C++でsetwやsetprecisionで指定した桁数を解除するためにはどうしたらいいんでしょうか?

167 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 07:30:33 ]
>>162
多分 [0, 4πr^2) の一様乱数を座標に変換するのがいいとは思うんだけど難しいね

168 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 18:24:38 ]
>>126
main() のプロトタイプをわざわざかくのであれば、それは

 int main(void);

のでしょうが、普通はプロトタイプなぞかかずに

int main()
{
return 0;
}

と main() を定義しますよね。main() の定義であれば int main() と買いて、規格に沿っていない記法とはならないわけです。

169 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 19:00:39 ]
>>168
C++ならそうだね

170 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 19:14:41 ]
>>162 合ってるかどうか自信は無い
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

double uniformed_rand(void)
{
return (double)rand()/(RAND_MAX+1);
}

int main(void)
{
double theta, phi;
double r=5.0, x, y, z;
int i;

for(i=0;i<100;i++)
{
phi=asin(uniformed_rand()*2-1);
theta=uniformed_rand()*2*M_PI;
x=r*cos(theta)*cos(phi);
y=r*sin(theta)*cos(phi);
z=r*sin(phi);
printf("x=%f y=%f z=%f\n", x, y, z);
}

return 0;
}



171 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 19:17:35 ]
>>168
んだから、プロトタイプが書かれていない場合はint main()をプロトタイプだと見なすんじゃないのって話
で、そうなればvoidの省略は許されないよね。
どこかで
 int main(void);
という宣言がされていれば、定義時はint main()で問題ないよね。

その上で、int main()の定義がANSI-Cにおいて完全合法であるからには、どこかで宣言されているか、
またはmainが特殊であるかのいずれかだと思うんだ。

172 名前:170 mailto:sage [2009/10/21(水) 19:22:02 ]
>>170 は間違ってた

173 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 19:43:42 ]
>>171
プロトタイプ宣言は「実体と伴わない関数の宣言」だろ
int main()って書かれてその後に実体がそのまま書かれてるなら「実体を伴う関数の宣言」なのだからプロトタイプじゃないだろ。


174 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 19:48:50 ]
>>173
そっか。プロトタイプじゃないか。

プロトタイプ宣言はされてるのかなぁ

175 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 19:51:27 ]
あ、プロトタイプ宣言があっては困るか。

つまるところint main()は完全合法ってことになるのね

176 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 19:57:02 ]
ANSIから外れた記述であるわけは無かろうと思っていたのに、C++だから合法みたいなレスが
いっぱいついてどうしようかと思った。

177 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:50:11 ]
>>175
いや、べつに main() のプロトタイプを書いてもいいんですよ。無意味ですが。

178 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:52:44 ]
>>177
え?
どう書くの

179 名前:170 mailto:sage [2009/10/21(水) 20:54:10 ]
やっぱり >>172 が間違ってるのかも
もう数学なんて分からん orz

180 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 21:43:26 ]
>>178
「プロトタイプ」の意味、理解してる?



181 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 22:30:10 ]
[1] 授業単元:C言語とアルゴリズム
[2] 問題文:
 キーボードから自然数を入力し1から入力した数までの自然数の中から、
3の倍数と3のつく数字をすべて出力するプログラムを作成しなさい。ただし、
3の倍数と3のつく数字を入力したときに真(非0)、それ以外の場合は偽(0)を返す関数
(関数名は任意)を作成し、それをmain関数内から呼び出して使用すること

{実行例}
自然数を入力して下さい.
100
1から100までで3の倍数と3のつく数字は以下の通りです.
3 6 9 12 13
15 18 21 23 24
27 30 31 32 33
34 35 36 37 38
39 42 43 45 48
51 53 54 57 60
63 66 69 72 73
75 78 81 83 84
87 90 93 96 99

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

182 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 22:55:13 ]
#include <stdio.h>

int f(int n)
{
if(n % 3 == 0) return 1;

while(n) {
if(n % 10 == 3) return 1;
n /= 10;
}

return 0;
}

int main(void)
{
int i, n, cnt;

printf("自然数を入力して下さい.");
scanf("%d", &n);

printf("1から%dまでで3の倍数と3のつく数字は以下の通りです. \n", n);

for(i=1,cnt=0; i<=n; i++) if(f(i)) printf("%d%c", i, ++cnt % 5 ? ' ' : '\n');

return 0;
}

183 名前:162 mailto:sage [2009/10/21(水) 23:08:13 ]
>>170
考えて頂いてありがとうございます。

結局点が選ばれる確率を1/4πとして,極座標表示での微小領域に点が入る確率の積分が1になることを利用し,
微小領域の確率を変形して無理やり乱数を使える形にしました。省略しすぎた説明ですいません。

結局 ( theta, phi ) = ( arccos(r1), 2*pi*r2 ) という式を導きました。
但し,r1:[-1, 1],r2:[0, 1]で,theta:[0, pi],phi:[0, 2*pi]で考えています。

184 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 23:51:24 ]
>>178
難しく考えすぎ。

#include <iostream>

int main( );

int main( )
{
std::cout << "Hello World" << std::endl;

return 0;
}

185 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 00:07:52 ]
>>175
プロトタイプ宣言がどうとか、独自の環境なら話は別。
もう少し言葉の意味を理解する頭を持ってくれよ。
ANSI、ISO準拠では条件もしっかり明記されている。
main関数を プログラムの開始 とする。
自分でソースの中から開始の関数を指定できるなら
もはやISO、ANSI準拠にあらず、ご自由にどうぞ。
で、ANSI、ISO準拠の 標準スタイル ではC言語は引数がないなら
int main(void)としている。従うか従わないから各個人の任意にお任せ。
int main()でも良いじゃないか?どうぞどうぞ。別にそれが
間違っているなんて誰も言ってませんよ?

186 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 00:09:21 ]
>>181
世界のアツナベキターーーーー!

187 名前:デフォルトの名無しさん [2009/10/22(木) 00:41:34 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
問1
行列のかけ算を使って幅20、高さ140の長方形の横に3.3倍、縦に0.4倍の拡大率で表示をするプログラムを作成せよ。

問2
サンプルプログラムを参考にして、画面の中心に幅80、高さ50の長方形を原点を中心にπ/8だけ回転させた長方形を描くプログラムを作成せよ。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9995.txt

問3
画面上に描かれた長方形がキー入力によって原点を中心に回転するアニメーションを実現するプログラムを作成せよ。キーの「1」と「3」で回転角度が増減するようにせよ。

 [3.1] WindowsXP
 [3.2] Turbo c++ 4.0
 [3.3] C++
[4] 今週の金曜日まで
お願いいたします。

188 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 00:45:45 ]
>>185
int main() { return 0; } は完全に ANSI 準拠ですけれども、何がおっしゃりたいのでしょうか?

>>184
int main(void);
int main() { return 0; }
ではなかろうかと。プロトタイプには void が必要となるのが ANSI 準拠です。

189 名前:188 mailto:sage [2009/10/22(木) 00:47:27 ]
>>184
失礼、C++ で書いてありましたね。ごめんなさい。

190 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 02:11:06 ]
>>185
ああ、そういうこと?
K&Rなんかは、合法だが標準じゃないスタイルで記述された、それだけの話か。

標準じゃないからといってint main()がひたすらに叩かれる理由がよく分からんけど、とりあえず理解した。



191 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 02:25:22 ]
こいつに触っちゃダメ

192 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 02:57:43 ]
こいつ?そいつ?






[ 続きを読む ] / [ 携帯版 ]

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

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