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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
あなたが解けない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++の宿題を片付けます 84代目
http://pc11.2ch.net/test/read.cgi/tech/1172981618/
2デフォルトの名無しさん:2007/03/29(木) 09:52:44
>>1
3デフォルトの名無しさん:2007/03/29(木) 10:06:01
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3773.txt
これ、考える必要はないかもしれないけど、数字以外の英文字が入っていたら
英文字の行列にならん?数字を認識したら入れるで良くね?
4デフォルトの名無しさん:2007/03/29(木) 10:08:59
>>3
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3770.txt
> 読み込んだテキストを元に、ユーザーに列、行の数を入力させ
> 2次元配列にてテキストに書いてある文字を出力しなさい。
俺には英数字も出力しろというように読めたから、そうしたんだが…
5デフォルトの名無しさん:2007/03/29(木) 10:13:54
なるほど。俺は 12345678901234567890 と書かれたテキストとなっていたから
表示する行列は数字のみかと思ったんで疑問を投げかけてみたが、まぁあとは出題者次第かな?
6デフォルトの名無しさん:2007/03/29(木) 10:24:25
sizeofは()が要らないとはわかってるが
sizeof str と見るとどうも、気持ち悪くてしょうがない
あぁ、sizeof(str)
7デフォルトの名無しさん:2007/03/29(木) 10:29:08
っ malloc(rows * sizeof * mem)
8デフォルトの名無しさん:2007/03/29(木) 10:33:52
* は数式に入っていればわかるが
* だけを見ると、どうもケ○穴に見えてしょうがない
あぁ、 x*y
9ラジアンの比較で躓いてます:2007/03/29(木) 13:40:57
[1] 授業単元: C++ プログラム
[2] 問題文: 座標 p1・p2 で構成される線分 A の角度と座標 p2・p3 で構成される線分 B の角度が正の90度であるか判定する関数を書け。

なお本関数はルート追跡に用いるので、線分 A は、p1 → p2 方向で角度を求め、線分 B は、p2 → p3 方向で角度を求めるものとする。

図で書くなら、p1をルート追跡の開始点とすると、

       p3
       |
       |
p1-------p2↑


と、二辺のルートが左方向に90度に曲がるかどうかを判定するものであり、
負の90度は、以下の図のように右方向に曲がることになるので、正否の判定を厳密に行う必要がある。


p1-------p2↓
       |
       |
       |
       p3

[3] 環境
 [3.1] OS:Windows
 [3.2] VC 6.0
 [3.3] C++
[4] 期限: 2007年03月30日00:00まで
[5] 標準ライブラリは使用可、なお VC++ のため、前スレで掲示された remainder() 関数は使用できない。
10ラジアンの比較で躓いてます:2007/03/29(木) 13:46:06
>9
[2] に追記

なおp1→p2、p2→p3 の角度は取得済みのため
角度 a, b を引数に取り、bool 型の戻り値を返す関数が望ましい。
11デフォルトの名無しさん:2007/03/29(木) 13:48:29
p1→p2の角度に90度足したものが、p2→p3と等しければでいいじゃん。
12デフォルトの名無しさん:2007/03/29(木) 13:57:28
>>9だけ読んでベクトルの復習とかしてたら>>10みてずっこけた
13デフォルトの名無しさん:2007/03/29(木) 13:58:36
>>9
っ ベクトルの外積
14デフォルトの名無しさん:2007/03/29(木) 13:59:09
>>9 角度から計算する方が面倒だ。
v1 … p1→p2 のベクトル
v2 … p2→p3 のベクトル

struct point { double x, y; };
bool isJustLeft(point v1, piont v2)
{
  double corssProd = v1.x * v2.y - v1.y * v2.x; //外積
  double norm1 = v1.x * v1.x + v1.y * v1.y; // |v1|^2
  double norm2 = v2.x * v2.x + v2.y * v2.y; // |v2|^2

  if( corssProd < 0.0 ) return false; // 時計回りはダメ
  if( crossProd * crossProd == norm1 * norm2 ) return true; // 直角判定
  return false;
}
15ラジアンの比較で躓いてます:2007/03/29(木) 14:02:12
ルートは p1→p2 は必ずしも 0 度とは限りません。
p1→p2 が270度や359度の場合もあり。

16ラジアンの比較で躓いてます:2007/03/29(木) 14:06:46
あ、なるほどベクトルですか・・・
数学の素養がかなり足りないのでただ今勉強中ですが、
ちょうど外積のところ読んでたので有り難いです。
ちょっとロジックを見直してみます。
17デフォルトの名無しさん:2007/03/29(木) 14:07:44
>>6
型名の時は要る。
変数名のときは要らないが、付けてもいい。

18デフォルトの名無しさん:2007/03/29(木) 14:09:09
ベクトルから出した角度を使う場合って、誤差が問題になりそうな気するんだが大丈夫なのか?
19デフォルトの名無しさん:2007/03/29(木) 15:50:38
>>18
ベクトルを正規化してから使えば問題無し
20ラジアンの比較で躓いてます:2007/03/29(木) 15:58:01
>14
テストしてみたらばっちりでした。有難う御座います。<(_ _)>

でもやってることが今一つ理解できてないのですが、
ここから先は数学板で聞いた方がよさそうですかね?
21デフォルトの名無しさん:2007/03/29(木) 15:59:20
>>20
はい。
22デフォルトの名無しさん:2007/03/29(木) 16:00:27
>>20
ベクトルの説明に付いては板違い
でも数学板行っても、簡単過ぎて叩かれるだけと思う
23デフォルトの名無しさん:2007/03/29(木) 16:21:12
http://pc11.2ch.net/test/read.cgi/tech/1094368921/
ここはどうだ?

ていうか、米で書いてくれてるんだから
ベクトル 外戚
でググレばええがな(´・ω・`)
24ラジアンの比較で躓いてます:2007/03/29(木) 16:51:36
>22
↓に自分と同じ疑問がありますが、
書籍読んでると、どれもみな、3次元ベクトルで外積を返してますんで・・・
http://yuki.to/math_cgi/prybbs.html?log=3&mode=res&no=36824

これ以上はスレ違いになりそうなので、>23の教えてくれたスレに行ってきますね。(^^)ノ
25デフォルトの名無しさん:2007/03/30(金) 03:51:32
【ネガティブ派遣根性チェック】

3つ以上、チェックがつけばアナタの性格はひん曲がっており、ネガティブ負け組人生を歩んでいます。

□派遣先の人事権のある社員の意見はたとえ間違っていてもマンセーする
□派遣先から「いつまでもここで仕事してくださいね(安い金でw)」と言われて嬉しい
□自社で仕事なんてできるわけがない
□派遣労働の問題点の話題が出ると感情剥き出しにして反論する
□派遣労働の問題を指摘する人は嫌いだ
□派遣先には仕事だけでなくプライベートについてもグイグイ引っ張って欲しい
□奢ってくれる派遣先正社員を尊敬する
□自分の月額金額を知らないのは当然だ、単金を聞いてはいけない
□派遣先正社員より自分の生涯収入が低いのは当然だ
□派遣先に尻尾を振り、かわいがってもらうことが大切だ
26デフォルトの名無しさん:2007/03/30(金) 09:23:39
なんだなんだ、もうすぐ新学期だぞ?とっとと残っている宿題を搾り出せや!
何なら俺が手コキで搾り出してやるぞ?
27 ◆xJNkc4LqHU :2007/03/30(金) 13:57:13
宿題ではないのですが、職場でC言語のクイズを出されて、
その場で答えられなかったので悔しくて家に帰ってきてつくってみました。
あってるかどうか、ご意見をいただけないでしょうか。

[1]授業単元:C
[2]問題文:
 int x と int y が定義されているとする。その二つの変数を引数に受け取る関数を
 つくり、その関数が呼ばれたあとで x と y の値を取り出すと、x と y の値が
 入れ替わっているような関数 swap をつくってみて。
[3]環境(特に無しですが、自分は以下でやってみました)
 [3.1] OS:Windows XP sp2
 [3.2] コンパイラ:

$ gcc --version
gcc (GCC) 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)

$ uname -a
CYGWIN_NT-5.1 ore-machine 1.5.21(0.156/4/2) 2006-07-30 14:21 i686 Cygwin

 [3.3] 言語:C
[4]期限:特になし
[5]その他の制限:特になし

28 ◆xJNkc4LqHU :2007/03/30(金) 13:58:04
こんなのをつくってみました。

#include <stdio.h>

void swap(int *x, int *y) {
  int _x = *x;
  int _y = *y;
  *x = _y;
  *y = _x;
}

main() {
  int x = 10;
  int y = 11;

  printf("------before------\n");
  printf("xのアドレス=%d yのアドレス=%d\n", &x, &y);
  printf("xのデータ=%d, yのデータ=%d\n",x,y);

  swap(&x, &y);

  printf("------after------\n");
  printf("xのアドレス=%d yのアドレス=%d\n", &x, &y);
  printf("xのデータ=%d, yのデータ=%d\n", x, y);
}

29 ◆xJNkc4LqHU :2007/03/30(金) 13:58:44
実行したら以下のようになりました。

$ gcc swap-xy2.c
$ ./a
------before------
xのアドレス=2280676 yのアドレス=2280672
xのデータ=10, yのデータ=11
------after------
xのアドレス=2280676 yのアドレス=2280672
xのデータ=11, yのデータ=10

結果を見る限りうまくできているように見えます。
ポイントは、関数で値を受け取るときに、
swap(int x, int y) のように受け取って
関数の中で x と y を入れ替えても、
仮引数で受け取った値は呼び元のコピーとなってしまうため、
入れ替えても呼び元に反映されません。
(Java もプリミティブ型は値渡しですね)
呼び元で宣言された x と y のアドレスを関数で
受け取るようにしました。

こんな感じであってますか?
30デフォルトの名無しさん:2007/03/30(金) 13:59:07
void swap (int a, int b) {
int tmp;
tmp = a;
a = b;
b = tmp;
return;
}
31デフォルトの名無しさん:2007/03/30(金) 14:06:57
ってか、アドレスを示す書式って%dで良かったっけ?%pだと16進数で表記
32デフォルトの名無しさん:2007/03/30(金) 14:07:42
最後切れてたっけ。 16進数で表記されるってことになるんかな?
33デフォルトの名無しさん:2007/03/30(金) 14:08:27
>>28
void swap(int *x, int *y) {
int _x = *x;
*x = *y;
*y = _x;
}
これでおk
3427 ◆xJNkc4LqHU :2007/03/30(金) 14:25:14
>>31-32
そこも忘れてしまったのですが、
アドレスを表示させたかったら、%p をつかうのがいいのかふつうなのでしょうか?
%x (16進) だと、 %p で表示された内容から、頭の 0x を取れたものが
表示されました。

また >>28 を gcc -Wall swap-xy2.c でコンパイルすると
warning がでます。

$ gcc -Wall swap-xy2.c
swap-xy2.c:10: warning: return type defaults to `int'
swap-xy2.c: In function `main':
swap-xy2.c:15: warning: int format, pointer arg (arg 2)
swap-xy2.c:15: warning: int format, pointer arg (arg 3)
swap-xy2.c:21: warning: int format, pointer arg (arg 2)
swap-xy2.c:21: warning: int format, pointer arg (arg 3)
swap-xy2.c:23: warning: control reaches end of non-void function

main () {} を int main() {} にし、
main 関数の最後で return 0; をつけると
最初と最後のwarning は消えますが、
アドレスを表示する時は %d ではなく %p をつけると、この warning も消えます。

ということで %p を使うのが正しいのでしょうか?
35デフォルトの名無しさん:2007/03/30(金) 14:29:03
%x は数値の16進表示
%p はポインタの表示だから 0x******** 形式になる

ポインタに対して%xにすると、整数値ではなくポインタのアドレス(整数値)の表示なので
処理的には問題は無いだろうが
「ポインタを表示しているぞ」という意味合いでWarningになっていると思う
36デフォルトの名無しさん:2007/03/30(金) 14:30:04
俺んとこの環境じゃ %08X で表記したものと %p が一緒だった。
一般的にはメモリのアドレスは16進数で示している?ようなんで %pが適切かと
3727 ◆xJNkc4LqHU :2007/03/30(金) 14:30:34
>>35
なるほど。
今回は、swap() の前と後で、x と y のアドレスは変わっていないんだぞ
ということを確認するために表示したかったので、
変わっていないことがわかればよかったのですが、
通常は %p をつかうことにします。

レスを下さったみなさん、どうもありがとうございました。
38前スレ946:2007/03/30(金) 14:32:52
>>前スレ983さん
宿題の1、回答ありがとうございます。

結局、指摘した所が問題になり期限が来週の月曜に延期になりました。
Ubuntu等を使用して問2も解いてはいただけないでしょうか?
もう一度、問題を書いておきます。

[1] 授業単元:コンピュータプログラミングI 「C言語」
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3770.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:GCC 3.4.3
 [3.3] 言語:C言語
[4] 期限:2007年04月02日08:00まで
[5] その他の制限:特にありません。

よろしくお願いします。
3927 ◆xJNkc4LqHU :2007/03/30(金) 14:34:56
>>36 さんもどうもありがとうございます。

ちなみに >>30 さんの回答は、
私が >>29 で書いているとおり、NG だと思っていますが
(試してみたら、値は入れ替わっていなかった)、合ってますよね?
40デフォルトの名無しさん:2007/03/30(金) 14:38:51
>>39
>>30ですがこちらの勘違い、あれは間違いです。
ポインタ使わなきゃダメだわすまん
4127 ◆xJNkc4LqHU :2007/03/30(金) 14:41:12
>>40
了解しました。どうもありがとうございます。
>>33 さんもありがとうございました。
42デフォルトの名無しさん:2007/03/30(金) 15:02:19
ポインタの値は、必ずしもただのリニアなアドレス値とは決めつけられない
ので、%pは、動かす環境によってはただの十六進表示ではなくなる。
昔の16ビットDOS環境とかな。
43デフォルトの名無しさん:2007/03/30(金) 15:25:56
だから環境によるってことだが?環境ではと一言断っているだろ?
それを言い出したらキリがないが、それは書式であって実際には
表示するときの問題であって、ポインタの取り扱いにおいては特に問題ない。
44デフォルトの名無しさん:2007/03/30(金) 15:26:51
>>42
ポインタの値っていうか、メモリのアドレスなんだが?お前んとこは環境によって
アドレスの表記が違うんか?書式って言葉を知ってくれ、書式ってことを。
%d と %c くらい、文字を扱うときにやったろ?それが何を意味しているか理解しているのか?
45俺は42ではないけど:2007/03/30(金) 15:32:17
俺には>>44>>42に対して
何を言わんとしているのか
全然わからん
46デフォルトの名無しさん:2007/03/30(金) 15:33:06
>>42
16ビットDOS環境のコンパイラでかつ
その環境用Cライブラリのprintfに%pがサポートされている
という前提だよね?
47デフォルトの名無しさん:2007/03/30(金) 15:36:00
%p って、ANSI で規定されていないの?
48デフォルトの名無しさん:2007/03/30(金) 15:42:49
↓はキモメンメガネデヴピッツァ
49デフォルトの名無しさん:2007/03/30(金) 15:46:28
%p自体は規定されているが、その出力の形は処理系依存。
50デフォルトの名無しさん:2007/03/30(金) 15:50:43
>>46
別に16bitDOSに限った話ではない
char*とint*のサイズが違うようなプラットフォームだってたくさんあった
51デフォルトの名無しさん:2007/03/30(金) 15:52:52
>>50
それはそうだが例として16ビットDOSと
出たから、それに準拠したもの使っててその結果か?
という意味で聞いたんだ

charは1バイトって決まってたと思う
intは処理系依存
52デフォルトの名無しさん:2007/03/30(金) 15:54:00
>>51
> char*とint*
53デフォルトの名無しさん:2007/03/30(金) 15:57:43
printf("%x", some_pointer);
のようにポインタを整数として扱った場合の動作は未定義じゃなかったか?
54デフォルトの名無しさん:2007/03/30(金) 16:03:23
ポインタ値を int に promotion できる保証なんて無いだろ?
55デフォルトの名無しさん:2007/03/30(金) 16:09:29
K&R1stの時代ならポインタとintをまぜても当たり前だが
ANSIの時代にそれをやるのは化石。
56デフォルトの名無しさん:2007/03/30(金) 16:38:58
で、結論は?
57デフォルトの名無しさん:2007/03/30(金) 16:56:47
結論:0^0=1はありえない
58デフォルトの名無しさん:2007/03/30(金) 16:59:02
結論:0^0は変数名として適当でない。
59デフォルトの名無しさん:2007/03/30(金) 17:07:37
結論:キモメンメガネデヴピッツァは別にピザを食べ過ぎてデヴになったわけでもなく
実はやせるとイケメンだったりするけどメガネだけはどうにもならない
60デフォルトの名無しさん:2007/03/30(金) 17:10:10
>>59
つ「コンタクトレンズ」
61デフォルトの名無しさん:2007/03/30(金) 17:14:44
>>60 おぅいぇい、その手があったか。これでキモメンメガネデヴピッツァも
イケメンコンタクトガリヤセになれるぜい!
62デフォルトの名無しさん:2007/03/30(金) 17:56:17
0^0 ←眼鏡
63デフォルトの名無しさん:2007/03/30(金) 18:14:01
-0-0- かと
64デフォルトの名無しさん:2007/03/30(金) 18:20:52
バーローwww
65デフォルトの名無しさん:2007/03/30(金) 18:24:32
-o-o- ヒヒヒ <これはイカン。
66デフォルトの名無しさん:2007/03/30(金) 19:41:33
>>前スレ919
とりあえず登録部分だけ作った。

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3775.zip
67デフォルトの名無しさん:2007/03/30(金) 19:55:27
おまえら、C/C++勉強したって↓みたいになるだけだぞ
今からでも転学部とか考えた方が身のためだぞ
ttp://s03.2log.net/home/programmer/archives/blog38.html
68デフォルトの名無しさん:2007/03/30(金) 19:58:48
勉強してるやつはここには来ないだろw
69デフォルトの名無しさん:2007/03/30(金) 20:29:20
こんなん趣味の範囲内ですが何か?本業だの稼業だのとしてはやってられんよ。
70デフォルトの名無しさん:2007/03/30(金) 23:12:24
お前ら、今までで思わず唸ってしまった、美しく簡潔なコードってある?
71デフォルトの名無しさん:2007/03/30(金) 23:16:28
#include <stdio.h>
void gnu(void)
{
printf("GNU is not UNIX.\n");
gnu();
}
void main(void){
gnu();
}
72デフォルトの名無しさん:2007/03/31(土) 00:41:30
void mainはヲイヲイとして、おもいっきり末尾再帰展開されるな。

73デフォルトの名無しさん:2007/03/31(土) 00:57:05
優秀なコンパイラだと>>71みたいなソースって警告出るのかな?
スタックオーバーフローで落ちるのはやだな
74デフォルトの名無しさん:2007/03/31(土) 00:58:08
XINU is not UNIX.
75デフォルトの名無しさん:2007/03/31(土) 01:00:35
>>73
cl.exeだとエラー出るな
: warning C4717: 'gnu' : すべてのコントロールのパス、
関数を回帰するとランタイム スタック オーバーフローが発生します。
76デフォルトの名無しさん:2007/03/31(土) 01:05:19
warning
77デフォルトの名無しさん:2007/03/31(土) 01:09:29
BCC32でやったらなんなくコンパイルできたorz
78デフォルトの名無しさん:2007/03/31(土) 01:14:23
Intel上のgcc -O1 -Sでコンパイルした gnu()

_gnu:
pushl %ebp
movl %esp, %ebp
pushl %esi
pushl %ebx
subl $16, %esp
call ___i686.get_pc_thunk.bx
"L00000000001$pb":
leal LC0-"L00000000001$pb"(%ebx), %esi
L3:
movl %esi, (%esp)
call L_printf$stub
jmp L3

ようするにただの無限ループに。
79デフォルトの名無しさん:2007/03/31(土) 04:35:06
char **p;
という変数があるのですが、ダブルポインタってなんでしょうか?
ポインタが一つだけ使われることは知ってるのですが、二つ使われるとなんになるの?
80デフォルトの名無しさん:2007/03/31(土) 04:42:51
char *q,**p;
*q=99;
p=&q;
printf("%d\n",**p);
81デフォルトの名無しさん:2007/03/31(土) 04:51:14
char *q,**p;
*q=99;          //*qの値に99を代入
p=&q;          //pにqのアドレスを代入
printf("%d\n",**p); //



つまり、 &q q *q
p *p **p

の時は、**p=25;
→ *q==25
&q=p;


ってことだよね?



82デフォルトの名無しさん:2007/03/31(土) 04:59:24
char *q,**p,***o,****w;
void *l;
*q=99;
p=&q;
o=&p;
w=&o;
****w=(****w)*(****w);
l=(void*)&w;
printf("%d,%d,%d,%d,%d,%d\n",*q,**p,***o,****w,*(char*****)l,*&*&*&*&*&*&*&*q);
83デフォルトの名無しさん:2007/03/31(土) 05:04:37
っていうか
char *q;
*q = 99;
はおかしいだろ。領域確保してないのに。
84デフォルトの名無しさん:2007/03/31(土) 05:10:22
当たり前だのクラッカー
85デフォルトの名無しさん:2007/03/31(土) 08:01:56
>>73
優秀なコンパイラなら末尾再帰はループに最適化する
86デフォルトの名無しさん:2007/03/31(土) 08:25:19
>>72
> void mainはヲイヲイ
値を返さないなら問題ないよ
8772:2007/03/31(土) 10:57:19
いかん、末尾再帰展開と書いたら無限インライン展開するみたいに
読めちゃうじゃないか。ループに置き換えられると書きたかったんだ。

88デフォルトの名無しさん:2007/03/31(土) 11:15:57
ttp://www.kouno.jp/home/c_faq/c11.html#12
ちうか、ANSI基準じゃint mainが正しい?
89デフォルトの名無しさん:2007/03/31(土) 11:28:57
>>88
自立環境 (freestanding environment) ならエントリポイントの型は処理系定義なので、
mainの型をvoidにしても構わない。そうでなければmainの戻り値はint型かそれと同等な型でないといけない
90デフォルトの名無しさん:2007/03/31(土) 11:32:51
>>89
つ References:
ANSI Sec. 2.1.2.2.1, Sec. F.5.1; ISO Sec. 5.1.2.2.1, Sec. G.5.1; H&S Sec. 20.1 p. 416; CT&P Sec. 3.10 pp. 50-51.
国際的な基準に基づいた規定だよ。構わないとか、言語の規定を決めている団体でない一般人が
何をほざいても無駄。基準は基準。そうでなくても良いってのは、固有の環境下での話で
グローバルに幅広い環境で通用するものを取り込む場合ははいはいワロスで一蹴されちゃいますのであしからず。
91デフォルトの名無しさん:2007/03/31(土) 11:35:09
その国際的な基準が自立環境の場合のエントリポイントは処理系定義だと定めているわけだが…
92デフォルトの名無しさん:2007/03/31(土) 11:36:53
ANSI
http://kbs.cs.tu-berlin.de/~jutta/c/c-faq/c-5.html
5.12: Can I declare main as void, to shut off these annoying "main returns no value" messages?
(I'm calling exit(), so main doesn't return.)

No. main must be declared as returning an int, and as taking either zero or two arguments
(of the appropriate type). If you're calling exit() but still getting warnings, you'll have to
insert a redundant return statement (or use some kind of "notreached" directive, if available).

Declaring a function as void does not merely silence warnings; it may also result in a different function
call/return sequence, incompatible with what the caller (in main's case, the C run- time startup code) expects.

References: ANSI Sec. 2.1.2.2.1 pp. 7-8.
93デフォルトの名無しさん:2007/03/31(土) 11:37:39
>>91
英語も読めない低学歴は黙っていた方が良いよ?w
お前みたいな自分基準を勝手に国際だの、自分は国際基準に従っているだの
自己満足で話をされても迷惑だよ。
94デフォルトの名無しさん:2007/03/31(土) 11:44:28
できるできないじゃないからな?標準的、あるいは言語の仕様でどう定義されているか?だぞ。
mainがint型というのが標準的とのこと。別にvoidで通用するものがあるから良いじゃんって言うなら
やれば良い。ただ、それやって出るところに出たら、あっこいつはルールや定義を理解していないやつだな
って見られるだけ。
車を走らせるとき、右側通行の国で、日本じゃ左側t通行だから俺は左側通行にするぜ
なんてやらんでしょ?w
95デフォルトの名無しさん:2007/03/31(土) 11:51:50
>>93
mainの戻り値型がintに制限されるのは付属環境の場合のみ。
ANSI C §2.1.2.2のタイトルは "Hosted environment"で、
この節は付属環境の場合のエントリポイントの制約を定めている。
その前に、§2.1.2.1 "Freestanding environment" があるが、
そっちではエントリポイントに制約はない。
96デフォルトの名無しさん:2007/03/31(土) 11:58:37
>>95
http://c0x.coding-guidelines.com/5.1.2.2.1.html
うるさいよ?↑が読めないか?w お前、日本にいながら祖国の法律に従って
日本の法律はおかしいニダとか言っている在日か?w
97デフォルトの名無しさん:2007/03/31(土) 12:00:45
>>96
http://c0x.coding-guidelines.com/5.1.2.1.html
In a freestanding environment (in which C program execution may take place without
any benefit of an operating system), the name and type of the function called at
program startup are implementation-defined.
98デフォルトの名無しさん:2007/03/31(土) 12:01:45
莫迦が論破されてるのを見るのは楽しいな
99デフォルトの名無しさん:2007/03/31(土) 12:03:31
ウリの開発環境ではvoid mainがデフォニダ!ってかぁ〜?
100デフォルトの名無しさん:2007/03/31(土) 12:04:08
>>99
おまえ自立環境と付属環境の違いわかってる?
101デフォルトの名無しさん:2007/03/31(土) 12:04:37
>>97>>98=本当に言語も物事の本質も理解できない馬鹿w
だめだといっているんじゃなくて、mainがint型だと定義されているって話だが?w
102デフォルトの名無しさん:2007/03/31(土) 12:05:48
>>101
mainがint型だと定義されているのは付属環境の場合だけだよ。
103デフォルトの名無しさん:2007/03/31(土) 12:06:11
>>100
おまえ、一定の環境下で通用することと、幅広い環境で通用する汎用性について理解していないだろ?w
お前のしょぼい学校じゃへたれ開発環境を使っているんだろうけどさw
ISOとかANSIを知らないのあ?ASCIIとかも?もはやお前みたいなやつは国から出るな。
世界レベルじゃ通用しない馬鹿決定だから、そのキムチくさい口を閉じてろよw
104デフォルトの名無しさん:2007/03/31(土) 12:07:19
>>97 ?????????どこがプログラムを始めのmainに関する記述なんだい?wwwwwwww
ボケ発動ワロスwwwwww
105デフォルトの名無しさん:2007/03/31(土) 12:08:25
>>104
自立環境の場合、エントリポイントの関数名はmainである必要すらない、と書いてる。
91 名前:デフォルトの名無しさん 投稿日:2007/03/31(土) 11:35:09
その国際的な基準が自立環境の場合のエントリポイントは処理系定義だと定めているわけだが…

英語を理解する頭をもってから出直せ、青二才。いい加減うざいから、お前基準はいらないって。
国際基準、より幅広い環境で通用するものを取り込むことにして、俺はパラメーター不要な場合は
int main(void) でいかせてもらうよw
107デフォルトの名無しさん:2007/03/31(土) 12:10:37
>>106
当然だろ。お前に自立環境でプログラム組むような機会があるとは到底思えん。
mainの戻り値はintだと覚えといても一生困ることはありゃしないわ。
108デフォルトの名無しさん:2007/03/31(土) 12:16:52
ISO、ANSI基準の話をしているのに、いつの間にかFreestanding environmentで通用するんだよ!
ってファビョり始めたきんもぉ〜☆なvoid mainさんw
そもそも国際的な基準の話で、自分の使っている環境じゃ問題ないよなんて言うこと自体ナンセンス。
逆に、お前の環境でint mainが使えないわけじゃないだろ?w
わかるかね、ぼくぅ?逆にvoid mainは幅広い環境では通用しなくなるスタイル。わかるか?
いかに自分ルールが正しいになっちゃっているか?間違っている、だめだ!って話じゃなくて
あくまでも、こういった仕様、定義、規格を作っている団体が示す標準の話だぞ?w
109デフォルトの名無しさん:2007/03/31(土) 12:17:45
正直宿題レベルはvoidでもintでもどっちでもいいから、他のスレでやってくれ
110デフォルトの名無しさん:2007/03/31(土) 12:19:32
さてと・・・
ttp://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/artesia/artesiapage/sf_semi/doc/memo.html?rev=1.5
>標準ライブラリが存在しない可能性があり、かつ、プログラムが必ずしも main から開始されるとは
限らない環境のことです。
そんな環境下でmainの取り扱いについてvoidだとか言われても困るんだが?w
論破されるどころか、自ら墓穴を掘った void main キモメンメガネデヴピッツァ乙w
111デフォルトの名無しさん:2007/03/31(土) 12:20:16
また争ってるんですかw
112デフォルトの名無しさん:2007/03/31(土) 12:21:32
void mainを必死こいて謳うFreestanding environmentでしかプログラミングをせず
標準ライブラリを使わないきんもぉ〜☆なvoid mainマンセー厨乙wwwwww
自分が視野の狭い井の中の蛙だということをここで宣言、主張しなくて良いから
黙って自分のきんもぉ〜☆なソースを見てニタニタしてろよw
113デフォルトの名無しさん:2007/03/31(土) 12:21:45
>>108
ANSI Cは自立環境と付属環境を並列に定めてるわけだが、それがわからんのかね。
114デフォルトの名無しさん:2007/03/31(土) 12:22:50
[1] 授業単元: プログラミング演習T
[2] 問題文(含コード&リンク):
 ファイルのフルパスがコマンドライン引数にn個渡されるとする。
 ファイルの拡張子(無い場合は適当な文字列)、ファイル名のみ、
 ディレクトリのみ、上のディレクトリ(D:\report\C\test.obj → D:\report\、一番上なら適当な文字列)
 をそれぞれ表示せよ。
 ""で囲われているパスもあるので、""で囲われている場合は""を除去すること。
[3] 環境
 [3.1] OS: WindowsXP(で動けば良い)
 [3.2] BCC 5.1.1
 [3.3] 言語: C
[4] 期限: 2007年04月15日23:59:59まで
[5] その他の制限: ANSI 標準ライブラリのみ。API等は使用不可。グローバル変数は使用禁止
115デフォルトの名無しさん:2007/03/31(土) 12:23:55
http://c0x.coding-guidelines.com/5.1.2.1.html
↑これのどこにmainはvoid型ですよぉ〜〜〜〜〜って記してあるか、詳細きぼんぬ!
お前自立環境知ってか?知っているか?なんていわれても、はぁ?としか答えようがないぜ?
こっちはmainがどう定義されているか?の世界基準の話をしているんだからw
お前が書きたけりゃ書けよ、void main(プ
116デフォルトの名無しさん:2007/03/31(土) 12:25:53
なんか0^0=1の時と同じやつが暴れてるっぽいな
いっそコテハンにしてくれないかな?
117デフォルトの名無しさん:2007/03/31(土) 12:26:34
>>113
だから何?それがmainをvoid型とする定義でもされているわけ?w
すでに原則にmainはint型と書かれている文献が出てきているのにwwwwwww
お前痛すぎ。お前は一生自立環境、自立環境といいながら俺はvoid mainを書く!と主張し続けていろ。
お前がどんなソースを書こうと知ったこっちゃないが、国際的には int main が標準というのは
すでにISO、ANSIが出している文献より証明できる、以上。
これ以上俺に噛み付いても無駄だよ、これからイケメンコンタクトガリヤセな俺は
カノージョとドライブしてくるからw
118デフォルトの名無しさん:2007/03/31(土) 12:27:08
int main(void)
int main(int argc, char *argv[])
が正解だろうが・・
ぶっちゃけvoid mainでも動くんでどうでもいいです
119デフォルトの名無しさん:2007/03/31(土) 12:28:32
彼女と昼過ぎにドライブ行くのか
120デフォルトの名無しさん:2007/03/31(土) 12:28:40
http://his.luky.org/ML/linux-users.a/msg00056.html
こういう報告もされています。ゆえに、void mainが幅広く通用しないという
明らかな証明もされちゃいましたね(^ー^)b
121デフォルトの名無しさん:2007/03/31(土) 12:30:25
linux上で動かす場合は付属環境ですからint mainにしなければなりません。
122デフォルトの名無しさん:2007/03/31(土) 12:31:15
int mainでエラーが出るという報告皆無wwwwwwww
void mainでエラーが出る環境ありという報告ありwwww
void mainを使った君、さぁ、職員室まで!校長先生が
void main君の頭の上にウン○をしてくれるそうですよ!
123デフォルトの名無しさん:2007/03/31(土) 12:33:28
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200211/02110028.txt
にもint mainが標準的でそれ以外は環境によるとの報告もあり!
void mainを書く君、さぁ、職員室まで!教頭先生がウン○形したメダルをくれますよ?w
12489:2007/03/31(土) 12:39:14
「自立環境でないならmainの戻り値はintにしなければならない」って書いただけだったんだが…
なんでちょっと見てない間に論争にまで発展してんの…?
125デフォルトの名無しさん:2007/03/31(土) 12:42:18
>>124
スレ違いのことを書き込むから、荒らしに目をつけられるんだよ
126デフォルトの名無しさん:2007/03/31(土) 12:42:46
>>89
お前はISO基準にない独自で定義した仕様のCDとかDVDとかでも使ってろよw
それ基準で生産されている光学ドライブで読み出せなくても知らないぞ?w
127デフォルトの名無しさん:2007/03/31(土) 12:44:09
あっ、ISO基準で生産されていないものはCD、DVDとは言わないかw
CCCDですらあれはCDじゃないって言われたくらいだしなw
128デフォルトの名無しさん:2007/03/31(土) 12:45:42
>>124
いや、お前が関係ない話をするからだろ。固有の環境での話はどうでも良いんだよ。
お前がどこの学校に通って、先生にどう教わったかなんてどうでも良い。
何を学んだのか?学んだことで何ができるか?って試されたとき、通用しないやり方じゃ
まずのけ者にされるよ。規律を乱すやつが集団社会からはずされるなんて、すでに
社会に出ずとも学校に通った時点でわかっているだろ?w
129デフォルトの名無しさん:2007/03/31(土) 12:55:24
89じゃないが俺もどうしてここまで荒れまくるのか理解できん。
自立環境がISO標準にない特殊なオレ環境みたいな主張をする香具師がいるのが謎だ。
130デフォルトの名無しさん:2007/03/31(土) 12:56:13
だからそういう自立環境での話をしているんじゃないんだが?
そもそも自立環境については、main で始まるわけでもないと書かれているだろ?
main が何なのかなんて定義すらいらないんだよw
131デフォルトの名無しさん:2007/03/31(土) 12:56:35
日本人は仲間はずれ作って虐めるの得意だしな
132デフォルトの名無しさん:2007/03/31(土) 12:58:23
まぁ、自立環境でやりたい放題やっている人は、変数の型も double を整数
int を浮動少数として扱っているんでしょうね?(・∀・)ニヤニヤ
もはや標準ルールじゃない独自のルールはきんもぉ〜☆なんで、勝手にやってくれって感じ。
ここで宿題を質問する人がどんな環境にあろうと、標準で書いておけばまず問題はないだろうし。
133デフォルトの名無しさん:2007/03/31(土) 12:58:23
>>130
それゆえ、自立環境ならvoid mainでも構わないって話だろ?
134デフォルトの名無しさん:2007/03/31(土) 12:59:00
>>130
「voidでなくちゃならない」と言ってるわけでもなく、
「voidで構わない場合もある」と言ってるだけなのになんで叩くのさ。
135デフォルトの名無しさん:2007/03/31(土) 13:01:06
Q:キモメンメガネデヴピッツァがいつまでも自立環境に固執する件について
A:空気嫁はあれこれ考えずに中田氏できるからどうでも良いじゃん? とのことです。
なんて自分勝手な。
136デフォルトの名無しさん:2007/03/31(土) 13:01:57
>>133
だからそれについてはだめとは言ってないんだが?一般的な規定や定義では
mainはint型とされるって話でしょ?そこまで話の論点や流れがわからないってことは
お前そうとう日ごろは周りから干されていると見た。気持ち悪いから口を開くなよ。
137デフォルトの名無しさん:2007/03/31(土) 13:04:19
>>136
んなら>>89を叩く理由はないんじゃねえの?
138デフォルトの名無しさん:2007/03/31(土) 13:05:00
>>134
voidじゃだめとは言ってないし?お前ちゃんと日本語が理解できますか?
その屁理屈、ものすげーみっともねぇ。いい加減、国際的な基準を理解しろよ?
俺らが何気なく使っている製品って、その仕様や取り扱いには基準や規定があるんだぞ?w
お前がいくら建築法に則って立てられた家に住んでいようと、別にお前が
その中で独自のぁゃιぃ空間を作って法的に問題ないことをしていりゃ誰も文句イワンぞ?
公共の場では喫煙するなら分煙の問題があるけど、自室なら誰も文句言われないだろ?
よーーーけ吸って肺がんになっても誰も文句イワンよ?w
だけど、吐き出される副流煙を吸わされた人によっては迷惑がられるよ?
139デフォルトの名無しさん:2007/03/31(土) 13:07:34
>>138
三行にまとめて
140デフォルトの名無しさん:2007/03/31(土) 13:11:26
>>139
int VS void
main 「もう私のために争うのはやめて!」
141デフォルトの名無しさん:2007/03/31(土) 13:18:09
いつまでもvoid mainをゴリ押しするその姿、もう気持ち悪いとしかいいようがないよ・・・
int mainが標準的ってのが気に食わないなら、ISOにでも物申せば?
ジャポネーゼの一般ピーポーが何自分勝手をほざきやがる?ってつき返されるよw
142デフォルトの名無しさん:2007/03/31(土) 13:20:07
>>137
いつ誰が叩いたの?わかっていないだろっつー指摘が?そこまでいくと
ただの被害妄想だぞ?気持ち悪ぃ
143デフォルトの名無しさん:2007/03/31(土) 13:22:25
いつまでもスレ違い気持ち悪ぃ
144デフォルトの名無しさん:2007/03/31(土) 13:22:54
>>114が流れちゃっているので書き直しておくか
[1] 授業単元: プログラミング演習T
[2] 問題文(含コード&リンク):
 ファイルのフルパスがコマンドライン引数にn個渡されるとする。
 ファイルの拡張子(無い場合は適当な文字列)、ファイル名のみ、
 ディレクトリのみ、上のディレクトリ(D:\report\C\test.obj → D:\report\、一番上なら適当な文字列)
 をそれぞれ表示せよ。
 ""で囲われているパスもあるので、""で囲われている場合は""を除去すること。
[3] 環境
 [3.1] OS: WindowsXP(で動けば良い)
 [3.2] BCC 5.1.1
 [3.3] 言語: C
[4] 期限: 2007年04月15日23:59:59まで
[5] その他の制限: ANSI 標準ライブラリのみ。API等は使用不可。グローバル変数は使用禁止
            ^^^^^^^^^^^^^^^^^^^^^^ <ワラタ
145デフォルトの名無しさん:2007/03/31(土) 13:24:34
まぁ、このスレ的にvoid mainは今後スルーな。書いているやつがいたら
国際基準を無視した自立環境を遣っているということで(・∀・)ニヤニヤしてあげましょうねw
146デフォルトの名無しさん:2007/03/31(土) 14:09:44
>>114
#include <stdio.h>
#include <string.h>

void deldel(char*, char*);
void pripri(char*);

int main(int argc, char *argv[]){
long cnt;
char buf[256];
if(argc == 1) return -1;
for(cnt = 1; cnt < argc; cnt++){
deldel(buf, argv[cnt]);
pripri(buf);
}
return 0;
}

void deldel(char *buf, char *str){
while(*str != '\0'){
if(*str != '\"'){
*buf = *str;
buf++;
}
str++;
}
*buf = '\0';
}
147デフォルトの名無しさん:2007/03/31(土) 14:10:30
void pripri(char *path){
char *name, *type, *cp;
char exp[4] = "non";

if((name = strrchr(path, '\\')) != NULL){
*name = '\0';
name++;
if(strlen(name) == 0){
name = path;
path = exp;
}
}else{
name = path;
path = exp;
}
if((type = strrchr(name, '.')) != NULL){
*type = '\0';
type++;
}else{
type = exp;
}
printf("拡張子:%s\n", type);
printf("ファイル名:%s\n", name);
printf("ディレクトリ:%s\n", path);
}
148デフォルトの名無しさん:2007/03/31(土) 14:18:26
>>114
#include<stdio.h>
#include<string.h>
int main(int argc, char *argv[]){
    int i;
    char *cmd_filename, *dirsep, *extsep, *ext;
    char dirname[FILENAME_MAX], *filename;

    for(i=1;i<argc;i++){
        cmd_filename=argv[i];
        dirsep=strrchr(cmd_filename, '\\');
        if(dirsep!=NULL){
            filename=dirsep+1;
            sprintf(dirname, "%.*s", dirsep-cmd_filename, cmd_filename);
        }
        else{
            filename=cmd_filename;
            strcpy(dirname, ".");
        }
        extsep=strrchr(filename, '.');
        if(extsep!=NULL){
            ext=extsep+1;
        }
        else{
            ext="";
        }
        printf("[%s] [%s] [%s]\n", dirname, filename, ext);
    }
    return 0;
}
149デフォルトの名無しさん:2007/03/31(土) 15:32:16
2次元上の点のデータから、
点の多さを色かグレイスケールで表す方法をおしえてくださいまし。
データから用意した升目にいくつはいっているか
カウントするのはできたのですが、
x、y、マスの中の点の数をgnuplotで表示する方法がわかりません。
他に方法があるでしょうか。
150>38:2007/03/31(土) 15:35:57
んー、なんかcygwinだとうまく動かない。
だれかフォロー頼む。

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3776.txt
151デフォルトの名無しさん:2007/03/31(土) 15:43:57
>>149
pgmでどう?これならgvで表示できるはず。

P2
4 4
16
10 12 13 14
15 14 12 10
5 5 6 6
7 7 8 8
152149:2007/03/31(土) 15:57:10
>>151

さっそくおへんじありがとうっす。
pgmとはコマンドですか。
すいません表記のデータをどうやってプロットするんですか。
153デフォルトの名無しさん:2007/03/31(土) 16:06:53
>>152
151ではないが。
PGMってのはUnixでよく使われるビットマップ画像の形式。詳しいことはぐぐれ。
形式が非常に単純なので、素で読み書きするのが楽。
154149:2007/03/31(土) 16:10:24
>>153
ありがとうございます。了解。ググって見ます。
上のデータをgvで読んだら表示できませんでした。


155デフォルトの名無しさん:2007/03/31(土) 16:12:55
[1] 授業単元:C
[2] 問題文:1から10000000までの金額(値)を引数で受け取り、最も少ない枚数の紙幣、貨幣で
        支払うための金主計算を行い、結果を画面に表示する関数を作成せよ

宜しくお願いします。
156デフォルトの名無しさん:2007/03/31(土) 16:26:28
>>155
#include<stdio.h>
#include<stdlib.h>
void result_print(long value){
    long money[]={10000, 5000, 1000, 500, 100, 50, 10, 5, 1};
    long num[sizeof(money)/sizeof(money[0])]={0};
    int i;

    if(value<1) return;
    for(i=0;i<sizeof(money)/sizeof(money[0]);i++){
        num[i]=value/money[i];
        value%=money[i];
    }
    for(i=0;i<sizeof(money)/sizeof(money[0]);i++){
        if(num[i]>0){
            printf("%5ld : %ld\n", money[i], num[i]);
        }
    }
}
int main(int argc, char *argv[]){
    if(argc==2){
        result_print(atol(argv[1]));
    }
    return 0;
}
157デフォルトの名無しさん:2007/03/31(土) 16:36:39
>>155
void MoneyDivMin(int money)
{
 int cnt[9];
 int i, v, sw;

 if(money < 1 || 10000000 < money) return;
 printf("【%5d円】\n",money);
 v = 10000; sw = 1;
 for(i=0; i<9; i++)
 {
   cnt[i] = 0;
   while(money-v >= 0 && money > 0) {money -= v;cnt[i]++;}
   printf("%5d円:%d\n",v ,cnt[i]);
   v = (sw == 1) ? v/2 : v*2/10;
   sw *= -1;
 }
 return;
}
158デフォルトの名無しさん:2007/03/31(土) 16:38:39
>>155
俺も書いたからおいとくわ

#include <assert.h>
#include <stdio.h>
void print_curr(unsigned long x) {
    static const unsigned c[] = {10000, 5000, 2000, 1000, 500, 100, 50, 10, 5, 1, 0};
    const unsigned *p = c;
    assert(x <= 10000000);
    do {
        if(x >= *p) {
            printf("%u\t%lu\n", *p, x / *p);
            x %= *p;
        }
    } while(*++p);
}
159デフォルトの名無しさん:2007/03/31(土) 16:41:50
>>151
Bad magic number
とでるんですよね。
160158:2007/03/31(土) 16:45:34
#include <assert.h>
#include <stdio.h>
void print_curr(unsigned long x) {
    static const unsigned c[] = {10000, 5000, 2000, 1000, 500, 100, 50, 10, 5, 1, 0};
    const unsigned *p = c;
    assert(x <= 10000000ul);
    do {
        if(x >= *p) {
            printf("%u\t%lu\n", *p, x / *p);
            x %= *p;
        }
    } while(*++p);
}

ちょっと訂正
161デフォルトの名無しさん:2007/03/31(土) 17:00:49
>>159
Bad magic number はpgmtoppm
ででるんですが、P5でやっても出ます。
P3
# feep.ppm
4 4
15
0 0 0 0 0 0 0 0 0 15 0 15
0 0 0 0 15 7 0 0 0 0 0 0
0 0 0 0 0 0 0 15 7 0 0 0
15 0 15 0 0 0 0 0 0 0 0 0
では、pgmtojpgなどで変換できるんですが。
まわりのLinuxマシンでも同じです。
162デフォルトの名無しさん:2007/03/31(土) 17:08:21
char **q;

の場合は、

**qのアドレスが*qで
*qのアドレスがqで、
qのアドレスが&qなの?
163デフォルトの名無しさん:2007/03/31(土) 17:11:03
>>161
縦横のサイズがあってないんじゃね?
ついでに色の明るさについては 0-15 だったら 16 にしないと
164デフォルトの名無しさん:2007/03/31(土) 17:33:34
>>156-158
ありがとうございます!
丸写ししても何かわからないのですがw
もう一度自分で勉強してきます。
165デフォルトの名無しさん:2007/03/31(土) 17:45:56
>>163 は間違いスマソ
0-15 だったら 15 でおk
166デフォルトの名無しさん:2007/03/31(土) 18:48:37
質問です

char **q;

の場合は、

**qのアドレスが*qで
*qのアドレスがqで、
qのアドレスが&qなの?
167デフォルトの名無しさん:2007/03/31(土) 18:50:32
>>166
好意的に解釈すれば合ってる
168デフォルトの名無しさん:2007/03/31(土) 19:08:02
>>167
好意的に??
どういうこと?

あと、ダブルポインタって何の意味があるの?
169デフォルトの名無しさん:2007/03/31(土) 19:14:09
>>166 俺ポインタ理解できないぽ、orz

char **q;
の場合の俺的解釈

qさんて方が居ます
qさんは住所&qに居ます
qさんの持ち物は*です
その*の中身は*です
中身を開けたらcharさんが居ましたとさ
やっぱ理解できないよ(2重梱包?)

そんな俺ですが宿題あるときは宜しくお願いします。
170デフォルトの名無しさん:2007/03/31(土) 19:25:42
>>169
そんな感じでいいんじゃない。
171デフォルトの名無しさん:2007/03/31(土) 19:37:10
>>154
あれ?うちではちゃんと開けているんだけどなぁー?
GV fow Win Version 0.86

>>169
*をつけると「アドレスの中身の変数」を意味する
&をつけると「変数のあるアドレス」を意味する

この場合なら、qにはアドレスのアドレスが書いてある。
そこを開くと(*q)そこにも変数のアドレスが書いてある。
さらに開くと(**q)そこに変数が入っている。
172デフォルトの名無しさん:2007/03/31(土) 19:44:56
int **qがあります。値は'a'です。
**qの値のある場所('a'の入れ物の場所)は*qの値です。値は0x12345678です。
ちなみに、*qの値のある場所(0x12345678の入れ物の場所)はqです。値は0x12345682です。
0xほにゃららは4バイトずれています。先に入れ物から底に沈んでいくスタック構造です。メモリの大きいほうから小さいほうへ向かって埋まっていきます。4バイトなのはint型だからです。
ところで、qの値のある場所(0x12345682の入れ物の場所)は?
&qで0x01234567にあります。ここはスタック外にあります、プログラムで勝手に使えません、したがって&&qなどと&qの場所を勝手に使おうとすると、OSに怒られます。

char*の場合はストリング操作なので大きさは不定です。4バイトずれるとは言えません。

これらはデバッガで追うと良く分かります。
173デフォルトの名無しさん:2007/03/31(土) 19:46:12
日本語でおkとしか…
174デフォルトの名無しさん:2007/03/31(土) 19:58:42
>>172
> int **qがあります。値は'a'です。
いきなりそういわれるとq=='a'みたいに思われてしまわないか。

スタックとか小さいほうに埋まるとかポインタに関係ない
余計なことをいうと混乱を招くだけ。

そもそもいつqを初期化したんだ?
何かの話の続き?
175デフォルトの名無しさん:2007/03/31(土) 20:04:34
4バイトなのはsizeof q==4だからです。
スタック外にあるとは限らないし。
OSが怒る?
勝手じゃなければ怒られない?
176デフォルトの名無しさん:2007/03/31(土) 20:17:45
実際問題、T(何か適当な型)へのポインタを扱う最大の機会はTの配列を受けるときだと思う。
typedef int T;
void f(T *, size_t);

T a[10];
f(a, 10);
上の例ではTにintを当てはめてみた。下の例ではTにchar *を当てはめてみる。
typedef char *T;
void f(T *, size_t);

T a[10];
f(a, 10);
更にこれをtypedefを使わないで書いてみる。
void f(char **, size_t);

char *a[10];
f(a, 10);
177デフォルトの名無しさん:2007/03/31(土) 20:18:19
別に配列にする必要も無かったな。
#include <stdio.h>
void f(int *pi) {*pi = 42;}
int main(void)
{
int n = 0;
f(n);
printf("%d\n", n);
}
上の例でfがポインタではなく単にint型の値渡しにしたらmainのnには決して42が代入されない。
だからfの引数はintへのポインタになっている。同じことはポインタにも当てはまる。
#include <stdlib.h>
void f(void **p) {*p = malloc(1);}
int main(void)
{
void *p;
f(p);
free(p);
}
178デフォルトの名無しさん:2007/03/31(土) 20:26:57
ダブルポインタの活用法で一番多いのは、「ポインタを要素とする配列」の要素をポインティングするだな。
Cにおいて複数のデータを集合体としてあつかうもっとも原始的な方法は、配列を使うこと。
その配列の要素にアクセスするときは、ポインタを使って見ていくのが常套手段。
でも、次のような場合には、データーを配列要素として入れることが好ましくないことがある。

1、データーのコピーや移動ができない。
  たとえば、複数の処理単位が共有データを持っていて、読み書きが行われる場合。
  勝手にデータをコピーしてきて内容を変更すると、オリジナルのデータとローカルなデータに
  矛盾が生じ、場合によっては正当な処理ができなくなることがある。
  コピーではなく移動してしまえば、矛盾は起きないが他人が使えなくなるので問題外。
  こういう、コピーや移動のできないデータがあちこちにあって、それらを集合体として保持したい
  場合には、対象データのポインタを取得して配列に入れていけばよい。
  >>176さんのも、これの応用にあたる。

2、データーが大きくてコピーや移動のオーバーヘッドが大きい。
  画像や動画データのような大きなデータをいちいち配列に入れるのは、常識で考えてもこれは
  処理時間の無駄。
  こういう場合も、データの実体はそのまま置いといて、ポインタだけを配列に入れておけばいい。  
  
3、データの大きさが不定。
  配列は要素のデータサイズが固定。でも扱うデータがいつも大きさがそろっているわけはない。
  対処法としてデータの最大サイズを、要素のサイズとして配列を作る場合もあるが、そうすると
  当然使われない領域ができるので、これは容量の無駄。
  また要素のデータの最大サイズが予想できないときは、この手法は不可能。
  これもポインタ配列を扱う理由になる。
179178:2007/03/31(土) 20:30:18
で、これらの「要素がポインタの配列」の要素にアクセスする場合も「要素へのポインタ」を使うわけだから、
結果的にダブルポインタになる。関数のベクタテーブルなんかもこれ。

>>176さんのは配列に入れるって話じゃなかった。勘違い。
180178:2007/03/31(土) 22:02:01
ごめん、いまさらだけど、ここ宿題すれジャン。
すれ違い甚だしい。
181デフォルトの名無しさん:2007/03/31(土) 22:26:19
                           ,,ッツmmmmmmmミッ、、
                        ッツmmmmmmmmmmmミッ
                      ッツmmmmmmmmmmmmmミッ
                     ッツmmmmmmmmmmmmmmmミッ
                   ッツmmmmmmmmmmmmmmmmm
                   ツmmmmmmmmmmmmmmmmmm
                     mmmmmmmmmmmmmmmmmmm
                  mmm"゙            ゙"mmmmmmミ
                   ミm:::"      ・        ゙ミmmmmmツ
                   m::: 丶/|::/!!!     ミ;=   mmmmm
                    |::::: r",,ゞィ     ヨ ●ヾ   ゙ミmmmツ
                     |::::::イ●ノ   /  、 "'ーヘヽ    ゙mmツ
                    |::::::: :"" ,.゙ ・  ・ '' ヽ、""         |
                    ヽ::::: :"  )ッm)(           ノ
                      ゙゙''''‐ッツmm,,,,,,,,,,,,,,,,,,,....-‐-‐''''~
                     ッツmmmミ"
              ッツmmmmmmmmミ
         ッツmmmmmmmmmmmm
      ッツmmmm  ι     ・    mm
    ッmmmm:::: :  丶/|::/!!!    ミ;= :m
    mmmm::::: :    r",,ゞィ    ヨ ●ヾ  /
    mmm::::::::: :   イ● ノ  /  、 "∪ヘヽ/    
   mm::::::::: :    "∪ ,. ゙  ・  ・''ヽ、"" /
   ヽ:::::::::::: ι  "  (  "'-三-''" )  ノ
     ゙゙''''‐-...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....-‐-‐''''~
182デフォルトの名無しさん:2007/03/31(土) 22:26:41
>162 >169 >178

確かにすれちがいですね。宿題の香りもするので宿題ででた文章をそのまま書きなされ。
ポインタの話は盛り上がるからおいしい問題だ。期待しておるぞ。
183デフォルトの名無しさん:2007/03/31(土) 22:37:46
課題を提出したんですが、教官にバグありプログラムを出すなと突っ返されてしまいました。
どこがダメか分かりません…

「引数の英文字列から大文字だけを抜き出し、
その抜き出した文字の列を返す関数を作成しなさい。
ただし、文字列はEoSを含めて255文字までとする。
例:I came from Japan. → IJ」

char* TakeOutUpper(char string[])
{
char retString[255];
int i;
int j = 0;

for(i = 0; string[i] != '\0'; i++){
if(string[i] >= 'A' && string[i] <= 'Z'){
retString[j] = string[i];
j++;
}
}
retString[j] = '\0';

return retString;
}
184デフォルトの名無しさん:2007/03/31(土) 22:39:28
>>183
ヒント:変数の寿命
185デフォルトの名無しさん:2007/03/31(土) 22:42:19
っていうか>>183はコンパイルすらしてないのか?
186デフォルトの名無しさん:2007/03/31(土) 22:44:39
>>183
些細なことだがA~Zが連続しているとは限らないからisupper使うといい
187183:2007/03/31(土) 22:49:56
>>184
寿命ですか。
あんまり考えてないですね…

>>185
コンパイルは通りました。
でも、よく見ると警告が出てますね。
警告 W8075 kadai03.c 29: 問題のあるポインタの変換(関数 TakeOutUpper )
うまく大文字が取り出せていたので、気がつかなかった。
188デフォルトの名無しさん:2007/03/31(土) 22:57:55
>>183
教官に言ってやれよ。

「教官!
C 言語では文字列を返す関数は書けません!」って・・・
189デフォルトの名無しさん:2007/03/31(土) 22:58:39
static char retString[255];
190デフォルトの名無しさん:2007/03/31(土) 23:00:18
>>187
mallocで確保すればいい。
お行儀は最悪だけど。
191デフォルトの名無しさん:2007/03/31(土) 23:00:36
>>183
上手く動く可能性が高いけど
関数内の局所変数はその関数実行中に用意されるものだから
関数を抜けた後そのメモリをいじくるのはいけません。

/*
string 入力文字列、必ず大文字が254個以下のであること
resString 出力文字列、必ず255バイト以上確保してあること
*/
void TakeOutUpper(char string[], char * resString)
{
  略
}
みたいにして結果をresString, へ入れる。

使うときは
int main(void)
{
  char res[255];
  TakeOutUpper("aAbBcCdD",res);
}
192183:2007/03/31(土) 23:05:08
>>186、189
ありがとうございます。
書き直します。
よく分かりませんが、staticでないとダメなんですね。
勉強不足だ…。

>>188
そうなんですか。
コメントに書いておきます。
/* 「教官! C 言語では文字列を返す関数は書けません!」 */

>>191
そのタイプの方が安全かもしれませんね。
193デフォルトの名無しさん:2007/03/31(土) 23:06:35
>>192
staticは冗談だから真に受けるなよ
194デフォルトの名無しさん:2007/03/31(土) 23:07:13
>>183
動くかどうかは試してない。

char *retString;
retString=(char*)malloc(sizeof(char)*255);
:
:
retString=(char*)realloc(retString,strlen(retString)+1);
return retString;

かな?どうせstrlenで長さ見てもだめそうだし。
ああ、面倒だったらreallocしないという手もある。
# その時は「所詮255文字なんだから、メモリがギガの時代reallocの方が手間」と言い張れ。
mainはこんな感じ。

char *upper, src="I came from Japan.";
upper = TakeOutUpper(src);
printf("%s -> %s",src,upper);
free(upper);
195183:2007/03/31(土) 23:10:33
>>193
そうなんですか。

>>194
関数の外でfreeしないといけないのがちょっと気になりますが。


なんか、出題意図が不明な悪問っぽいですね…
196デフォルトの名無しさん:2007/03/31(土) 23:12:49
>>195
もし宿題で「こういう関数型でやれ」って制限あったら、こうするしかない。
>>190で行儀最悪って書いてあるけど、まったくそのとおり。
free忘れの危険性があるから、正直お勧めできない。。

制限なかったら、>>191。これが妥当。
197デフォルトの名無しさん:2007/03/31(土) 23:15:35
プロトタイプ指定されてないならば
char *TakeOutUpper(const char string[], char *resString)
で、resStringをそのまま返せば条件満たせないか?
198デフォルトの名無しさん:2007/03/31(土) 23:19:51
ついでに、>>186の言っている文字コードの例としては、EBCDICがある。
このプログラムを実行すると'}'や'\'が表示されてしまう。ご参考までに。

http://ja.wikipedia.org/wiki/EBCDIC
199デフォルトの名無しさん:2007/03/31(土) 23:21:59
>>196、197
プロトタイプは指定無しです。
そのプロトタイプで書き直して提出します。
また突っ返されてももう知らない。
200183:2007/03/31(土) 23:24:34
>>198
ほ〜、こんな妙な?コードがあるんですね。
勉強になります。
201デフォルトの名無しさん:2007/03/31(土) 23:26:02
>>199
まあまあ、苦難は楽しむものですぜ。

さて、この関数の戻り値はvoidにするべきか、char*にするべきか。

char*にしてresStringを返せば、
printf("%s -> %s",src,TakeOutUpper(src,buf));
なんて真似もできるような希ガス。
202183:2007/03/31(土) 23:36:32
>>201
return buf;
ってやるんですか。
まぁ、便利かもしれませんが、敢えてやる必要もないような?
203デフォルトの名無しさん:2007/04/01(日) 02:35:30
あれだ、C++ で std::string
204デフォルトの名無しさん:2007/04/01(日) 04:24:49
質問です。
以下の関数では、hyozi関数は、引数の形をchar*topとポインタの形でとっていますが、
実際に渡されている数値は、&moji[0]であり、アドレスの値ですよね?
そうすると、main関数の中では、top=&moji[0]の操作が行われたと見てよいのでしょうか?
教えてください


#include <stdio.h>
void hyoji(int num, char *top);

int main(void){
char moji[3] = {'A','B','C'};
hyoji( 3, &moji[0]);
printf("\n");

return (0);
}
void hyoji(int num ,char *top){

int i;

for(i=0;i<num;i++){
printf("%c",*(top));
top++;

}
}
205デフォルトの名無しさん:2007/04/01(日) 05:04:26
日本語でおk
206デフォルトの名無しさん:2007/04/01(日) 05:58:14
すいませんが、前スレでも同じような質問をしてしまったのですが
わからないので教えてもらいに来ましたm(__)m

[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): http://www.teu.ac.jp/icpc/jp/domestic/ICPC2005_Problems_Domestic/C/C_ja.html
入力と出力はファイルから読み込み、ファイルに出力するようにしてください。
入力・出力ファイル名は何でもかまいません。


[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC++ 6.0
 [3.3] 言語:C++
[4] 期限:2007/4/1
[5] その他の制限:main関数のみで、ユーザ定義関数は使わない。
標準ライブラリは
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
この3つだけ使ってください。

何度もすいません、、、
お願いします!
207デフォルトの名無しさん:2007/04/01(日) 07:30:14
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
int main(void) {
FILE *fin=fopen("input.txt","r"),*fout=fopen("output.txt","w");
char b[256]; int c,r,i,d;
fgets(b,sizeof(b)/sizeof(b[0]),fin); sscanf(b,"%d",&c);
while(c--){
fgets(b,sizeof(b)/sizeof(b[0]),fin);
for(d=1,r=0,i=0;b[i];++i){
switch(b[i]){
case 'm':d*=10;
case 'c':d*=10;
case 'x':d*=10;
case 'i':r+=d;d=1;
break;
default:if(isdigit(b[i]))d=b[i]-'0';
}
}
if((d=r/1000)){ if(1<d)fputc(d+'0',fout);fputc('m',fout);r%=1000; }
if((d=r/100)) { if(1<d)fputc(d+'0',fout);fputc('c',fout);r%=100; }
if((d=r/10)) { if(1<d)fputc(d+'0',fout);fputc('x',fout);r%=10; }
if(r) { if(1<r)fputc(r+'0',fout);fputc('i',fout);}
fprintf(fout,"\n");
}
fclose(fin);fclose(fout);
return 0;
}
208デフォルトの名無しさん:2007/04/01(日) 08:10:28
>>204
ポインタとアドレスは同じ意味じゃないの。
そして配列のアドレス=配列内の先頭要素のアドレス

char test[5], *p = &test[0];
ならば、(test==p)が成り立つ。
209デフォルトの名無しさん:2007/04/01(日) 08:14:28
>>208
ちがった、、、

配列の値=配列内の先頭要素のアドレス、で。
210デフォルトの名無しさん:2007/04/01(日) 09:17:17
>>206
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3777.c

>わからないので教えてもらいに来ましたm(__)m
って勉強する気ないだろ?
格好つけて、「オレはこういうのをやってる。お前ら初心者とは違う。」
と一緒に勉強してる奴に見せ付けたいだけじゃないのかと小一時間(ry

勉強する気があるならちゃんと基礎から押さえていって、
前スレの回答が理解できるように努力してみたらどう?
意味不明な制限つけるよりもさ
211デフォルトの名無しさん:2007/04/01(日) 09:23:27
>>210
スレタイ読めよ、キモメンメガネデヴピッツァのvoid main君w
212デフォルトの名無しさん:2007/04/01(日) 09:29:28
>>210
世の中には分かってても言わないほうがいいことも多い…
その辺の見極めが難しいんだけどな
213デフォルトの名無しさん:2007/04/01(日) 09:29:58
スレ的には宿題解いてるからそれでいいんじゃね?
214デフォルトの名無しさん:2007/04/01(日) 09:39:22
>>210
ヒント:>>1の1行目を1000回読め。
215デフォルトの名無しさん:2007/04/01(日) 09:56:38
>>210
if(fscanf(fp_in, "%s", buf)!=1)
break;

if(fscanf(fp_in, "%s", buf)!=1){
fprintf(stderr, "エラー:読み込みに失敗しました\n");
return 1;
}
のほうがよくね?
216デフォルトの名無しさん:2007/04/01(日) 10:54:44
>>210
っ  [3.3] 言語:C++
217210:2007/04/01(日) 10:56:54
何かいろいろダメだ orz
書きかえる気力も無いよ
218デフォルトの名無しさん:2007/04/01(日) 10:57:34
>>210
C言語にしか見えない
219デフォルトの名無しさん:2007/04/01(日) 10:59:00
>>217 どんまい
220デフォルトの名無しさん:2007/04/01(日) 11:03:47
出題者が間違ってる悪寒
22138/前スレ946:2007/04/01(日) 11:11:25
>>150
回答ありがとうございます。
oneとtwoをUbuntuとSCLiveでコンパイルして試してみたのですが、
どちらもエラーになってしまいます。
oneの方は数字の書かれたテキストファイルのファイル名をFILEという名前に設定しています。
222デフォルトの名無しさん:2007/04/01(日) 11:36:53
(前スレからの流れ)
依頼

即レスで解凍出る

「ありがとうございます。でも、C++じゃなくてCでした」

更に即レスで訂正解凍

暫く放置ののち、現スレ>>206

だからな
問題が「Problem C」だし、#include<stdio.h> とかあるから、C++はまた書き間違いでそ。
>>210の気持ちも分かるけど、まあ嫌だと思った回答者はさらりとスルーで良いんでない?
223204:2007/04/01(日) 12:10:02


void hyoji(int num, char *top)という関数に

hyoji(3, &moji[0]);

というように値を代入するでしょ?

そうすると、*topのところに&moji[0]を入れるわけだけど、これは問題ないの?
ポインタのところに配列を入れたり、文字列入れたりわけわからん
224デフォルトの名無しさん:2007/04/01(日) 12:12:02
>>221
one書いたの俺だが、ANSI Cで通るのは確認したんだがなあ。
何行目にどんなエラーが出てるんだ?コンパイラはgccだよな?
225デフォルトの名無しさん:2007/04/01(日) 12:14:07
>>223
ここは宿題を解いてもらうスレ
質問がしたいならこっち池

【初心者歓迎】C/C++室 Ver.35【環境依存OK】
http://pc11.2ch.net/test/read.cgi/tech/1171888583/
226204:2007/04/01(日) 12:15:29
>>208で既にレスが来ていたのですね。ごめんなさい。

どうしてそうなるのでしょうか?
自分の感覚では、
配列は、
test[0] test[1] test[2] test[3]

*p *(p+1) *(p+2) *(p+3)


なら先頭のアドレスは、&test[0]とp
になるのではないでしょうか?
227デフォルトの名無しさん:2007/04/01(日) 12:20:10
>>226
それプラス、ヌル終端文字を扱うときに便利?なようにtestも同じってだけ
228デフォルトの名無しさん:2007/04/01(日) 12:20:40
>>226
test = test+0 = &*(test+0) = &test[0]
229204:2007/04/01(日) 12:56:25
>>228
わからないです・・・

&test[0]を*pに代入?
230204:2007/04/01(日) 13:06:02
test=test+0

????
231デフォルトの名無しさん:2007/04/01(日) 13:28:19
>>230
1 = 1+0 だろ?
232デフォルトの名無しさん:2007/04/01(日) 13:29:18
あー、ここの=はCでいう==
233204:2007/04/01(日) 13:39:34
>>231
なるほど
なんとなくわかったような・・・
234デフォルトの名無しさん:2007/04/01(日) 13:56:19
さて、暇人の俺が戻ってきましたよ。

>>221
エラーメッセージプリーズ。
でないと何とも言えない。
235デフォルトの名無しさん:2007/04/01(日) 14:07:43
>>204
まずはスレタイを読め

そして、落ち着いて>>225を読め


最後に、まともな参考書を買って||借りてそれを読め
236デフォルトの名無しさん:2007/04/01(日) 16:29:48
>>38
問2
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3778.txt

stat呼ぶときにpath名が不完全だった orz

あと、ちゃんとコンパイルできる環境は整えている?
ubuntuインストールしただけだとダメですよ。gccあっても。

sudo apt-get install build-essential

でもって、いろいろ入れてくれ。
237236:2007/04/01(日) 16:30:55
あ、、、 char *env;はいらね。
238236:2007/04/01(日) 16:38:41
>>224
今試したが、oneの方もコンパイル・リンク・動作、全部に問題なかったんで
>>38の環境がまずいかもしんない。
239デフォルトの名無しさん:2007/04/02(月) 03:23:20
[1] 授業単元:二次元配列
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3779.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC++ 6.0
 [3.3] 言語:C
[4] 期限:なし
[5] その他の制限:なし

おねがいします。
240デフォルトの名無しさん:2007/04/02(月) 03:52:18
24138:2007/04/02(月) 04:44:44
>>238
こういった風に出力されます。(Onebase Linuxを使用)
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3780.txt

動作は完璧なのですが、
one.c:82:2: warning: no newline at end of file
といった文章が表示されてしまいます。
やはり環境がいけないのでしょうか?
242236:2007/04/02(月) 06:05:29
24338:2007/04/02(月) 07:36:16
>>242
本当にありがとうございます。
大変感謝しています。

もう一度、Onebase Linuxで起動してチェック後、報告します。
244デフォルトの名無しさん:2007/04/02(月) 10:00:14
きもー
245デフォルトの名無しさん:2007/04/02(月) 14:05:05
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):

 2つの複素数の積を計算する構造体の関数を作成せよ。
すなわち、複素数の実数部と虚数部をメンバーで表現する構造体を宣言し、その構造体の型をもつ変数を引数で受け取り、
それらの積(複素数)を返却値で戻すこと。但し、main関数では、最初に、2つの複素数に適当な値を与えておき、
関数を呼び出した後は、2つの複素数の積の値を出力せよ。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] VC 6.0
 [3.3] 言語: C
[4] 期限: 04月8日12時まで
[5] その他の制限:
ソースの最初の分は
#include<stdio.h>
int main(void)
でお願いします。

246デフォルトの名無しさん:2007/04/02(月) 14:17:25
>>245
#include <stdio.h>

typedef struct Complex { double real, imag; } Complex;

Complex mul(const Complex *a, const Complex *b)
{
    Complex result;
    result.real = a->real * b->real - a->imag * b->imag;
    result.imag = a->real * b->imag + a->imag * b->real;
    return result;
}
int main(void)
{
    Complex a = { 1, 2 };
    Complex b = { 3, 4 };
    Complex c = mul(&a, &b);
    printf("(%g + %gi) * (%g + %gi) = %g + %gi\n",
            a.real, a.imag, b.real, b.imag, c.real, c.imag);
    return 0;
}
247デフォルトの名無しさん:2007/04/02(月) 14:22:49
>>245
#include<stdio.h>

int main(void);
typedef struct { double re, im; } complex_t;
complex_t complex_mul(complex_t, complex_t);

int main(void) {
    complex_t z = {2., -3.}, w = {-5., 7.}, v;
    v = complex_mul(z, w);
    printf("(%.1f %+.1fi) * (%.1f %+.1fi) = %.1f %+.1fi\n",
           z.re, z.im, w.re, w.im, v.re, v.im);
    return 0;
}

complex_t complex_mul(complex_t z, complex_t w) {
    complex_t r;
    r.re = z.re * w.re - z.im * w.im;
    r.im = z.re * w.im + z.im * w.re;
    return r;
}
248デフォルトの名無しさん:2007/04/02(月) 14:31:16
>>245
#include <stdio.h>

typedef struct _Complex {
 double Real;
 double Imgn;
} Complex, *pComplex;

Complex MultiComplex(pComplex x, pComplex y);
int main(void)
{
 Complex x = {1,2}, y = {3,4}, f;
 f = MultiComplex(&x, &y);
 printf("(%g + %gi) x (%g + %gi) = %g + %gi"
       , x.Real, x.Imgn, y.Real, y.Imgn, f.Real, f.Imgn);
 return 0;
}

Complex MultiComplex(pComplex x, pComplex y)
{
 Complex ret;
 ret.Real = x->Real * y->Real - x->Imgn * y->Imgn;
 ret.Imgn = x->Real * y->Imgn + x->Imgn * y->Real;
 return ret;
}
249デフォルトの名無しさん:2007/04/02(月) 14:35:00
>>248
予約識別子氏ね
250デフォルトの名無しさん:2007/04/02(月) 14:36:37
もろにC99の_Complexと被ってるなw
251デフォルトの名無しさん:2007/04/02(月) 15:04:33
なんというコンプレックスの塊といわんばかりのソース。
25238:2007/04/02(月) 16:36:24
>>242
動作確認をし、無事に提出する事が出来ました。
本当にありがとうございました。
253デフォルトの名無しさん :2007/04/02(月) 16:39:19
ただ公式写すだけだったな
typedef struct {
double real;
double imaginal;
} Complex;

Complex Productf(Complex *z1, Complex *z2)
{
Complex c;
c.real = (z1->real * z2->real - z1->imaginal * z2->imaginal);
c.imaginal =(z1->imaginal * z2->real + z1->real * z2->imaginal);
return c;
}
254デフォルトの名無しさん:2007/04/03(火) 16:07:27
ポインタのポインタなんてちと意味がわからんねぇ。けど、確実に1ヶ月前より
レベルアップした俺が本年度もしばらくここの質問レスをしてやるからありがたく思え!
255デフォルトの名無しさん:2007/04/03(火) 16:11:07
質問レス=質問≠質問への返答
256デフォルトの名無しさん:2007/04/03(火) 16:15:08
質問者へのレスをしてやるから の間違いだ、気にするなw
257デフォルトの名無しさん:2007/04/03(火) 21:00:46
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):ttp://www.ehime-u.ac.jp/ICPC/problems/domestic/d1999/problems/A.html
[3] 環境
 [3.1] OS:WinXP
 [3.2] コンパイラ名とバージョン:VC++6.0
 [3.3] 言語:C
[4] 期限:4/5
[5] その他の制限:なし

お願いします。
258デフォルトの名無しさん:2007/04/03(火) 21:28:07
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
@
数値を複数回入力し、最後に"END"と入力された後、それぞれの数字に対し、80以上なら
"良"、80未満で60以上なら"可"、60未満なら"不可"と表示するプログラムを作成してください。
文字の入力にはgets()を使用する。
"END"との比較はstrcmp()を使用する。
文字を数値に変換するのはatoi()を使用する。


92
23
END

実行

92 良
23 不可
A
上記を数値でなく文字列を複数回入力し、良、可、不可の判定でなく入力した
文字数を表示させる。
[3]環境
[3.1] OS: WindowsXP
[3.3]言語:C
[4] 期限:できれば早めにお願いします。
259デフォルトの名無しさん:2007/04/03(火) 22:12:36
>>258
getsを使わせる教官は張り倒してもいい
260デフォルトの名無しさん:2007/04/03(火) 22:46:48
>>258
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void){
    int i, data_num, *data=NULL, *new_data;
    char buffer[1024], *eval;

    for(data_num=0;;){
        gets(buffer);
        if(strchr(buffer, '\n')!=NULL) *strchr(buffer, '\n')='\0';
        if(strcmp(buffer, "END")==0) break;
        new_data=realloc(data, sizeof(*data)*(data_num+1));
        if(new_data==NULL) exit(1);
        data=new_data;
        data[data_num++]=atoi(buffer);
    }
    for(i=0;i<data_num;i++){
        eval="不可";
        if(data[i]>=60) eval="可";
        if(data[i]>=80) eval="良";
        printf("%d %s\n", data[i], eval);
    }
    free(data);
    return 0;
}
261デフォルトの名無しさん:2007/04/03(火) 22:53:19
>>258
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void){
    int i, data_num;
    char **data=NULL, **new_data;
    char buffer[1024];

    for(data_num=0;;){
        gets(buffer);
        if(strchr(buffer, '\n')!=NULL) *strchr(buffer, '\n')='\0';
        if(strcmp(buffer, "END")==0) break;
        new_data=realloc(data, sizeof(*data)*(data_num+1));
        if(new_data==NULL) exit(1);
        data=new_data;
        data[data_num++]=strdup(buffer);
        if(data[data_num-1]==NULL) exit(1);
    }
    for(i=0;i<data_num;i++)
        printf("%d %s\n", strlen(data[i]), data[i]);

    for(i=0;i<data_num;i++)
        free(data[i]);
    free(data);
    return 0;
}
262デフォルトの名無しさん:2007/04/03(火) 22:56:56
>>258 もし strdup が無いというエラーメッセージが出たらこれを追加すればおk
char *strdup(const char *str){
    char *ret;
    ret=malloc(strlen(str)+1);
    if(ret!=NULL) strcpy(ret, str);
    return ret;
}
263デフォルトの名無しさん:2007/04/03(火) 23:00:46
超初心者です。すいませんが、コマンドライン引数について。
プログラムを起動するたびに、コマンドライン引数として任意の桁の整数をいくつか入力し、
それを使ってちょこちょこと計算をしたいのです。
argv[0]はプログラム名で、argv[1] argv[2]…argv[i]に整数が入ります。
その整数は文字列なので、計算するためには数値に変換しなければいけませんが、
atoiなどは使わないこととします。
で、配列を使って1をかけて10をかけて100をかけて…合計は、という感じで変換すればいいと思うのですが
文字列として何が来るかわからないものを配列に格納するにはどう書けばいいのでしょう?

for(i=1;i<argc;i++){
char string[]=argv[i]

だとエラーになるようです。
264デフォルトの名無しさん:2007/04/03(火) 23:05:36
>>263
argvをそのまま使えばいいじゃん。
265デフォルトの名無しさん:2007/04/03(火) 23:14:23
>>258
(1)
#include <stdio.h>
#include <string.h>

int main()
{
    char buff[BUFSIZ];
    int n;
    while (gets(buff) && strcmp(buff, "END"))
        if (sscanf(buff, "%d", &n) == 1)
            puts(n >= 80 ? "良" : "可");
    return 0;
}
------------------------------------------------
(2)
#include <stdio.h>
#include <string.h>

int main()
{
    char buff[BUFSIZ];
    while (gets(buff) && strcmp(buff, "END"))
        printf("%d\n", strlen(buff));
    return 0;
}
266265:2007/04/03(火) 23:20:40
すまん。一問目、60未満なら不可ってのが抜けてたな。
一問目は↓で。

#include <stdio.h>
#include <string.h>

int main()
{
    char buff[BUFSIZ];
    int n;
    while (gets(buff) && strcmp(buff, "END"))
        if (sscanf(buff, "%d", &n) == 1)
            puts(n >= 80 ? "良" : n >= 60 ? "可" : "不可");
    return 0;
}


267デフォルトの名無しさん:2007/04/03(火) 23:22:50
>>265-266
終了条件の strcmp は "END\n" と比較しないといけない。
(1) atoi を使ってない。
268デフォルトの名無しさん:2007/04/03(火) 23:24:39
>>267
ごめん >>267 は間違い
269265:2007/04/03(火) 23:32:52
>>267
gets()は改行文字を削除するから、END\nと比較とか言われても困るな。
が、atoi()を使えってのはその通りみたいね。
再々すまんが↓のようにしてくれ。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    char buff[BUFSIZ];
    int n;
    while (gets(buff) && strcmp(buff, "END"))
        puts((n = atoi(buff)) >= 80 ? "良" : n >= 60 ? "可" : "不可");
    return 0;
}
270デフォルトの名無しさん:2007/04/03(火) 23:35:22
>>264
すいません、argvをそのまま使う、とは?
271デフォルトの名無しさん:2007/04/03(火) 23:44:52
>>263
よくわからんが、
expr
という名前のプログラムだとして
expr 1+1
expr 1 + 1
とかがただしく動いて欲しいということか?
引数がプログラムにとって好ましいトークンで分割されているとは
限らないし、演算子もあるので数値とは仮定できないと。

argv[]の中身をとりあえず連結してから処理するといいのではないかな。
272デフォルトの名無しさん:2007/04/03(火) 23:57:17
>>271
そうではなくてですね
expr 1 2 3 10
と入れると、
合計して16だとか、かけて60だとか、そういうことをしたいのです。
1、2、3、10は文字列なので、数値としての1、2、3、10にしないと計算ができないんです。
具体的な整数の文字列がわかっていれば、ソースコードの中に
char string[]="158"
とか書けば、'1'、'5'、'8'が配列の各要素となってくれて、そこから数値に変換していけると
思うんですが、プログラムを動かすときにはじめて任意の整数の文字列を入力する場合は
どうしようということなのです。
273デフォルトの名無しさん:2007/04/03(火) 23:58:23
274デフォルトの名無しさん:2007/04/04(水) 00:03:31
>>259
ダンディ坂野に失礼じゃないか、いや、消えていった芸人だが・・・
275デフォルトの名無しさん:2007/04/04(水) 00:06:15
>>272
#include <stdio.h>
#include <stdlib.h>

int main(int argc,char*argv[]){
int i;
for(i=0;i<argc;i++){
printf("%d\n",atoi(argv[i]));
}
return 0;
}
276デフォルトの名無しさん:2007/04/04(水) 00:13:26
>>275
すいません、数値に変換するための関数があるのはわかっているのですが、
>>263で書いたように、atoiなどは使わないという制限をつけられているのです。
それで配列を使って数値に変換していくしかないかと思っているのですが。
あるいは、何かほかにやり方があるんでしょうか。
277デフォルトの名無しさん:2007/04/04(水) 00:17:52
>>272
argvって所謂ダブルポインタだから、まずそれを汁 (**argv とか *argv[] の意)
で、char string[]="158"; は初期化だから良いけど、
char string[]=argv[0]; とかは、コピーだから出来ない。

で、string[] をごにょごにょして数値化するくらいなら
最初から argv[][] をごにょごにょしたが良い
while(argv[N][i]) {
num += argv[N][i]-'0'; //数字チェック一切無し
num *= 10;
i++;
}
num /= 10;
// 誰かもっとまともなコード書いて('A`)

で、なんでatoiはダメなの? 宿題の指定なら、テンプレに従って書けば良いのに
278デフォルトの名無しさん:2007/04/04(水) 00:17:56
>>271が説教されてるようで不憫でならない
279デフォルトの名無しさん:2007/04/04(水) 00:19:49
>>276
atoiを自分で作成した関数に置き換えればできるっしょ?
ただそんだけ。
280デフォルトの名無しさん:2007/04/04(水) 00:26:49
>>263=270=272=276
atoi()を使えばできるけどatoi()は使うなって話なら
>>279の言うとおり。
今どきgoogle code search 使えば、標準Cライブラリ関数の実装ぐらい簡単に
参照できるんだから、それぐらい自分でやれ。

http://www.google.com/codesearch?hl=ja&q=+lang:c+atoi+show:OMkurGeFsAM:-gjwqpJ4rWM:1Zxy-J4gudA&sa=N&cd=6&ct=rc&cs_p=http://www.zip.com.au/~akpm/gsp.tar.gz&cs_f=gsp/lib/libc/atoi.c#a0
281デフォルトの名無しさん:2007/04/04(水) 00:31:07
あーわかってきました。ありがとう。参考になりました。
282デフォルトの名無しさん:2007/04/04(水) 01:03:53
-0^0- < たまには僕のことも思い出して下さいね
283デフォルトの名無しさん:2007/04/04(水) 04:21:20
>>273
ありがとうございます!
284デフォルトの名無しさん:2007/04/04(水) 04:52:51
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3784.txt
 [3.1] OS:WinXP
 [3.2] コンパイラ名とバージョン:VC++6.0
 [3.3] 言語:C
[4] 期限:4/5
[5] その他の制限:なし

またお世話になります。
よろしくお願いします。
285デフォルトの名無しさん:2007/04/04(水) 11:37:25
>>284
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
is_prime(unsigned long x) {
    register unsigned long j;
    if(x == 2) return 1;
    if(x <= 1 || !(x % 2)) return 0;
    for(j = 3; j * j < x; j += 2) if(!(x % j)) return 0;
    return 1;
}
unsigned gcd(unsigned x,unsigned y) {
    unsigned t; while(t = x % y) x = y, y = t; return y;
}
main(void) {
    unsigned a, d, n;
    unsigned long i;
    for(;;) {
        if(scanf("%u%u%u", &a, &d, &n) != 3) continue;
        if(!a && !d && !n) break;
        assert(a > 0 && a <= 9307 && d > 0 && d <= 346 && n > 0 && n <= 210);
        assert(gcd(a, d) == 1);
        for(i = a; ; i += d) {
            if(is_prime(i) && !--n) {
                printf("%d\n", i);
                break;
            }
        }
    }
    return EXIT_SUCCESS;
}
286デフォルトの名無しさん:2007/04/04(水) 11:45:20
>>285 訂正
× printf("%d\n", i);
○ printf("%lu\n", i);
287デフォルトの名無しさん:2007/04/04(水) 12:43:42
>>285
2 7 2 を入力すると 9 がでるよ
288sage:2007/04/04(水) 14:50:25
[1] 授業単元: 情報処理
[2] 問題文:実行したファイル名を除いたコマンドライン引数に、複数個指定したすべてのファイルの内容を標準出力に表示するプログラムです。
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:明日まで

よろしくお願いします。
289デフォルトの名無しさん:2007/04/04(水) 15:43:14
>>288 こんなんで良いんかな?
#include <stdio.h>
int main(int argc, char *argv[])
{
int ch,i;
FILE *fp;
for(i=1; i<argc; i++) {
if( (fp = fopen(argv[i], "r") ) != NULL) {
printf("\n%s を開いて表示します。\n\n",argv[i]);

while( (ch = fgetc(fp) ) != EOF )
putchar(ch);

fclose(fp);
printf("\n%s の表示終了、ファイルを閉じます。\n",argv[i]);
}
else { printf("\n%s は開けません。\n",argv[i]); }
}
return 0;
}
290デフォルトの名無しさん:2007/04/04(水) 16:03:29
>>289
ありがとうございます。
大変感謝しています。
291デフォルトの名無しさん:2007/04/04(水) 18:46:41
>>285
j * j < x

j * j <= x
292デフォルトの名無しさん:2007/04/05(木) 07:04:15
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
画面に1 2 3 4 5と書き、数字を入力し、その数字を消していく
例;4と入力したら1 2 3   5
  その後2と入力したら1   3   5
という具合に、消せる数字が無くなったら終了
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Visual C++ 2005
 [3.3] 言語: C
[4] 期限:明日朝9;00まで

よろしくお願いします。
293デフォルトの名無しさん:2007/04/05(木) 07:58:43
>>292
#include<stdio.h>
#define N 5
int main(){
int i,num[N],flag=0;
for(i=0;i<N;i++) num[i] = 1;
while(flag < N){
for(i=0;i<N;i++) printf("%c ",num[i]?i+'1':' ');
putchar('\n');i = getchar();i = i - '1';
if(0<=i && i < N)if(num[i]){num[i] = 0;flag++;}
fflush(stdin);}return 0;}
眠いし出かけ前に急いで作ったからテキトーだけど
294デフォルトの名無しさん:2007/04/05(木) 08:17:09
>>293
ありがとうございました
知らないものがたくさんあるので
取り合えず情報集めて知っている形に直そうと思います

本当にありがとうございました
295デフォルトの名無しさん:2007/04/05(木) 09:39:05
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3787.txt
[3] 環境
 [3.1] OS:WinXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:明日まで

よろしくお願いします
296デフォルトの名無しさん:2007/04/05(木) 09:41:55
>>257なのですが、
>>273のを実行すると、
fatal error C1083: インクルード ファイルがオープンできません。'stdafx.h': No such file or directory
と出てしまい実行できません;
申し訳ありませんが、
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
から開始するようにしてもらえませんか?
お願いします。
297デフォルトの名無しさん:2007/04/05(木) 12:39:00
>>296
#include "stdafx.h"
を消してやってみて。たぶん>>273はVC++を使って書いてそのままうpしたんだと思う
あと、拡張子をそのまま.cに変えても問題無いと思う。
298デフォルトの名無しさん:2007/04/05(木) 14:32:09
>>297
できました!!
ありがとうございますm(__)m
299デフォルトの名無しさん:2007/04/05(木) 21:00:04
>>295 (1)
#include <stdio.h>
struct test {
char name[10];
int lang;
int math;
int engl;
};
int main(void)
{
int i, max, total[3];
struct test test_tbl[3] = {
"TANAKA", 10, 20, 30,
"SATOU", 30, 30, 30,
"YOSHIDA", 10, 30, 40
};
for (i = 0, max = 0; i < 3; i++) {
total[i] = test_tbl[i].lang + test_tbl[i].math + test_tbl[i].engl;
if (total[i] > total[max]) max = i;
}
printf("名前:%s 合計点:%d\n", test_tbl[max].name, total[max]);
return 0;
}
300デフォルトの名無しさん:2007/04/05(木) 21:05:28
>>295 の問題文に初心者が嵌りそうな落とし穴が用意してあるw
落とし穴を故意に用意してあるなら出題者恐るべし
301デフォルトの名無しさん:2007/04/05(木) 21:06:55
>>295 (2) 適当だけど許せ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3788.txt

>>300
配列の添え字が10になってるとこか
302デフォルトの名無しさん:2007/04/05(木) 21:11:54
名前は10文字なのに
303デフォルトの名無しさん:2007/04/05(木) 21:14:12
名前は10文字までなのに
確保してるサイズは10バイト
'\0'を考慮していないな
304デフォルトの名無しさん:2007/04/05(木) 21:15:46
まあ、10バイトあれば長さ情報を失わないで10文字までは格納できるからな
305デフォルトの名無しさん:2007/04/05(木) 21:16:00
表示する時 printf の書式指定は %.10s 使わないといけないって事で
306デフォルトの名無しさん:2007/04/05(木) 22:19:42
すみません292なのですが
>>293氏のプログラムで
,num[i]?i+'1':' '

i = i - '1';
の部分が分からないのですが
別の分かりやすい形にしてもらえませんか
307デフォルトの名無しさん:2007/04/05(木) 22:30:49
num[i] ? i+'1' : ' '
これは三項演算子を言って、num[i]が偽(==0)ならi+'1'、真(!=0)なら' '
ようは数字か半角スペース

i = i - '1';
はgetcharで得られたアスキーコードから'1'を引くことで整数に直してる
308デフォルトの名無しさん:2007/04/05(木) 22:52:57
>>307さん
num[i] ? i+'1' : ' '
これは
if(num[N] == 0){
printf("%d",i);

else if(num[N] != 0){
printf(" ");
}
ということでOKですか?

i = i - '1';
'1'を引くことで整数に直せる理由が分からないのですが
309デフォルトの名無しさん:2007/04/05(木) 22:54:50
>>306 getche() conio.h は環境依存だけど別解どうぞ

#include <stdio.h>
#include <conio.h>
#define NITEM(array) (sizeof(array)/sizeof(array[0]))
int main(void){
char num[]={'1', '2', '3', '4', '5'};
int i, key, is_nonumber;

do{
printf("\n");
for(i=0;i<NITEM(num);i++)
printf(" %c", num[i]);
printf("\nInput number : ");
key=getche();
is_nonumber=1;
for(i=0;i<NITEM(num);i++){
if(key==num[i]) num[i]=' ';
if(num[i]!=' ') is_nonumber=0;
}
}while(!is_nonumber);

return 0;
}
310デフォルトの名無しさん:2007/04/05(木) 22:59:36
i = i - '1';
例として、5を入力。
i = '5' - '1' (== 0x35 - 0x31) = 4
5番目はnum[4]なので
311デフォルトの名無しさん:2007/04/05(木) 23:00:34
>>339
・・・ま、ますますわけの分からないものが出てきてしまった
getche() conio.h?
#define NITEM(array) (sizeof(array)/sizeof(array[0]))?
do{?
これはもう一回調べなおさなくては・・・
312309:2007/04/05(木) 23:03:08
>>311
>>309 はとりあえずスルーしておいて下さい
313デフォルトの名無しさん:2007/04/05(木) 23:07:37
>>310さん
成る程、num[]は0から始まっているからひとつ引く必要があった
ということでOKですか?

>>312さん
はい、ごめんなさいorz
314デフォルトの名無しさん:2007/04/05(木) 23:14:01
>>313
違う。'1'これが文字コードだってのは分かってるよな?
入力された文字の文字コードがちょうど配列での位置に合うように
アスキーコードに合わせて、'1'を引いている

ようは文字コードの差が上手いように使えるようにしているだけ
315デフォルトの名無しさん:2007/04/05(木) 23:20:04
>>314さん
あ、そういうことだったんですか
勘違いしてました、すいません

これでやっと先に進めそうです
ありがとうございました
316273:2007/04/05(木) 23:59:35
>>296-298
だってー、>>253にちゃんと書いてあるじゃん。
 [3.2] コンパイラ名とバージョン:VC++6.0
317デフォルトの名無しさん:2007/04/06(金) 00:00:00
お前莫迦だろ
318273:2007/04/06(金) 00:00:44
orz >>257 だったよ...
319デフォルトの名無しさん:2007/04/06(金) 07:17:06
>>307 >>308
亀レスだけど、num[i] ? i+'1' : ' 'は、num[i]が真の時i+'1'で偽の時' 'だぞ
if(num[i])printf("%d ",i+1);else printf(" ");だな

・・・次からわかりやすいプログラムを心がけようと思います
320デフォルトの名無しさん:2007/04/06(金) 10:25:59
>>319さん
逆でしたか、ごめんなさい無知で

こちらも教えられるくらいプログラムができるようになりたいものです
321デフォルトの名無しさん:2007/04/06(金) 11:09:30
      r' ´ r-─ '"   _   _/  /ノ`ゝ、
       {  ノ  _ ィ.:´ ̄.:.:、 `ヾ;...  /   人
    <´ ̄ /´ :/ :/.:.:.ノ.:.l:ト、.:.丁7´/,;r'ヾヘー'
    / 〉ー/  ..:| .:|.:.:/.:.:/:! \.:|.:ト、!/   〉ノ
   ヽヾ'/! | .:.:.:| .:|.:.|.:.:/:.:|'´ ̄ヽ;.:.|.〈    / |
    | `| .:ヽ、ノ ∧:ハ/ ∨ ィチ示|.:{ }   〈 l
.    〉 ヽ,_彡く,ィテミ、   ゞー'|.:| l   ∨
    /   ∧:.:ヽ,:小、ゞ'  、 __  ノ:ハ ',   ′
.   /   /  \|ヾノ.:.ゝ、___`_´/|.:|.:;〉∧   '、
  /   ,'   ノ.:_:.:.-─ァ、_ノ   Y ;イ´ ',    ヽ
. /   {   -ー ´   /::/、_   /| :::|   {    ',
 {    ノ´      _ノ:::L. ___ | .:.| 、 ヽ   }
 |      _, -:7.:.:./::____/ .:ノ. /:丁`ゝ__ノ
 ヽ__,. -ー /.:/.:.:|.:.:〈:::{ーァ'' 十  .| .:.ハ/.:.:.:|.:|.:.:.:{
       /.:/ .:.ノ.:.:.:}:::|(  ゚ノ う |..:.|/.:.:..:.:}:.l.:.:. ',
.     /.:/ .:./.:.:.:.:|:::: ̄:: ̄:: ̄.:|.:.:|.:.:.:.:.ノ.:.!.:.:.:. l
.      /.:/ .:./.:.:.:.:.:l::::::::::::::::::::::::::ヽ |.:.:.:/.:.:.l..:.l.:.:. ',
    /.:/ .:./.:.:.}.:.:/:::::::::::::::::::::::::::::jノ.:.{.:l.:.:.:!.:.:.|.:.: l
    ,'.:.:l .:./ .:.:/.:/:::::::::::::::::::::::::::::::::|:.:.:!:!.:.:.l.:.:.:|.:.: |
    |.:.:.| .:l.:|.:/.:/:::::::::::::::::::::::::::::::::::ヽ;:|:|.:|.:!.:.:.:l.:.: l
.    ', .:| .:|.:!,'.:/.:|::::::::::::::::::::::::::::::::::::::∨.:.!:|:.:.:.l.:.:.:ハ
     } |.:.:|.:!.:/::::!:::::::::::::::::::::::::::::::l::::::::l:メ|ハ.:.∧:/
    八\!∨.:::::|:::::::::::::::::::::::::::::::|::::::::l 从:/ リ
    ´  \!/─-l::::::__:::::::::::__:::::::l:::-ーl
        ト─ 、:::__:::__::::__;;:::: -ー!
.          |     \::::::::/    |
          !      「了       ,'
         l        | ノ       /
322309:2007/04/06(金) 12:20:25
>>321
ナヤバージョンplz
323デフォルトの名無しさん:2007/04/06(金) 12:38:41
295です。
返事遅れてすみません。
皆様ありがとうございます。
まだまだ勉強します。
324デフォルトの名無しさん:2007/04/06(金) 14:29:58
んで、名前を10文字入れる部分のソースはしっかり出来たん?
325デフォルトの名無しさん:2007/04/06(金) 21:12:18
326デフォルトの名無しさん:2007/04/06(金) 21:16:22
やっぱす10文字を超えた名前を入力するとバグるね
327デフォルトの名無しさん:2007/04/06(金) 21:22:38
>>326
10文字を超えたらどうして欲しい?
名前が10文字までであれば >>325 で正常に動かないか?
328デフォルトの名無しさん:2007/04/06(金) 21:25:51
>>327
いや、どうしてというか、10文字以内の入力で正常ならなんら問題ないんだけどね。
その辺、細かいことに対処してたら面倒だろうけど、10文字を超えた入力をした場合
入力した文字の最初から10文字目までを有効にする措置が出来ないか考えていたりするわけで。
329デフォルトの名無しさん:2007/04/06(金) 21:29:17
>>328
これで希望に添えると思う。(但し、上限を511文字にしただけで根本的には解決してない)

char name_buf[sizeof(test_tbl[0].name)+1];

char name_buf[512];

if(fscanf(stdin, "%10s %d %d %d", name_buf, &test_tbl[i].lang, &test_tbl[i].math, &test_tbl[i].engl)!=4)

if(fscanf(stdin, "%511s %d %d %d", name_buf, &test_tbl[i].lang, &test_tbl[i].math, &test_tbl[i].engl)!=4)
330デフォルトの名無しさん:2007/04/07(土) 19:54:01
>>329

define BLOCKSIZE 16

char* getLine(FILE *fp)
{
char *p=(char*)malloc(sizeof(char) * BLOCKSIZE);
int c;
int cnt=0;

while(c = fgetc(fp)){
if(cnt % BLOCKSIZE == 0 && cnt != 0){
p=(char*)realloc(p,sizeof(char) * (cnt + BLOCKSIZE) );
}
p[cnt++] = (char)c;
if(c=='\n' || c == EOF){
p[cnt]='\0';
break;
}
}
/* printf("%d",cnt); */
return p;
}

あとはstrtokで分解してくれ。
331デフォルトの名無しさん:2007/04/07(土) 20:18:13
[1] 授業単元:アルゴリズムとデータ構造
[2] 問題文(含コード&リンク):コマンドラインから入力された任意の文字列を格納し、またそれを一覧表示できる二分探索木を実装してください。
[3] 環境
 [3.1] OS:WinXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:月曜まで

よろしくおねがいします。
332デフォルトの名無しさん:2007/04/07(土) 20:23:58
入力部だけ書いてみた。こういう動作でいいのか?

#include <stdio.h>
#include <string.h>
#include <ctype.h>

struct test {
    char name[10];
    int lang, math, engl;
};
int read_one(struct test *data)
{
    char buf[11];
    int c;
    if (scanf(" %10[^ \t\n]", buf) != 1)
        return 0;
    memcpy(data->name, buf, 10);
    if ((c = getchar()) == EOF)
        return 0;
    if (!isspace(c) && scanf("%*[^ \t\n]") == EOF)
        return 0;
    if (scanf("%d %d %d", &data->lang, &data->math, &data->engl) != 3)
        return 0;
    return 1;
}
int main()
{
    struct test d;
    while (read_one(&d))
        printf("%.10s %d %d %d\n", d.name, d.lang, d.math, d.engl);
    return 0;
}
333332:2007/04/07(土) 20:39:00
↑では冗長すぎるな。書き直した。
int read_one(struct test *data)
{
    char buf[11];
    int c;
    return (scanf("%10s", buf) == 1 &&
        memcpy(data->name, buf, 10) &&
        (isspace(c = getchar()) || scanf("%*s") != EOF) &&
        scanf("%d %d %d", &data->lang, &data->math, &data->engl) == 3);
}
334デフォルトの名無しさん:2007/04/07(土) 20:46:46
ん〜、bufにある程度余裕を持たせて、10文字を超えて入力した場合は入力をし直させる
仕組みを作るのもありだね。まぁ、細かいことを気にしてたら先に進まないんで
最終的にはそれを取り込むインターフェース(入力部分)に制限をすることで対処やね。
335331:2007/04/07(土) 21:08:59
ありがとうございます。
任意というのは文字数制限をかけてはいけないという意味だそうで、
動的なメモリの確保を考えるらしいのですが・・・
336デフォルトの名無しさん:2007/04/07(土) 21:10:11
>>335
あんたにはまだ誰もレスつけてないよ
337デフォルトの名無しさん:2007/04/07(土) 21:17:21
自分で宿題の答えが出ているかも確認できずに提出する香具師・・・
あんた、何を学んでいるか分かっていないなら、学校辞めた方がええぞ?w
338デフォルトの名無しさん:2007/04/07(土) 21:25:51
ええぞ?w
339デフォルトの名無しさん:2007/04/07(土) 22:03:33
340デフォルトの名無しさん:2007/04/07(土) 22:06:58
callocは危険だな
341デフォルトの名無しさん:2007/04/07(土) 22:17:30
callocの引数逆じゃない?
342デフォルトの名無しさん:2007/04/07(土) 22:19:11
型同じだからどっちでも構わない。
343339:2007/04/07(土) 22:24:40
>>341
あ、確かに逆だわ。スマソ。
>>342
どっちでも良すぎて、すぐ順番間違える俺w
344デフォルトの名無しさん:2007/04/08(日) 18:06:13
>>342
アラインメントの都合などがあるかもしれない
345295:2007/04/09(月) 09:49:59
皆様ありがとうございます。
10文字の件は出題者のミスでした...
最後にもう1つお願いします。(前回の続きです...)

[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3791.txt
↑(2)の問題です。
[3] 環境
 [3.1] OS:WinXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:明日まで
よろしくお願いします

346デフォルトの名無しさん:2007/04/09(月) 11:17:48
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3792.txt
[3] 環境
 [3.1] OS:WinXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:明後日まで
よろしくお願いします
347デフォルトの名無しさん:2007/04/09(月) 21:10:36
1.c
#include <stdin.h>
int main(void)
{
#include "2.c"
return 0;
}

2.c
getchar();
printf("255\nn");

>make 1
>./1
>FF
255
>
動くぞ。うん。
348デフォルトの名無しさん:2007/04/10(火) 00:09:34
よかったね。おめでとう。
349デフォルトの名無しさん:2007/04/10(火) 02:10:50
>>346
#include <stdio.h> // 2.c
#include <ctype.h>
#define OK (0)
#define KIND_NG (-1)
#define LENG_NG (-2)
static const char *hex2dec_errmsg_body[]={"9桁以上のサイズエラー", "16進数以外の種別エラー", "変換OK"};
const char **hex2dec_errmsg=&hex2dec_errmsg_body[2];
int hex2dec(const char *hex_str, char *dec_str){
unsigned long value=0UL;
int i;
for(i=0;hex_str[i]!='\0';i++){
if(i>8-1) return LENG_NG;
if(!isxdigit(hex_str[i])) return KIND_NG;
if(isdigit(hex_str[i])) value=(value<<4)|(hex_str[i]-'0');
else value=(value<<4)|(toupper(hex_str[i])-'A'+10);
}
sprintf(dec_str, "%lu", value);
return OK;
}
int main(void){ // 1.c
int i, moji;
char hex[10]={'\0'}, dec[12]="Error";
for(i=0;i<sizeof(hex)-1;i++){
moji=getchar();
if(moji==EOF || moji=='\n') break;
hex[i]=moji;
}
printf("%s\n", hex2dec_errmsg[hex2dec(hex, dec)]);
printf("%s\n", dec);
return 0;
}
350デフォルトの名無しさん:2007/04/10(火) 19:51:12
>>345
何をベースにすればいい?
>>301>>325 か全くの新規かそれとも他にあるのか
351デフォルトの名無しさん:2007/04/10(火) 21:07:22
[1] 授業単元:C++プログラミング
[2] 問題文(含コード&リンク):矩形転置暗号を用いて、平文を暗号文に変換するプログラムを作成せよ。
(テキストファイルを読み込んで実行する)
暗号鍵(矩形の行数と列数)は適当な定数で与える。
ファイル末尾に到達した場合は矩形の残りの部分にスペースが入った状態にして
暗号文をとりだして終了する。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC++ 2005
 [3.3] 言語:C++
[4] 期限:4月12日(木),PM5:00まで,2007年
[5] その他の制限:文字型(char)の2次元配列を用いる

よろしくお願いします
352デフォルトの名無しさん:2007/04/10(火) 21:19:26
[1] 授業単元:C言語問題集
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3794.txt
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:明日(4/11)の朝7時まで

一応自分でも作ってみたのですが、バグがとれずにいます。
この間違いを修正する方が楽だという場合、こちらをお願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3796.txt

何卒、よろしくお願いしますm(_ _)m
353デフォルトの名無しさん:2007/04/10(火) 21:26:59
>>352
コンパイラの文句に耳を傾けてあげて下さい
354デフォルトの名無しさん:2007/04/10(火) 21:36:37
355デフォルトの名無しさん:2007/04/10(火) 21:36:45
>>351
#include <iostream>
int main() {
    const int cols = 7, rows = 2;
    char rect[rows][cols];
    for(int i = 0, c; i < rows * cols; ++i)
        rect[i / cols][i % cols] = (c = std::cin.get()) != EOF ? (char)c : ' ';
    for(int i = 0; i < rows * cols; ++i)
        std::cout.put(rect[i % rows][i / rows]);
}
356デフォルトの名無しさん:2007/04/10(火) 21:51:43
みなさんこんばんわ。 
どうにも進めることが出来ません;;
なのでみなさんのお力をお貸しください。 ヨロシクお願いします!!
問題文
顧客マスタ

 顧客コード 氏名 フリガナ 年齢  
 K001 武田 信弘 タケダ ノブヒロ 25   
 K002 石田 満 イシダ ミチル 21
 K003 原  勇 ハラ イサム 20
 K004 堀部 勲 ホリベ イサム 19
 K005 飯野 駿一 イイノ シュン 19
 K006 田中 義孝 タナカ ヨシタカ 20
 K007 竹内 功 タケウチ コウ 19
 K008 千田 陽 センダ ヨウ 20
上記内容の構造体を作成して、初期値として作成する。

商品マスタ

 商品コード 品名 分類 単価
 S001 ガム 菓子 80
 S002 チョコレート 菓子 120
 S003 カップアイス 菓子 100
 S004 せんべい 菓子 150
 J005 サイダー 飲料 120
 J006 オレンジジュース飲料 120
 J007 お茶 飲料 150
 J008 ミネラルウォーター飲料 150
  上記内容の構造体を作成し、初期値として作成する。
357デフォルトの名無しさん:2007/04/10(火) 21:53:27
売上明細データ

 売り上げ日付 顧客コード 商品コード 数量
 20070301 k001 S001 3
 20070303 K002 S002 2
 20070303 K002 J005 5
 20070305 K007 S004 10
 20070315 K005 J006 9
 20070317 K008 J006 10
 20070322 K007 S003 2
 20070322 K008 S001 5
 上記内容のカンマ区切りファイル(CSVファイル)として読み込む。ファイル名:SalesDetail.cvs

(1)以下の入力により、各データを集計キーとして金額のを集計して表示を行う。

 1.顧客氏名    
 2.商品名     ex. チョコがいくら〜など せんべいいくら〜など
 3.売り上げ日付
 4.商品分類    ex. 菓子いくら〜  飲料いくら〜など
 5.売り上げ日付、商品名   ex. 0301 ガム 2 など
 0.終了
  0が入力されるまで何度でも集計金額表示を行うようにする。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5
 [3.3] 言語: (C++
[4] 期限: [2007年04月11日まで]
358デフォルトの名無しさん:2007/04/10(火) 21:56:37
>>354 実行しても何やってんだかわからん糞インターフェースだなw
359デフォルトの名無しさん:2007/04/10(火) 21:56:52
>>356
それ前にも見たぞ。
解答付いてただろうが
360デフォルトの名無しさん:2007/04/10(火) 22:06:07
>>359
こういうときは下のように答えると
韻を踏んでいて美しい


>>356
前にも見マスタ
361デフォルトの名無しさん:2007/04/10(火) 22:08:54
>>358
そういうときはお手本を示さないと
362デフォルトの名無しさん:2007/04/10(火) 22:14:18
351の者です
ありがとうございました
363デフォルトの名無しさん:2007/04/10(火) 22:26:53
364デフォルトの名無しさん:2007/04/10(火) 22:31:28
>>363
侍魂ワロタw
なんでこんなものが上位に…
365デフォルトの名無しさん:2007/04/10(火) 23:36:47
366デフォルトの名無しさん:2007/04/11(水) 00:12:17
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3799.txt

>>358
こうですか!?分かりません!!
367デフォルトの名無しさん:2007/04/11(水) 00:12:38
[1] 授業単元: 情報処理基礎
[2] 問題文(含コード&リンク):
 IEEE754形式の単精度実数型を構造体を用いて定義し、次の3つの関数を作りなさい。
1,文字列から浮動小数点数へと変換する関数
2.浮動小数点数から文字列へと変換する関数
3.浮動小数点数同士の加算関数
4.浮動小数点数同士の乗算関数
[3] 環境
 [3.1] OS: (Windows/Linux/等々) MSX-DOS2
 [3.2] コンパイラ名とバージョン: MSX-C
 [3.3] 言語: C(K&R)
[4] 期限: 2007年4月11日 15:30:00まで
[5] その他の制限: float double等の浮動小数点数型はコンパイラの制限により使えない。ライブラリは使用不可とする。
368デフォルトの名無しさん:2007/04/11(水) 00:16:42
どう見ても関数4つあるんだが
369デフォルトの名無しさん:2007/04/11(水) 01:11:54
こんなめんどくさい宿題ぎりぎりに持ってくんなよ…
370デフォルトの名無しさん:2007/04/11(水) 01:19:42
ぜひ皆さんのお力をお貸しください。

[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):
サーチプログラムを作成せよ。
 条件 1)数列をユーザー入力で受け取る。
    2)数列は、整数をカンマ区切りで列挙したもので、数字の個数はユーザー任意。
    3)数列は、配列に展開すること。
    4)検索したい数字をユーザー入力から受け取る。
    5)配列から検索したい数字を探して何番目に見つかったかを表示する。
    6)入力された元の数列を、昇順、降順にそれぞれ並び替えたものを出力する。
    
     画面例
    >数列を、コンマ区切りで入力
    >数列>2,34,53,678
    >探したい数列を入力
    >数字>34
    >数列の2番目に見つかりました。
    >昇順にソート>2,34,53,678
    >降順にソート>678,53,34,2

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

strtok関数を使うのはわかったのですが、そのあとどうしたのいいのかわかりません。
ほんとによろしくお願いします。
371デフォルトの名無しさん:2007/04/11(水) 01:54:34
>>370
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmpint(const void *p1, const void *p2) {
    return *(int *)p1 < *(int *)p2 ? -1 : *(int *)p1 > *(int *)p2 ? 1 : 0;
}
int cmpintr(const void *p1, const void *p2) {
    return *(int *)p1 < *(int *)p2 ? 1 : *(int *)p1 > *(int *)p2 ? -1 : 0;
}
int main() {
    char str[0x400], *p;
    int count = 0, capacity = 0, *list = NULL, i, n;
    printf("数列をコンマ区切りで入力\n数列>");
    fgets(str, sizeof str, stdin);
    p = strtok(str, ",");
    do {if(count >= capacity && !(list = realloc(list, (capacity += 10) * sizeof *list))) abort();
        list[count++] = atoi(p);
    } while((p = strtok(NULL, ",")));
    printf("探したい数字を入力\n数字>");
    if(scanf("%d", &n) != 1) return EXIT_FAILURE;
    for(i = 0; i < count; ++i) if(list[i] == n) printf("数列の%d番目に見つかりました。\n", i + 1);
    qsort(list, count, sizeof *list, cmpint);
    printf("昇順に\x83\x5cート>");
    for(i = 0; i < count; ++i) printf("%s%d", "," + !i, list[i]);
    putchar('\n');
    qsort(list, count, sizeof *list, cmpintr);
    printf("降順に\x83\x5cート>");
    for(i = 0; i < count; ++i) printf("%s%d", "," + !i, list[i]);
    putchar('\n');
    return EXIT_SUCCESS;
}
372デフォルトの名無しさん:2007/04/11(水) 04:00:23
お初に質問いたします。
whileのなかでcinを使ったときに、文字が何も入力されなければ
ループを出るというのはif(cin.getline(c,48)==)の==のあとをどうすればいいでしょうか?
'' "" '\n'などを試したのですがだめでした
よろしくおねがいいたします。
373デフォルトの名無しさん:2007/04/11(水) 07:16:33
>>366
素晴らしい!

でも print_max 関数で最高得点の同点者が表示されていないようだ
374デフォルトの名無しさん:2007/04/11(水) 14:46:31
>>367の締め切りが月曜まで延びました。
あと、制限事項に足りない部分がありました。
ビットフィールドが使えないそうです。
また、標準関数は使ってもよいそうです。
375デフォルトの名無しさん:2007/04/11(水) 16:26:28
376デフォルトの名無しさん:2007/04/11(水) 20:27:29
           /  ̄ ̄ '´ ̄ ̄ヽ、
            ノ/. /二二二ヽヽ  \
        <V/, '/ 人 |  ヽハ夊 、 |
         〃 {_{`ヽ  Vヽノリ| l >" i|
         ハ小l●    ● レ|、 | |
         |│ l⊃ rー- ⊂⊃|ノ |│
        /⌒ヽ.| .ヘ  ヽ ノ   jレ/⌒i !
      \ /:::レ l>,、 __, イァ/   /ノ
.        /:::::/ / ヘ:::|三/::{ヘ、__∧
       `ヽ<     ヾ:∨:::/ヾ:::彡
377デフォルトの名無しさん:2007/04/11(水) 21:17:52
1] 授業単元:C
[2] scanfなどでファイル、または数字をを読み込みグラフを出力するプログラム。
  x,y座標の二次元表示。
  読み込む数字や数式は始点[x1,y1]、終点[x2,y2]やsinやcosです。
  その値を読み込み線グラフとして表示させます。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:LSI C-86 Ver 3.30 試食版
 [3.3] 言語: C/C++ なるべくCでお願いします
[4] 期限: ([2007年4月17日am12:00まで]
[5] 制限は特にないと思います。fopenとscanfの簡単なプログラムを試してみたのですが
  二つのプログラムを一つにまとめることができませんでした。
  グラフ表示のほうもまったくわからなく解説サイトを回っている最中です。
  よろしかったらお願いいたします。
378デフォルトの名無しさん:2007/04/11(水) 22:14:22
>>377
読み込むデータの例を書いてくれ。その文章だけじゃ要領を得ん。
379デフォルトの名無しさん:2007/04/11(水) 22:23:57
グラフィックの表示には何を使うんだよ
380352:2007/04/11(水) 22:59:44
>>365
ありがとうございました。

同問題を発展させなければならなくなりました。
どなたかご教授願います<(_ _)>

[1] 授業単元:C言語問題集
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3803.txt
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:明日(4/12)の朝7時まで
381377:2007/04/11(水) 23:23:47
すみません。この様に書けばいいのでしょうか?
初心者なのでどう説明したらいいのかわからないのですが。
グラフィックの表示は、なにで表示できるかすらわからない状態です。
調べてみます。

読み込むデータは自分で数字を入力でします。
まず始点の数値、x,y座標における二点をscanfで読み込みます。
つぎに終点の数値、x,y座標における二点をscanfで読み込みます。
例えば始点[x,y]=[0,0]。終点[x,y]=[8,13]
というようにこの数値を自分で入力します。
それを線グラフで表示させるプログラムです。
382デフォルトの名無しさん:2007/04/11(水) 23:27:10
文字だけで線グラフを描画とは難儀な
383デフォルトの名無しさん:2007/04/11(水) 23:52:14
>>377
今ググったら出てきたんだが
例えば、↓みたいのを使うの?
ttp://www.vector.co.jp/soft/dos/prog/se243629.html
384377:2007/04/12(木) 00:11:38
>>383
ありがとうございます!
いまStudy C Ver2サンプルを試していましたが、LSI-C試食に対応ということで
こちらのほうがいいですね。DLして使い方を勉強します
385デフォルトの名無しさん:2007/04/12(木) 16:41:55
[1] 授業単元:データ構造とアルゴリズム
[2] 問題文(含コード&リンク):
関数rank1を使って、順位を調べ、その得点(メンバscore)と順位(メンバrank)を表示
するプログラムを作れ。適当なデータを初期値として代入しておき、得点と順位を表示す
るプログラムを完成させる。ソースプログラムとともに、実行結果も添付すること。
*注意:関数rank1を使うこと

rank1は次のものです

void rank1(struct data *x, int n)
{
int i,j;

for(i=0;i<n;i++)
x[i].rank=1;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(x[i].score<x[j].score)
x[i].rank++;
}

[3] 環境
 [3.1] OS:Linux
 [3.2] gcc
 [3.3] 言語:C
[4] 期限:明日10時まで
どなたかよろしくお願いします
386デフォルトの名無しさん:2007/04/12(木) 16:55:43
>>385
struct data { int score, rank; };

main() {
    struct data data[] = {{86}, {8}, {53}, {28}, {2}, {39}, {37}, {22}, {56}, {52}}, *p;
    rank1(data, sizeof data / sizeof *data);
    printf("%5s %5s\n", "Score", "Rank");
    for(p = data; p < data + sizeof data / sizeof *data; ++p)
        printf("%5d %5d\n", p->score, p->rank);
    return 0;
}
387デフォルトの名無しさん:2007/04/12(木) 18:09:31
>>386
早速の返答ありがとうございます
自分でできるようになるよう頑張ります
388771:2007/04/12(木) 20:31:34
入門編で聞いたけど期限明日なのでギブ('A`)
たすけてくだしあ_| ̄|○

[1] 授業単元:DUMP出力
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3805.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 2007/04/13 つまり明日のAM7時くらいまで
[5] その他の制限:特になし
389デフォルトの名無しさん:2007/04/12(木) 21:08:38
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3806.txt
[3]環境
[3.1]OS:XP
[3.2]コンパイラ名とバージョン:gcc
[3.3]言語:C言語
[4] 期限:明日の朝まで
宜しくお願いします。
390デフォルトの名無しさん:2007/04/12(木) 21:26:45
>>388
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3807.c
よくわからん所はテキトーに作った。
391デフォルトの名無しさん:2007/04/12(木) 21:30:14
>>389
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main(void){
char cmplx[81]={0},tmpstr[0xFF];
int cmplx_length=0,a,i;
for(;;){
for(i=0;i<a;tmpstr[i]=0,++i);
scanf("%s",tmpstr);
if((a=strlen(tmpstr))>20){printf("err.\n");continue;}
if((cmplx_length+a)>80){
tmpstr[81-cmplx_length]=0;
sprintf(&cmplx[cmplx_length],"%s",tmpstr);
printf("err.\n%s",cmplx);
return;
}
if(!strcmp("END",tmpstr)){
if(*cmplx==0){printf("err.\n");continue;}
printf("%s\n",cmplx);
}
sprintf(cmplx,"%s",tmpstr);
cmplx_length+=a;
}
}
うんこしながら作ったので適当
392デフォルトの名無しさん:2007/04/12(木) 21:49:34
>>389
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 20
#define TOTAL_MAX_LEN 80
main() {
    char buf[0x400], str[TOTAL_MAX_LEN + 1] = "", *p;
    int l, m;
    for(;;) {
        fgets(buf, sizeof buf, stdin);
        if((p = strchr(buf, '\n'))) *p = '\0';
        if(!strcmp(buf, "END")) {
            if(!strlen(str)) {
                fputs("error: no input\n", stderr);
                return EXIT_FAILURE;
            } else break;
        }
        if((l = strlen(buf)) > MAX_LEN) {
            fprintf(stderr, "error: input string too long (>%d)\n", MAX_LEN);
            return EXIT_FAILURE;
        }
        if((m = strlen(str)) + l > TOTAL_MAX_LEN) {
            strncat(str, buf, TOTAL_MAX_LEN - m);
            fprintf(stderr, "error: total input string too long (>%d)\n", TOTAL_MAX_LEN);
            break;
        }
        strcat(str, buf);
    }
    puts(str);
    return EXIT_SUCCESS;
}
393デフォルトの名無しさん:2007/04/12(木) 22:03:21
>>388
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3808.txt

もう>>390があるけどせっかく作ったしうpしてみる
394デフォルトの名無しさん:2007/04/12(木) 22:15:36
>>390
>>393
仕事早杉(;´Д`)
マジ感謝。

早く自分で作れるようになろう・・・。
395デフォルトの名無しさん:2007/04/12(木) 22:27:59
最後までやりきれずに他人に頼むような奴が
自分で作れるようになる日は永遠に来ない
396デフォルトの名無しさん:2007/04/12(木) 22:46:59
>>388 すでに答えがあるけど、問題の趣旨を無視して俺も作ってみたw
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3809.txt
397デフォルトの名無しさん:2007/04/12(木) 22:51:57
っと思ったが、間違いだらけだったから消した orz スレ汚しすまそ
398デフォルトの名無しさん:2007/04/12(木) 23:05:57
>>388 またまた問題の趣旨を無視して俺流で。クソレスすまそ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3810.txt
399デフォルトの名無しさん:2007/04/13(金) 08:26:55
>>388 改良?してみたが、もう遅いか・・・
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3811.txt
400デフォルトの名無しさん:2007/04/13(金) 08:31:48
401デフォルトの名無しさん:2007/04/13(金) 13:37:08
そろそろ新学期で
「習い始めたばかりなのにいきなり宿題が出て全然分からないんです」
とかなだれこむ時期かな
402デフォルトの名無しさん:2007/04/13(金) 14:00:38
IEEE754がネタだと分かってて解いている漏れガイル。
ぬー。とりあえず、文字列の形式考えるかね・・・。
403デフォルトの名無しさん:2007/04/13(金) 22:19:33
[1] 授業単元: プログラミングT
[2] 問題文:1. キーボードから任意の整数値を変数mに入力する.
2. mが負または0のとき,「正の数値を入力して下さい」と出力して終了する.
3. mが1のとき,「1は素数ではありません」と出力して終了する.
4. mが2以上のとき,素数かどうかの判断をして,その結果をmの値とともに出力する.

「mが負または0のとき」,「mが1のとき」,「mが2以上のとき」の判断を別々に羅列してはいけない.
本来は,途中で割り切れたら,それ以降,割り切れるかのどうかの判定は不要である.しかし,今回は最後まで(Mまで)判定を行ってよい.
割り切れたらかどうかの情報(状態)を何らかの変数に保持しておくと良い.その情報を用いて,「素数である・なし」を判断すれば良い.

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:今日中にお願いします。
[5]関数はprintf,if,scanf,whileしか習っていないのでそれでお願いします。

細かいですがよろしくお願いします。
404デフォルトの名無しさん:2007/04/13(金) 22:29:30
はじめまして。
今日からC++を始めました。

[1] 授業単元:プログラミングC
[2] 問題文(含コード&リンク):
y=ax+b
2点の座標を通る直線の式を求めろ。
座標は入力。
[3] 環境
 [3.1] OS: (Windows
 [3.2] コンパイラ名とバージョン: よくわからない。。。
 [3.3] 言語:C++
[4] 期限: 2007年4月20日00時00分00病まで
[5] その他の制限:今日始めて習いました。
問1、問2はできたのですが、この問3がわかりません。
ご教授お願いします。
405デフォルトの名無しさん:2007/04/13(金) 22:31:28
お助け願いますOTL
[1] 授業単元:C(K&R問題)
[2] 問題文(含コード&リンク):http://www.geocities.co.jp/SiliconValley-SanJose/2491/source/k_and_r/1-18.txt
K&Rの問題1-18<各入力行から、行の後のブランクやタブを取り除き、かつ空白行はすべて削除するようなプログラムを書け>
というものなんですが
上記URLのソースのようにMAXLINE以上の入力を行わないのは出来るのですが
MAXLINE以上の入力時の処理で悩んでいます。
この場合どのような処理をすれば適切なのでしょうか?
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:16日13時まで
[5] ・MAXLINE以上の入力ははじくというのはダメらしいです
406デフォルトの名無しさん:2007/04/13(金) 22:40:45
>>404
#include <iostream>
int main() {
using namespace std;
int x1, y1, x2, y2;
cout << "x1 y1: " << flush;
cin >> x1 >> y1;
cout << "x2 y2: " << flush;
cin >> x2 >> y2;
if(x1 == x2) {
cout << "x = " << x1 << endl;
} else {
double a = (double)(y2 - y1) / (x2 - x1);
double b = y1 - x1 * a;
cout << "y = " << a << " x + " << b << endl;
}
}
407デフォルトの名無しさん:2007/04/13(金) 22:41:13
>>403
>「mが負または0のとき」,「mが1のとき」,「mが2以上のとき」の判断を別々に羅列してはいけない.
    _, ,_
   ( ゚Д゚ )
408403:2007/04/13(金) 22:47:46
>>407
えっと…
どこか変でしょうか…?
問題文をそのまま書いたのですが…。
変だと思いましたらそこは考えなくてもいいです。
すみません、細かくて…
409デフォルトの名無しさん:2007/04/13(金) 22:52:02
> 本来は,途中で割り切れたら,それ以降,割り切れるかのどうかの判定は不要である.しかし,今回は最後まで(Mまで)判定を行ってよい.
要するにエラトステネスのふるいを使えってこと?
410デフォルトの名無しさん:2007/04/13(金) 22:54:13
2..m-1で割れってことだろ
411デフォルトの名無しさん:2007/04/13(金) 22:55:50
if(m<=0){}
if(m==1){}
if(1<m){}
はダメで
if(m<=0){}
else if(m==1){}
else{}
なら言いということか?
412デフォルトの名無しさん:2007/04/13(金) 22:59:54
413デフォルトの名無しさん:2007/04/13(金) 23:02:28
>>406
ありがとうございます。
Visual studioでコンパイルしたのですが、エラー出てしまいました。
それと本当に今日習い始めて、
1行目の書き始めが
#include <stdio.h>を使うと思うのです。それとflushやcoutやendのような構文も習っていません。
ちなみに、問2の問題の答えは
#include <stdio.h>
main(){
int m;

printf("秒を入力:");
scanf("%d",&m);





printf("%d時間%d分%d秒です",m/360,m/60,m%60);

}

こんな感じになり、上のような感じでまとめていただけるとありがたいです、
414デフォルトの名無しさん:2007/04/13(金) 23:02:34
>>403
#include<stdio.h>
int IsPrime(int n){
int i;
if(n < 2)return 0;
else if(n == 2)return 1;
if(n % 2 == 0)return 0;
for(i = 3; i * i <= n; i += 2)if(n % i == 0)return 0;
return 1;
}
int main(){
int m;
scanf("%d",&m);
printf("%s\n",((0<m)?((m==1)?("1は素数ではありません"):((IsPrime(m))?("素数である"):("素数ではない"))):("正の数値を入力して下さい")));
return 0;
}
こういうことだろ。ごめんお酒入ってて素数判定まで考えられなかった。
415デフォルトの名無しさん:2007/04/13(金) 23:04:25
>>413
C++なのかCなのかハッキリしやがれ。
416デフォルトの名無しさん:2007/04/13(金) 23:05:40
>>415
ごめんなさい。。。
417デフォルトの名無しさん:2007/04/13(金) 23:06:24
>>416
それでどっちなんだよ…
418403:2007/04/13(金) 23:07:34
>>409
エラトステネスのふるいとはなんでしょうか…?

>>410-411
すいません。始めたばかりなもんでよくわからないです…。

>>412
ありがとうございます。
少し質問があります。
「i++;」というのは「i=i+1;」のことでよろしいのでしょうか?

あとreturnというのは使ったことないので調べたんですが、
値を返すとはどういう意味なんでしょうか?
419デフォルトの名無しさん:2007/04/13(金) 23:07:48
>>417
Cでした。スマソ
420デフォルトの名無しさん:2007/04/13(金) 23:10:12
分からない単語はすぐgoogleで調べる!
421デフォルトの名無しさん:2007/04/13(金) 23:16:12
>>418
>「i++;」というのは「i=i+1;」のことでよろしいのでしょうか?
そういう解釈で問題ないと思う
>値を返すとはどういう意味なんでしょうか?
『関数の呼び出し元』に値を返すという意味。
Cは例えば
int a、x = 1;
a = f (x);
みたいに関数を定義できて、関数には値を渡してその計算結果を返してもらう事ができる。

ああだめだ上手く説明できない
422デフォルトの名無しさん:2007/04/13(金) 23:44:07
…戻す値は、計算結果「だけ」では無いのだが。。
423デフォルトの名無しさん:2007/04/13(金) 23:45:31
最近は中学校でエラトステネスの篩も習わなくなったのか。
424デフォルトの名無しさん:2007/04/13(金) 23:47:28
もう15年くらい前に厨房だったけど、習った記憶が・・・自分がちゃんと勉強してなかっただけじゃん
って突っ込みは勘弁 orz
大学に入学したってのに、大学を出てからフィボナッチ数列だのパスカルの三角形があっただの
気づいた次第で orz
そんな奴がここで宿題のレスをしているのはなんて突っ込みも勘弁 orz
ちなみに >>400 は俺の書いたソースだけど糞ですいません orz
425デフォルトの名無しさん:2007/04/13(金) 23:51:28
20年前に中学生だったが、習った。ごく普通のイチ立中学校。
426デフォルトの名無しさん:2007/04/13(金) 23:59:04
俺は市立だったけど習ってないな
PC室はあったけどなんか変なゲームして終わった
427425:2007/04/14(土) 00:10:53
20年前だし、さすがにプログラムを習ったわけじゃなくて、やり方を
教わった後、実際に100までの素数をノートの上で求めたってことね。

今にして思えば、教わったのは方法(アルゴリズム)だけで、エラトステ
ネスのふるいという名前自体は、その時点では教わらなかったかも知れ
ない。
428デフォルトの名無しさん:2007/04/14(土) 00:29:42
(8101010100)16 = (A XOR (FFFFFFFF)16) XOR ((7EFEFEFF)16 + A)
をみたすAを算出しなさいってのがあるんだけど

解は複数あるらしいんだがどうやってやればいいんですかね
429デフォルトの名無しさん:2007/04/14(土) 00:38:37
すみません、質問があります。
次のように、符号付きchar型に0x80を代入しました。

signed char cHex = 0x80;
printf("HEX値 = %02x 10進数 = %d\n",cHex,cHex);

結果を,
HEX値 = 80 10進数 = -128
と期待していたのですが・・・結果は、
HEX値 = ffffff80 10進数 = -128
となりました。
ffffff80という結果は正しいのでしょうか?(ffffffって?)
ビルドした時、
  warning C4309: '初期化中' : 定数値が切り捨てられました。
と警告がでるのも気になります。
宜しくお願いします。
430デフォルトの名無しさん:2007/04/14(土) 00:48:24
>>429
引数に渡すとint型になるのと
%02xは、8ビット用じゃないからな。
431デフォルトの名無しさん:2007/04/14(土) 00:49:40
>>428
わからん。
マジ?
432デフォルトの名無しさん:2007/04/14(土) 00:57:49
>>428
上の桁を無視して、下の桁(もしくは2進数に変えて最下位ビット)から順番に
求めたら?
ただ、途中段階では繰り上がり分を無視する必要があるだろうけど。
433429:2007/04/14(土) 00:59:31
>>430
ありがとうございます。
%02xは、8ビット用でないのですね、なるほど。
>引数に渡すとint型になるのは、まだわかりません。
434デフォルトの名無しさん:2007/04/14(土) 01:06:49
>>433

signed char cHex = 0x80;
printf("HEX値 = %02x 10進数 = %d\n",cHex,cHex);

は、

signed char cHex = 0x80;
int tmp = cHex;
printf("HEX値 = %02x 10進数 = %d\n",tmp,tmp);

みたいな感じになっている。
435デフォルトの名無しさん:2007/04/14(土) 01:10:47
>>428
答えが見つからんぞ
436429:2007/04/14(土) 01:24:42
>>434
ありがとうございます。
一度、int型に変換されて処理されていたとは、
知りませんでした。
437デフォルトの名無しさん:2007/04/14(土) 01:27:10
>>435
+は論理和じゃないか?
それなら0か、8101010100のビット立ってる奴のどれでもになると思うが。
438437:2007/04/14(土) 01:34:44
つまり、本当の問題は、
(81010100)16 = (A XOR (FFFFFFFF)16) XOR ((7EFEFEFF)16 OR A)
(8101010100)16 = (A XOR (FFFFFFFFFF)16) XOR ((7EFEFEFEFF)16 OR A)
どっちかだと思うんだが。
439デフォルトの名無しさん:2007/04/14(土) 02:03:01
その条件で回したら何かニヤっと出来る数字が出てくるんだが…
総当りでいくよりいい方法とかあるのかなぁ
440デフォルトの名無しさん:2007/04/14(土) 02:51:46
とりあえず 8101010100 は 81010100 の間違いとして、(でないと解無し)
+ が OR の意味だとすると、
A XOR (7EFEFEFF)16 = A + (7EFEFEFF)16
と式変形すればすぐに答えが分かると思う。
7(0111)が1つと、E(1110)が3つあるから、答えは16通りあるんじゃないかな。
441デフォルトの名無しさん:2007/04/14(土) 05:09:28
さぁ、今年も去年みたいなありきたりなパターンの同じネタがくるんだろ?どーんとこい。
去年のうちにまとめておいたぜい。素数?フィボナッチ?順列組み合わせ?どーんとこい。
442デフォルトの名無しさん:2007/04/14(土) 09:41:05
A XOR B XOR B = Aという性質を使って式変形していくのかと思ったら
+があって目が点になった。
443403:2007/04/14(土) 10:05:51
すみません!遅くなりました。

>>421
ありがとうございます。
すみません…やっぱりいまいちよくわからなくて…
もしreturnを書かなかった場合どうなるんでしょうか?

if (n <= 0) {
printf ("正の整数\n");
return 1;
}
↑の場合returnで1が返されるんですよね?
どの関数に返されるのでしょうか?
444デフォルトの名無しさん:2007/04/14(土) 11:00:14
>>443
そのプログラムを呼び出したOSに戻る
445デフォルトの名無しさん:2007/04/14(土) 11:29:13
>>443
おじいちゃんがいる
おじいちゃんは「爪きり持ってきて」と孫(関数)を呼び出す
孫が戻ってくるまでおじいちゃんは動かない
孫が爪きり持ってくる(return)と またおじいちゃんが動き出す

おじいちゃんは「腹減った」とお嫁さん(関数)を呼び出す
(おじいちゃんから要求された仕事をお嫁さんが終えるまでおじいちゃんは動かなくなる)
お嫁さんは「大根がないから買ってきて」と孫(おじいちゃんから見た)を呼び出す
(孫が大根を買ってくるまでお嫁さんは動かなくなる)
孫が大根を買っててお嫁さんに渡すとお嫁さんが活動を再開(孫のお嫁さんに対するreturn)
お嫁さんが料理を持ってくる(お嫁さんのおじいちゃんに対するreturn)
おじいちゃんが食べ始める

return は呼び出した場所(正確には呼び出した関数の次の処理)に戻ること
「大根を渡す」や「料理を出す」といった値を伴ったreturn もあれば
おじいちゃんが孫を呼び出しTVでも見てこいと言う
(孫がTVを見終わるまでおじいちゃんは動かない)
孫はTVを見終わるとおじいちゃんの元へ戻る
おじいちゃんは動き出す
(おじいちゃんは孫から何も受け取らない.ただ孫がTVを見に行くという処理をしただけ)

こういう値を返さない return もある
446デフォルトの名無しさん:2007/04/14(土) 17:14:25
なげぇし変なたとえ
447デフォルトの名無しさん:2007/04/14(土) 18:15:54
ちなみにおじいちゃんがボケたり
お嫁さんが不倫して戻ってこなかったり
子供が途中交通事故にあい
448デフォルトの名無しさん:2007/04/14(土) 18:29:51
ツマンネ
449デフォルトの名無しさん:2007/04/14(土) 23:38:13
よろしくお願いします。

[1] 構文解析
[2]
#include<stdio.h>
int main(void){
int c;

while((c=getchar()) !=EOF){

if(isdigit(c))
puts("int ");
else if(c=='+')
puts("plus ")
else if(c=='-')
puts("minus ")
else
puts("? ")

}

return 0;
}

このプログラムを2桁以上の整数も認識できるものに書き換えよ。

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名:cygwin
 [3.3] 言語:C
[4] 期限:2007/04/17
[5] その他の制限: 特になし
450デフォルトの名無しさん:2007/04/15(日) 00:01:37
1文字先読みするか、ライブラリで1文字もどせばよかろ?
451デフォルトの名無しさん:2007/04/15(日) 00:03:16
452403:2007/04/15(日) 00:12:13
>>445
つまりreturnをしないと動かないということですか?
普段学校ではreturnを使わずにやるのですが、どうゆうことなんだろう…
453デフォルトの名無しさん:2007/04/15(日) 00:13:58
>>452
最後まで行けば勝手にreturnされる

・・・・・


・・・・・
return;

と同じ
454デフォルトの名無しさん:2007/04/15(日) 00:27:11
return (0);

とかカッコを書く人が居るんだけど、なんで?
455デフォルトの名無しさん:2007/04/15(日) 00:28:23
そうしなければならないと教えてる宗教があるから。
456デフォルトの名無しさん:2007/04/15(日) 00:33:43
[3.2] コンパイラ名:cygwin
出題者は意味ワカッテネー。

じゃあ、Cygwin上でsdccを使って解いてももいいんだな?
あと、その他の制限が無いってことは、標準ライブラリでなくてもいいんだな?
ツッコミ満載。

出題者の氏名所属を晒して欲しいぜマジで。
457デフォルトの名無しさん:2007/04/15(日) 00:35:10
 
458デフォルトの名無しさん:2007/04/15(日) 00:35:29
>>454
人のコーディングスタイルに疑問を持つと宗教戦争に発展する可能性があるので
そういう人もいるんだなあと思ってください。
459デフォルトの名無しさん:2007/04/15(日) 00:39:41
回答者さんたち作るの早すぎwwww
毎年やってるんすか?
460デフォルトの名無しさん:2007/04/15(日) 00:44:53
>452
あのな、教科書等はあるんだろ?一度位読めよ。

---------------
void func(void):この場合、引数も戻り値もなし。
int func(void):この場合、引数はなし。戻り値は型宣言である様にintをこの関数の予備元へ返す。

例えば…
#include <stdio.h>

int func(void)
{
int a;

a=0; /* aを0で初期化(初期値を色々と変えてみ) */
return(a); /* aを呼び元へ返す */
}

void main(void)
{
int ret;
ret=func();
printf("func()からの戻り値は%dです。",ret); /* ←ここで何が表示されるか見れ */
}

461デフォルトの名無しさん:2007/04/15(日) 00:48:01
[1] 授業単元:C
[2] 問題文
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3817.txt

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc?
 [3.3] 言語:C
[4] 期限: なし
[5] その他: よろしくお願いします。



462デフォルトの名無しさん:2007/04/15(日) 01:25:09
質問です。将来プログラマーで食べて生きたいのですが、
プログラムだけができても駄目なのでしょうか?教えてください
463デフォルトの名無しさん:2007/04/15(日) 01:34:56
>>462
マジレスするとスーパーハカー以外はこみゅにけーしょんのうりょくを求められる
464403:2007/04/15(日) 01:50:57
>>453
そうだったんですか!
でも何でreturn使うのですかね?
その人のやり方なんですかね?

>>460
ありがとうございます。
やってみます。
465デフォルトの名無しさん:2007/04/15(日) 02:04:18
>462
1位)体力
2位)発想力
3位)理解力(人のソースを読む事もあるからな)

…こう書くと、どの仕事にもあてはまるわなw
466デフォルトの名無しさん:2007/04/15(日) 02:05:25
人のソースより顧客の要求を理解するのに高いエスパー能力が要求されるな
467デフォルトの名無しさん:2007/04/15(日) 02:30:23
>>460
> void main(void)
なぁ〜〜〜にぃ〜〜〜!?やっちまったな!
ANSI、ISO準拠なら〜 void main はありえない
ANSI、ISO準拠なら〜 void main はありえない
468デフォルトの名無しさん:2007/04/15(日) 04:26:46
469デフォルトの名無しさん:2007/04/15(日) 05:03:34
遅かったか…まあいいや折角だし上げとこう
>>461
問1 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3820.c
問2 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3821.c

>>459
むしろこんな問題に何こんなに時間かけてんだよ俺orzってなれます
470462:2007/04/15(日) 06:00:40
>>462
レスありがとうございます。
コミュニケーション能力といわれましても、凄く曖昧なんですが、
どのようなコミュニケーションなんでしょうか?
また、スパーハカーならば必要ないのでしょうか?

>>465さんの言うことは何となくわかります。ただ、発想力というのがわかりにくいですね
どんな感じなんでしょうか?
471デフォルトの名無しさん:2007/04/15(日) 08:48:09
>>470
人の話を聞いて理解する、人に話して理解させるのがコミュニケーション能力
人の話を聞かないで理解するのがエスパー能力
そもそも理解する必要がないのがスーパーハカー
472デフォルトの名無しさん:2007/04/15(日) 10:51:51
SOHOのプログラマと、大企業のプログラマじゃ、必要なスキルはぜんぜん違うわな。
もっとも、大企業にはプログラマなんていう労働者はほとんどいないが。
473461:2007/04/15(日) 13:07:48
>>468-469
ありがとうございました。
474デフォルトの名無しさん:2007/04/15(日) 17:38:25
>>464
たとえばこんな関数
xが0以下でreturn がないと2つのprintfが実行される
でもreturn があるのでxが0未満(x<0)の時は「printf("0以上だ");」は実行されないようになる

void mufunc(int x)
{
 if(x<0)
 {
  printf("0未満");
  return;
 }
 printf("0以上だ");
       ←普通ここには return 文は入れない
}

値を返したいときはreturnを書くのは当然だが処理を途中で終わらせたい場合に return 文を挟み込む
仮に以下のようなコードだとreturn で処理が終了するので「printf("はげじゃねーよ");」は実行されない

void mufunc(int x)
{
 printf("禿げてますか?");
 return;  ←ここで終わるので、この関数においてはここより下は無視される
 printf("はげじゃねーよ");
}
475デフォルトの名無しさん:2007/04/15(日) 17:46:18
宿題というか、
ダイテル親子著のC言語プログラミングっていう本の問題なのですが、

【質問テンプレ】
[1] 単元:カードを切って配るシミュレーション
[2] 問題文:この節では、乱数生成を使ってトランプのカードを切って配るのを
        シミュレーションするプログラムを開発します。
[3] 環境
 [3.1] OS: Windows XP SP2
 [3.2] コンパイラ名とバージョン: BCC 5.5.1
 [3.3] 言語: C

で、答えは↓なんですが、
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3822.txt

関数を使うのとconst付けるのが面倒なので↓に改変して、
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3823.txt

これだと、分配するときに、次に配るカードが最初の検査で見つかっても
残りの部分まで検査してしまうので、↓に改変して見たところ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3824.txt

コンパイルは出来るのですが実行する時に
「問題が発生したため、card.exe (プログラム名)を終了します。」
という表示が出てしまいます。
関数をめんどくさがった俺への罰でしょうか?
教えて、エロイ人!!
476デフォルトの名無しさん:2007/04/15(日) 17:49:54
>>474
> void mufunc
>>460
にしろ突っ込みどころ満載。初心者は黙っていた方がよいよ
477デフォルトの名無しさん:2007/04/15(日) 17:57:51
>>475
オマイ、やる気あるのか、ないのかw
478デフォルトの名無しさん:2007/04/15(日) 18:00:41
>>475
const char *suit[4] = {"ハート", "ダイヤ", "スペード", "ミツバ" };
三つ葉だけ日本語?しかもスーツの強弱の順番違うしw
479474:2007/04/15(日) 18:01:16
>>476
なんでだ?
まさかmyfuncの間違いとでも思っているのか?
なら考えを改めたほうがいいな
mufuncはな
Migikarakitamonowo hidarihe Ukenagasu Function だ
(右から来たものを   左へ   受け流す)
480474:2007/04/15(日) 18:05:56
すみませんでした
481デフォルトの名無しさん:2007/04/15(日) 18:06:52
>>475
breakはループひとつしか抜けられない。
482デフォルトの名無しさん:2007/04/15(日) 18:07:06
今日は文句言う人しかいません
483デフォルトの名無しさん:2007/04/15(日) 18:16:37
おっエロイ人ありがとう!

>>477
ぁぁ。犯る気まんまんだ…

>>478
ごめん、その辺は俺が勝手に考えたので
三つ葉の英語が解らんかっただけww
すまんが、スーツの強弱とはなんでつか?

>>481
サンクス。俺のケツに小便してもいいぜ
484デフォルトの名無しさん:2007/04/15(日) 18:17:25
>>483
スペード、ハート、ダイア、クラブ 左から強い順になる
485デフォルトの名無しさん:2007/04/15(日) 18:18:01
ちとテスト
♠ ♥ ♦ &clubs
486デフォルトの名無しさん:2007/04/15(日) 18:23:28
>>484
なるほど。俺のおっぱい揉めよ。

>>485
それは暗にclubを教えてくれてるのかい
おk。お礼をしなきゃな
ちょっとトイレへ来てくれ
487デフォルトの名無しさん:2007/04/15(日) 18:24:27
>>486
♣ ; を付け忘れただけだw
488デフォルトの名無しさん:2007/04/15(日) 18:25:30
どうでもいいけどなんで終了するのか理解できたのか?
489デフォルトの名無しさん:2007/04/15(日) 18:28:03
>467
ANSI、ISO準拠なら〜 void main はありえない

…何処にその制限が書かれている?寝言は寝てから言え。ばかたれw

もしかして、お前の環境ではエラーでも出るのか?
もしそうなら、そのコンパイラは直ぐ捨てた方が良いな。
490デフォルトの名無しさん:2007/04/15(日) 18:30:22
>>489
このスレの過去ログにちゃんとその理由が述べられているのだがw
お前みたいな自立環境の奴は論外だからw
491デフォルトの名無しさん:2007/04/15(日) 18:32:00
正直もうvoid mainはどっちでもいいよ
専用のスレ作ってそこで議論してきてくれ
492デフォルトの名無しさん:2007/04/15(日) 18:32:47
おや懐かしい流れ
また再発ですかな?
493デフォルトの名無しさん:2007/04/15(日) 18:35:39
>>88-145
>>115 >>120 >>123 辺りで結論は出てんだよ。あくまでもANSI、ISO準拠によるmain関数は
って話だぞ。一部の自立環境を使っている奴には、必ずしもmain関数から始まる環境でなきゃ
mainの取り扱いそのものが違うんであしからず。あと、明らかに報告されていることも踏まえて
int mainが幅広い環境で通用するという結論が出ているんで、あしからず。
494本年度のバカ第一号wwwww:2007/04/15(日) 18:36:57
489 名前:デフォルトの名無しさん 投稿日:2007/04/15(日) 18:28:03
>467
ANSI、ISO準拠なら〜 void main はありえない

…何処にその制限が書かれている?寝言は寝てから言え。ばかたれw

もしかして、お前の環境ではエラーでも出るのか?
もしそうなら、そのコンパイラは直ぐ捨てた方が良いな。
もしそうなら、そのコンパイラは直ぐ捨てた方が良いな。
もしそうなら、そのコンパイラは直ぐ捨てた方が良いな。
もしそうなら、そのコンパイラは直ぐ捨てた方が良いな。
もしそうなら、そのコンパイラは直ぐ捨てた方が良いな。
もしそうなら、そのコンパイラは直ぐ捨てた方が良いな。
↑お前みたいなvoid mainを通しちゃう自立環境こそ捨てろw
495本年度のバカ第一号wwwww:2007/04/15(日) 18:38:56

…何処にその制限が書かれている?寝言は寝てから言え。ばかたれw

…何処にその制限が書かれている?寝言は寝てから言え。ばかたれw

…何処にその制限が書かれている?寝言は寝てから言え。ばかたれw

…何処にその制限が書かれている?寝言は寝てから言え。ばかたれw

…何処にその制限が書かれている?寝言は寝てから言え。ばかたれw

…何処にその制限が書かれている?寝言は寝てから言え。ばかたれw

ANSI、ISO準拠ではint mainが標準というのは
http://c0x.coding-guidelines.com/5.1.2.2.1.html
5.1.2.2.1 Program startup
496デフォルトの名無しさん:2007/04/15(日) 18:38:56
voidvoidっていい加減にしないと噂のK様呼ぶぞ?
497デフォルトの名無しさん:2007/04/15(日) 18:40:17
自立環境を認めるようになってるw
498デフォルトの名無しさん:2007/04/15(日) 18:40:23
160 The function called at program startup is named main.
main関数から開始
162 It shall be defined with a return type of int and with no parameters:
int main(void) { /* ... */ }
↑が核心をついてますね。int型決定w
499デフォルトの名無しさん:2007/04/15(日) 18:43:26
ただ、あのときはフリースタンディング環境というのもまたISOで
定義されているものだ、てことをいまいち理解できてない香具師も
いた気がする。
500デフォルトの名無しさん:2007/04/15(日) 18:46:36
>499
名前欄で自己紹介してる奴は全く理解してなかったな。
501デフォルトの名無しさん:2007/04/15(日) 18:51:41
120 名前:デフォルトの名無しさん 投稿日:2007/03/31(土) 12:28:40
http://his.luky.org/ML/linux-users.a/msg00056.html
こういう報告もされています。ゆえに、void mainが幅広く通用しないという
明らかな証明もされちゃいましたね(^ー^)b

123 名前:デフォルトの名無しさん 投稿日:2007/03/31(土) 12:33:28
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200211/02110028.txt
にもint mainが標準的でそれ以外は環境によるとの報告もあり!
void mainを書く君、さぁ、職員室まで!教頭先生がウン○形したメダルをくれますよ?w
502デフォルトの名無しさん:2007/04/15(日) 18:54:58
まあそれで宿題丸投げしたヤツが減点されても何の問題もないしいいんでないの
実害がないどころかまがいなりにも宿題提出できるんだから
たとえ明らかな手抜きの部分があったとしても文句言える立場じゃないでしょう
さすがに入門書でvoid mainなんて使ってたらげんなりするけど
503デフォルトの名無しさん:2007/04/15(日) 18:55:59
500 名前:デフォルトの名無しさん 投稿日:2007/04/15(日) 18:46:36
>499
名前欄で自己紹介してる奴は全く理解してなかったな。
504デフォルトの名無しさん:2007/04/15(日) 19:21:40
>>462
>>467- で、void mainは規則違反だとか言っている人間をよく見てやってくれ。
コミュニケーション能力の無いプログラマが、どれだけ問題あるかよくわかるだろ?

困ったら最後はコピペしかできないなんて……
505デフォルトの名無しさん:2007/04/15(日) 19:26:18
http://c0x.coding-guidelines.com/5.1.2.2.1.html
160 The function called at program startup is named main.
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
「プログラム開始」のライブラリを main と定義するんであれば
int mainで幅広く通用するって話だろ。どこがプログラムの開始か
決まっていない環境じゃ開始の返り値の型は定義されてないのは言うまでもない。
自分で決めるんだし。
506デフォルトの名無しさん:2007/04/15(日) 19:26:20
ほんと、コミュニケーション能力を身につけて
スレ違いに気が付いてほしいよ
507デフォルトの名無しさん:2007/04/15(日) 19:29:03
コミュニケーションもそうだが、何かと世界基準は英語の文献を読むんで
英語力も大事w
508デフォルトの名無しさん:2007/04/15(日) 19:34:53
>>467
>void mainは規則違反だとか言っている
違反とは書いてない。ちゃんと前に ANSI、ISO準拠なら って断ってあるじゃん。
どっちが理解力がないんだよ?w
509デフォルトの名無しさん:2007/04/15(日) 19:54:10
>>508
コミュニケーション能力≠理解力
だめだなこりゃ... 続きはこっちでやれよ。

【粘着野郎は】void mainでもいいだろ、常識的に考えて【キモすぎ】
ttp://pc11.2ch.net/test/read.cgi/tech/1175137007/29
510デフォルトの名無しさん:2007/04/15(日) 19:58:06
え?
コミュニケーション=理解力って思ってる人がいたの?
511デフォルトの名無しさん:2007/04/15(日) 20:05:26
相手の言っていることを理解せずしてどうやって 意思や感情、情報を伝え合うこと が出来るんだ?w
http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3
自分の都合の良い意見を言い合うことが出来る、なぁなぁないい加減な仲間意識こそコミュニケーションか?
低レベルな人間のコミュニケーションは困るぜ
512デフォルトの名無しさん:2007/04/15(日) 20:07:53
>>504は理解力が無い
>>467はコミュニケーション能力が無い
513本年度のバカ第二号wwwww:2007/04/15(日) 20:08:38
504 名前:デフォルトの名無しさん 投稿日:2007/04/15(日) 19:21:40
>>462
>>467- で、void mainは規則違反だとか言っている人間をよく見てやってくれ。
コミュニケーション能力の無いプログラマが、どれだけ問題あるかよくわかるだろ?

困ったら最後はコピペしかできないなんて……
514本年度のバカ第三号wwwww:2007/04/15(日) 20:09:41
>>512
>>467のどこをどう見たらコミュニケーションになるんだよ?w
ANSI、ISO準拠をした時点でコミュニケーション能力まで問われるのか?w
515デフォルトの名無しさん:2007/04/15(日) 20:24:44
int main(int argc, char **argv){
char a*="The sun shine.";
puts(&8[a]);
return 0;
}
516デフォルトの名無しさん:2007/04/15(日) 20:29:01
error: syntax error before '*=' token
517デフォルトの名無しさん:2007/04/15(日) 20:31:28
char *a = "The sun shine.";
ダタ
518デフォルトの名無しさん:2007/04/15(日) 21:07:35
>>515 >>517 実行結果通りにするのはオマエガナー
519デフォルトの名無しさん:2007/04/15(日) 21:11:26
もう一箇所syntax errorあって、正しくは "The sun shines." だと思うんだけどどうよ?
520デフォルトの名無しさん:2007/04/15(日) 21:14:35
さて、職業PGにmain関数の戻り値で議論してる暇など無いという事を
学び取って欲しい>ITを目指す学生諸君
521デフォルトの名無しさん:2007/04/15(日) 21:16:47
十分暇な奴らたくさん居るみたいだがな
522403:2007/04/15(日) 21:18:10
>>474
なるほど!
わかりやすくありがとうございます!
523デフォルトの名無しさん:2007/04/15(日) 21:19:31
>>520
そうだよ、議論する必要すらない。ANSI、ISO準拠ならプログラム開始の関数はmainと定義されていて
その戻り値はint型と定義されているって話だから。こういったことを定めている団体が存在して
その仕様書に目を向ける頭を持てば、つまらない議論は起きないんだよ。
524デフォルトの名無しさん:2007/04/15(日) 21:20:57
さらに、自分の環境ではvoid mainでも通じるから、それが通じない環境はとバカにする奴は論外。
お前の環境下で書かれたコードが幅広く通用するものじゃないという自己紹介も不要だし。
525デフォルトの名無しさん:2007/04/15(日) 21:35:46
ITを目指す学生はこんなところ見てないぜ
就職活動中だけど
文系でもOKってとこがおおくて
普通に大学名で負けて文系に仕事奪われてる
あんたの会社でもいるだろプログラミングしたことないクソ文型が
526デフォルトの名無しさん:2007/04/15(日) 21:37:53
俺の職場にはそんな糞いないわ
527デフォルトの名無しさん:2007/04/15(日) 21:39:36
完全にスレ違いだから、別スレで議論してろよ。邪魔だから。
528デフォルトの名無しさん:2007/04/15(日) 21:44:36
>>527見たいな事を言う奴に限って、ここでまともなソースを書いてレスしてないんだぜw
お前こそ黙ってろよ、クソなソースで邪魔だからw
529デフォルトの名無しさん:2007/04/15(日) 21:51:14
>ここでまともなソースを書いてレスしてないんだぜ
変な日本語
530デフォルトの名無しさん:2007/04/15(日) 22:00:57
あおりの程度が低いな
言葉ぐらい自分でおぎなえよ・・
下手なこといって論破されるのが怖いんだろうな・・・
そーやって業務でも分からない関数はほったらかしてそう・・・
531デフォルトの名無しさん:2007/04/15(日) 22:01:56
>>528
PowerShellでおk。
532デフォルトの名無しさん:2007/04/15(日) 22:04:57
えぇーでもmufuncって書いた人がたたかれてましたぁ(´・ω・`)
変な日本語はよくてyとuを間違えるのはいけないことですかぁ?
分からない関数はほったらかすってどういう意味ですかぁ?
533デフォルトの名無しさん:2007/04/15(日) 22:07:36
>>529
んじゃお前がまともな日本語で書き直せよ、JIS準拠で頼むぜ?w
534デフォルトの名無しさん:2007/04/15(日) 22:08:26
>>528
じゃあ、あんたのソースコードってどれ?
535デフォルトの名無しさん:2007/04/15(日) 22:09:40
>>529みたいにさぁ、ここが変だとしか言わない奴に限って、自分の判断基準や価値観が変だったりするんだよなw
だったらお前が正しい、適切だと思うものを提示しろって話になるぞ?過去にさんざん、回答者のソースを
批判した奴が、それじゃお前が書いてだせよって言われ続けてきてんだしw
536デフォルトの名無しさん:2007/04/15(日) 22:10:09
他人の尻拭いなんてまっぴら
537デフォルトの名無しさん:2007/04/15(日) 22:10:43
>>534
その前にあんたのソースコードってどれ?あんたのここでのレスってどれ?
まともな日本語か判断してやるから、お前が書いたレスに全部アンカーつけて示してくれ。
こっちには身内に日本の国語の教員がいるんで、判断してもらうからw
538デフォルトの名無しさん:2007/04/15(日) 22:10:49
>他人の尻拭いなんてまっぴら
ならロムるだけにしとけよ
ここは他人の尻拭いをするとこだ
邪魔だ書き込むな
539デフォルトの名無しさん:2007/04/15(日) 22:12:03
>>535
同意が欲しいわけ?
同情が欲しいわけ?
スレ違いな話はどうでもいい
540デフォルトの名無しさん:2007/04/15(日) 22:14:09
>>537
おっとここで会話が成り立たないアホが一人登場〜
質問に質問で返すと テスト0点になるの知ってたか?マヌケ
541デフォルトの名無しさん:2007/04/15(日) 22:16:02
ご覧のような愉快な仲間たちが宿題に答えてくれるスレです。
542デフォルトの名無しさん:2007/04/15(日) 22:17:46
>>537
そういう人いるよね
俺の知り合いは〜なんだ、すごいだろ〜w
543デフォルトの名無しさん:2007/04/15(日) 22:17:51
>>537
それはよかった!!
>こっちには身内に日本の国語の教員がいるんで、判断してもらうからw

>>527見たいな事を言う奴に限って、ここでまともなソースを書いてレスしてないんだぜw
お前こそ黙ってろよ、クソなソースで邪魔だからw

この文章見てもらえ。

544デフォルトの名無しさん:2007/04/15(日) 22:18:26
ご 覧 の よ う な 愉 快 な 仲 間 た ち が 宿 題 に 答 え て く れ る ス レ で す 。
545デフォルトの名無しさん:2007/04/15(日) 22:18:30
>>541
あい
とてもいいスレですね
546デフォルトの名無しさん:2007/04/15(日) 22:19:45
お前はお前はと、何かと他人のことをどうこう言うやつに限って、自分に自身がない
あるいは自分が間違えていても、言う相手が他に間違えていることがあれば
その間違いはお前に指摘されるもんでもないどころか、お前が言うようじゃ俺の方が正しい
みたいな錯覚に陥るんだよな。それが視野の狭い井の中の蛙な人間の考え。
ANSI、ISO、JISが何なのか知らずに、それらの基準で作られたものを使っているのに
俺はその基準は知らない、そんな基準あるのかよ?みたいなことを言い出すから困る。
ANSI、ISO準拠ではプログラムの開始はmain関数と定義されていて、その関数の戻り値はint型
547デフォルトの名無しさん:2007/04/15(日) 22:20:33
>>546
おあそみA俺A?ギブアップ。
548デフォルトの名無しさん:2007/04/15(日) 22:22:02
>>546
学校の宿題で出されている以上、そのレベルでの回答が求められている。

過剰品質で納品しないで下さい。別に誰も望んでいませんから。
549デフォルトの名無しさん:2007/04/15(日) 22:22:15
>>547
世界的な標準も知らない田舎物は首都圏にも都心にも出てくるなよ、迷惑だからw
どうせ道路交通法もお前の自治区だけ別物なんだろ?右側通行しないでくれ。
それは世間一般じゃ逆走だからw
550デフォルトの名無しさん:2007/04/15(日) 22:26:00
>>546
国語教師に日本語見てもらった方がいいですよ?

それから結局自分が書いたコードがどれだったのか教えて下さい。
色々お勉強されているようですので、参考にさせて頂きますよ、色々ね。
551デフォルトの名無しさん:2007/04/15(日) 22:26:15
>>549
日本にそんな地区があったんですか?
初めて知りました.物知りですねw
552デフォルトの名無しさん:2007/04/15(日) 22:26:39
っつーか、本当にANSI、ISOとか知らんの?まさか、HTMLでもソース、タグを書く際に
W3C準拠を無視して書いている奴が多いのか?これだから世に変なものが氾濫するんだな・・・
どうせ英語が読めないからって思っているのかもしれんが、日本語に訳された文献があるから
そっちに目を通せ。あっ、ここにいる日本語の理解できない奴は在日か?それじゃ日本語じゃなくて
母国語で訳されたものを参照してくれ。
553デフォルトの名無しさん:2007/04/15(日) 22:27:03
>>549
左側通行は世界的な標準じゃないけどな
554デフォルトの名無しさん:2007/04/15(日) 22:28:25
>>551
かなり前になるが、沖縄がアメリカの領地、支配下であったときは
それで一時期問題になったようだが、今は沖縄も日本のルールだよ?
まぁ、どこに属しているかはともかく、ANSI、ISOは世界で使われている標準なんであしからず。
まさか、お前の使っているCD-ROMドライブだけ、ISO準拠のCDが読み出せない
お前が独自に作った固有の仕様、設計のディスクしか読み出せないものじゃなかろうな?w
555デフォルトの名無しさん:2007/04/15(日) 22:29:27
>>553
道路交通法に世界基準があるとは言ってないが?
むしろ全世界では右側通行が多いんだが、それに日本で従う奴がいるか?w
どういう基準が良いのではなく、何が基準か?で判断できない奴が困るんだよ。
郷に入っては郷に従え
556デフォルトの名無しさん:2007/04/15(日) 22:30:22
>>552
自分ではそこまで乱れた日本語を使っておいて、
他人には厳しいんですね、いや、素晴らしいとしか褒め様がありません。

>俺はその基準は知らない、そんな基準あるのかよ?みたいなことを言い出すから困る
この発言はどこを指摘してますか?
557デフォルトの名無しさん:2007/04/15(日) 22:30:48
ただ今炎上中なので、宿題は「C言語なら俺に聞け(入門編)」などであたかも宿題じゃなさそうに訊ねてください(w
558デフォルトの名無しさん:2007/04/15(日) 22:32:07
ここで標準的な基準に従うことを拒むどころか、それを否定して自分ルールを押し切る奴は
非社会適合者決定だな。さまざまな人と関わる世の中じゃそれは通用しない。
通用しているのは、一部の小さな集団
559デフォルトの名無しさん:2007/04/15(日) 22:33:22
そーいや学校じゃこのことどう教えてるんだろ・・・
560デフォルトの名無しさん:2007/04/15(日) 22:39:05
この規格大好きな方は、他人には文句を言う割に、
自分ではソースコードを書いてないんですかね?
561デフォルトの名無しさん:2007/04/15(日) 22:39:38
>>554
えぇ〜ISO準拠のCDが読めないものでもCD−ROMドライブって言うんですかぁ?
562デフォルトの名無しさん:2007/04/15(日) 22:44:18
>>558
×非社会適合者
○社会不適合者

また自分ルールの押し付けですか?
563デフォルトの名無しさん:2007/04/15(日) 22:45:54
>世界的な標準も知らない田舎物は首都圏にも都心にも出てくるなよ、迷惑だからw
>どうせ道路交通法もお前の自治区だけ別物なんだろ?右側通行しないでくれ。
最初から日本の標準と言えばいいのに
564デフォルトの名無しさん:2007/04/15(日) 22:56:08
こいつは社会に適合できていない
これは由々しき問題と言い放つ
そうやってルールを強制し
ルールを守れないものを制裁の名目で大量虐殺していくんだ
ママ〜こわいよぉ〜
565デフォルトの名無しさん:2007/04/15(日) 22:59:33
>>467はANSI、ISO準拠ではと断っているのに・・・
そうでない奴がどうとか言う話じゃなかろうにw
けど、void mainは確実に幅広い環境で通用しない固有の環境だろ。
566デフォルトの名無しさん:2007/04/15(日) 23:03:28
ここまで全部俺の自演
567デフォルトの名無しさん:2007/04/15(日) 23:04:02
まあ、この規格大好きっこに対する率直な感想を言わせてもらう。

こいつは、自分自身に価値を見いだせていない。
何かしらの権力にしがみ付くことでアイデンティティを保持している。
他人に批判された場合には、その権力を盾に、時には矛に反論を行うことで、
自分まで攻撃が達しないように身構えている。
だが、本人自身が何か結果を残したのか、と問われると何もできていない。

他人とうまく協調できないことは、他人の所為とする傾向が強い。
この場合でもあくまでも他人は規則を守っていないことを原因と見ることで
自己に責任を及ばない視点で物事を見る。

他人に対する批判の大半は、深層意識下での自分への反省に繋がっている。
568デフォルトの名無しさん:2007/04/15(日) 23:04:49
>>565
はい
でもこのスレで使うものが「幅広い環境で通用しない固有の環境」ではいけないととも思いません
テンプレに「[3] 環境」欄があるということは環境依存でもいいんじゃないかと
少なくとも上記環境で動くことが目的では?
とはいえ、いずれ羽ばたくであろう若人にとっては幅広い環境で通用するものの方がいいことも確かだと思います  よぉ〜
569デフォルトの名無しさん:2007/04/15(日) 23:06:17
>>567
俺はもぅ反省の荒らしですぅ
570デフォルトの名無しさん:2007/04/15(日) 23:07:44
>>145
145 名前:デフォルトの名無しさん 投稿日:2007/03/31(土) 13:24:34
まぁ、このスレ的にvoid mainは今後スルーな。書いているやつがいたら
国際基準を無視した自立環境を遣っているということで(・∀・)ニヤニヤしてあげましょうねw
571デフォルトの名無しさん:2007/04/15(日) 23:19:00
>>568
羽ばたくであろう若人だったら、こんな丸投げスレには来ないだろうな。
提出日に間に合えば、別に自分が中身を理解していなくても良いなんて考えているから
他人に丸投げできるんじゃないのか?

それでも、答える側としては、質問者が理解できるように、簡潔なコードを目指してる、とだけ捕捉させてもらう。

あと、俺に言わせればmain関数内でreturn 0;と書かせている時点で、
学校のC言語は"まあ、その程度"として割り切るようにしている。
572デフォルトの名無しさん:2007/04/15(日) 23:59:55
void main(void)ってだめなの?

そういえば、mainになんで返り値があるのかわかりません。
どうして?
573デフォルトの名無しさん:2007/04/16(月) 00:01:46
>>572
main も関数だから
スタートアップコードから呼ばれたりします
574デフォルトの名無しさん:2007/04/16(月) 00:03:35
スタートアップコード??
575デフォルトの名無しさん:2007/04/16(月) 00:06:28
>>572
だめとは言わないが、ANSI、ISO準拠ではプログラムの開始はmain関数と定められていて
その主体となるmain関数の戻り値はintとなっているってこと。別にANSI、ISO準拠で書かなくても
誰も文句は言わないよ。ただ、void mainではコンパイルエラーを起こす開発環境があるという
報告は聞くが、int mainでエラーを起こした環境があるという報告はされていないっぽい。
576デフォルトの名無しさん:2007/04/16(月) 00:22:55
>>574
あのねあのね、なんだか釣りっぽくみえるけど答えちゃうね。
パソコンがー、動くときって、全然わからないと思うけどいろーんな仕事をしてるのね。
たとえばー、ウインd−ズが動くときだってキーボウドとかテレビとかうごかすのに
1分とかかかるよ。そしたら準備できた、やっとCとかで作ったプロぐらむが動けるの。

そしたら、574君のプロぐらむもうごけるんだけど
プロぐらむをダブクリリっくをしたらウインドーソが「574訓のプロぐらむうごけー!」って
めーれーするのだ。すごいだろう。
このめーれーが、スターつアップコードだにょろ。
577デフォルトの名無しさん:2007/04/16(月) 00:29:46
>>574
んじゃ僕も釣りだと思うけど言いますね
プログラム動かすときに自分で宣言した変数を初期化とかするじゃないですかぁ
でそのプログラム自体を初期化するのは誰がやってくれますかぁ?
DLLへの静的リンクとかぁ
そういう初期化してくれるのがスタートアップコードですぅ
578デフォルトの名無しさん:2007/04/16(月) 01:25:59
>>525
文系OKというのと、学部は不問というのが多い(というか全部)だね。
IT業界への就職活動は地獄だぜ。
逆に>>526の会社の詳細が知りたい。
579デフォルトの名無しさん:2007/04/16(月) 02:06:47
俺含め元フリー数人で立ち上げた、社員20人程度の零細ソフト屋。
素性のわからん若者は採らんことにしてるので、ものすごい馬鹿はおらんです。
580デフォルトの名無しさん:2007/04/16(月) 02:09:18
数学なんて定石があるんだから、まずそれを理解して導くべき答えに応じて
適切に使うアルゴリズムを用いることが出来ないような奴は勘弁だな。
おかしな、固有の環境下でしか通用しないソースは本当に困るから。
581デフォルトの名無しさん:2007/04/16(月) 03:40:17
>579
スレタイ読めないものすごい馬鹿がいるみたいだけど?
>580
スレタイ読めない馬鹿のほうが困るだろ。
582デフォルトの名無しさん:2007/04/16(月) 03:48:06
>>581
お前みたいにろくにまともなソースも書かずに答えもしない馬鹿がくるところじゃねーんだが?wwwww
師ねよ、そういうことで煽る低学歴
583↓こいつもスレタイが読めていないバカ:2007/04/16(月) 03:48:56
581 名前:デフォルトの名無しさん 投稿日:2007/04/16(月) 03:40:17
>579
スレタイ読めないものすごい馬鹿がいるみたいだけど?
>580
スレタイ読めない馬鹿のほうが困るだろ。
↑こういう書き込みもスレタイが読めていない証拠だろw
しかもまだレスがない宿題があるのに、そっちに答えていない書き込みで煽るバカw
584デフォルトの名無しさん:2007/04/16(月) 03:49:51
>>581=void mainを何が何でも押し切ろうとするキモメンメガネデヴピッツァw
そんな細かいことだけを気にする性格だからモテないんだよw
585デフォルトの名無しさん:2007/04/16(月) 04:07:17
>>582-584
落ち着けw
586デフォルトの名無しさん:2007/04/16(月) 04:15:50
落ち着けるかーい!この俺様、モテメンコンタクトガリヤセが煽られたんだぞ?
しかも日ごろはここで まともなソースを書いて レスをしているというのに。ゆっ、許せん!
絶対につきとめて俺のナニをアヌスにぶち込んでやる!
587デフォルトの名無しさん:2007/04/16(月) 04:46:41
>>575
ありがとうございます。スタートアップコードとの関連で疑問をもちました
>>576>>577
答えてくれてありがとう。
でも、イマイチわかりません。DLLとのリンク?今までやったことないです。
ダブルクリックで立ち上がるプログラムも作ったことないし・・
588デフォルトの名無しさん:2007/04/16(月) 04:49:51
こんな時間にレスかい、ご丁寧にw
589デフォルトの名無しさん:2007/04/16(月) 06:47:09
>>582 >>583
また変な日本語... 全部釣りだよな?

×お前みたいにろくにまともなソースも書かずに答えもしない馬鹿がくるところじゃねーんだが?wwwww
○お前みたいに、まともなソースも書かない、答えもしない馬鹿がくるところじゃねーんだが?wwwww
○お前みたいに、まともなソースで回答しない馬鹿がくるところじゃねーんだが?wwwww

×しかもまだレスがない宿題があるのに、そっちに答えていない書き込みで煽るバカw
△しかもまだレスがない宿題があるのに、そっちに答えずに煽るバカw

こうですか、わかりません><

>師ねよ、そういうことで煽る低学歴
「そういうこと」がさしているものは何?

これ、天然でこういう文章書いているとしたら……恐ろしい子!!
590デフォルトの名無しさん:2007/04/16(月) 06:51:17
>>589
お前が日本語がダメなことはよーく分かった。自分が理解出来ないことを他人のせいにする
それが頭の悪い証拠。論より証拠って言うだろ?お前がソースコードを書いて自分は出来るところを見せろ。
それが出来ないならお前はこのスレには本当に要らない子。そういうつまらない煽りレスしかしない時点で
お前もスレタイが読めていない文盲か在日決定だなw
591デフォルトの名無しさん:2007/04/16(月) 06:53:44
>>589
っつーかこうじゃね?
まともなソースもろくに書かずに、宿題に答えもしない

http://dictionary.goo.ne.jp/search.php?id=2090100-0000&kind=jn&mode=5
> 下に打ち消しの語を伴って
592デフォルトの名無しさん:2007/04/16(月) 06:53:46
>>589
>こうですか、わかりません><

わからないのかよwwwww
593デフォルトの名無しさん:2007/04/16(月) 06:56:12
>>592
スレタイと日本語読めますか?gdgd言ってねーでソースを書いて示せよ?w
何かルールに従っていない奴を見ては叩く、そういう子供じみたガキっぽい大人を見かけると恥ずかしいよw
594589:2007/04/16(月) 06:56:37
個人的には>>575でいいと思う。

質問者が受けている授業がANSI、ISO準拠で行われているとは限らないんで、柔軟対応でいいだろ?

もし質問者に教えている教師が、main関数の型に執着する人間だったら、
回答をもらった後、提出前に質問者が直せばいい話。
595デフォルトの名無しさん:2007/04/16(月) 06:58:31
ANSI、ISOという団体もろくに知らずにC言語やってんのかよ?これだからいつまでも粘着して噛み付いてくる
キモメンメガネデヴピッツァは困るよw オマケにいつまでもvoid mainを押し切ろうとする態度、きんもぉ〜〜☆
結論が出てんだからgdgd言ってねーで認めろよ、void mainが気持ち悪いコードだといういうことをw
596デフォルトの名無しさん:2007/04/16(月) 07:03:40
お前ら朝生板池
597デフォルトの名無しさん:2007/04/16(月) 07:03:56
相手の揚げ足を取ろう取ろうと思っている奴ほど、つまらないことで墓穴を掘るから困るぜ (;´д`)
ぐだぐだ言っているくらいなら、宿題に答えるソースコードを書いてから反論しろ。
でなきゃお前こそスレタイが読めていない在日決定とするぞ?こっちは日ごろっから
宿題に答えてやってんだから、それなりの発言はするからな。スレタイが読めていないと叱責するくらいなら
お前がまずソースコードを書いた上で反論しろ。それでも無駄だけどな。
すでにint mainについてはこのスレの過去ログで結論が出てしまっているんだから。
どんな揚げ足を取っても無駄。int mainでコンパイルエラーを起こすコンパイラの報告は皆無だが
void mainでエラーを起こす報告はいくつか挙げられているからね。
598589:2007/04/16(月) 07:08:21
>>590
>お前が日本語がダメなことはよーく分かった。
え???まさか自分の日本語の方が正しいと思ってるの?

>自分が理解出来ないことを他人のせいにする それが頭の悪い証拠。
>お前がソースコードを書いて自分は出来るところを見せろ。
>それが出来ないならお前はこのスレには本当に要らない子。
まさしく、お前が言うな、だな。

>そういうつまらない煽りレスしかしない時点で
>お前もスレタイが読めていない文盲か在日決定だなw
さりげなくカミングアウトするのはやめてくれよ……
お前と違って俺は文盲でもないし、在日でもどっちでもない。
599589:2007/04/16(月) 07:13:17
>>597
△ぐだぐだ言っているくらいなら、宿題に答えるソースコードを書いてから反論しろ。
○ぐだぐだ言っているくらいなら、(ソースコードを書いて)宿題に答えてから反論しろ。

意味がわからないでもないが、日本語としてはおかしいだろう。

>こっちは日ごろっから 宿題に答えてやってんだから、
>それなりの発言はするからな。
日頃から宿題に答えていようと、スレを荒らしても良いということにはならないのでは?
600デフォルトの名無しさん:2007/04/16(月) 07:20:03
たとえ宿題に答えるソースコードを提示して反論しても、void mainをANSI、ISO準拠とは主張は出来ない。
なぜなら、ANSI、ISOに対してvoid mainを標準化してくれ!と要望しなければ無駄だからw
ここで何を主張しても、定義を覆すことは出来ない。自分で定義したものを世界基準にしたいなら
どうぞ国際的なルールを定める団体の一員になって、その場でこれを標準化してくれ!と提案してきてくれ。
所詮こんなところにいるジャポネーゼパンピーなんぞに標準化を決める権限などないのだからw
601デフォルトの名無しさん:2007/04/16(月) 07:26:45
しゅ、宿題は? ねえ、宿題は、で、出たの??
602デフォルトの名無しさん:2007/04/16(月) 07:29:22
int mainをANSI、ISO準拠で使っている奴の中に、変な日本語を使う奴がいて
そいつの日本語を訂正できてもvoid mainがANSI、ISO準拠にはならないから、せいぜい吠えてろw
603デフォルトの名無しさん:2007/04/16(月) 07:34:37
良いでちゅか?日本語は理解できるようだけど
↓の英語が理解できないんじゃ世界じゃ通用しねーんだよw
http://c0x.coding-guidelines.com/5.1.2.2.1.html
160 The function called at program startup is named main.
161 The implementation declares no prototype for this function.
162 It shall be defined with a return type of int and with no parameters:
int main(void) { /* ... */ }
163 or with two parameters (referred to here as argc and argv, though any names may be used, as they are local to the function in which they are declared):
int main(int argc, char *argv[]) { /* ... */ }
引数が無いならint main(void)、引数があるなら実行コマンドの後ろに記述をして実行し
int main(int argc, char *argv[])の括弧の中の指定で受け取るんだよ、分かったかね?
日本語は変なおじさんでもこれくらい理解してまつよ?英語でねw
604デフォルトの名無しさん:2007/04/16(月) 07:36:35
>>599
ぜんぜん訂正になってないな。俺の身内の日本語の国語の教師に採点してもらったけど
それだと満点は無理だってさw 自身があるようでお前もダメだな。所詮低学歴くらいだろ
こんなスレを見るのは。
605589:2007/04/16(月) 07:41:41
>>604
×自身
○自信

おいおい... しっかりしろよ。
606デフォルトの名無しさん:2007/04/16(月) 07:42:30
>>599
ソースコードを書くことが宿題に答えるとは限らないんだが?
宿題の答えとなるソースコードを書けよw
607デフォルトの名無しさん:2007/04/16(月) 07:47:33
>>604
つーか、朝の7時から>>604の"身内"の人も大変だな。
意味のわからない日本語を突き付けられて、正しいか教えてくれ、だなんて。


所詮、脳内身内なんだろうけど。
608デフォルトの名無しさん:2007/04/16(月) 07:52:48
>>604
>所詮低学歴くらいだろ こんなスレを見るのは。
なるほど、そのとおりだな。同意するよ。


お前を見ていると、確かにそうとしか思えない。
609デフォルトの名無しさん:2007/04/16(月) 08:03:34
どっちがスレタイを読めていないどころか理解していないのだか ┐(´〜`;)┌
日本語がおかしい奴がint mainを使っていれば、void mainを主張する奴が訂正できても
void mainが世界の標準にはならないから
610デフォルトの名無しさん:2007/04/16(月) 08:17:11
int mainがあるのなら char mainとか int main[] とかもあるの?

int * mainもあるの?
611デフォルトの名無しさん:2007/04/16(月) 08:53:42
int main(int argc, char* argv[])
が標準

っぽく本に書いてあった
612デフォルトの名無しさん:2007/04/16(月) 09:24:08
int main(int argc, char* argv[], char* env[])
613デフォルトの名無しさん:2007/04/16(月) 09:30:54
>>610
ANSI、ISO準拠だとプログラムの開始のfunctionはmainと名前がつけられていて
返す値はint型だってこと。
ちなみに、()の中は引数があるかないかでint argc, char* argv[]かvoidを記述するのも
ANSI、ISO準拠とのこと。
614デフォルトの名無しさん:2007/04/16(月) 09:33:18
char* main = ....
615デフォルトの名無しさん:2007/04/16(月) 09:48:32
定期的にこのスレ妙な盛り上がりを見せるなあw
616デフォルトの名無しさん:2007/04/16(月) 09:52:29
〜するのが準拠ではなく、準拠では〜となっていると説明すべきだったか。
日本語でおk、朝鮮語でにd?
617デフォルトの名無しさん:2007/04/16(月) 09:55:10
envって何?
618デフォルトの名無しさん:2007/04/16(月) 09:59:36
で?int main()とスタートアップコードの関係についておしえてほすい
619デフォルトの名無しさん:2007/04/16(月) 10:01:06
ttp://www.bohyoh.com/CandCPP/C/Library/getenv.html
直接関係はないが、環境変数なんかに関係するやつかと。
少し前に、環境変数を扱う課題を質問してた人がいたっけなぁ。
JavaScriptのフォームを使って値を受け渡すやつ。
620デフォルトの名無しさん:2007/04/16(月) 10:01:20
>>618
そんな処理系依存の事を聞いてどうする
621デフォルトの名無しさん:2007/04/16(月) 10:25:19
妙な盛り上がりな中お願いします。

[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3826.txt
[3] 環境
 [3.1] OS:WinXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:明日まで
622デフォルトの名無しさん:2007/04/16(月) 10:56:48
>>621
何がわからんのかいえ
623デフォルトの名無しさん:2007/04/16(月) 11:19:02
hit and blow でぐぐればいいんじゃね?
624デフォルトの名無しさん:2007/04/16(月) 11:47:58
>>621 ゴミソースかもしれんが試してみて
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3827.txt
625デフォルトの名無しさん:2007/04/16(月) 11:50:17
って、よく見たら4文字以外の入力の対処が不十分だったけど直しておいて orz
626デフォルトの名無しさん:2007/04/16(月) 11:54:40
>>624 のここの部分を変更しておいて
while( (tmp=getchar()) != '\n') {
if(i<4) buf[i]=tmp; < i++ を i のみに変更
i++; < これを追加
}
627デフォルトの名無しさん:2007/04/16(月) 15:23:30
[1] 授業単元:プログラミングT
[2] 問題文:コンビネーションの計算
1. キーボードから任意の2つの整数値を変数nとrに入力する.
2. nあるいはrが負または0のとき,「正の数値を入力して下さい」と出力して終了する.
3. n<rのとき,「定義されていません」と出力して終了する.
4. それ以外(2.および3.以外)のとき,nCrを計算して,その結果をn,rの値とともに出力する.
ヒント↓
nCr = n(n-1)…(n-r+1)/r(r-1)…1 = n!/r!(n-r)!

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:今日中にお願いします。
[5]なるべく簡単な関数を使ってお願いします。
628デフォルトの名無しさん:2007/04/16(月) 16:02:41
そこまで出てるんだったら、きちんと授業を聞いとればできるんだがな。

ヒント:
n!を出す関数

int foo(n)
{
int a;
for(a = 1; 0 < n; n--) {
a *= n
}
return a;
}
629デフォルトの名無しさん:2007/04/16(月) 16:04:39
×int foo(n)
○int foo(int n)
630デフォルトの名無しさん :2007/04/16(月) 19:18:24
int nCr(int n, int r)
{

if((n>r) && (r>0)){
return nCr(n-1,r-1) + nCr(n-1,r);
}
else if(n==r || r==0){

return 1;
}
}
631デフォルトの名無しさん:2007/04/16(月) 19:19:21
>>628
お前スレタイ読めてんのかYO!
632デフォルトの名無しさん:2007/04/16(月) 19:26:20
[1] 授業単元:C
[2] 問題文

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

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: なし
[5] その他: よろしくお願いします。


633デフォルトの名無しさん:2007/04/16(月) 19:35:47
>>632
#include <stdio.h>
#include <string.h>
main() {
    float f;
    char str[256], *p;
    fgets(str, sizeof str, stdin);
    if(p = strchr(str, '\n')) *p = '\0';
    if(strcmp(str, ".") == 0) {
        f = 0.f;
    } else if(sscanf(str, "%f", &f) != 1) {
        fputs("error!!", stderr);
        return 1;
    }
    printf("%f\n", f);
    return 0;
}
634デフォルトの名無しさん:2007/04/16(月) 19:58:31
>>633
123.1 123ab でおかしい
635デフォルトの名無しさん:2007/04/16(月) 20:02:19
>>632
お前清々しいほどにやる気ないのなw
ぶっちゃけ461の時よりさらに難度下がってるぞ
636デフォルトの名無しさん:2007/04/16(月) 20:04:27
>>635
お前スレタイ読めてんのかYO!
637デフォルトの名無しさん:2007/04/16(月) 20:07:15
>>636
お前も>>1の一行目が読めてないぜ?
638デフォルトの名無しさん:2007/04/16(月) 20:09:59
くやしい......ビクビクッ
639デフォルトの名無しさん:2007/04/16(月) 20:17:19
>>637
>>635のレスはぶっちゃけ、気に入らないってほどでもないw
640デフォルトの名無しさん:2007/04/16(月) 20:20:04
>>632
自分で解いてみる努力はしたの?
努力して解けなかったんだったら、君にはこの分野は向いてないよ。
641デフォルトの名無しさん:2007/04/16(月) 20:23:58
>>640
だからスレタイ読めてんのかYO!そんなレスは気に入らないどころか好きだーー!
642632:2007/04/16(月) 20:40:14
2ちゃんや先輩、知人方からの情報でIT業界が終わってることを知り
やる気0であります。浮いた時間でTOEICの勉強してます。
よろしくお願いします。
643デフォルトの名無しさん:2007/04/16(月) 20:41:33
[1] 授業単元:C実習 T
[2] 問題文(含コード&リンク):入力した数値情報をデータとして登録。すでに登録してある数値が入力されるとエラーを表示
outを入力するとデータを入力順に出力。endを入力すると終了。
delを入力した後にデータ上の数値を入力するとその数値がデータから削除。

[3] 環境
 [3.1] OS: (Windows/Linux/等々) xp sp2
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 4月20日
[5] その他の制限: 自己参照構造体と関数を使用すること

自分なりに色々試してみたのですがどうにもお手上げです。お手数ですがよろしくお願いします。
644デフォルトの名無しさん:2007/04/16(月) 20:49:09
>>641
スレタイ?解釈次第だな。
645デフォルトの名無しさん:2007/04/16(月) 20:53:04
>>644
気に入る入らないは個人の主観的次第だな
646デフォルトの名無しさん:2007/04/16(月) 21:16:59
647627:2007/04/16(月) 21:25:27
627です。
>>630
すみません。説明不足でした。
whileを使って欲しかったんです。
ごめんなさい。
648デフォルトの名無しさん:2007/04/16(月) 21:52:15
>>643
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3831.txt
これでいいと思うんだけど間違ってたらごめん
649デフォルトの名無しさん:2007/04/16(月) 21:53:55
>>643
これを?ゆとり学生にあと4日で?出題者は鬼だな。
幸いリスト構造でなんとかなりそうだ。
全部はマンドクサイからキーワードでなんとかしてくれ。

キーワード
struct Hoge {
Hoge *prev; /* ←こういうのが入ってるのを自己参照構造体という */
Hoge *next;
int val;
};

Hoge *h;

h = (Hoge *)malloc(sizeof(Hoge));

int HogeAdd(Hoge *h, int val) ←追加用関数の宣言例

650デフォルトの名無しさん:2007/04/16(月) 22:05:46
>>648,649
ありがとうございます。参考にさせていただきます。
期限は一週間ほどあったのですが自分で考えてみてもうまく出来ず力を借りることになってしまいました。
お世話になりました。
651名無し@沢村:2007/04/16(月) 23:58:37
おみゃーよ、C/C++も言語としていいには、いいね♪
でもおみゃーたよ、もっといい『肥えた語』つー言語があるの知ってる?
おりは知ってるよ。
おりがつくった言語よ。これからh『肥えた語』の時代よ。
URLはここよ↓
http://www.geocities.jp/hontamagod/
感想を頼むなー♪
652デフォルトの名無しさん:2007/04/17(火) 00:36:09
今の時代ってさ、C,C++,Java,C#
が使えれば完璧ってマジ?
653デフォルトの名無しさん:2007/04/17(火) 00:41:08
あと日本語も入れといて
654デフォルトの名無しさん:2007/04/17(火) 00:41:45
Lisp, Haskell, BrainF*ck で神の領域
655デフォルトの名無しさん:2007/04/17(火) 00:50:30
アセンブラは?
656デフォルトの名無しさん:2007/04/17(火) 00:58:37
趣味の領域
657デフォルトの名無しさん:2007/04/17(火) 01:03:01
フォートランとパイソンが使えればいいよ
658デフォルトの名無しさん:2007/04/17(火) 01:03:06
>>652
C++が完璧に使えればそれだけでいくらでも応用効くよ
659デフォルトの名無しさん:2007/04/17(火) 02:34:49
>>652
それらの言語に共通する基本、すなわち・・・ジャポネーゼよりエングリッチュ!
これが出来ないとぉ、void mainを世界基準だと思っちゃうバカが増えるw
660デフォルトの名無しさん:2007/04/17(火) 04:13:16
0^0=1じゃありませんよ?↓
661デフォルトの名無しさん:2007/04/17(火) 06:06:02
>>658
C++って、あまりいい言語ではない(デザインが滅茶苦茶)って聞いたけどホント?
662デフォルトの名無しさん:2007/04/17(火) 06:13:27
鍋みたいなもの
663デフォルトの名無しさん:2007/04/17(火) 06:32:00
C++は今も仕様が変更されることがあるようだから、どっちかってーとC言語を固めてから
その他の言語に入る方が良いかも?Javaは曲者だが
664デフォルトの名無しさん:2007/04/17(火) 07:21:44
>>659
そんな馬鹿、このスレに出てきたっけ?
「void mainを世界基準だと思っちゃうバカがいる」と主張するバカはいたようだが。
665デフォルトの名無しさん:2007/04/17(火) 07:25:35
今Cを勉強しているんだけど、

Cって、ANSIとK&Rの両方の規格があるんだって??
もしかして、K&Rではvoid mainの表記が許されるのですか?
よくしらないのですが
666デフォルトの名無しさん :2007/04/17(火) 08:10:52
組み込み系ならvoid mainを使うらしいよ
667デフォルトの名無しさん:2007/04/17(火) 08:41:07
>>666
だからフリースタンディング環境の話はもうええって。

やっぱ「ANSI/ISOのhosted環境では」といちいち書かなきゃならんのかな。
668デフォルトの名無しさん:2007/04/17(火) 08:51:04
void mainでも特に問題はないのでしょ?
669デフォルトの名無しさん:2007/04/17(火) 09:14:07
>>668
環境によるって(笑
個別のケースで言えば、
VC6では問題ありで、コンパイルエラーにはならないが、実行すると予期できない終了コードがもどってくる。
VC2005では問題なくなった。void mainの場合は特別に終了コードをゼロにする命令が追加される。
このタイプのコンパイラは多い。
他にはmainからのreturnの値は使用しないものもある。この場合はintでもvoidでもかまわない。
終了コードを返したい場合はexit()など専用の命令やapiを使う。
これは古いタイプのコンパイラや終了コードが存在しないOS用のコンパイラに多い。
670デフォルトの名無しさん:2007/04/17(火) 10:03:40
死にたい
671デフォルトの名無しさん:2007/04/17(火) 14:25:47
内定がでない。死にたい
672デフォルトの名無しさん:2007/04/17(火) 15:54:57
9条は改憲してはならない。日本の為にならない。
日本人ではない朝鮮総連や民団でさえ、日本を心配して改憲への反対運動を行ってくれている。
私は日本人だが、「改憲すべき」などという者は、日本人として彼らに恥ずかしいと思います。

Q.中国から身を守る為、戦争に対する抑止力が必要では?
A.前提から間違っています。そもそも、中国は日本に派兵しようと思えばいつでもできました。
  なぜなら、日本には9条があるため、空母や長距離ミサイル等「他国を攻撃する手段」がない。
  つまり日本に戦争を仕掛けても、本国の、命令をだした幹部の命は絶対に安全なのです。
  「安心して戦争を仕掛けられる国」を、中国は、今まで攻めずにいてくれたのです。

Q.それは日米安保によるものでは? そして、その日米安保も絶対ではないのでは?
A.中国の良心を信じられないのはなぜですか? そして、日米安保は絶対です。
  知り合いの韓国人の評論家も「絶対だ」と言っていますし、私も同じ考えです。
  更に、9条が消えても米国の戦争に協力する義務は発生しませんが、米国が被害者の場合は別です。
  米国は日本を守る為に戦っても、(9条があれば)日本は米国を守る為に戦う必要がないのです。

Q.9条が本当に「平和」憲法なら、世界中で(日本以外に)1国も持とうとしないのはなぜか?
A.これは、日本以外のすべての国が誤っているとも言えます。
  「敵国に攻撃が届く国は攻められづらい」というのは、誤った負の考え方です。
  (もっとも韓国や中国の軍に関しては、日本の右傾化阻止の為でもあるので例外ですが)
  更に日本の場合、隣国が韓国・中国・ロシアと、GDP上位の安定した信頼できる国ばかりです。

Q.「9条改憲派」は「戦争反対派」。侵略者に戦争を挑発する、戦争憲法(9条)を撤廃したいのです。
A.それは、貧しい考え方ではないでしょうか?
  中国や北朝鮮を信じる「強さ」があれば、そんな考えにはならないはずです。
  日本が信じれば、彼らも信じるでしょう。そして、真に美しい関係が始まるのです。
673デフォルトの名無しさん:2007/04/17(火) 16:00:54
>>672
死ね朝鮮人
674デフォルトの名無しさん:2007/04/17(火) 17:41:18
テンプレにさ
特に記述がない場合は「ANSI/ISO」規格に準拠する
とか入れれば?
675デフォルトの名無しさん:2007/04/17(火) 17:55:39
このスレ、C/C++に限定するのやめない?
他の言語の宿題スレはないし、混ざってもそれほどカオスにならないと思うから。
676デフォルトの名無しさん:2007/04/17(火) 18:00:49
>>675
C/C++以外の宿題用言語ってなにあるかな?
677デフォルトの名無しさん:2007/04/17(火) 18:05:27
>675
宿題で検索してみろ
678デフォルトの名無しさん:2007/04/17(火) 18:07:38
Pascal、FORTRAN、COBOLあたりは割とよくある。
希にForth。
679デフォルトの名無しさん:2007/04/17(火) 18:10:41
RUBY
JAVA
Pascal
アセンブラ
Python
BASIC
これらはスレあった
680デフォルトの名無しさん:2007/04/17(火) 18:13:12
ぼるじょあって重複スレなんじゃないの?
681デフォルトの名無しさん:2007/04/17(火) 18:22:36
C++では、main関数ならreturnを省略しても関数の最後でreturn 0;されるという規定があるから、
あえてvoid mainにする利点を感じない。

C99にも同様の規定があるはず。
682デフォルトの名無しさん:2007/04/17(火) 18:25:00
voidって違法になったんじゃなかったっけ
683デフォルトの名無しさん:2007/04/17(火) 18:52:47
まだやってんのか?ちゃんと仕様を理解しろって。ANSI、ISO準拠では
プログラムの開始のfunctionはmainとされていて、mainが返す値はint型と定義されてるんだろ。
必ずしもプログラムの開始がmain関数と決まっていない環境じゃmainと名づけた関数が
int型の値を返す仕様で作って無くても問題ないんだよ。そういうのはANSI、ISO準拠とは言わないだけ。
ただ、int mainでコンパイルエラーが起きたという報告はなくても、void mainだとエラーを起こす報告はあり。
それじゃ、幅広い環境で通用させるためには、プログラムの開始をmainとしてどう書いておいた方が無難か、分かるだろ?
684デフォルトの名無しさん:2007/04/17(火) 18:55:03
int はlong intですか?short intですか?
685デフォルトの名無しさん:2007/04/17(火) 18:56:02
まぁ、↓みたいな、俺の自立環境じゃプログラム開始のfunctionは unko(anus argc, curry *argv[])とか書いてんだろぉ?
686デフォルトの名無しさん:2007/04/17(火) 18:57:13
>>684
開発環境による。32ビット環境では確かほとんどlongだったかと
687デフォルトの名無しさん:2007/04/17(火) 18:59:24
>>684
int は int じゃないですか?
688デフォルトの名無しさん:2007/04/17(火) 19:04:16
sizeof(short) , sizeof(long) で sizsof(int) と比較してみたら?俺んとこはlongとintが同じで
shortがその半分
689デフォルトの名無しさん:2007/04/17(火) 19:20:54
>>681
これは初めて知った。どこかネットから見れるソースはありますか?

まあmainに関しては規格があとから泥縄で追加されてるから混乱するのはしょうがないわな。
690デフォルトの名無しさん:2007/04/17(火) 19:32:21
不適切だとコンパイラが勝手に変えて解釈しちゃうのもあるみたいだがw
691デフォルトの名無しさん:2007/04/17(火) 19:59:33
[1] 授業単元:情報処理I
[2] 問題文(含コード&リンク):
a) プログラムの引数を全部逆順に表示しなさい。
./a a b c d
d c b a
b) 何も引数を指定しない場合、環境変数をすべて表示しなさい。
./a
PATH = /usr/local/bin; ...

aとbを同時に満たすプログラムを作成せよ。
[3] 環境
 [3.1] OS: (Windows/Linux/等々) linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 4月20日
[5] その他の制限: ただしgetenvを使わないこと
692デフォルトの名無しさん:2007/04/17(火) 20:01:10
691ですけど、外部プログラムを使うのも禁止でした。
693デフォルトの名無しさん:2007/04/17(火) 20:10:17 BE:104814296-2BP(222)
>>691
#include<stdio.h>
int main(int argc, char* argv[], char* env[]) {
if (argc>1){while(--argc){printf("%s\n",argv[argc+1]);}}
else{while(*env){printf("%s\n",*env);env++;}}return 0;}
694デフォルトの名無しさん:2007/04/17(火) 20:34:06
>>671
4月の段階で内定が出ないんだったら、もう就職活動しても意味なくね?
695デフォルトの名無しさん:2007/04/17(火) 21:35:44
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3834.txt
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ名とバージョン: cc
 [3.3] 言語: C
[4] 期限: 4月22日まで
[5] その他の制限: なし

よろしくお願いします。
696デフォルトの名無しさん:2007/04/17(火) 22:56:39
問題2がよくわからんのう
697デフォルトの名無しさん:2007/04/17(火) 23:03:48
>>694はそこになおれ!
698デフォルトの名無しさん:2007/04/17(火) 23:06:34
>>674
話題沸騰(笑)の自立(フリースタンディング)環境ってのは、オレオレ環境という
意味じゃなくて、ISOで規定されているCの動作環境のひとつなので、書くなら、
ISOのホスト環境とするのがよいでしょう。
699695:2007/04/17(火) 23:45:43
問題2はa[i][i]=0の場合、各係数を0で割るのを防ぐために行を
入れ替える処理らしいです

あと教科書をよく読んだら、参考として

pivot=i;
for (j = i+1; j < N; j++)
if (fabs(a[pivot][i]) < fabs(a[j][i])) pivot=j;

for (k =0; k < N; k++) {
temp=a[pivot][k];
a[pivot][k]=a[i][k];
a[i][k]=temp;
};
temp=b[pivot];
b[pivot]=b[i];
b[i]=temp;  するとa[i][i]≠0になる

と書いてあったのですが、どう組み込んだらよいのかも分かりません。
説明が不十分で本当にすみません。
700デフォルトの名無しさん:2007/04/18(水) 00:50:41
701700:2007/04/18(水) 00:52:14
ああ……、コメントの乗算と除算が逆でした……。
702デフォルトの名無しさん:2007/04/18(水) 01:23:28
>>693 ぬるぽ
703デフォルトの名無しさん:2007/04/18(水) 06:29:20
>>698
テンプレ案:

・規約厨が湧くからとりあえずint mainにしとけ。詳しい話は↓
http://www-06.ibm.com/jp/developerworks/linux/040507/j_l-c99.html
704デフォルトの名無しさん:2007/04/18(水) 07:16:04
幅広く通用するアルゴリズムはあるが、それはそれで環境云々の話にまではあまり及ばない。
言語の仕様に関するところに影響するものは、やはり幅広く通用するスタイルが望ましい。
いちいち俺の環境じゃvoid mainが通りますよなんて報告は要らんから。
世界基準の話の方が、取り入れた方がよっぽど今後のためになるから、素人は黙ってろ。
705デフォルトの名無しさん:2007/04/18(水) 07:21:40
そんなに怒るなよ、世界基準厨のほうがよかったのか?
706デフォルトの名無しさん:2007/04/18(水) 07:41:10
固有の環境下でしか通用しないものを必死こいてアピールするくせに、世界基準の
int mainを否定する気持ち悪い自立厨がうぜぇ
707デフォルトの名無しさん:2007/04/18(水) 07:51:48
>>706
なあ、だからいい加減、教えてくれよ。
int mainを否定している人間ってどこにいるの?

被害妄想に走り出したか…火病るなよ、在日君www
708デフォルトの名無しさん:2007/04/18(水) 08:00:55
あ、ついでに。

int mainで書いた方が望ましい、void mainは望ましくないというのは肯定するが、
他人のコードがint mainじゃないからって火病ってスレを荒らすお前の人間性は否定する。
709695:2007/04/18(水) 08:20:49
>>700
丁寧に答えて下さり、ありがとうございました。
710デフォルトの名無しさん:2007/04/18(水) 18:34:13
>>708
同意
「void main はよくないよ、標準じゃないから」と質問者に説明するのはいいがいちいち叩くなって思います
それが荒れる原因だということを理解していただきたいです
711デフォルトの名無しさん:2007/04/18(水) 19:05:02
[1] 授業単元:C++プログラミング
[2] 問題文(含コード&リンク):
  ファイルを読みvector配列に格納した各単語を
  辞書順にソートし出力するプログラムを作成せよ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC++ 2005
 [3.3] 言語:C++
[4] 期限:2007/ 4/19 13:00

辞書順にソートというのは
sort(array.begin(), array.end());
とやるだけではダメなんですよね?
712デフォルトの名無しさん:2007/04/18(水) 19:33:58
【質問テンプレ】
[1] 授業単元: 画像処理
[2] 問題文(含コード&リンク):
256*256のグレースケールPGM画像を読み込み・書き込みができるプログラムを作りなさい。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 4.0
 [3.3] 言語: どちらでも可
[4] 期限: 2007年4月19日9:00まで
[5] その他の制限: 特にありません
713デフォルトの名無しさん:2007/04/18(水) 19:41:56
714デフォルトの名無しさん:2007/04/18(水) 19:47:43
>>713
参考の提供助かります

数字、大文字、小文字が混ざってる文だと
数字 → 大文字 → 小文字 の順にソートされるんですが
辞書順というのはそういうモノなんですかね?

なんか提出したら怒られそうな悪寒
715デフォルトの名無しさん:2007/04/18(水) 20:43:47
>>714
比較するのを組み込むしかないんじゃないの
(推測)
716デフォルトの名無しさん:2007/04/18(水) 20:59:41
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):1からnまでの整数の合計を求め戻り値とする。nが負なら-1、nが0なら0を戻り値とする。
[3] 環境
 [3.1] Windows
 [3.2] gcc
 [3.3] 言語:C

一応自分でやってみたのですが下の私がやったのだと実行結果が負のときと正のときはうまくいくのですが
0のときの結果が負のときと同じになってしまいます。お助けお願いします。
#include <stdio.h>
int nsum(int n) {
int i ,s =0;
if(n > 0){
for(i = 1; i <= n; i++) {
s += i;
}
return s;
}
if(n = 0){
return 0;
}
return -1;
}
int main(){
int x;
scanf("%d" ,&x);
x = nsum(x);
printf("%d\n" ,x);
}
717デフォルトの名無しさん:2007/04/18(水) 21:00:57
if(n = 0){
これは代入文。
if(n == 0){
これが比較文。
718デフォルトの名無しさん:2007/04/18(水) 21:03:33
>>714
試してないが、感で。

std::stringから派生させて>に対して関数をオーバーライドすりゃいけるんじゃね?
719デフォルトの名無しさん:2007/04/18(水) 21:05:16
>>714
すまんかった。さっきのURLの

【例題3】ソート基準の設定〜ユーザー定義の2項叙述関数

を見てくれ。
720デフォルトの名無しさん:2007/04/18(水) 21:11:39
>>716
/* 関数の部分だけ */
int nsum(int n)
{
int i ,s = 0;
if(n > 0)
{
for(i = 1; i <= n; i++) s += i;
return s;
}
return (n == 0) ? 0 : -1;
}
721デフォルトの名無しさん:2007/04/18(水) 21:14:28
>>714
std::lexical_compare
722デフォルトの名無しさん:2007/04/18(水) 21:15:09
>>721
チゴタ
lexicographical_compare

boostと頭がごっちゃになっとる
723デフォルトの名無しさん:2007/04/18(水) 21:15:28
お願いします
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):実数xをキーボードから繰り返し読み込んで、xが負なら終了し、正ならばxが最も近い整数yを求めて、yの約数(1とyを除く)をすべて出力するプログラムを作成せよ。
[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:C++
[4] 期限: 明日
724デフォルトの名無しさん:2007/04/18(水) 21:30:22
>>714
ttp://www.interq.or.jp/jazz/iijima/stl/contents/sort_exam01.html
これの
StringSizeLess::operator()を改造すればいいんじゃない。
725デフォルトの名無しさん:2007/04/18(水) 21:31:30
>>723
#include <stdio.h>
#include <math.h>
int main(void)
{
double x;
int y, m;
for(;;)
{
printf("\n>");
scanf("%lf", &x);
if(x < 0.0) break;
y = (int)(x + 0.5);
printf("y = %d\n約数:", y);
for(m = 2; m<y; m++)
{
if( y % m == 0) printf("%d ", m);
}
}
return 0;
}
726デフォルトの名無しさん:2007/04/18(水) 22:17:10
>>715
boolとか使って自分で関数を定義して使えっていうことですよね?
辞書順というのが苦手なんですよ。高校の"場合の数"のときから。
メインの部分は出来たんで
辞書順のところだけお願いできませんか?
727デフォルトの名無しさん:2007/04/18(水) 22:40:29
>>725
すみませんC++でお願いします
728デフォルトの名無しさん:2007/04/18(水) 23:14:37
<<717
<<720
ありがとうございました(^ω^)
729デフォルトの名無しさん:2007/04/18(水) 23:34:03
>>727
C++でってどういうことかね?
iostream使えばいいのか、class作らなきゃだめなのか?
725はC++のコンパイラでも通るぞ。
730本年度のバカ四号www:2007/04/18(水) 23:53:40
729 名前:デフォルトの名無しさん 投稿日:2007/04/18(水) 23:34:03
>>727
C++でってどういうことかね?
iostream使えばいいのか、class作らなきゃだめなのか?
725はC++のコンパイラでも通るぞ。
725はC++のコンパイラでも通るぞ。
725はC++のコンパイラでも通るぞ。
731デフォルトの名無しさん:2007/04/19(木) 00:19:33
>>730の意図が分からん。
732デフォルトの名無しさん:2007/04/19(木) 00:24:26
C++の仕様に反してる部分はないしな。
俺も何を意図してんのかわからん。
733デフォルトの名無しさん:2007/04/19(木) 00:29:01
名前欄見ればいつものキチガイだってわかるだろ。
734デフォルトの名無しさん:2007/04/19(木) 00:36:22
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
numを2,3,...,num/2のいずれでも割り切れないときnumは素数である。numが素数なら戻り値を1、非素数なら戻り値を0とする。numが1以下の数なら戻り値を0とする。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: bcc
 [3.3] 言語: C
[4] 期限: [2007年4月19日01:30まで]

他スレでやっていただいたのですが上手く実行しません・・・。今日提出なので起きてる人お願いします。ちなみに・・
#include<stdio.h>
int isprime(int num){
int i;
if(num < 2) {
return 0;}
for(i = 2;i <= num / 2;i++) {
if(num % i == 0) {
return 0; }return 1; }
}
int main() {
int x;
scanf("%d" ,&x);
x = isprime(x);
if(x == 1) {
printf("%dは素数である\n" ,x);}
printf("%dは非素数である\n" ,x);}
としました。
735デフォルトの名無しさん:2007/04/19(木) 00:49:53
>>734 mainを変更。

int main()
{
int x;
scanf("%d", &x);
if(isprime(x) == 1)
printf("%dは素数である\n" ,x);
else
printf("%dは非素数である\n" ,x);
return 0;
}
736デフォルトの名無しさん:2007/04/19(木) 00:54:33
>734
ついでにisprimeもおかしいぞ。
元のスレで教えてもらった通りにやって、余計なものは付け足すな。
737デフォルトの名無しさん:2007/04/19(木) 00:55:31
> return 0; }return 1; }
return 0; }}return 1;
こうだな。
738デフォルトの名無しさん:2007/04/19(木) 01:02:06
で、起きている俺がいるわけだが。
739デフォルトの名無しさん:2007/04/19(木) 01:07:15
C/C++両方に対応している開発環境、コンパイラで
C言語で記述したものが通ったからといって
記述されたコードがC++ってことになるわけでもないのだがw
740デフォルトの名無しさん:2007/04/19(木) 01:07:42
>>734
include<stdio.h>

int isprime(int num){
int i;
if(num < 2) {
return 0;
}
for(i = 2;i <= num / 2;i++){
if(num % i == 0) {
return 0;
}
}
return 1;
}

int main() {
int x,a;
scanf("%d" ,&x);
if(isprime(x) == 1) {
printf("%dは素数である\n" ,x);
}else{
printf("%dは非素数である\n" ,x);
}
}
741デフォルトの名無しさん:2007/04/19(木) 01:09:23
>>739
だったらお前が書け。
742デフォルトの名無しさん:2007/04/19(木) 01:11:19
>>734 あら?使わない変数も混ざってる。
include<stdio.h>

int isprime(int num){
int i;
if(num < 2) {
return 0;
}
for(i = 2;i <= num / 2;i++){
if(num % i == 0) {
return 0;
}
}
return 1;
}

int main() {
int x;
scanf("%d" ,&x);
if(isprime(x) == 1) {
printf("%dは素数である\n" ,x);
}else{
printf("%dは非素数である\n" ,x);
}
return 0;
}
743デフォルトの名無しさん:2007/04/19(木) 01:13:50
>>739
C++の定義をキボンヌ
744デフォルトの名無しさん:2007/04/19(木) 01:17:13
>>739
模範解答よろしく。書けないわけないよね?
745本年度のバカ5号wwww:2007/04/19(木) 01:22:40
741 名前:デフォルトの名無しさん 投稿日:2007/04/19(木) 01:09:23
>>739
だったらお前が書け。
だったらお前が書け。
だったらお前が書け。
だったらお前が書け。

出たよ、バカw C++がどういうものかと開発環境が何に対応しているかも理解できない奴が
あっこれいける!って知ったとたん、C++=Cになっている短絡的思考w
まぁ、別に書けるけど答える義務はないんで、あしからずw
ったく、ここってほんっと視野の狭い世間知らずが多いんだなw
もっと物事の根本に目を向けてから話をしろよ。馬鹿に付き合うつもりはない。
じゃお前がやれよなんて、C++がなんなのかについての議論とは全く別問題。
ただ、どう見ても  >>725 はCだよ。それすら理解していないのが多いのか?w
746デフォルトの名無しさん:2007/04/19(木) 01:23:25
>>734
#include<stdio.h>
int isprime(int num){
int i = 2;
if(num <= 1) return 0;
while(i <= num/2){ if(num % i++ == 0) return 0;}
return 1;}
int main(void){
int x; scanf("%d" ,&x); printf((isprime(x)) ? "%dは素数である\n" : "%dは非素数である\n" , x);}

しまった、遅すぎた・・・。
747デフォルトの名無しさん:2007/04/19(木) 01:24:10
>>725
>じゃお前がやれよなんて、C++がなんなのかについての議論とは全く別問題。
ああ、その議論はしていない。
お前がやってみせろ、ただそれだけだ。
748デフォルトの名無しさん:2007/04/19(木) 01:25:14
C++でもCでもコンパイルして通る開発環境を使っている奴は、どっちがCかC++かも分からず
Visual Studioでも使ったのなら、もはやそれが対応している言語すべてがごっちゃになっていて
何がC#なのか、Javaなのかも理解してないんだろうねw
とりあえずVisual Studioは↓の言語に対応しているんで、ちゃんと理解してから使ってね ♥
http://www.microsoft.com/japan/msdn/vstudio/products/
4 つの開発言語、Visual Basic、Visual C#、Visual C++、Visual J# をサポート。
749デフォルトの名無しさん:2007/04/19(木) 01:25:31
どうやったらC++=Cと考えると思うのか不明
750デフォルトの名無しさん:2007/04/19(木) 01:26:43
>>747
やってみろって挑発にはのらないよ。こっちはC++とCの違いについて話しているんで。
第一、すでにCで答えが出てんだろ。あとはそれをC++仕様に書き換えるだけ。
それが出来ない奴の方が黙ってろよw
そうやってお前がやれお前がやれって煽るが、俺には通用しないよ。出来ないんじゃない
違いが分かっているって話だしw
まったく、これだから困るよな、int mainの話にしろ0^0=1にしろ、分かってないバカってw
751デフォルトの名無しさん:2007/04/19(木) 01:27:33
ところでCの仕様を含んでないC++ってあったっけ?
752デフォルトの名無しさん:2007/04/19(木) 01:28:10
>>745
とりあえずどうでもいいんでその長文はやめてください
753↓理解していない証拠:2007/04/19(木) 01:28:39
729 名前:デフォルトの名無しさん 投稿日:2007/04/18(水) 23:34:03
>>727
C++でってどういうことかね?
iostream使えばいいのか、class作らなきゃだめなのか?
725はC++のコンパイラでも通るぞ。

通ればC言語がC++として扱われるのかよ?w
C++の仕様書に目を向けてから物申せよ。自分は分かりません
なんてカミングアウトはいらない。逃げはしないが、悪いが物分りの悪いバカを
これ以上相手にするつもりはないんで、以後放置よろ。
俺は宿題には答えることにするよw
754デフォルトの名無しさん:2007/04/19(木) 01:29:28
馬鹿は馬鹿ゆえに自分が馬鹿にできる相手を見つけると喜んで馬鹿にする。
755デフォルトの名無しさん:2007/04/19(木) 01:29:28
沖縄県の方へ(命に関わる注意事項です)

沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄」等で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…

※一国二制度
 簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
 (つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
 さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
 3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。

今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
756デフォルトの名無しさん:2007/04/19(木) 01:30:16
この文の最後にwつけるやつが荒らしてるんだろうな、きっと
いいかげんやめて欲しい
757デフォルトの名無しさん:2007/04/19(木) 01:30:22
>>753
>俺は宿題には答えることにするよw
ふーん
758デフォルトの名無しさん:2007/04/19(木) 01:30:35
>>729
C++コンパイラで通るからなんだよ?w
C++コンパイラで通ればそのソースはすべてC++になるのかよ?w
759デフォルトの名無しさん:2007/04/19(木) 01:31:51
必死だな
760デフォルトの名無しさん:2007/04/19(木) 01:33:23
>>729が必死に じゃぁお前やれよ と言ってC++が何なのか教えてもらおうとしていまつ ><;
761デフォルトの名無しさん:2007/04/19(木) 01:35:04
>>753
>これ以上相手にするつもりはないんで、以後放置よろ。
君を放置すればいいのね?
762デフォルトの名無しさん:2007/04/19(木) 01:36:13
こいつ本当にかわいそうな奴だな...
763デフォルトの名無しさん:2007/04/19(木) 01:38:44
マジで病気かもしれんね
764デフォルトの名無しさん:2007/04/19(木) 01:40:09
>>749
ヒント:C++は左辺値にはならない。
765デフォルトの名無しさん:2007/04/19(木) 01:44:44
>>763
嫌われている自覚症状さえもなかったら本当に終わってるな。
この馬鹿は仕様書を読む前に空気読めよ。
766デフォルトの名無しさん:2007/04/19(木) 01:51:09
>>723 はいはい、クマクマ。
#include <iostream>
using namespace std;
int main(void) {
double x;
int y, m;
for(;;) { cout << "\nInput num >"; cin >> x;
if(x < 0.0) break;
y = (int)(x + 0.5);
cout << "y = " << y << endl;
cout << "約数:";
for(m = 2; m<y; m++)
if( y % m == 0) cout << m << " ";
}
return 0; }

>>725のmath.hは何で使ってるん?
767デフォルトの名無しさん:2007/04/19(木) 01:53:44
#include <stdio.h>
#include <math.h>
でもC++。関数は大域名前空間に割り当てられる。
printf("〜〜という表記と::printf("〜〜という表記が混ぜて使えるのがその証拠。
C専用のコンパイラで処理してるなら後者は撥ねられるはずだから。
だから>>725のプログラムは完全にC++の仕様に適合してるC++のプログラム。
768本年度の知ったか第一号:2007/04/19(木) 01:58:27
767 名前:デフォルトの名無しさん 投稿日:2007/04/19(木) 01:53:44
#include <stdio.h>
#include <math.h>
でもC++。関数は大域名前空間に割り当てられる。
でもC++。でもC++。でもC++。でもC++。でもC++。でもC++。でもC++。

ええ、ですからそういう記述をして これはC++のソースです
って世に公表してくださいよ?はぁ?こいつ何ほざいてんだ?って思われるだけだけどw
769デフォルトの名無しさん:2007/04/19(木) 02:00:41
>>768
>逃げはしないが、悪いが物分りの悪いバカを
>これ以上相手にするつもりはないんで、以後放置よろ。
30分前の自分の発言忘れんなよ。
770デフォルトの名無しさん:2007/04/19(木) 02:03:42
>>769
人のことをどうこう言わずにC++について説明してみろよ?w
普通にCの拡張としか言わないようじゃお前もまだまだ。失せろ青二才
771デフォルトの名無しさん:2007/04/19(木) 02:04:56
>>768
具体的にはどこがしったかなわけ?
見たところ事実しか書いてないようだけど。
772デフォルトの名無しさん:2007/04/19(木) 02:06:38
>>770
>もっと物事の根本に目を向けてから話をしろよ
ここは宿題スレ。お前の公開オナニーの場所じゃない。
773デフォルトの名無しさん:2007/04/19(木) 02:07:51
int main(void) { }
↑これはCですか?C++ですか?
774デフォルトの名無しさん:2007/04/19(木) 02:07:53
Cの仕様で書いたソースがC++コンパイラに通ったからって
それもC++として扱うのはおかしいだろw
頼むからこれ以上知ったかな口を開くなYO!
Cでは出来たけどC++じゃ通らなくなったコードもあるんだからさぁw
775デフォルトの名無しさん:2007/04/19(木) 02:10:20
結局具体的な事は何一つ言えないヘタレ。
776デフォルトの名無しさん:2007/04/19(木) 02:10:50
>>774
だから、お前が宿題に答えろと言ってるだろう?
何も成果を出せずに口だけ挟むような人間に価値はない。
777デフォルトの名無しさん:2007/04/19(木) 02:14:54
結局、このint main君が一番C++を理解していないという事実。
778デフォルトの名無しさん:2007/04/19(木) 02:26:01
> 767 名前:デフォルトの名無しさん 投稿日:2007/04/19(木) 01:53:44
> だから>>725のプログラムは完全にC++の仕様に適合してるC++のプログラム。
これはひどい。こんなのがこのスレで宿題に答えているのか・・・?
779↓何こいつ偉そうにしてんの?:2007/04/19(木) 02:27:38
776 名前:デフォルトの名無しさん 投稿日:2007/04/19(木) 02:10:50
>>774
だから、お前が宿題に答えろと言ってるだろう?
何も成果を出せずに口だけ挟むような人間に価値はない。
↑お前が出来ないことを隠そうとして必死なくせに、威勢が良いねw
論より証拠、C言語で書いたソースをC++だと言い張るならお前がそれを証明しろよw
780デフォルトの名無しさん:2007/04/19(木) 02:28:55
>>779
ん?できないよ、お前の「我流C++」の定義がわからんからね。
781↓こいつも知ったか決定wwwww:2007/04/19(木) 02:29:13
777 名前:デフォルトの名無しさん 投稿日:2007/04/19(木) 02:14:54
結局、このint main君が一番C++を理解していないという事実。
↑意味不明。int mainについてはANSI、ISO準拠について話を出しているし
ちゃんと仕様書の提示もされているんだが?お前が英語も物事の本質も理解できない
知ったかだということが発覚しただけ。負け犬ほどよく吠えるもんだとw
っつーか、本当にint mainに関しては理解してないのな。本当にバカだこいつら
782デフォルトの名無しさん:2007/04/19(木) 02:30:05
>>781
>負け犬ほどよく吠えるもんだとw
なるほど。確かに。
783:↓何こいつ偉そうにしてんの?:2007/04/19(木) 02:31:44
779 :↓何こいつ偉そうにしてんの? :2007/04/19(木) 02:27:38
776 名前:デフォルトの名無しさん 投稿日:2007/04/19(木) 02:10:50
>>774
だから、お前が宿題に答えろと言ってるだろう?
何も成果を出せずに口だけ挟むような人間に価値はない。
↑お前が出来ないことを隠そうとして必死なくせに、威勢が良いねw
論より証拠、C言語で書いたソースをC++だと言い張るならお前がそれを証明しろよw
↑お前が出来ないことを隠そうとして必死なくせに、威勢が良いねw
論より証拠、C言語で書いたソースをC++だと言い張るならお前がそれを証明しろよw

これでいいんですか、わかりません><
784デフォルトの名無しさん:2007/04/19(木) 02:37:14
>>780
だからCで書いたソースをC++で押し通してみろよ?C++がCの拡張で
一部共通する部分を含んでいようと、仕様としては全く通用しない部分もあるんだが?
お前の悪い頭じゃ理解できないから参照できるページを出しておくから、せいぜい吠えてろw
ttp://wisdom.sakura.ne.jp/programming/cpp/cpp1.html
ttp://wisdom.sakura.ne.jp/programming/cpp/cpp3.html
> 型の省略
> これをC言語のソースとしてコンパイルするとエラーが発生しますが
> C++としてならば問題なくコンパイルすることができます
以上。知ったかは全く同一とみなしたり、大は小を兼ねるとか本気で信じているから困るんだよ。
785デフォルトの名無しさん:2007/04/19(木) 02:38:03
#include <cstdio>
int main(void){ printf("BAKA\n"); std::printf("BAKA\n");}

#include <stdio.h>
int main(void){ printf("AHO\n"); ::printf("AHO\n"); }

#include <stdio.h>
int main(void){ printf("MANUKE\n");}

#include <stdio.h>
int main(void){ }

int main(void){ }

さあ、C++じゃないのはどれかな?
786デフォルトの名無しさん:2007/04/19(木) 02:39:38
>>783=>>729
自分が理解できないことや、間違って解釈していたのを露呈されて
正当な説明も出来ずに知能の低いガキがとる最終手段でよく見られる
煽ったり茶化したりするしか出来なくなって必死だなw
お前の理解力が無いことはヨーク分かったから、黙ってろよw

729 名前:デフォルトの名無しさん 投稿日:2007/04/18(水) 23:34:03
>>727
C++でってどういうことかね?
iostream使えばいいのか、class作らなきゃだめなのか?
725はC++のコンパイラでも通るぞ。
↑だから何? >>725 もC++のソースとでも言いたいのかね?w
787デフォルトの名無しさん:2007/04/19(木) 02:44:19
>>784
>だからCで書いたソースをC++で押し通してみろよ?C++がCの拡張で
>一部共通する部分を含んでいようと、仕様としては全く通用しない部分もあるんだが?

君は「C++がCの拡張じゃない」って主張したいのかな?
ここでの論点は「>>725がC++で記述されていると言えるか否か」なんだよ。
全く論点が違うことはわかるかい?
788デフォルトの名無しさん:2007/04/19(木) 02:55:31
.cpp
789デフォルトの名無しさん:2007/04/19(木) 03:04:32
>>725がC++のプログラムとしてイリーガルであるという理由はどこにもないな。
790デフォルトの名無しさん:2007/04/19(木) 03:07:00
Cライクなソース、とかの表現にとどまるのみだな。
791デフォルトの名無しさん:2007/04/19(木) 03:29:39
>>789
授業ではC言語を習ってなくていきなりC++のみでやっているところもあるだろ。
それについて考慮するしないは議論しないが、
C++コンパイラで通ったからってあのソースがC++のソースだといったら笑われますよ
792デフォルトの名無しさん:2007/04/19(木) 03:38:13
笑われるってさ、おもしろいなもっとやって
793デフォルトの名無しさん:2007/04/19(木) 03:38:50
>>791
>それについて考慮するしないは議論しないが、
>C++コンパイラで通ったからってあのソースがC++のソースだといったら笑われますよ
もっとくやしく。
794デフォルトの名無しさん:2007/04/19(木) 03:42:53
>>791
笑われているのは>>791である点について。
795デフォルトの名無しさん:2007/04/19(木) 04:00:34
>>765とか捨て台詞が負け犬っぽい。こういう鬱陶しい奴が自分基準やルールで
不十分なことをそれで良いだろって他人に押し付けるんだよな。
それでいて自分の知識の乏しさを露呈しているくせに、そんなの知らねーよと
知らないなら黙ってりゃ良いのにわざわざ食い下がってゴネるんだよなw
最後はゴタゴタを起こして自分の立場を悪くすると。
空気が読めていないのはC言語で書いたソースをC++コンパイラで通ったからといって
そのソースをC++だと言い切ってしまう無知。
796デフォルトの名無しさん:2007/04/19(木) 04:13:01
夜明けまでまだ時間はあるぞ。もっとはげしく。
797デフォルトの名無しさん:2007/04/19(木) 07:28:26
>>795
他人を批判している文章で、自分を批判しているなんて
こんな高等テクニック、オラ、初めてだ。ワクワクしちまったぞ!!
798デフォルトの名無しさん:2007/04/19(木) 07:40:55
仕様書とか標準を無視してやっているやつが勝手なことを言っているんだろ。
よーく分かったよ、秩序が乱れているところがどういう連中が集まった集団なのか。
ここも所詮、プライドは高いけど知識、知能、レベルの低い奴らしかいないんだなw
799デフォルトの名無しさん:2007/04/19(木) 07:46:21
っつーか、C言語で記述したソースがC++も兼ねた開発環境でコンパイルできたといって
それもC++だとか言うのは同意できんわ。さすがにそれは考え方がおかしい。
C++じゃないよと言う奴の一人を他のことで言い負かせても、ANSI、ISO準拠の件みたく
仕様書や基本概要を見たら、明らかに勝手なことを言っている奴の方が間違っていることくらい一目瞭然だろ。
あっ、英語も読めないバカが多かったのか、ここは、すまんね。
800デフォルトの名無しさん:2007/04/19(木) 07:52:42
801デフォルトの名無しさん:2007/04/19(木) 08:05:37
>>799
>っつーか、C言語で記述したソースがC++も兼ねた開発環境でコンパイルできたといって
>それもC++だとか言うのは同意できんわ

"C++コンパイラでコンパイルできることがC++のソースであることの条件である"
という趣旨の発言が見つからない。どこ?
802デフォルトの名無しさん:2007/04/19(木) 08:15:03
>>798-799
すまんねー、君のレベルに見合う人間はここに居ないようだよ。
良かったね、満足した?じゃここには居場所はないから早く消えてくれ。
803デフォルトの名無しさん:2007/04/19(木) 08:30:14
int main(int argc, char* argv[])
{
return 0;
}

はい、これはCのソースですか? C++のソースですか?

俺的には両方だが。
804デフォルトの名無しさん:2007/04/19(木) 08:33:28
朝までスレ違い続けるなよ
805デフォルトの名無しさん:2007/04/19(木) 08:51:02
806デフォルトの名無しさん:2007/04/19(木) 09:01:25
extern "C"を忘れないであげてください。
807デフォルトの名無しさん:2007/04/19(木) 10:39:17
>>805
ttp://wisdom.sakura.ne.jp/programming/cpp/cpp1.html
ttp://wisdom.sakura.ne.jp/programming/cpp/cpp3.html
大嘘ぶっこいていると恥をかくってこういうことだなw
808デフォルトの名無しさん:2007/04/19(木) 10:45:35
>>807
ttp://wisdom.sakura.ne.jp/programming/cpp/cpp2.html
本当、そうだよなー これは酷い。
よくもまあこんな資料勧められる阿呆がいるもんだ。
809デフォルトの名無しさん:2007/04/19(木) 10:48:50
相変わらず酷いスレで安心した。
810デフォルトの名無しさん:2007/04/19(木) 12:38:56
ttp://www.research.att.com/~bs/bs_faq.html#how-to-start
string s; // Standard C++ style
cin >> s;

and not like this

char s[MAX]; /* Standard C style */
scanf("%s",s);
811デフォルトの名無しさん:2007/04/19(木) 12:40:48
C++ 言語を設計した Bjarne Stroustrup のホームページ
ttp://www.research.att.com/~bs/homepage.html
> Standard C++ style
どう考えてもStandard C styleで記述する人は Standard という標準を無視した
void main君と同じ考えです、ありがとうございました。
812デフォルトの名無しさん:2007/04/19(木) 12:52:20
スタイルの問題と言語仕様/規格/標準の問題は全く別なのだが。

>>725のソースはC++としては古いスタイル(というかCのスタイル)で
記述されているが、C++として違法なソースではない。

StroustrupはK&R第二版にサンプルとして載っているコードは全て
正しいC++プログラムでもあると述べているよ。

C99の時点でCとC++の道は大きく分かれたが、少なくとも当時は
ANSI CとC++の可能な限りの互換性が目指されていた。完全に互換では
無かったし、それを目指してはいなかったけれども。
813デフォルトの名無しさん:2007/04/19(木) 12:57:42
>>812
んじゃてめぇはvoid mainでやってろよw
C++を設計した張本人が敢えてC/C++のStandard Styleを分けて説明しているのにバカじゃね?
英語も意味も理解できないバカが何ほざいても無駄なんだよw
ルールはルール。お前が何を言ってもルール違反はルール違反。
814デフォルトの名無しさん:2007/04/19(木) 13:02:06
まっ、とにかくC言語スタイルで記述したソースの拡張子をcppにして
C++コンパイルで通ったら、それをC++だよだの、C++のソースとして扱えなんて言ったら
確実に理解力がない奴だと思われるだろうね。単に言語の仕様上、C++がCの拡張で
C Styleが通る部分もあるが、すべてが通るわけではないという報告も出ているし。
規格、仕様を無視したんであれば、それはもう言語の指定を無視した独自の言語とみなす。
815デフォルトの名無しさん:2007/04/19(木) 13:02:58
>>813
Standard Styleの"Standard"は言語規格という意味で用いている単語ではなく、
あくまで「標準的なスタイル」という程度の意味だよ。

StroustrupはCの古いスタイルのキャスト構文を好まず、わざと不恰好でタイプ量の
多い新しいキャスト構文を導入したが、古いキャスト構文を廃止はしなかった。
C++では関数宣言のvoidは省略できるが、ANSI同様にvoidと記述することも出来る。
むしろC++の多くの努力は当時のC標準との可能な限りの互換性をもたらすために
なされており、それがC++の強みであると同時に弱点にもなっているのは
周知の通りだ。

ルール違反だと主張したいのなら、ISO C++ Standard に照らして、これこれの
部分に違反していると指摘すべきだろう。
816デフォルトの名無しさん:2007/04/19(木) 13:03:59
>>813
スレを荒らしているお前が一番ルール違反をしているのだが。
817デフォルトの名無しさん:2007/04/19(木) 13:06:09
>>815
同意。>>725のコードでルール違反部分を指摘してもらいたいものですな。
818デフォルトの名無しさん:2007/04/19(木) 13:06:14
> あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない
> 質問やその他や発言はスルーの方向で。
819デフォルトの名無しさん:2007/04/19(木) 13:20:07
>>766
わざわざ書き直したわりには随分中途半端なスタイルのソースだな。

int main(void) <- void不要
y = (int)(x + 0.5); <- 旧式のキャスト構文
変数宣言を関数の頭でやっているしな。
820デフォルトの名無しさん:2007/04/19(木) 13:21:33
>>819
何回同じことを言わせるんだ?

”偉そうなことを言う前に、お前が書け”
821デフォルトの名無しさん:2007/04/19(木) 13:27:11
C++では関数の冒頭で変数宣言してはいけないの?
関数の引数不要の場合にvoidと書いてはいけないの?
822デフォルトの名無しさん:2007/04/19(木) 13:31:31
>>819
もっと突っ込むべきところがいろいろあるだろうに…

可哀想な子だな、本当。
823デフォルトの名無しさん:2007/04/19(木) 13:45:27
結局>>725のコードに問題が見つけれなかったから、
>>766のコードにケチをつけているわけですね。

いやあ、知識、知能、レベルの高い人間は違うねえ。
824デフォルトの名無しさん:2007/04/19(木) 13:52:23
>>821
別に何も悪くは無いが、「悪くない」という次元なら、>>725だって十分に
正しいC++プログラムだよ。
だから、「わざわざ書き直したわりには」と書いた訳だが。
825デフォルトの名無しさん:2007/04/19(木) 13:53:41
そもそも「言語:C++」であるからと言ってC++で書かなければいけないの?
出題者の意図はC++のコンパイラでコンパイルできるソースならいいと言う意味じゃないの?
それがCのソースでもC++のコンパイラで通ればいいよって意味だと思うけど
先生から「提出されたソースはC++ではなくCだからダメです」って言われても僕たち学生にはわからないよ
826デフォルトの名無しさん:2007/04/19(木) 13:57:06
>>825
> そもそも「言語:C++」であるからと言ってC++で書かなければいけないの?
当たり前だろ。

> 先生から「提出されたソースはC++ではなくCだからダメです」って言われても
「C++として正しくない」プログラムならそういわれても仕方が無いが、
>>725なら「C++として正しい」プログラムだから問題は無い。
例えばC++ではプロトタイプ宣言が必須なので、それが無いプログラムは例え
合法なCプログラムであろうともC++としては誤りだ。

さっきから規格上の合法性と好ましいスタイルの区別もつかない馬鹿が
一人吼えてるだけだからスルーしろ。
827デフォルトの名無しさん:2007/04/19(木) 13:57:19
>>825
int main君臭いな。
828デフォルトの名無しさん:2007/04/19(木) 14:11:37
>>826
まあ、補足させてもらうと

もし問題内容に出題者の意図があるならば、それを質問者は記載するべき。
例えばprintfではなくiostreamを使う、など。
それを怠って、回答者がどんな方法で仕様を満たしたコードを作成しても
文句を言われる筋合いはない。

================================================================
で、int main君の宿題である>>725がC++として正しくない部分の指摘はまだかい?
829デフォルトの名無しさん:2007/04/19(木) 14:18:13
お前らまだやってんのかよw
830デフォルトの名無しさん:2007/04/19(木) 14:24:02
誰かまとめて
831デフォルトの名無しさん:2007/04/19(木) 14:29:51
>>830
・とりあえず、int mainにしとけ。理由は自分でググれ。
・規約厨は立ち入り禁止。
832デフォルトの名無しさん:2007/04/19(木) 14:36:21
>>831 それでいいや
833デフォルトの名無しさん:2007/04/19(木) 14:40:27
標準C++ライブラリはC標準ライブラリを含むから
printfも完全にC++仕様の内。
834デフォルトの名無しさん:2007/04/19(木) 19:19:20
プログラムの勉強をしているのですが、分からない問題があります。どなたかこのプログラムを作ってくれませんか?
問題は
「5つの整数値を入力させて入力順に出力し、最大値と最小値も出力するプログラムをつくりなさい。」
<注>このプログラムは、並び替え処理は行わずに作成してください。

下のように出力できればいいんですが・・・・。できないです。よろしくお願いします。
Input number1 : 52
Input number2 : -34
Input number3 : 27
Input number4 : 612
Input number5 : 9

maximum value is 612
minimum value is -34
52 -34 27 612 9
835デフォルトの名無しさん:2007/04/19(木) 19:35:58
>>834
#include <stdio.h>
int main(void){
int i, max, min, num[5];
/* 数値入力 */
for(i=0; i!=5; i++){
printf("Input number%d : ", i+1); scanf("%d", &num[i]);}
/* 最大と最小を求める */
for(i=1, max = num[0], min = num[0]; i!=5; i++){
if(max < num[i]) max = num[i];
if(min > num[i]) min = num[i];}
/* 結果表示 */
printf("maximum value is %d\n", max);
printf("minimum value is %d\n", min);
printf("%d %d %d %d %d\n", num[0], num[1], num[2], num[3], num[4]);
}
836デフォルトの名無しさん:2007/04/19(木) 19:36:33
>>834
>>1のテンプレつかったほうが回答される率は上がるぞ。
とりあえずCで作った。C++で欲しかったらテンプレに沿って依頼してくれ。

int main(){
int i;
int value[5];
int max,min;
for(i=0;i<5;i++){
printf("Input number%d:",i+1);
scanf("%d",&value[i]);
}
max = min = value[0];
for(i=1;i<5;i++){
if(max < value[i]) max = value[i];
if(min > value[i]) min = value[i];
}
printf("\n");
printf("maximum value is %d\n", max);
printf("minimum value is %d\n", min);
for(i=0;i<5;i++){
printf("%d ",value[i]);
}
printf("\n");
return 0;
}
837デフォルトの名無しさん:2007/04/19(木) 19:36:37
>>834
#include <stdio.h>
#include <math.h>
#define MAX_NUM 5
int main(void)
{
int i;
int num[MAX_NUM];
int max, min;

for(i=0;i<MAX_NUM;i++)
{
printf("Input number%d : ", i+1);
scanf("%d", &num[i]);
}
max = min = num[0];
for(i=0;i<MAX_NUM;i++)
{
max = (max < num[i]) ? num[i] : max;
min = (min > num[i]) ? num[i] : min;
}
printf("\nmaximum value is %d\nminimum value is %d\n", max, min);
for(i=0;i<MAX_NUM;i++) printf("%d ", num[i]);

return 0;
}
838デフォルトの名無しさん:2007/04/19(木) 19:37:57
>>837 よう、兄弟!!
839デフォルトの名無しさん:2007/04/19(木) 19:45:21
素早い解答ありがとうございます。
非常に参考になりました。
どうもです><b
840デフォルトの名無しさん:2007/04/19(木) 20:00:29
>>837
#include <math.h>を使わずに作れませんか?
841デフォルトの名無しさん:2007/04/19(木) 20:02:13
>>840
つかってなくね?消してもだめ?
842デフォルトの名無しさん:2007/04/19(木) 20:28:05
>>828
> C++として正しくない
バカはこういう勘違いをするから困る。誰もそんなことは言っていない。
C言語で書いたソースのファイルの拡張子をcppにしてC++コンパイルで通ったくらいで
C++スタイルになるわけじゃないという指摘を勘違いしすぎ。勝手に曲解して間違った解釈するな、低学歴。
843837:2007/04/19(木) 20:31:39
>>840
スマン。なんかのファイル書き換えたとき消し忘れてた。無くておk
844デフォルトの名無しさん:2007/04/19(木) 20:33:44
[1] 授業単元:C プログラミング
[2] http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3843.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: BCC 5.5
 [3.3] 言語: C
[4] 期限:なし
[5] 制限:なし。お願いします。
845デフォルトの名無しさん:2007/04/19(木) 20:36:30
>>815
ANSI、ISOに入っているSはなんだろうか?標準を無視して何いってんだ?
>>725がC++の標準スタイルなわけがないw
846デフォルトの名無しさん:2007/04/19(木) 20:40:07
>>815
C++がCの拡張ということはすでに述べられているじゃんw
まだ寝ぼけたこと言って無意味な説得かよ。C++設計者のページにある
Standard C++ Styleの意味が分かってない証拠だな。これ以上の議論は無駄。
こちらの主張はただひとつ。C言語スタイルで書かれたソースファイルの拡張子を
cppにしてC++コンパイラで通ったものを標準スタイルを無視してC++のソースといったら笑う、以上w
847デフォルトの名無しさん:2007/04/19(木) 20:57:48
ここで答えてる人たちって何年くらいでソノ腕前になってるんですか?
848デフォルトの名無しさん:2007/04/19(木) 21:02:53
僕は10年やってもこのスレの住人に及ばないと思う。
849デフォルトの名無しさん:2007/04/19(木) 21:13:02
>>842
>C言語で書いたソースのファイルの拡張子をcppにしてC++コンパイルで通ったくらいで
>C++スタイルになるわけじゃないという指摘を勘違いしすぎ。
お前がここから勝手に曲解して間違った解釈しているわけだが。
だからその発言をしているレス番号を指摘しろよ。
850デフォルトの名無しさん:2007/04/19(木) 21:13:57
>これ以上の議論は無駄。
じゃ、二度と来るな。
851デフォルトの名無しさん:2007/04/19(木) 21:24:25
いや議論するスレじゃないから
852デフォルトの名無しさん:2007/04/19(木) 21:25:15
ここ宿題スレだから、846は要らない子。
853デフォルトの名無しさん:2007/04/19(木) 21:36:14
まさかマジもんの既知外だとは思わなかった。
854デフォルトの名無しさん:2007/04/19(木) 21:38:59
自覚症状がないから、なおさら性質悪いな。
855デフォルトの名無しさん:2007/04/19(木) 21:48:16
何?リアルで池沼が来てるんだ。>>846のような。
856デフォルトの名無しさん:2007/04/19(木) 21:49:52
>>853
んなこと、
0^0ネタとかint main()ネタを一人で延々と粘着して引っ張ってた
頃から分かりきってただろ。
857デフォルトの名無しさん:2007/04/19(木) 21:51:12
知識を一生懸命身につけようとしても、
こう歪んだ性格だと、リアルで友達いなさそうだな。
858デフォルトの名無しさん:2007/04/19(木) 21:52:04
もしかしてこのキチガイはデザパタスレでも暴れてそこの住民に
総スカンを買っていた奴じゃないの?
859デフォルトの名無しさん:2007/04/19(木) 21:54:37
こいつを見ていると、ウザい、って言葉の意味がよくわかる
860デフォルトの名無しさん:2007/04/19(木) 21:56:05
>>846には同情の余地もない
861デフォルトの名無しさん:2007/04/19(木) 22:05:18
>>849-860
一人ぐらいフォローしてやれよ!!
いくらキチガイだからって>>846が哀れすぎるだろ、
お前らにはそれぐらいの優しさも持ち合わせていないのか?

>>846、大人しく病院帰って薬飲んでゆっくり休め
862デフォルトの名無しさん:2007/04/19(木) 22:09:46
>>846は当然リアルで友達はいないだろうが、一人でいると
淋しくてたまらないから自分から絡んでいくタイプ

具体的に言うとあちこちを荒らしに行く
863デフォルトの名無しさん:2007/04/19(木) 22:12:59
いつまでC++コンパイラで通るStandard C StyleをC++のソースとして記述する気だい?
お前らほんっとみっともねぇ〜なぁ。そんなんだからモテないんだよ
キモメンメガネデヴピッツァが多いスレだということが判明w
864デフォルトの名無しさん:2007/04/19(木) 22:16:47
>>863
本当、哀れな奴だな。たぶん850以降は見えてないのか。

865デフォルトの名無しさん:2007/04/19(木) 22:18:38
本当、負け犬程よく騒ぐな。
866デフォルトの名無しさん:2007/04/19(木) 22:30:15
>>863
>お前らほんっとみっともねぇ〜なぁ。そんなんだからモテないんだよ
>キモメンメガネデヴピッツァが多いスレだということが判明w

お前自己紹介して恥ずかしくないのか?
867デフォルトの名無しさん:2007/04/19(木) 22:34:04
a)いつまでC++コンパイラで通るStandard C StyleをC++のソースとして記述する気だい?
b)お前らほんっとみっともねぇ〜なぁ。
c)そんなんだからモテないんだよ
d)キモメンメガネデヴピッツァが多いスレだということが判明w

aに対してbの感想を持つことは、これは個人の主観によるところだから否定できない。
だがa,bに対しc,dがどのような因果関係で結びつくのかは全く不明。

やっぱりこいつは真性のキチガイか。
868デフォルトの名無しさん:2007/04/19(木) 22:34:12
>キモメンメガネデヴピッツァ
この言葉が出ると、そろそろ祭りも終わりの合図。
869デフォルトの名無しさん:2007/04/19(木) 22:36:27
>>867
>>846は真性の基地外だから、物事を順序よく論理的に
人に説明する事ができないんだよ。思考障害から来る主観でしか
物事を語れなくなっている。まあ引き籠もりのニートだと思うが。
870デフォルトの名無しさん:2007/04/19(木) 22:38:38
>>814とか読むと面白いぜ。
>単に言語の仕様上、C++がCの拡張でC Styleが通る部分もあるが、
>すべてが通るわけではないという報告も出ているし。
C99は言うに及ばずC89とC++にも明白な非互換性があるが、
要は具体的なことは知らないらしい(「報告も出ている」って……プゲラ)

>規格、仕様を無視したんであれば、
で、具体的に>>725のどこがISO C++ Standardに違反しているか説明してみろと
言われても出来ないらしいw
871デフォルトの名無しさん:2007/04/19(木) 22:39:32
>>870 ぜんぜん面白くないよ。↓がすべてを物語っている。

C++ 言語を設計した Bjarne Stroustrup のホームページ
ttp://www.research.att.com/~bs/homepage.html
> Standard C++ style
どう考えてもStandard C styleで記述する人は Standard という標準を無視した
void main君と同じ考えです、ありがとうございました。
872デフォルトの名無しさん:2007/04/19(木) 22:39:39
>>869
統合失調症なんじゃないかな。
873デフォルトの名無しさん:2007/04/19(木) 22:40:28
さて、Cスタイルで書いたソースファイルの拡張子をcppにただけで
C++コンパイラで通ったものはすべてC++のソースだとして
C++のソースを書いたサイトでも立ち上げたらどうだね?>.cpp
874デフォルトの名無しさん:2007/04/19(木) 22:41:01
>>871
そのネタもう秋田。
言語仕様とスタイルの区別すらついてないで強弁してるの、
君だけだし。
まるで壊れたテープレコーダーだね。
875デフォルトの名無しさん:2007/04/19(木) 22:43:12
>>874
単なるスタイルの問題なのに、
>>814みたいに
>規格、仕様を無視
とか書いちゃうから馬鹿にされてるのに
全然自覚が無いんだろうな。
876デフォルトの名無しさん:2007/04/19(木) 22:44:25
>>874
壊れたテープレコーダーに失礼じゃないのか?
あっちは電池が切れればちゃんととまるし、ボリュームの調整も効く。
877デフォルトの名無しさん:2007/04/19(木) 22:45:19
.cppなんてキモい拡張子使わん。
.ccだろ。
878デフォルトの名無しさん:2007/04/19(木) 22:47:05
規格・仕様とスタイルを区別できない馬鹿なお子ちゃまがいると
聞いて来ました。
879 ◆J3Nz/y8l1c :2007/04/19(木) 22:47:05
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
以下のプログラムを実行すると、2*10=20,3*10=10となってしまうのは
なぜか?
#include<stdio.h>
#define N 10
int main(){

int a[N];
int i ;
int b[N];

for(i=1;i<=N;i++){
a[i]=2*i;
b[i]=3*i;
}
for(i=1;i<=N;i++){
fprintf("%d %d\n",a[i],b[i]);
}
}
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:不明
 [3.3] 言語:C
[4] 期限:2007年4月20日17:00まで
[5] その他の制限:C言語の基礎中の基礎くらいなら理解できます。

教えてもらえると嬉しいです。お願いします。
880デフォルトの名無しさん:2007/04/19(木) 22:47:41
>>879
iが10まで回っているから。iは9まで。
881デフォルトの名無しさん:2007/04/19(木) 22:49:36
for(i = 0; i < N; i++)
882デフォルトの名無しさん:2007/04/19(木) 22:49:42
>>879
ヒント:a[N]なんてない。0から始まってN-1個まで。
というかfprintfじゃなくてprintfじゃね?
883デフォルトの名無しさん:2007/04/19(木) 22:50:05
ttp://www.research.att.com/~bs/bs_faq.html#how-to-start
string s; // Standard C++ style
cin >> s;

and not like this

char s[MAX]; /* Standard C style */
scanf("%s",s);

どう考えても scanf だの使っている時点でCであってC++の標準じゃないね

>>725
> scanf("%lf", &x); <これ参照
これ以上は議論の余地なし。なんでそんなにC言語スタイルをC++として扱いたいんでしょーかねぇ〜〜〜wwww
884デフォルトの名無しさん:2007/04/19(木) 22:51:33
>>873
君は脳内の敵と戦うので忙しいみたいだね?
ここにはそんな主張している人間なんていない、ってことにまだ気がつかないの?

気が付けないんだろうけど。
885デフォルトの名無しさん:2007/04/19(木) 22:51:56
>>883
スタイルと言語仕様の区別が付かない池沼乙。
886デフォルトの名無しさん:2007/04/19(木) 22:53:21
C言語で習ったソースがC++コンパイルでも通るからついでに
C++(でもコンパイルできるC言語スタイルのソースの記述)も出来るぜって自慢したいのかね?w
887デフォルトの名無しさん:2007/04/19(木) 22:53:32
>>883
scanfなどのC標準ライブラリは標準C++ライブラリに含まれてるんだが?
888デフォルトの名無しさん:2007/04/19(木) 22:54:22
>>885
> スタイルと言語仕様の区別
ついてんじゃん。ちゃんとC / C++ Standard Styleを理解しての話だが?
C++がCの拡張だからCスタイルでも通ることくらい理解しての話をしてんだが?w
むしろ区別がついてないのはお前の方だろ
889デフォルトの名無しさん:2007/04/19(木) 22:54:49
>>883はそんなちっぽけな事にしか自分の価値を見いだせないほど
自己価値観が低いんだろうな。

というかお前病気だから病院逝けよ。このスレに来るな。迷惑だから。
890デフォルトの名無しさん:2007/04/19(木) 22:55:16
>>887
> 標準C++ライブラリに含まれてるんだが
含まれていないと言った覚えもなし。何が「標準」かの話であって
C言語標準スタイルを書いてC++コンパイラで通ったくらいでC++のソースを書いたと思うなよw
891デフォルトの名無しさん:2007/04/19(木) 22:56:01
>>888
文法違反じゃないがスタイルが違うからおかしいというのが
お前の主張なんだろ?

区別ついてないのはお前。
892 ◆J3Nz/y8l1c :2007/04/19(木) 22:56:48
>>880-882
ありがとうございます。

でも、2の倍数の方の結果が正しく表示されるのはなぜですか?
異常があるのは3×10の結果だけなんです。

>>882
・・・あ printf の間違いです。
893デフォルトの名無しさん:2007/04/19(木) 22:57:49
真面目な話、明日の朝メンタルヘルスに行って相談してこい
お前の周りからどんどん友人や身内がいなくなるぞ
今ならまだ間に合うかも知れん。善は急げだ

……今、一人でも残っていればの話だけどな
894デフォルトの名無しさん:2007/04/19(木) 22:58:17
>>891
文法違反についても言及してないぞ?w
Cスタイルで書いたソースファイルの拡張子をcppにしてC++コンパイラで通ったからって
それをC++のソースって言ったことに対しての疑問だが?w
895デフォルトの名無しさん:2007/04/19(木) 22:58:51
>>892
>でも、2の倍数の方の結果が正しく表示されるのはなぜですか?

それは俺からも答えられない。未定義の動作だから。
鼻から悪魔。
896デフォルトの名無しさん:2007/04/19(木) 22:59:10
>>888
> C++がCの拡張だからCスタイルでも通る

ほら、区別がついてない。だから、Standard Styleという、Stroustrupの
一文に現れたに過ぎない表現(しかも規格/言語仕様とは何ら関係の無い
チュートリアル的な文書)に固執する。それしか拠り所が無いんだね。

スタイルとは無関係に、純粋に言語仕様の次元において、
Cプログラムとして正しくてもC++プログラムとして誤っているプログラムも
C/C++のいずれにおいても正しいプログラムも
存在するんだよ。
897デフォルトの名無しさん:2007/04/19(木) 22:59:11
>>894
>Cスタイルで書いたソースファイルの拡張子をcppにしてC++コンパイラで通ったからって
>それをC++のソースって言ったことに
はい、それが何番目のレスかちゃんと言いましょうね?
どこにもそんなこと書いてませんから。
898デフォルトの名無しさん:2007/04/19(木) 22:59:27
>>894
文法違反してないなら立派なC++のソースなわけだが?
お前日本語大丈夫?
899デフォルトの名無しさん:2007/04/19(木) 23:00:25
>>894
もっかい>>814の自分のレスを読み直せ
都合の悪いことは忘れたがるようだな

>>883
>どう考えても scanf だの使っている時点でCであってC++の標準じゃないね
これなんて、もう笑いがとまらんわw
900デフォルトの名無しさん:2007/04/19(木) 23:00:29
誰も>>725が標準C++とは言ってないな。
ただC++としては合法だと言ってるだけ。

誰か>>725がC++として標準の書き方だなんて主張してたっけ?
901 ◆J3Nz/y8l1c :2007/04/19(木) 23:01:35
>>895
>未定義の動作
つまり、「偶然そうなってしまった」ということですか?

・・・しつこくてすみません。
902デフォルトの名無しさん:2007/04/19(木) 23:02:24
>>901
その通り。だから「やめとけ」としか俺からは言えない。
偶然値がおかしくなる程度で済んだ、と思っとけ。
903 ◆J3Nz/y8l1c :2007/04/19(木) 23:05:58
>>902
なるほど、わかりました。
とりあえず、宿題には教えてもらったことをまとめて回答しておきます。

本当にありがとうございましたm(__)m
904デフォルトの名無しさん:2007/04/19(木) 23:07:57
>>900
> 標準C++とは言ってないな
そうだが?それが標準C++じゃないとかじゃなくて、C言語スタイルで書いたソースファイルの拡張子を
cppにしてC++コンパイラで通ったらそれもC++ソースだと言うことに対する疑問だが?
まだ論点が分かってないんだんが、この人はw C++設計者ですらC/C++のそれぞれの
標準スタイルを明記しているのに、それすら理解できないなんて、お前みたいな奴は
法律も自分勝手な解釈をしてんだろうね。たとえば、赤信号でも事故が起きなきゃ通過しても違法じゃないとか
むしろ事故が起きない状況なら青と解釈するのが標準とか言い出しそうだなw
905デフォルトの名無しさん:2007/04/19(木) 23:10:03
>>904
>C言語スタイルで書いたソースファイルの拡張子を
>cppにしてC++コンパイラで通ったらそれもC++ソースだと
>言うことに対する疑問だが?

をい。誰がどこのスレでそう発言したんだ?C++の文法に合致して
いるからC++のソースだと言っているのであって、拡張子を変えて
たまたまコンパイルが通ったとか、誰がそんな発言をしたんだ?
906デフォルトの名無しさん:2007/04/19(木) 23:10:51
>>903
ポインタってやってる?
やってたら
printf("i = %p",&i);
for(i=1;i<=N;i++){
printf("%p %p",&a[i],&b[i]);
}
しとけ。へんなアドレスに書き込んでいるのが分かると思う。
907デフォルトの名無しさん:2007/04/19(木) 23:11:24
>>900
標準ってのはちと曖昧な言い方だな。
普通はプログラミング言語の文脈においてStandardと言えば
標準規格のことだが、某困ったチャンが盛んに引用している
Stroustrupの文章においては異なった意味で用いられているし。

その辺の違いも判らずに>>813あたりでは
>英語も意味も理解できないバカが何ほざいても無駄なんだよw
>ルールはルール。お前が何を言ってもルール違反はルール違反。
とか言っているのだから大笑いだが。

まぁ、>>725がC++らしい、C++として好ましいスタイルであるとは
誰も主張してないわな。約一名が一人で踊ってるだけさね。
908デフォルトの名無しさん:2007/04/19(木) 23:14:53
>>904
> C++設計者ですらC/C++のそれぞれの標準スタイルを明記しているのに

相変わらずの言語仕様とスタイルの混同乙。
プログラムが違法かどうかを決めるのは言語仕様であってスタイルではない。
909デフォルトの名無しさん:2007/04/19(木) 23:15:55
不思議なホームページ見つけた。
ヤフー検索キーワードの黄色がページいっぱいに広がっている。
このページの8番目のキャッシュ
http://search.yahoo.co.jp/search?p=%A5%D5%A5%EB%A1%BC%A5%C4%A5%E1%A1%BC%A5%EB&fr=top_v2&tid=top_v2&ei=euc-jp&search.x=1

元のページはココ
http://page.freett.com/94m3078/20fruitmail.htm
ソースを見ても変な文字列がいっぱい。

だれかわかる人いる?
910デフォルトの名無しさん:2007/04/19(木) 23:16:27
>>904
そろそろ脳内国語教師に日本語見てもらえ。
だんだんおかしくなってきたぞ。
911デフォルトの名無しさん:2007/04/19(木) 23:17:53
>>910
×だんだんおかしくなってきた
○ずっとおかしかった
912デフォルトの名無しさん:2007/04/19(木) 23:19:00
>>911
×だんだんおかしくなってきた
○ずっとおかしかった
◎そもそも最初からおかしかった
913デフォルトの名無しさん:2007/04/19(木) 23:19:20
こう考えるんだ。

文法→法律
スタイル→マナー

法律は破るとすぐ罰せられる(コンパイルエラー)だが、マナーは
破ったからと言って罰の対象にはならない。根本的に異なる物だ。
914デフォルトの名無しさん:2007/04/19(木) 23:19:27
この単刀直入にマヌケでアホな*出題者*に差し出す用の答えは
「b[10]がスタックオーバーして変数iの値を指しているから」
だろう。

だが、本当は2*10=20も3*10=10も全く保証されない。
コンパイラもバージョンも分からなければ、
スタックの積み方の順番が違っているかもしれない。
ひょっとしたらプログラムカウンタ(の一部)を指しているかもしれない。

「3*10=10になるのはお前の系だけじゃボケ」
「最低はハードウエアとコンパイラ名とそのオプションぐらいはっきりさせとけや」
といいながら回答しましょう。
915デフォルトの名無しさん:2007/04/19(木) 23:20:30
もちろんスタイルを破り続ける事はプログラマーとしては
あまり格好のいい事ではないだろうが、宿題スレでは
スタイルなどどうでもいい無関係な事だと思う。
916914:2007/04/19(木) 23:21:25
>>879
スレがのびちゃってるけど、879の答えな。
917デフォルトの名無しさん:2007/04/19(木) 23:21:35
>>914
自分の考えを人に強要するなヴォケ
918デフォルトの名無しさん:2007/04/19(木) 23:22:29
>>914
>>895で既に答えが出ている。未定義の動作。
それ以上の余計な事は言わないでよろしい。
919デフォルトの名無しさん:2007/04/19(木) 23:24:41
>>915
> 宿題スレではスタイルなどどうでもいい無関係な事だと思う

それはちょっと言いすぎかな。
この子が馬鹿にされているのは、文法とスタイルの区別もついてないレベルで
見当外れで鬱陶しいだけのレスを繰り返したからだろ。

スタイル論議はとかく宗教論争になりがちなんだが、これはそれ以前の問題だな。
920デフォルトの名無しさん:2007/04/19(木) 23:26:39
>>918,917その他
こちとら3秒毎に更新してるんじゃないんだよ。
そっちこそ無関係な煽りをやめれ
921デフォルトの名無しさん:2007/04/19(木) 23:26:44
おーいスタックがたまっているぞ!
後入れ先出しだ!
>>909
922デフォルトの名無しさん:2007/04/19(木) 23:27:04
>>919
バカにされている?しているのはお前でされているのもお前。
C言語スタイルで書いたソースファイルの拡張子をcppにしてC++として提出しろよなんて
バカだろw 自分がおかしなことを言っているのに気づかない、もはや自爆テロの実行犯並みに頭がおかしいよお前
923デフォルトの名無しさん:2007/04/19(木) 23:28:31
C言語スタイルどうのこうのはもうスルーしようよ
どんなレスにも反応を返す住民の優しさは十分に伝わったから
924デフォルトの名無しさん:2007/04/19(木) 23:28:54
>>917-918
まあまあ。

教師が求めている答え:

a[10]と定義するとa[0]〜a[9]が使用できるようになる。
このプログラムではa[10]へデータを書き込んでいるため、正しくない挙動を示す。
bも同様。

解決策は
a案:int a[N+1]と定義する
b案:for(i=0;i<N;i++) {a[i]=(i+1)*2;b[i]=(i+1)*3;}
としなければならない。

ってところだろ。
925デフォルトの名無しさん:2007/04/19(木) 23:30:25
>>922
馬鹿はお前だよ。
多分>>727はcinとかcoutとかC++独自の機能を使って欲しいと
思ったのだろうがそれをはっきりと言わなかった>>727が悪い。

>>922は何を擁護してるのかしらんがいい加減見苦しい。
926デフォルトの名無しさん:2007/04/19(木) 23:30:53
オマンコ!
927デフォルトの名無しさん:2007/04/19(木) 23:32:31
>>924
b案間違ってないか?
928デフォルトの名無しさん:2007/04/19(木) 23:32:39
>>925
> >>922は何を擁護してるのかしらんがいい加減見苦しい。
擁護も何も、全部同一人物、本人でしょ。
0^0、int main()等のネタでこれまでも延々粘着し
決め台詞が「キモメンメガネデヴピッツァ」な多分統合失調症か何かのひと。
929デフォルトの名無しさん:2007/04/19(木) 23:34:02
C言語スタイルのソースを書いた奴が
「なお、このソースのファイルを保存する際に、拡張子をcppにして
C++コンパイラでコンパイルすると、ななな、なんと!C++のプログラムが出来ちゃうんです!」
なんて宣伝してソースファイルを公開しているサイトがあったら笑われるだろw
930デフォルトの名無しさん:2007/04/19(木) 23:34:21
>>927
あれ???すまん、フォロー頼む。
931928:2007/04/19(木) 23:34:30
失敬。擁護って、宿題を書いた>>727に対してってことか。
多分引っ込みがつかなくなってるだけで、擁護とか既にどうでもいい次元だと思う。
932デフォルトの名無しさん:2007/04/19(木) 23:35:08
>>929
まだスタイルと文法の区別が付いてないのか
キチガイだよお前
933デフォルトの名無しさん:2007/04/19(木) 23:35:10
>>925
お前は何かと自分が気に入らない意見は馬鹿だの相手を罵るが
こっちは馬鹿にした覚えはないんだが?w
何が標準スタイルか?C言語スタイルのソースファイルの拡張子をcppにして
C++のソースとして出すなんて、恥ずかしくて出来ねーYO!wwwwwwwwwwww
まったく、本当の馬鹿って自分が馬鹿だって気づいてないから困るぜw
934デフォルトの名無しさん:2007/04/19(木) 23:35:48
>>932
まだ拡張子と書かれたソースの標準スタイルについて区別が付いてないのか
キチガイだよお前
935デフォルトの名無しさん:2007/04/19(木) 23:35:51
>>930
(i+1)→i
だと思う、。
936デフォルトの名無しさん:2007/04/19(木) 23:36:42
>>929
・たとえ話を多用する人間は、物事の本質を捕えられない人間。
・その場合、大抵そのたとえ話も分かりにくく、他人に理解してもらえない。
937デフォルトの名無しさん:2007/04/19(木) 23:37:15
>>933
スタイルと文法の区別がついていない時点でどう見ても
この場はお前の負けだから。
938デフォルトの名無しさん:2007/04/19(木) 23:37:53
int mainだって 世界の標準スタイル としての例であって、それじゃなきゃダメといったことはないんだがなぁ〜wwww
何が標準か?って話に、俺のスタイルで良しとしろだの、世界基準で話をした奴にお前が馬鹿だの言う奴は
どんだけ視野の狭い、小さな人間社会に住んでいる田舎モノだ?それじゃ広い世界はいうまでもなく
日本国内でも通用しねーよw
939デフォルトの名無しさん:2007/04/19(木) 23:38:49
おいおいみんな、こんな奴相手に熱くなるなよw
本人以外はよーく分かってるからさ

そろそろスルーでいいだろ
940デフォルトの名無しさん:2007/04/19(木) 23:39:07
一体誰が「何が標準か?」なんて話をしてたんだ?
941デフォルトの名無しさん:2007/04/19(木) 23:39:11
>>938
だからC++としてのプログラムとしてどこが文法的に
間違っているのかという話をしているのであって、
スタイル云々はお前一人がファビョっているだけなんだが。
942デフォルトの名無しさん:2007/04/19(木) 23:39:19
>>935
それだと結果変わんない?
もともとi=1〜Nに対して、i*2、i*3の値を計算して表示していたんだから。

i=0〜N-1に対して、(i+1)*2、(i+1)*3を計算すればいっかなー、と。
943デフォルトの名無しさん:2007/04/19(木) 23:39:40
>>937
書かれたソースと拡張子、言語の標準スタイルの区別がついていない時点でどう見てもお前の視野が狭いだけだら。
> この場はお前の負けだから。
何勝ち負けの話してんだよこのガキwwwwww
よくいるよな、はい、お前の負け!とか必死こいて相手の負けをアピールするやつw
どう考えても言語設計者の話と世界基準を用いて筋道立てて説明した方が負けていないだろ。
これだから田舎モノは困るぜw お前どこの学校を出た?どうせ専門学校でしょ?w
944デフォルトの名無しさん:2007/04/19(木) 23:40:16
>>930
>>935
多分、(Cを良く知らない)出題者は、
いかに修正せよとは書いてないので、
理由だけ書けば良いと思う。
945デフォルトの名無しさん:2007/04/19(木) 23:40:19
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):以下の表の得点をもとに、優(80点以上)、良(70点以上)、
  可(60点以上)、不可(60点未満)を判定するプログラムを作成せよ。
  ただし、プログラムには配列を用いること。            
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:不明
 [3.3] 言語:C++
[4] 期限:4月20日正午まで
[5] その他の制限:for構文を使う

お願いします。
946デフォルトの名無しさん:2007/04/19(木) 23:41:19
・標準規格コンプレックス
・英語コンプレックス
・学歴コンプレックス

どんだけかわいそうな人なんだろう。
947デフォルトの名無しさん:2007/04/19(木) 23:42:23
>>942
あっそうか俺の勘違いだったごめん
948デフォルトの名無しさん:2007/04/19(木) 23:44:04
結論 : C言語スタイルで書いたソースも拡張子をcppにしてC++コンパイラで通れば
それもC++標準スタイルのC++ソースとして扱える!
それじゃ、C++の授業でC言語スタイルのソースを書いて提出してね♣
君は授業で何を学んでいるのかね?って教師に指摘されて単位が取れなくても知らないよw
949デフォルトの名無しさん:2007/04/19(木) 23:44:08
>>943
俺は拡張子の話など一度もしていない。
言語文法とスタイルの区別をしろ、と言ってるだけ。

人格批判は詭弁の特徴のガイドライン
9:自分の見解を述べずに人格批判をする
に当てはまる。
950デフォルトの名無しさん:2007/04/19(木) 23:44:10
>>945
以下の表ってどれ?
951デフォルトの名無しさん:2007/04/19(木) 23:44:38
>>946
> ・標準規格コンプレックス
これはちょっと違うんじゃない?
むしろ標準規格の何たるかすらご存じないようだし。
952デフォルトの名無しさん:2007/04/19(木) 23:45:54
>>948
結論を急ぐのは良くない。
>>727がC++でお願いします、と書いた時点でそれはどういう
意味なのかをはっきりさせるべきだったというだけ。

教授がどうのこうのとか単位がどうのこうのとかの話はここでは
全く関係がない。
953デフォルトの名無しさん:2007/04/19(木) 23:47:06
>>943
英語読めてない上に勘違いした話を書き散らして、どこが筋道立てた説明なの?
954デフォルトの名無しさん:2007/04/19(木) 23:49:21
>>945
念のために確認するが、cin/coutは理解してる?
955デフォルトの名無しさん:2007/04/19(木) 23:49:27
自分は有能だから間違わないという妄想に取り憑かれた哀れな中年がいるスレはここですか?
956デフォルトの名無しさん:2007/04/19(木) 23:50:39
え?さっきから見当違いのレスばかり返してる痛い奴は
中年なのか?
いい年して何やってんだよコイツ
結婚して子供もいるんだろ?え?独身か?そりゃそうだろうな
957デフォルトの名無しさん:2007/04/19(木) 23:52:09
>>955
はい、誰一人擁護する人間がおらず、むしろ養護された方がよさそうな中年がいるスレはここであってますよ♪
958デフォルトの名無しさん:2007/04/19(木) 23:53:23
中年なのか。
それじゃあもう脳味噌も固まってしまってるだろうから
こいつのキチガイ振りは一生続くだろうな。
959デフォルトの名無しさん:2007/04/19(木) 23:55:20
>>958
仮に肉体が若くても、精神的には確実に45超えてるな
自分の意見が通らないと火病するあたり、更年期障害と一緒じゃん
960デフォルトの名無しさん:2007/04/19(木) 23:56:19
だなあ
こういう聞き分けのない奴がアメリカで銃乱射するような
奴なんだろうと思う。
それとも本当に朝鮮人かもしれんな。
961デフォルトの名無しさん:2007/04/19(木) 23:57:16
>>945
おーいまだいるか?
「以下の表」を早く貼ってくれよ。
962デフォルトの名無しさん:2007/04/19(木) 23:58:21
学校通っていても、会社で雇っても、絶対ハブられるタイプで間違いないな。
963デフォルトの名無しさん:2007/04/19(木) 23:59:38
>>945 >>961
あと、STL使うか、ただの配列使うか、とか制約あったら先言っとけ。
964デフォルトの名無しさん:2007/04/20(金) 00:01:09
だろうな。多分「自己愛性人格障害」
http://homepage1.nifty.com/eggs/narcis.html
もしくは「妄想性人格障害」
http://akatan.cool.ne.jp/jinkaku.htm#paranoid
のどちらかだろうな。
965デフォルトの名無しさん:2007/04/20(金) 00:03:27
966デフォルトの名無しさん:2007/04/20(金) 00:03:52
967デフォルトの名無しさん:2007/04/20(金) 00:04:05
>>730で、

これじゃ、C++の課題としては提出できなくね?

って言うだけにしておけば、こんなにぐだぐだにならなかったのに。
968デフォルトの名無しさん:2007/04/20(金) 00:05:33
言語に関しての話じゃなくて、標準スタイルを言う人間に対してどうこう言い出したら
そいつこそ人格障害だろ。どう考えても団体が決めている仕様書に目を向けたら
あれをC++ですなんて、真顔で言えないだろ
969デフォルトの名無しさん:2007/04/20(金) 00:06:27
>>968
人格障害って単語の意味を知らないなら、辞書で調べたらいいと思うよ。
970デフォルトの名無しさん:2007/04/20(金) 00:07:08
>>968
よぉ、中年。
971デフォルトの名無しさん:2007/04/20(金) 00:07:43
いつまでも意地を張るだけ張って、結局最後は誰にも理解されない、かわいそうなピエロが居るwww
972デフォルトの名無しさん:2007/04/20(金) 00:08:28
>>967
いや、いずれは起きていただろうさ
けっして争いを止めようとはしないのだよ
人とはそんなものだ
973デフォルトの名無しさん:2007/04/20(金) 00:09:06
>>968
オッサンはそろそろ寝ないと明日の仕事に差し支えるんじゃなのか?
え?仕事してない?中年でニートで精神病かよ。死んだ方がいいな。
974デフォルトの名無しさん:2007/04/20(金) 00:10:50
>>972
まあ、それでもこんな仕様書とかスタイルとか、妄想まみれの話にはいかなかっただろ。

言語:C++って書いてたらiostreamくらいは使うが、STL使うかどうかは質問者が明確にしてくれ、ぐらいで。
975デフォルトの名無しさん:2007/04/20(金) 00:11:23
>>973
時代遅れの化石ジジイこそとっとと永眠しろよw
976デフォルトの名無しさん:2007/04/20(金) 00:11:57
どうでもいいけどcinってinfc(input from consle)とかにしてくれないかなぁ
console input だと「コンソールに入力って、それ出力じゃん。」
とか考えたくなる馬鹿がここにいます
977デフォルトの名無しさん:2007/04/20(金) 00:12:09
何だと!くそ野労ども!
978デフォルトの名無しさん:2007/04/20(金) 00:12:44
テンプレ案

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
・C++の場合、STLを使うかどうかを明確にしてください。
・キチガイは死ね。氏ねじゃなくて死ね。
979デフォルトの名無しさん:2007/04/20(金) 00:13:40
>>974
まあそうなんだが基地外が煽ってきたのでこちらもつい応戦
したくなったんだよ。
要するに基地外が出てこなければ丸く収まってた。従って
悪いのは基地外。
980デフォルトの名無しさん:2007/04/20(金) 00:15:18
オレのことか?
981デフォルトの名無しさん:2007/04/20(金) 00:15:32
>>967
>>730だけなら不可解な突っかかり方をしているというだけだったが、
>>745あたりから本格的に面白い主張をし始めたな。
とは言え本人の知性と知識に問題があり過ぎるため、レスの内容が
ワンパターンすぎるのが難点だが。
982デフォルトの名無しさん:2007/04/20(金) 00:15:49
>>980
次スレ頼んだ
983デフォルトの名無しさん:2007/04/20(金) 00:15:55
>>969
>>964に書いてあるじゃん?人格障害って。お前ちゃんと日本語読めてんのかYO!
984945:2007/04/20(金) 00:16:14
すいませんでした。
A  B  C  D  E  F  G  H  I 
90 73  55 60  45 88  66 75  40
です。

実行結果が下のようになるようにお願いします。
A  B  C  D  E  F  G  H  I
優 良 不可 可 不可 優  可 良 不可

>>954
すいません。理解していません・・・

>>963
ただの配列です。


985デフォルトの名無しさん:2007/04/20(金) 00:17:02
>>969
http://dictionary.goo.ne.jp/search.php?MT=%BF%CD%B3%CA%BE%E3%B3%B2&kind=jn&mode=0&base=1&row=0
まさに標準スタイルを無視した人の人格そのものだなw
986デフォルトの名無しさん:2007/04/20(金) 00:17:22
>>981
結局言語能力に難がありすぎて、話をかみ砕くこともできず、
同じことを繰り返しているだけだったな。

脳内国語教師の性能が悪すぎるんじゃないのか?
987デフォルトの名無しさん:2007/04/20(金) 00:17:52
>>969
標準スタイルを無視した屁理屈がまともな人格か?
988デフォルトの名無しさん:2007/04/20(金) 00:18:30
>>985
まだ言ってるのか中年基地外
人と仲良くやって行く事をまずスタイルよりも何よりも先に
あんたは学ばなければならんね
989デフォルトの名無しさん:2007/04/20(金) 00:20:50
SE=キチガイ
990デフォルトの名無しさん:2007/04/20(金) 00:21:35
>>988
> まだ言ってるのか中年基地外
そのままそっくりお前に言い返すよ。お前こそ基地外だろ
991デフォルトの名無しさん:2007/04/20(金) 00:22:40
>>990
基地外
992デフォルトの名無しさん:2007/04/20(金) 00:24:16
>>990
とうとうボキャブラリーも尽きたか。
バカやキチガイも破滅的な所まで来ると、哀れよのぉ……
993デフォルトの名無しさん:2007/04/20(金) 00:27:07
SEってホント基地外だな。
994デフォルトの名無しさん:2007/04/20(金) 00:27:11
世界基準のスタイルを用いて自分の下らない視野の狭い考えを指摘されて
ファビョって俺はC言語スタイルで書いたソースも拡張子をcppにしてC++として扱うんだよ!
みたいなことを用いて標準スタイルを指摘する人を批判したり、最終的な自分の言う通りに
しない奴の人格攻撃まで始めている基地外はどっちだよ?きめぇんだよキモヲタデヴピッツァにしろ
基本概要を無視して0^0=1を導いた奴にしろ、ANSI、ISO準拠のmain関数の戻り値がint型に対して
俺の環境じゃvoid mainだよーだの主張して攻撃してくる奴とか、何考えてんだ?w
995デフォルトの名無しさん:2007/04/20(金) 00:27:25
>>989
違うよ

SE=シンセイ エテコウ

つまんない?
996デフォルトの名無しさん:2007/04/20(金) 00:27:48
>>992 そのままそっくりお前に返すよ。お前がおかしい。
とうとうボケブラリーも尽きたか。
池沼や知識遅れも破滅的な所まで来ると、哀れよのぉ……
997デフォルトの名無しさん:2007/04/20(金) 00:28:01
>>945
データの件数情報はなしでOK?
例えば
↓ここにデータ件数を書いておく
9
A  B  C  D  E  F  G  H  I 
90 73  55 60  45 88  66 75  40


998デフォルトの名無しさん:2007/04/20(金) 00:28:22
>俺の環境じゃvoid mainだよーだの主張
そんなやつおらんかったと思う
999デフォルトの名無しさん:2007/04/20(金) 00:29:03
>>998
つ 自立環境厨
1000デフォルトの名無しさん:2007/04/20(金) 00:29:08
なんてったってオマンコだよ!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。