C/C++の宿題を片付けます 105代目at TECH
C/C++の宿題を片付けます 105代目 - 暇つぶし2ch1:デフォルトの名無しさん
08/04/15 23:07:41
あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

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

【前スレ】
C/C++の宿題を片付けます 104代目
スレリンク(tech板)

2:デフォルトの名無しさん
08/04/15 23:10:20
                           ト-、___
                     _,,-‐‐‐‐‐‐t-:、_ `‐、、_
                __,,,-‐'´     .:. ,,:.:``‐、;:;:;ヽ_
  ,,,_____,,..、_,,,,,-‐‐‐-、、_,,-'´    ............:.:/: .:.     ````ヽ、_      こ、これは>>1乙じゃなくて
 〈=__,,,,__,,,,,,,,,,,,..::::::::::...  ;.:.:.:.:.:.:.:.:.:.:.:.:.:.:,;ノ::.            `‐、、    浜に打ち上げられた魚の死骸なんだから
/ .._____.. .. . `````ヽ- '--‐‐'''''~~~'`::::ヽ:.:.:.....        、     ヽ、    変な勘違いしないでよね!
ヒ;-'´  ````:‐:‐:-:-.:__,,、、、、、  ....:.:.:.:.:.:.`:.:.:.:,;,;,;,;.:.:.;,;...........ヽ、ヽT   ● ヽ、
                 ````‐--:-:‐:':´:`:`´:: :::``:..、_:.:.:.:.:.:.:.ヽ、__ ,-==,
                                 ````‐‐:-:-:-:-:‐"

3:デフォルトの名無しさん
08/04/16 02:36:46
104代目の>>982を解いてもらったものですが、フローチャートを描きたいのですが
いまいちソースが理解できないので、ヒントや解説をもらえないでしょうか?
お願いします。ring_list_tやretが何を指しているのかがわからなかったです。

4:デフォルトの名無しさん
08/04/16 03:09:37
>>3
ring_list_append()
・リングリスト1要素を新規に確保
・新要素の中身は引き数data
・新要素の次要素は自分自身
・新要素の前要素は自分自身
・既存リストの追加点が空なら(唯一の要素である)新要素を返す
・既存リストの追加点を新要素の前要素に繋ぐ
・既存リストの追加点の次要素を新要素の次要素に繋ぐ
・既存リストの追加点の次要素の前要素に新要素を繋ぐ
・既存リストの追加点の次要素に新要素を繋ぐ
・新要素を返す

即ち、

追加点
次↓↑前
追加点の次要素

という構造を

追加点
次↓↑前
新要素
次↓↑前
追加点の次要素

と言う構造に変更している。

っと、ここで力尽きた。後は頑張ってくれw

5:デフォルトの名無しさん
08/04/16 03:51:01
>>4 本当にありがとうございます  orz
プログラムの
ret->prev=list;
ret->next=list->next;
list->next->prev=ret;
list->next=ret  のところがようやく理解できました。
理解させてもらった上で質問なのですが、このような構造変換をして
何故あのような親とラベルのきれいな出力になるのかが理解できていないです。
簡単なヒントでいいので教えていただけないでしょうか?

6:デフォルトの名無しさん
08/04/16 05:30:39
CPUが忠実に命令を受けて実行してるから

7:デフォルトの名無しさん
08/04/16 06:06:50
>>6
CPUが命令を実行してくれるのはわかるんですが・・・・
フローチャートを描きたいので内容的な部分を言ってくれるとありがたいのですが。


8:4
08/04/16 07:38:21
今起きた。

―少しは想像力と推理力を働かせようよ……
# あ、それができるくらいなら(ry

リングリストの部分はロジックを追うときに絵を描きながら理解しやすいんじゃない?
全体のロジックを追うときにはその絵を見れば判るだろうし。
# って、それができる(ry

9:デフォルトの名無しさん
08/04/16 07:43:14
nodeinfo_t infoary[NODENUM]の説明
ノードのラベルと親ノードを、ノード-1の位置に記憶する
ex. ノード3のラベルと親ノードは、infoary[2].label, infoary[2].parent
infoary[x-1].label == 0 の場合、xは通過していないことになる

analyze_depth:
①空のスタック(stack_t stack={0})、初期化されたノード情報配列(nodeinfo_t infoary[NODENUM] = {{0}})を宣言
②スタックにルートノード(start)をプッシュ : pushstack(&stack, start);
③ルートノードを通過済みする : flags[start-1] = 1;
④ルートノードのラベルを1に設定 : infoary[start-1].label = 1;
  ルートノードの親ノードを自分に設定 : infoary[start-1].parent = start;
⑤ラベルを2に設定 : label = 2;
⑥スタックにデータ(親ノード)がある→⑦、 スタックが空→⑮
 ⑦スタックからノードを取り出す(親ノード) : parent = popstack(&stack);
 ⑧親ノードから到達可能なノード(子ノード)が、ある→⑨、ない→⑥ : for(i=0; adj[parent-1][i] != 0; ++i){
  ⑨子ノードが未通過→⑩、通過済み→⑧ : if( flags[ adj[parent-1][i]-1 ] == 0){
   ⑩子ノードを通過済みにする : flags[ adj[parent-1][i]-1 ] = 1;
   ⑩スタックに親ノードをプッシュ : pushstack(&stack, parent);
   ⑪スタックに子ノードをプッシュ : pushstack(&stack, adj[parent-1][i]);
   ⑫子ノードのラベルを設定 : infoary[ adj[parent-1][i]-1 ].label = label;
    子ノードの親ノードを設定 : infoary[ adj[parent-1][i]-1 ].parent = parent;
   ⑬ラベルを+1する : ++label;
   ⑭⑥に戻る : break;
⑮ラベルが0以外のノードを表示する
printf(" v_label parent\n");
for(i=0; i < NODENUM; ++i){
if(infoary[i].label != 0){
printf("%2d : %7d %6d\n", i+1, infoary[i].label, infoary[i].parent);
}
}
上記間違いがあっても、当方は責任を負いかねます
これで分からないなら、まずwikiで深さ優先探索、スタックをじっくり勉強してください

10:デフォルトの名無しさん
08/04/16 11:14:04
>>9
助かりました
本当にありがとうございます  orz


11:デフォルトの名無しさん
08/04/16 13:22:41
前スレ988のものです。
>>989
無知なんでライブラリと聞いてもピンとこないんですが;;すいません。
授業で使う資料に書いてあることを書きます。

画像処理を行うプログラムをWindowsのダイアログベースで作成していく。
ダイアログベースプログラムの大枠をMicrosoft Visual Studio6.0のVisual C++6.0で作る。

となっています。どうでしょうか?

問題
a[100][100]を宣言し、2重のfor文を用いて、a[0][0]に0+0を入れて、
a[0][1]に0+1を入れて、a[0][2]に0+2を入れて、a[1][2]に1+2を入れて、
・・・a[99][99]に99+99を入れるようなプログラムを作れ。次にこれらの
配列変数の値が赤色の値で、緑と青の値は0であるような画像を表示する
プログラムを作成しろ。


>>996~998
ありがとうございます。
まだ基礎しか習ってないのでここまで複雑ではないような気がします。
せっかくやっていただいたのに申し訳ありません;;


12:993
08/04/16 16:57:56
>>11
3日もかけて作ったのに!
ところで、ダイアログベースってことは使うコントロールを指定されてたりしないかい?

13:デフォルトの名無しさん
08/04/16 17:23:14
ウィザードからダイアログベースのアプリケーション作って
SetPixelで点打っていくだけでは内科医

14:993
08/04/16 17:25:57
>>13
複雑と言われそうだ。

15:デフォルトの名無しさん
08/04/16 17:56:32
char str[] = "monster hunter portable 2nd G";
char buff[128];
という変数があって、
あえてstring.hを使わずにbuff[128]に
str[]を代入するにはどうすればいいですか?


16:デフォルトの名無しさん
08/04/16 18:19:00
for (int i = 0; (buff[i] = str[i]) != '\0'; i++);

17:デフォルトの名無しさん
08/04/16 20:22:55
>>15
sprintf(buff, "%s", str);

18:デフォルトの名無しさん
08/04/16 20:54:57
>>1
乙。
最近まったく答えてないが。

19:名無しさん@ゴーゴーゴーゴー!
08/04/16 21:35:12
URLリンク(kansai2channeler.hp.infoseek.co.jp)

宜しくお願いします。

20:デフォルトの名無しさん
08/04/16 21:59:22
>>19
設問1
URLリンク(kansai2channeler.hp.infoseek.co.jp)

21:デフォルトの名無しさん
08/04/16 22:04:28
>>19
設問2
URLリンク(kansai2channeler.hp.infoseek.co.jp)

22:デフォルトの名無しさん
08/04/16 22:12:07
>>19
設問3
URLリンク(kansai2channeler.hp.infoseek.co.jp)
10進数表現が、符号無しか符号付きか不明だったので、両方用意しました。
不要なほうは消してください。

23:デフォルトの名無しさん
08/04/16 22:13:25
やってる事は正しいんだろうけど、
そのビット操作はレベル的に提出したら>>19やばくねw

24:デフォルトの名無しさん
08/04/16 22:17:22
>>19
設問4
URLリンク(kansai2channeler.hp.infoseek.co.jp)
同様に両方用意しました。

25:デフォルトの名無しさん
08/04/16 22:40:29
>>23
このスレではよくあることw

26:デフォルトの名無しさん
08/04/16 22:55:47
こうゆうの、確信犯って、ゆうんですよね

27:デフォルトの名無しさん
08/04/16 23:21:07
[1] 授業単元:画像処理
[2] 問題文:2値化画像を読み込ませ、
黒(255)の部分の面積(画素の数を求める)プログラミングを作成せよ。
[3] 環境
 [3.1] OS:XP 
[3.2] Visual Studio2005
 [3.3] 言語:C
[5] その他の制限:メイン関数(特に画素の数を求める部分)だけでも教えて欲しいです。
分かりにくかったらすみません。
よろしくお願いします。


28:デフォルトの名無しさん
08/04/16 23:27:59
追記:画像フォーマットはmagでお願いします

29:デフォルトの名無しさん
08/04/17 00:17:58
この期に及んでmagとは恐れ入った

30:デフォルトの名無しさん
08/04/17 00:21:58
[1] 授業単元:Cプログラミング言語
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン:CPad for Borland
 [3.3] 言語: (C)
[4] 期限:4/18まで
[5] その他の制限:入力はgetcharもしくはfgetsで行う。
       文字列の最大は#defineで行う。

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

31:デフォルトの名無しさん
08/04/17 00:58:05
>>12
本当に申し訳ありません;;
他には何も書いてないようです・・・

>>13
SetPixelで点を打っていくのは確かです。

よろしくお願いします。

32:デフォルトの名無しさん
08/04/17 01:09:31
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):()
1世代20年とういう仮定のもとに、500年前(つまり25世代前)のあなたの祖先の数が何人になるかを再帰法を用いて計算せよ
  (1世代前=父母、2世代前父方の祖父母+母方の祖父母、3世代前=・・・)

[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C
[4] 期限: 4月21日まで
[5] その他の制限: 制限はないのですが再帰法を絶対に使えということです

どなたかよろしくお願いします



33:デフォルトの名無しさん
08/04/17 01:45:43
#include<stdio.h>

int hoge(int a, int b)
{
if(b<0) return 0;
return a+hoge(a*2, b-1);
}

int main(int argc, char *argv[])
{
int i;

for(i=0;i<=25;i++)
printf("%d\n", hoge(1, i)-1);

return 0;
}

34:デフォルトの名無しさん
08/04/17 01:48:48
てす

35:デフォルトの名無しさん
08/04/17 01:58:11
[1] 授業単元:情報演習
[2] 問題文:200個の要素を格納する整数配列を宣言し,要素を1〜100の乱数で満たし,この配列の要素を標準出力に出力する.
次いで,要素の大きい順に出力するプログラムを作成する
[3] 環境
 [3.1] OS:XP 
[3.2] cygdrive
 [3.3] 言語:C
[5] その他の制限:自分で並び替えられる前、並び替え変えた後が
表示されるようにつくろうとしましたが、大きい順に並び変えるところで
お手上げ状態です。いろいろfor文入れたりしましたが駄目でした。どうか
お願いします。以下作ってみたプログラムです。

36:35
08/04/17 01:59:59
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{srand((unsigned) time(NULL));
int d[200]; int i, j; int tmp;
printf( "before,\n" );
for ( i=0; i<200; i++ ){
j = rand() % 100 + 1;
printf("%d ",j);
}
printf("\n");
for ( i=0 ; i<200; i++ ) {
for ( j=i+1; j<100; j++ ) {
if ( d[i] < d[j] )
{ tmp = d[i];
d[i] = d[j];
d[j] = tmp;
}
}
}
printf("after,\n");
{
printf("%d ",d[i]);
}
}

37:デフォルトの名無しさん
08/04/17 02:00:30
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!

38:デフォルトの名無しさん
08/04/17 02:08:34
>>35
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void) {
int d[200];
int i, j;
int tmp;
srand((unsigned) time(NULL));
printf( "before,\n" );
for ( i=0; i<200; i++ ) {
d[i] = rand() % 100 + 1;
printf("%3d ", d[i]);
}
printf("\n");
for ( i=0; i<200; i++ ) {
for ( j=i+1; j<200; j++ ) {
if ( d[i] < d[j] ) {
tmp = d[i];
d[i] = d[j];
d[j] = tmp;
}
}
}
printf("after,\n");
for ( i=0; i<200; i++ ) {
printf("%3d ",d[i]);
}
printf("\n");
return 0;
}

39:デフォルトの名無しさん
08/04/17 02:13:57
>>38
ありがとうございます!


40:デフォルトの名無しさん
08/04/17 08:24:04
>>30
違ってたらすんません。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

41:40
08/04/17 08:38:31
>>40
自己レスです。
return i; とありますが、文脈上 return commands[i].cmd_id; の方がいいですね。

42:デフォルトの名無しさん
08/04/17 12:04:46
課題:配列について
内容:char src[ ] = "seikima";
char dest[4] = "tsu";
と配列を用意し、destの中身をsrcに結合させ、表示させる。
ただし、for文を使うこと・ポインタ、string.hは使ってはならない。

43:デフォルトの名無しさん
08/04/17 12:33:49
そのままsrcにdestぶち込むって無理じゃね?
srcの配列数していいんだったらいいけど。

44:デフォルトの名無しさん
08/04/17 12:35:51
>>35 大学特定しました。 CS2年だなw
まぁ自分でも頑張ってみることも大事だよ。
ここに頼りすぎてると後々辛い思いをするかもね。

45:デフォルトの名無しさん
08/04/17 13:38:23
>>44
ここに来ているお前はなんだよ?w

46:デフォルトの名無しさん
08/04/17 18:47:33
>>35
URLリンク(kansai2channeler.hp.infoseek.co.jp)

簡単なバブルソートでやってみました。なぜか\が文字化けするので
puts( "" )なんて変な書き方になってます。

47:デフォルトの名無しさん
08/04/17 19:02:44
>>42
URLリンク(kansai2channeler.hp.infoseek.co.jp)

まさか授業でこんなトリッキーなことをさせるとは思えないんですが...
どんな環境でも動くのかは知りません。

48:デフォルトの名無しさん
08/04/17 20:03:23
電子版で聞いたけど回答無かった
おまえらならわかる?

今回はR32C/121を利用してロボットを作ろうとしています。
できれば新しくCAN通信で動かしたいのですが
初期設定でうまくいっていないようです。
/* CANリセット/初期化モードに移行 */
reset_c0ctlr = 1;
sleep_c0ctlr = 0;
/* 動作モードの設定 */
/* CAN制御レジスタの設定 */
porten_c0ctlr = 0;
loopback_c0ctlr = 0;
msgorder_c0ctlr = 0;
basiccan_c0ctlr = 0;
buserren_c0ctlr = 0;
tsprescale_c0ctlr = 0;
/* ビットタイミングの設定 */
prc0 = 1;/* Protect off */
cclkr &= ~0x0FU;
cclkr |= 0x00;
prc0 = 0;/* Protect on */
brp_c0conr = 12;
/* CAN動作モードへ移行 */
reset_c0ctlr = 1;
/* 動作モード確認 */
while(state_reset_c0str == 1){}
どこがおかしいの?



49:デフォルトの名無しさん
08/04/17 21:52:03
>>48 そんなんでわかるかよ 初期値渡されてもわかるわけないだろ

50:デフォルトの名無しさん
08/04/17 22:43:09
>>48
たぶん、
> /* CAN動作モードへ移行 */
> reset_c0ctlr = 1;
ここを
reset_c0ctlr = 0;
にしないと動作モードにならないだろ?
他のレジスタはほとんどわからんけどね。

51:デフォルトの名無しさん
08/04/17 23:21:04
演算子の単元で

c=a+a*b+a/b

c=43

どうしても43にならないのですが、解説していただけないでしょうか。

52:デフォルトの名無しさん
08/04/17 23:29:17
>>51
aとbは43になるかもしれないしならないかもしれません。
cはc=43の時点で43になります。

53:デフォルトの名無しさん
08/04/17 23:30:34
c=a(b+1+1/b)
43は素数なのでa,bの少なくとも一方は整数ではない
あれ?問題がわからなくね?

54:51
08/04/17 23:31:42
すいません抜けがありましたので、再度書き込みます。

a=10 b=3で

c=a+a*b+a/b

このときのcに格納される値の問題です…。すいません。

答えは43らしいのですが…



55:デフォルトの名無しさん
08/04/17 23:34:22
何型なの?クワガタ?イントガタ?

56:デフォルトの名無しさん
08/04/17 23:35:17
>>54
c = (10) + (10 * 3) + (10 / 3)
c = (10) + (30) + (3)
c = 43

あってるよ
算数の宿題じゃなくプログラムの問題だったら
コードを見てみないと何がおかしいのかわかりません

57:デフォルトの名無しさん
08/04/17 23:36:49
int型だと 10 / 3 = 3 に切り捨てられるから43で合ってるよ
あとは四則演算

58:51
08/04/17 23:37:35
>>55-56

なるほど。10/3=3になるんですね…。
ちなみにintです。
助かりました、ありがとうございます!!

59:51
08/04/17 23:38:13
>>57
ありがとうございます!

60:デフォルトの名無しさん
08/04/17 23:40:12
>>47
これ参照エラーでそうだけど…

言葉の隅つくようだったら

printf("%s",src);
for(i=0; i<sizeof(dest); i++)
  printf("%c", dest[i])

でいけそうじゃね?

61:デフォルトの名無しさん
08/04/17 23:48:37
重箱だろ。

62:デフォルトの名無しさん
08/04/17 23:57:23
重箱だな

63:デフォルトの名無しさん
08/04/18 06:16:24
>>60
Javaじゃないから配列の範囲外をアクセスしても、変なところぶっ壊さない限り
大丈夫じゃない?とりあえず、OSX上でgcc 4.0.1では動いてる。

64:デフォルトの名無しさん
08/04/18 08:46:24
[1] 授業単元: 画像処理プログラミング
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 04/25
[5] その他の制限:なし

自分でも考えて見てますがちょっと出来る気がしないので
(画像の読み込みとhistの計算の部分)暇があれば宜しくお願いします

65:デフォルトの名無しさん
08/04/18 09:25:30
>>63
マジで言っているならC/C++を使うのはやめた方がいい。

66:デフォルトの名無しさん
08/04/18 09:58:51
[1] 授業単元: C/C++プログラミング
[2] 問題文: URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:WindowsXPPro
 [3.2] コンパイラ名とバージョン: VC++2005
 [3.3] 言語:C
[4] 期限: 本日中
[5] その他の制限:C++でも可

その他参考サイトからパクってきても、手を加えたら動かなくなります。
イチから作るのが超絶苦手でいつも改造改変ばっかりしてたので手も足もでず・・。

67:デフォルトの名無しさん
08/04/18 13:08:36
なんでまたそんな課題をギリギリまで・・・

68:デフォルトの名無しさん
08/04/18 13:25:16
>>65
それ、マジで言っているならそっちこそCを使うのをやめた方がいい。
Javaでも使ってれば?

元々、Cってのは高級アセンブラだぜ?メモリ管理なんて話を抜きにす
れば、どこのアドレスだろうが自由に読み書きできるのがCってもんだ。

実際の業務で使うとかって話じゃなくてパズルみたいな問題を解いてる
だけ。できることと、やっていいことの区別くらいついてるさ。

69:デフォルトの名無しさん
08/04/18 13:36:49
>>47が適切かどうかで考えるべき。たまたま
srcの後ろにdestが連続した領域に記録されたとき、srcの文字列の終端を示す文字を
destをあのように操作することで上書きしたから起こった現象。

70:デフォルトの名無しさん
08/04/18 13:38:33
>Javaじゃないから配列の範囲外をアクセスしても、変なところぶっ壊さない限り大丈夫じゃない?
ここはまぁいい。
>とりあえず、OSX上でgcc 4.0.1では動いてる。
これは阿呆だろ。>68が言うように「パズルの問題を解く」つもりなら何故動くか理解しておくべきだ。
それをしないなら、使うのはやめた方がいいってことだな。
# 何故できるか、と同様に何故してはいけないか、もね。

71:デフォルトの名無しさん
08/04/18 13:44:40
またナンバーサイン野郎か・・・うざっ

72:デフォルトの名無しさん
08/04/18 14:11:45
>>70
阿呆って?

intやlongはalignされる可能性があるけどcharはそのまま連続して確保されるでしょ、
実装依存かもしれんけどとりあえずosxのgccならOK、って書いとけばよかった?

73:デフォルトの名無しさん
08/04/18 14:13:34
63 名前:デフォルトの名無しさん 投稿日:2008/04/18(金) 06:16:24
>>60
Javaじゃないから配列の範囲外をアクセスしても、変なところぶっ壊さない限り
大丈夫じゃない?とりあえず、OSX上でgcc 4.0.1では動いてる。

↑こいつが一番アホだろ、JK。もちっとまともな奴がここにいると思ったが
所詮バカが自分以下を見下そうと思ってきているだけか。この世にお前以上の人間が
どんだけいると思ってんだ?w

74:デフォルトの名無しさん
08/04/18 14:40:48
>>73
ぐだぐだ言わずに解答の一つでもかけよ

75:デフォルトの名無しさん
08/04/18 15:15:24
>>74 = >>68
言い返すことが出来なくなるとファビョる基地外 以後放置よろ

76:デフォルトの名無しさん
08/04/18 16:00:10
>>64
URLリンク(kansai2channeler.hp.infoseek.co.jp)
あんま自信ないけどうp

77:デフォルトの名無しさん
08/04/18 18:43:58
>>76
ありがとうございます
今ちょっとLinuxのPCが調子悪いので今日試せませんが
ソース見て勉強します


78:64
08/04/18 23:55:27
スミマセン,私の解釈がちょっと違ってたようで
プログラム内でjpgをppmに変える必要があるそうです

でもdjpegコマンドを用いるってプログラム内でlinuxのコマンド
用いて変換することって可能なのでしょうか

あともし>>76さんに書いて頂いたコードで出力データを別ファイルに
書き込んでデータファイル作る場合にはどうすれば良いでしょう
FILEのところに関数追加して書き込み用として開いて最後にfprintf?
ご教授お願いします

79:デフォルトの名無しさん
08/04/19 01:38:28
>>66
削除、CSVファイルの取り込み以外は出来たのだが・・・タイムオーバー?
もちっとできんもぉ~ソースだけど完成するのだが・・・

80:デフォルトの名無しさん
08/04/19 08:12:34
>>66 がとりあえず完成したのだが・・・もう間に合わなんだか・・・?

81:デフォルトの名無しさん
08/04/19 08:34:14
>>80
努力が報われないのもあれだから、おれが添削してやるよ。

82:64
08/04/19 08:53:01
>>78は何か出来てしまったので放置でお願いします

83:デフォルトの名無しさん
08/04/19 09:01:50
>>81
俺のきしょいクソースを見たいとな?ならば見せて進ぜよう、後ほど。

84:デフォルトの名無しさん
08/04/19 09:37:39
余計なこと書かずにあげたきゃ自分の判断であげりゃいいのに。

85:デフォルトの名無しさん
08/04/19 09:39:12
んじゃあーげないっと、お前も見たけりゃ余計なことを言わなきゃ良いのになw

86:デフォルトの名無しさん
08/04/19 09:43:34
>>84>>85
まさかこれがかの有名な自作自演!?
どんだけチキンなんだよw

87:デフォルトの名無しさん
08/04/19 09:49:32
自作自演って、あーた・・・そうやって煽って、本当は見たいんだろぉ~?
必死だなw

88:デフォルトの名無しさん
08/04/19 09:55:00
おまえどんだけ性格ねじれてんだよwww
土曜の朝から笑かしてもらいやした。もうお腹いっぱいです。

89:デフォルトの名無しさん
08/04/19 09:56:22
>>86
84は俺だが自演じゃねーよw
どっちかっていうと俺は81と83が自演だと思ってる人間だ

90:81
08/04/19 09:57:46
すんません。
俺が書き込んだのは>>81>>86>>88です。

91:デフォルトの名無しさん
08/04/19 09:58:45
>>83 >>85 >>87 これは俺だが自演じゃないよw

92:66
08/04/19 12:34:50
>>79,80
金曜午後期限だったんですが、なんとか言い訳して伸ばして貰いました
もしまだ見てらっしゃったらソース見せてほしいです

93:デフォルトの名無しさん
08/04/19 12:36:32
もうちょっと速ければ見せてもらえたのに。
彼もうへそ曲げちゃったから。。。

94:デフォルトの名無しさん
08/04/19 12:58:59
おぉ、そうかそうか、そんなに俺のクソミソースを見たいか?
もちっと待ってなぁ。ちと、CSVからバイナリに変換するところでてこずってる。
あと、余裕があったら最後に名前を基準にソートする部分をそぉ~っと入れておくぜい。

95:デフォルトの名無しさん
08/04/19 12:59:34
なんだ、結局まだできてないんじゃんwww

96:デフォルトの名無しさん
08/04/19 13:00:21
じゃ、おれも作ってみようかな。

97:デフォルトの名無しさん
08/04/19 13:00:35
いや、出来たと思ったんだけど、色々と不具合があってな。
まぁ、きんもぉ~なソースになりすぎて、自分でも把握しきれてない。
が、一応バイナリーデータ、CSVへの出力は完成している。
あとはインポーとのところが、ね・・・

98:デフォルトの名無しさん
08/04/19 15:27:25
うわぁ~、きんもぉ~クソースがさらにきんもぉ~に・・・けどがんばる、もちっと待ってぇなぁ

99:デフォルトの名無しさん
08/04/19 15:39:37
>>66 >>92
URLリンク(kansai2channeler.hp.infoseek.co.jp)

4) リストの出力(第四段階)
 登録されている登録項目のリストを、テキストファイルに出力する。
 ※ 名前によるソートを視野に入れたコーディングが望まれる。

このソートの部分は実装していないので、あしからず
適当に仕組みを作ればできるけど、なんかもう徹夜明けで
('A`)  マンドクセッ 状態なんで、クソミソースですまそ

100:デフォルトの名無しさん
08/04/19 15:41:25
あぁ、あと、取り込む際に、既存の住所録の件数と取り込む件数を考慮して
300件を超えるべきではないが、その部分もやってないっす・・・すまそ。
登録されている件数は、生成されたバイナリーデータのファイルサイズと
1件分の構造体のサイズを元に算出してますです、はい。

101:デフォルトの名無しさん
08/04/19 15:43:58
さらに、コメントに性別を省略した際は x を入れるってのもやってね・・・マンドクセッ

102:デフォルトの名無しさん
08/04/19 15:47:39
重複する名前でも登録可能っす。削除する際も重複するものすべてが消えるっす。
あぁ、なんかインポートかCSV出力にバグっぽいのがあった・・・シラネッ

103:デフォルトの名無しさん
08/04/19 15:50:46
いちいち報告しなくていい。正直興味ないし。

104:デフォルトの名無しさん
08/04/19 15:51:36
ちょっwwwwwwwなんで静かなんだ?もっと突っ込んで突っ込んで by姫(ry

URLリンク(ja.wikipedia.org)
本当にもう、シラネッ

105:デフォルトの名無しさん
08/04/19 15:52:24
>>103
興味ないならいちいちそんなことを書き込まなくていい。お前の存在自体いらないしw

106:デフォルトの名無しさん
08/04/19 16:03:41
期限切れの宿題に対して、答えを出そうともがく君の存在が必要とされてるとでも?
ただ興味があってチャレンジするのであれば、一向に構わないが
君の無意味な連続投稿によって埋もれていく宿題登校者の身にもなったらどうかな。
>>97-102 の辺りとか、反応がないという事はどういうことか?
あまりこういうことは言いたくはないが、もう少し空気を読んでくれ。

107:デフォルトの名無しさん
08/04/19 16:06:05
>>106
お前の方がうざっ、無能な奴ほど相手に食って掛かるもんだな
それから、現状で待機中の宿題があるなら、お前がやれよw

108:デフォルトの名無しさん
08/04/19 16:08:01
> 無能な奴ほど相手に食って掛かるもんだな

さすが、すべての発想が我々の2、3歩先をリードしていらっしゃるw

109:デフォルトの名無しさん
08/04/19 16:12:16
コーディングにそれなりの時間を要するのは確かだが
有能なら>>66程度の問題なら難なく解決できるだろwwwwww
特別に難しいアルゴリズムを求めているわけでもないし、ただ仕様通りに書くだけ。
期限切れてるから、俺はやる気にもならんがな。

110:デフォルトの名無しさん
08/04/19 16:13:03
>>1

111:デフォルトの名無しさん
08/04/19 16:45:02
【質問テンプレ】
[1] プログラミング言語
[2] 整数の平方根を開平法で求めるCのプログラムを作成せよ。結果は小数点第1位まで求めればよい
 [3.1] OS: Windows
 [3.3] 言語: C

よくわからないので、よろしくお願いします。


112:デフォルトの名無しさん
08/04/19 17:17:20
>>66 >>92 海底版
URLリンク(kansai2channeler.hp.infoseek.co.jp)

113:デフォルトの名無しさん
08/04/19 17:18:31
>>109 >>106
何こいつ、このスレの主か?偉そうに仕切ってやがるが
そこまで言う前に、お前も無駄なレスを書き込むなって。
相手を煽ればそれにレスがつく、結局流れる原因はお前にもあるんじゃん。
放置、スルーを知らない時点でお前の存在こそこのスレには要らない。
それから、期限切れではあるが、期限を延長したような
本人からのレスがあるようだが・・・?
兎にも角にも、興味がないならお前がスルーしろよ、な?

114:デフォルトの名無しさん
08/04/19 17:20:01
この板にもIDがついたら面白いのにね。

115:デフォルトの名無しさん
08/04/19 17:33:38
113様のような有能な人材は是非ともトリップをつけるべきですね
トリップをつけさえすればこのスレ、いや世界が変わると言っても過言ではないでしょう

116:30
08/04/19 17:34:40
>>40
すいません、できてはいたのですが,
警告 W8066 StrCmnd.c 81: 実行されないコード(関数 main )と、でてましたが
この警告を消す方法はないでしょうか?

そして、前スレで解いていただいたのですが、
「Q.0~255の整数を入力し、数値に変換して unsigned char型配列に格納する。
 この数値に対して1ビット左にシフトした結果、全ビット反転した結果をそれぞれ
 10進数、16進数、2進数で表示する(入力された数値に対しても表示しておくこと)」
という問題で、
URLリンク(kansai2channeler.hp.infoseek.co.jp)
と、解答していただいたのですが、unsigned(left,right,return)
など使わずに 結果をunsigned nのみで表示する方法はないでしょうか?


117:デフォルトの名無しさん
08/04/19 17:42:21
>>66 >>92 さらに海底版
URLリンク(kansai2channeler.hp.infoseek.co.jp)

118:66
08/04/19 17:46:30
>>117
ありがとうごぜーます
コードかけないけれど改造だけは得意なのでがんばってみます

119:デフォルトの名無しさん
08/04/19 17:51:33
神がひとりの名無し住人として宿題に挑む

名無し住人として書き込んだ為、神のソース投稿に際して無粋な突っ込みが入る

宿題投稿者からの懇願が奏し、神がソースをアップロード

神が書いたソースのあまりの素晴らしさに息を呑む住人

レスする暇もなく神のソースをしゃぶっている住人から、レスポンスがない事に神は腹を立てる

更に無能な住人から嫉妬されてしまう

完璧な論理で一蹴

非の打ち所がないほどのソースをまさかの連続改良

神様万歳 ←今ここ

神がトリップをつけ2chで数々の功績を残す

神の功績は2ch程度では留まらず、やがて世界の舞台で活躍

神を中心に世界が変わる

120:デフォルトの名無しさん
08/04/19 18:13:12
>>1
> あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。
> 気に入らない質問やその他や発言はスルーの方向で。
読めない新入りがいるよなぁ

121:デフォルトの名無しさん
08/04/19 19:44:02
少しは治療の効果があったようにも見えたが、実際はぜんぜんかわってねーな
また暴れてPC取り上げられんなよw

122:デフォルトの名無しさん
08/04/19 20:05:00
[1] プログラミング実習
 [2] 目盛りのついてない水差しが3つあり、それぞれ3L、5L、8Lの容積をもっている
 8Lの容器には既に満杯の水が入っているが、半分の4Lずつに分けたいと考えている。
 なお、資源を大切にしたいので、水をいくらでも使えるということは出来ない。
 最初の8Lをうまく3つの容器に分ける必要がある。
 その手順を求めるおプログラムを作成せよ。
 また完成後1Lと7Lや5Lと2Lにも分けられることを確認せよ
 [3] 環境
  [3.1] OS: WindowsXP
  [3.2] コンパイラ名とバージョン: BorlandC++
  [3.3] 言語: C言語
 [4] 期限: 2008年4月20日24:00まで
 [5] その他の制限: 特にないです


123:デフォルトの名無しさん
08/04/19 20:45:04
[1] 授業単元:
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:出来れば4/21,無理なら4/24でお願いします
[5] その他の制限:特にありません

宜しくお願いします

124:デフォルトの名無しさん
08/04/19 21:22:36
>>123
>前回のプログラムデータを使用する宿題
ここんとこ詳しく

125:デフォルトの名無しさん
08/04/19 21:58:48
あ、前回>>76さんにやって頂いた課題>>64のことです
それを複数の画像に使用してDBを作ってます
DBの内容については書いてあるとおりです

126:デフォルトの名無しさん
08/04/19 22:04:27
DBは自前で用意しろってことか?
正直面倒そうなんで俺はパスする

127:デフォルトの名無しさん
08/04/19 22:09:37
>>122
URLリンク(kansai2channeler.hp.infoseek.co.jp)
ごめん、勢いで作ってしまったらC++だった。
どなたか引き続きCでお願いします。

128:デフォルトの名無しさん
08/04/19 22:12:01
>>122
やっとでけた
URLリンク(kansai2channeler.hp.infoseek.co.jp)

129:デフォルトの名無しさん
08/04/19 22:36:29
>>128 の訂正
int queue[STATE_NUM], queue_top=0, queue_last=0;

int queue[QUEUE_SIZE], queue_top=0, queue_last=0;

130:122
08/04/19 22:52:42
>>128
しっかり実行できました!
ありがとうございます!

131:デフォルトの名無しさん
08/04/19 23:10:44
>>122
綺麗じゃないけどせっかく作ったので
途中までどれかが4になればいいのかと思ってた
URLリンク(kansai2channeler.hp.infoseek.co.jp)

132:123
08/04/19 23:12:15
URLリンク(kansai2channeler.hp.infoseek.co.jp)

スミマセン,DB作ってきました
お願いします


133:131
08/04/19 23:17:08
ああミスった
#define FIN 7
#define REQUIREMENT if(b[1][1]==4 && b[2][1]==4){
に訂正

WFSやったのとないからDFSで求めたんだけど、WFS勉強したいから参考サイトとか教えてもらない?

134:デフォルトの名無しさん
08/04/20 01:43:22
>>133
WFS ってなんでしょうか。幅優先探索?

135:デフォルトの名無しさん
08/04/20 02:15:59
Width First SearchではなくBreadth First Searchという方が一般的なのか
幅優先探索と初めから言えばよかったが

136:デフォルトの名無しさん
08/04/20 03:12:57
>神が書いたソースのあまりの素晴らしさに息を呑む住人
神のコードは、時に読んだ人を妊娠させるとか‥‥‥。

137:デフォルトの名無しさん
08/04/20 04:33:34
>>117 住所:不貞無職童貞になっているな・・・本人いたら消しておくようにw
>>118

138:デフォルトの名無しさん
08/04/20 11:33:05
>>117はEOF対策をしたつもりが、EOFを入力すると無限ループ・・・
EOF入力したダメー

139:デフォルトの名無しさん
08/04/20 14:42:29
>>138
普通、EOFは入力できないのだが。
# 入力をクローズすれば、fgetc()などの戻り値がEOFになることを期待できるが。

140:デフォルトの名無しさん
08/04/20 15:00:13
[Ctrl+Z][Enter]で入力できなかったっけ?

141:デフォルトの名無しさん
08/04/20 15:03:54
いいえ、それは一部の環境において入力を閉じる行為です。

142:デフォルトの名無しさん
08/04/20 15:07:19
まぁ、fread(buffer, 1, 1, stdin)とかすれば戻り値からEOFが入力されないことがわかるな。

143:デフォルトの名無しさん
08/04/20 15:59:06
[1] 授業単元:Cプログラミング言語
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン:CPad for Borland
 [3.3] 言語: (C)
[4] 期限:4/21まで
[5] その他の制限:
入力はgetcharで行い、atoi関数は不可。

①~③までありますが、過程ではなくそれぞれ1つのプログラムですので、
よろしくお願いします。
@余力があれば、>>116の下の段もお願いします;

144:デフォルトの名無しさん
08/04/20 16:14:27
>@余力があれば、>>116の下の段もお願いします;
それぞれ、printf("\n");の行の次に以下の行を入れればいい。
--
n = a;
n <<= 1;
--
n = a;
n >>= 1;
--
n = a;
n = ~n;
--
# 勿論、left, rightなどはnに変更することをお忘れなく。
ってことでいいのかな?

145:デフォルトの名無しさん
08/04/20 16:27:23
>>143
>@余力があれば、>>116の下の段もお願いします;
何のために1つの変数で表示する必要があるの?
変数の使いまわしは思わぬミスを招くから回答者はそれを避けたんだと思うんだけど

146:デフォルトの名無しさん
08/04/20 16:55:48
>>139
>>141
こいつまた知ったかで墓穴掘ってるよ・・・ナンバーサイン野郎は以後放置な

147:デフォルトの名無しさん
08/04/20 17:09:18
っつか、EOFは何かのファイルの終わりのことだけだと思っているんだろうか・・・
一応、入力されたデータもファイル(何かデータの資料)として扱えるんだがね。

148:デフォルトの名無しさん
08/04/20 17:23:30
URLリンク(www9.plala.or.jp)
URLリンク(www.geocities.jp)
ここにあるソースをコンパイルして実行すれば一目瞭然

149:デフォルトの名無しさん
08/04/20 17:38:00
>>143
違ってたらすまそ
URLリンク(kansai2channeler.hp.infoseek.co.jp)

「CPad for Borland」君の問題、前スレからいくつか解いてきたけど、
教えてる人間が3、4流っぽい気がする。

150:デフォルトの名無しさん
08/04/20 17:40:55
>>143

URLリンク(kansai2channeler.hp.infoseek.co.jp)

151:デフォルトの名無しさん
08/04/20 17:45:38
>>149
自己レスです。
累計出力するの忘れてました。
一行だけ追加してください。
p[j++] = _p;
printf("累計件数:%d\n", j); <- 追加
} while (j < DATA_SIZE);

152:デフォルトの名無しさん
08/04/20 17:48:27
>>143

URLリンク(kansai2channeler.hp.infoseek.co.jp)

153:149
08/04/20 17:49:56
すんません、3つプログラム作らないとダメなんですね。
読み間違ってました。

154:デフォルトの名無しさん
08/04/20 18:13:49
>>146
次のソースで試してみました。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
環境:
WindowsXP/cygwin(gcc.3.4.4)
Vine Linux 4.1(kernel 2.6.15) / gcc
FreeBSD 6.2 / gcc
MS-DOS ver6.2(NEC) / lsic(3.30c), borland c(3.1), ms-c(6)

結果をみるかぎり、>>139, >>141 が正しいように思えるのですが、如何に?



155:デフォルトの名無しさん
08/04/20 18:16:08
>>143

URLリンク(kansai2channeler.hp.infoseek.co.jp)

>>149
すいません、横から仕事取っちゃいました。

156:デフォルトの名無しさん
08/04/20 18:28:04
>>149
>3、4流っぽい気が
それはお手本のソースを見ない限りなんともいえませんが、それは提示されてましたっけ。

157:デフォルトの名無しさん
08/04/20 18:29:25
>>123
URLリンク(kansai2channeler.hp.infoseek.co.jp)
意外に手こずってしまった
間違ってたらごめんね

158:デフォルトの名無しさん
08/04/20 19:09:34
>>157
ありがとうございます!
ちょっと家のPC不調なんで学校行って実行してみます

159:デフォルトの名無しさん
08/04/20 19:19:23
>>154
ここ、宿題スレ。あとな、お前何が言いたいの?
あのリストを作るプログラムをちゃんと見たか?w
getchar() が使われているんだが???

160:デフォルトの名無しさん
08/04/20 20:07:23
>>149
それをいうならアンダースコアから始まる変数名を使って欲しくはない
(わざとやってるんじゃなければ)

161:デフォルトの名無しさん
08/04/20 20:12:35
自分の信じている土台が揺らぎ始めたのを本能的に察知して相手をたたき出すことにしたようですね。
なるほど、なるほど。

162:149
08/04/20 20:15:42
外部に公開する必要のないシンボルや、どうでもいいテンポラリな変数は先頭_で始めてます。

163:デフォルトの名無しさん
08/04/20 20:21:12
>>162
アンダースコアで始まる名前は処理系のために予約されていることになってるから
使わないほうがいいと思うよ

164: ◆wIggSzRFEU
08/04/20 20:26:38
1 情報

2 人数a人のクラスで野球チーム(9人)をbチーム作成した。
このとき残りのメンバーでバレーチーム(6人)を何チーム作れ、何人あまるかを出力する。

3 Windows
テラタームを使ってます


4 2008年4月21日06時

5 scanfを用いるみたいです・・・
難しい関数は習ってません

よろしくお願いします。

165:デフォルトの名無しさん
08/04/20 20:28:17
プログラムの問題なのか?算数の問題じゃなくて?

166: ◆wIggSzRFEU
08/04/20 20:29:59
そうです・・・

167:149
08/04/20 20:32:57
>>163
そのような話は聞いたことがないのですが、それは処理系依存の話でしょうか?
よく見る他人のソースがlinuxのkernelソースだったもんで普通に使ってました。

168:デフォルトの名無しさん
08/04/20 20:33:06
>>164
#include<stdio.h>

int main(void)
{
int a, b, c; // a:クラスの人数 b:野球チーム数 c:バレーチーム数

printf("クラスの人数を入力してください : ");
scanf("%d", &a);
if(a<0) return 1;

for(b=0;b*9<=a;b++)
{
c=(a-b*9)/6;
printf("野球チーム数:%d バレーチーム数:%d あまり人数:%d\n", b, c, a-b*9-c*6);
}

return 0;
}

169:デフォルトの名無しさん
08/04/20 20:35:14
>>168
ありがとうございます!

170:デフォルトの名無しさん
08/04/20 20:36:20
bも入力するんじゃないの?

171:デフォルトの名無しさん
08/04/20 20:41:53
野球チーム一つ分の人数を数値から引いて、
その数でバレーチームが何人作れて、
何人余るかじゃないの?

172:デフォルトの名無しさん
08/04/20 20:44:54
>>167
処理系のために予約されてるんだから、当然規格で決まってる
ただまぁアンダースコアで始まるすべての名前が予約されてるわけじゃないけど

173:デフォルトの名無しさん
08/04/20 20:59:16
>>123です
>>157さんのプログラム拝見させて頂きました
恐らく>>64での課題とまとめたソースだと思うのですが
既に>>64を実行してとっているデータ(>>132のような)
を読み込んで演算を行うようにしたいのですが
どうすればいいでしょうか?

あとオーバーフローチェックのところのLLONG_MAXが使用されてなく
エラーが出てしまいます

174:デフォルトの名無しさん
08/04/20 21:00:54
>>170
>>171

すみません
おっしゃるとおりです;

175:デフォルトの名無しさん
08/04/20 21:15:18
>>164をお願いします・・

176:デフォルトの名無しさん
08/04/20 21:15:32
>>167
すまん、ググってみたが確かなソースにたどり着けなかった

177:デフォルトの名無しさん
08/04/20 21:21:58
>>175
aとbを入力する場合
#include <stdio.h>

int main(void)
{
int a, b;

scanf("%d", &a);
scanf("%d", &b);

a -= b * 9;
if(a < 0) return 0;

printf("チーム数:%d\nあまり:%d\n", a / 6, a % 6);

return 0;
}


178:デフォルトの名無しさん
08/04/20 21:24:15
>>177
ありがとうございます

179:デフォルトの名無しさん
08/04/20 21:27:15
>>177
if を使わないではできませんか?

180:デフォルトの名無しさん
08/04/20 21:30:10
#include<stdio.h>
void main (void)
{
int a,b,c,d,e;
printf("人数入力:");
scanf("%d",&a);
printf("野チーム数:");
scanf("%d",&b);
c=a-(b*9);
d=c/6;
e=c%6;
printf("人数:%d 野数:%d バレ数:%d 余:%d",a,b,d,e);
}
だめ?

181:デフォルトの名無しさん
08/04/20 21:42:33
if文削除すればいいだけだろ。
野球チーム数多すぎた場合変なことになるけど。

182:デフォルトの名無しさん
08/04/20 23:05:37
[1] 授業単元:プログラミング演習1
[2] 問題文(含コード&リンク):
キーボードからABCDと円周率を入力して「ABCD3.14と」表示させるプログラム
変数は1つで
[3] 環境
[3.1] OS:問わず
[3.2] コンパイラ名とバージョン:VC++6.0
[3.3] 言語:C++だけど基本範囲?
[4] 期限:[2008年04月21日23:59まで]
[5] その他の制限:基本領域なのでstdio.hのみ

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

183:デフォルトの名無しさん
08/04/20 23:08:50
C++なのにstdio.hでいいんだな?別にやっちゃいけないわけじゃないけどいいんだな?

184:デフォルトの名無しさん
08/04/20 23:11:23
C++ならcstdioだろうな。

185:デフォルトの名無しさん
08/04/20 23:12:41
それより問題文が意味不明なのだが

186:デフォルトの名無しさん
08/04/20 23:24:21
>ABCDと円周率
と入力すると
>ABCD3.14と
になるように変換すればいいんだろ
円周率という文字を3.14に置き換えて、「と」を後ろにすればいいんじゃないかな?

187:デフォルトの名無しさん
08/04/20 23:31:52
>>182
できた。

#include <stdio.h>
int main()
{
char buf[100];
scanf("%s", buf);
puts("ABCD3.14と");
return 0;
}

188:182
08/04/20 23:58:08
>>183-187
素早いレスサンクス。

>>183-184
stdioで桶です

>>185-186
プロセスとしては
起動>入力「ABCD」>入力「3.141592653」で
出力「ABCD3.14」
入力ミスで「」のなかに と を入れてしまいますたorz

>>187ので通るかどうか…多分先生笑顔で×くれてきそう(涙

189:デフォルトの名無しさん
08/04/21 00:00:25
なんてくだらない設問なんだ。

190:デフォルトの名無しさん
08/04/21 00:04:44
>>188
文字列と小数に関する入力・出力の課題というわけだな。
しかし、
> 変数は1つで
この条件はマジ?

191:デフォルトの名無しさん
08/04/21 00:22:16
>>182
#include <stdio.h>
void main() { char buf[16]; gets(&buf[0]); gets(&buf[4]); buf[8] = '\0'; puts(buf); }

192:182
08/04/21 00:31:51
>>190
マジですorz

193:デフォルトの名無しさん
08/04/21 00:33:39
>>182
できた。

#include <stdio.h>
int main()
{
char buf[100 + sizeof(float)];
scanf("%s", buf);
scanf("%f", buf+100);
printf("%s%.2f\n", buf, *(float*)(buf+100));
return 0;
}

194:デフォルトの名無しさん
08/04/21 02:19:26
>>182
これで基本?
#include<stdio.h>

int main(void)
{
char buf[100+1];

setvbuf(stdout, NULL, _IOFBF, 1024);

fprintf(stderr, "入力「ABCD」>", buf);
scanf("%100s", buf);
printf("%s", buf);

fprintf(stderr, "入力「3.141592653」>", buf);
scanf("%lf", buf);
printf("%.2f\n", *(double*)buf);

fflush(stdout);

return 0;
}

195:デフォルトの名無しさん
08/04/21 08:35:07
139 名前:デフォルトの名無しさん 投稿日:2008/04/20(日) 14:42:29
>>138
普通、EOFは入力できないのだが。 < 出来るんだが・・・

141 名前:デフォルトの名無しさん 投稿日:2008/04/20(日) 15:03:54
いいえ、それは一部の環境において入力を閉じる行為です。  < 話が分かってない・・・

196:デフォルトの名無しさん
08/04/21 08:37:55
EOFっていったら普通Ctrl-Dで入力だな

197:デフォルトの名無しさん
08/04/21 08:44:35
EOFがキーボードから入力できないとしても、どのファイルには
ファイルの終わりを意味するEOFコードが記録されていますし
それを入力受付として使うことも可能ですが何か?w
これだから初心者、素人は・・・ナンバーサイン野郎の妄想に惑わされるなよ。

198:デフォルトの名無しさん
08/04/21 08:49:57
あと、そいつが言っているのはEOF対策として、freadが指定したFILEストリームから
指定したポインタへ取り込まないという性質についてだろ?だったら最初から
EOFが 入力 出来ないという勘違いは言わなきゃ良かったんだよ。
言いたいことが相手に的確に伝えられない、誤解を生じさせて損をして生きている奴って
世の中普通にいるしなw こんなところでだから、見ず知らずの人に理解してもらおうと
必死になったんだろうけど、それを相手のエスパーで理解してもらわなきゃ通じないって
どんだけコミュニケーションが下手なんだよ、ナンバーサイン君は?

199:デフォルトの名無しさん
08/04/21 11:35:31
ナンバーサイン君って誰?

200:デフォルトの名無しさん
08/04/21 12:01:24
いちいち蒸し返すなよ

201:デフォルトの名無しさん
08/04/21 12:22:47
[1] 授業単元: プログラミング実習
[2] 問題文
数学関数を使って,0以上10未満の範囲で平方根(sqrt)の対応表を出力しなさい.小数点の刻みを0.01とすること.
[3] 環境
 [3.1] OS:Windows/Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 4/22

202:デフォルトの名無しさん
08/04/21 13:45:07
#include <stdio.h>
#include <math.h>

int main(void)
{
double a;

for(a=0; a<10; a+=0.01) printf("√%.2f = %f\n", a, sqrt(a));

return 0;
}

って書くと減点されるんだろうな。

203:デフォルトの名無しさん
08/04/21 14:56:39
>>202
負の方が表示されないからな。

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

int main()
{
int i;

for(i=0;i<1000;i++)
printf("√%.2f = %f, -%f\n",i/100.0,sqrt(i/100.0),sqrt(i/100.0));

return 0;
}

204:デフォルトの名無しさん
08/04/21 15:03:24
>>203
負?フッ

205:デフォルトの名無しさん
08/04/21 15:25:35
sqrt()2回とかw

206:182
08/04/21 15:30:31
>>192-194
作成ありがとうございます。
先生に出したら一つめの方がやり直し、二つ目は「同時に表示できてないな(藁」
とあっさり×&デコピンを頂戴致しました(泣
文字列と小数を同時ディスカ・・・orz

207:デフォルトの名無しさん
08/04/21 15:35:03
>>182は何を意図した問題なのかさっぱりわからん。

208:デフォルトの名無しさん
08/04/21 15:35:07
>>206
#include <stdio.h>

struct hoge{
char str[100];
double value;
};

int main(void){
struct hoge foo;

scanf("%s", foo.str);
scanf("%lf", &foo.value);
printf("%s%.2f\n", foo.str, foo.value);

return 0;
}

209:デフォルトの名無しさん
08/04/21 15:42:37
エスパーktkr

210:デフォルトの名無しさん
08/04/21 15:52:59
>>206
>>194 は同時に表示するはずだが…

211:デフォルトの名無しさん
08/04/21 17:23:33
>>208
変数3つ使ってるじゃん

212:デフォルトの名無しさん
08/04/21 17:24:59
>>211
三つってどれ?

213:デフォルトの名無しさん
08/04/21 19:46:48
>>173
URLリンク(kansai2channeler.hp.infoseek.co.jp)
要望どおりに変更してみたが、ちゃんとチェックしてないので手痛いミスがあるかもしれん

>>あとオーバーフローチェックのところのLLONG_MAXが使用されてなく
>>エラーが出てしまいます
いまんいち意味がわからない
コンパイルできないなら、その部分削除したらいいよ
ためしにカッコつけて入れてみただけだから

214:デフォルトの名無しさん
08/04/21 19:50:32
>>212
char
double
struct hoge

215:デフォルトの名無しさん
08/04/21 20:12:55
それは変数じゃなくて型名

216:154
08/04/21 20:13:52
>>111
当方で確認した環境は WindowsXP, 処理系は cygwin(gcc 3.4.4) です。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
プログラミングにあたっては、次を参照しました。
URLリンク(ja.wikipedia.org)
この説明にそって書いたのですが、どうやらわかりにくくなってしまったようです。
>>159
>ここ、宿題スレ。
#これは失礼。では宿題をときながらではいかが?
>getchar() が使われているんだが???
#たしかに getchar() の返り値を int で受けていない、EOF をチェックしてない、など些細ですがまずいところはありますね。
>>197
>どのファイルにはファイルの終わりを意味するEOFコードが記録されていますし
#いいえ、記録しておく必要はありませんし記録していません。
#>>139 の記述がおおむね正しいのです。
>>200
>いちいち蒸し返すなよ
#ごめんなさい。宿題解きながらということで、ご勘弁ください。

217:デフォルトの名無しさん
08/04/21 20:18:12
>>216
バカか・・・んじゃどうしてプログラムはEOFを検出して動作したんだ?ん?
お前は入力は 印字可能な文字 のみだと思ってんの?w
コンピュータ、電子計算機がやっている基本だよ、入出力って。
その中に人間が決めた定義、その中にEOFも改行コードなども
印字不可能でも存在するデータがあるんだがw
いい加減失せろ、ナンバーサインバカw

218:デフォルトの名無しさん
08/04/21 20:19:01
蒸し返すな!値を返せ!by return

219:デフォルトの名無しさん
08/04/21 20:20:18
URLリンク(www.google.co.jp)
普通にEOFの入力が可能です、ありがとうございました。

220:デフォルトの名無しさん
08/04/21 20:22:51
リダイレクトも知らなさそうだな、ナンバーサインは・・・

221:デフォルトの名無しさん
08/04/21 20:24:03
そんなことよりコナン観ようぜ

222:デフォルトの名無しさん
08/04/21 21:27:20
[1] 授業単元:アルゴリズムとデータ構造
[2] 問題文:URLリンク(jubilo.cis.ibaraki.ac.jp)
6.課題を全て
[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:C
[4] 期限:4月27日まで
[5] 問題のプログラムの赤枠を埋める感じでお願いします。
どなたかよろしくお願いします。

223:デフォルトの名無しさん
08/04/21 21:40:10
ここに投稿したことたぶんバレるぞ

224:デフォルトの名無しさん
08/04/21 22:22:31
[1] 授業単元:OSプログラミング入門
[2] 問題文:OSにおけるセキュリティーホールを検出するプログラムを作成せよ
[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:C
[4] 期限:4月27日まで
[5] セキュリティーホールが発見された場合は自動で修正するように
機能を付けること

225:デフォルトの名無しさん
08/04/21 22:31:51
ねーよw

226:デフォルトの名無しさん
08/04/21 23:03:20
ゲイツ自重wwwwwwww

227:デフォルトの名無しさん
08/04/21 23:05:39
#include<stdio.h>
int main(void)
{
int a = 5, b = 3;
double d;

d =(int)(((double)a / b) + 0.5));
printf("%f\n", d);
return 0;
}
これで何故かエラーがでるんですがどこがおかしいのでしょうか?

228:111
08/04/21 23:07:21
>>154
丁寧なレスありがとうございます。
本当に助かりました。
せっかくなので頑張って解読してみます!



229:デフォルトの名無しさん
08/04/21 23:10:51
>>227
VIPで聞けばいいじゃん
あとどんなエラーが出てるのか位書かないと答えようが無い
まあどうせ)とかだろうけど

230:デフォルトの名無しさん
08/04/21 23:11:18
d =(int)(((double)a / b) + 0.5));

) が一個余分

231:デフォルトの名無しさん
08/04/21 23:12:21
7行目にステートメント;がないといわれます。

232:デフォルトの名無しさん
08/04/21 23:37:24
>>206
じゃあ次は>>191を提出してみましょう

233:デフォルトの名無しさん
08/04/21 23:42:01
[1] 授業単元: C++
[2] 問題文
サイコロのプログラムをつくりなさい
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: borland C++ 5.5.1 for win
 [3.3] 言語: C++
[4]特になし、長いので分けて書きます。
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
Class Dice{
int face;
int value;

public:
Dice(int f)
{
face=f;
srand((unsigned)time(NULL));
value=rand()%face+1;
}
Dice()
{
face=6;
srand((unsigned)time(NULL));
value=rand()%face+1;
}


234:デフォルトの名無しさん
08/04/21 23:45:11
>>233の続きです
void throwDice()
{
srand((unsigned)time(NULL));
value=rand()%face+1;
}
int read()
{
return value;
}
}
int main()
{
Dice d6;
Dice d10(10);
d6.throwDice(6);
d10.throwDice();
cout<<"6面体の目:"<<d6.read()<<endl;
cout<<"10面体の目:"<<d10.read()<<endl;
return 0;
}
エラー2141 dice2.cpp5:宣言の構文エラーとでます
ソースの問題でしょうか?
お願いします


235:デフォルトの名無しさん
08/04/21 23:48:31
>>233
Classじゃなくてclass
小文字だよ。

236:デフォルトの名無しさん
08/04/22 00:04:22
throwDice()にsrand()はいらないだろ。

237:デフォルトの名無しさん
08/04/22 00:07:19
素早く振ると同じ目ばかり出るよな。
さらに言えば、コンストラクタでもsrandしないほうがいい。
mainで1回だけやればいい。

238:デフォルトの名無しさん
08/04/22 00:11:39
Main関数で5つの整数を読み込み,
その平均(double)を
画面に出力するプログラムです
また5つの引数を受け取り,
平均を返す関数mean_calc5(・・・)
を呼び出し,返された平均値をmain関数で画面出力すること

C言語です  お願いします



239:デフォルトの名無しさん
08/04/22 00:16:12
>>238
>1

240:デフォルトの名無しさん
08/04/22 00:16:23
>>235
ありがとうございます。
またうっかりミスです。
>>236
>>237
ご指摘ありがとうございます。
<問題>の部分で省略したのですが
オブジェクト指向で
物体としてのサイコロをプログラムで作りなさいという項目
があったので、あえてコンストラクタでsrandをいれました。
実際のサイコロも置いた瞬間に目がででいるという事だそうです


241:デフォルトの名無しさん
08/04/22 00:19:27
>>222
当方で確認した環境は WindowsXP, 処理系はcygwin(gcc 3.4.4) です。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
最後の2つは、私は出題者の狙いをはっきりとは汲み取ることができませんでしたので、もしかするとはずれているかもしれないこと、ご容赦ください。

>>217
>その中にEOFも改行コードなども印字不可能でも存在するデータがあるんだが
##では、実際にファイルを覗いて見てください。
##1) すべてのファイルに共通の EOF がありますか?
##2) あなたの環境の include\stdio.h にある EOF はどう define されていますか?それがすべてのファイルの末尾におかれていますか?
##私の環境では #define EOF (-1) ですが、すべてのファイルの末尾 1 バイトが -1 = 0xffというわけではありません。
##3) ^D や ^Z の値が -1 なのでしょうか?
>>198
>freadが指定したFILEストリームから指定したポインタへ取り込まないという性質についてだろ?
##getchar()≒getc(stdin) or fgetc(stdin) ですから、getchar() も fread() と同じくストリームを見ています。stdin だろうとファイルだろうと同じことなんですが。
##で、>>154 で示したとおり、stdin には EOF は格納されていません。
>>220
##リダイレクトに関係する関数, pipe() や dup() あるいは dup2() (POSIX) は fd です。今はCライブラリ関数の fp を問題にしています。
>>218
>蒸し返すな
##宿題を解きながら、ですのでご勘弁を。

242:デフォルトの名無しさん
08/04/22 00:24:12
ん、リダイレクトに pipe() はかんけいないですね。しつれい。

243:173
08/04/22 00:28:15
>>213
お手数かけてスミマセン
どうもありがとうございました!

244:デフォルトの名無しさん
08/04/22 00:30:42
>srand
は乱数関数の"初期化"だ

乱数関数を実行して値を取得するのが
>実際のサイコロも置いた瞬間に目がででいる
という事だ


245:デフォルトの名無しさん
08/04/22 01:18:48
>>238
#include <stdio.h>

void Main( int* data, int num )
{
int i;
for( i = 0 ; i < num ; i ++ )
{
printf( "値%d:", i+1 );
scanf( "%d", data+i );
}
}

double mean_calc5( int v0, int v1, int v2, int v3, int v4 )
{
return ((double)v0 + v1 + v2 + v3 + v4) / 5;
}

int main()
{
int data[5];
Main( data, 5 );
printf( "平均値=%f\n", mean_calc5( data[0], data[1], data[2], data[3], data[4] ) );
return 0;
}

246:デフォルトの名無しさん
08/04/22 02:16:19
入力を閉じることを「EOFを入力する」と表現することがあると、
146が認めればすむだけのことに思える。

ちなみに、DOSやCP/Mには、テキストファイルの終わりに0x1Aの1バイトを置く風習があった。
URLリンク(support.microsoft.com)
DOSでのC処理系の実装では、テキストモードでファイルを読み取るとき、
0x1Aが現れたら(後ろにまだデータがあっても)ファイルの終わりとし、
getcでEOF(もちろん値は-1)を返したり、fgetsでNULLを返すという風にしていた。
(もちろんバイナリモードではやらない)
標準入力からも、Ctrl+Zで0x1Aを入力可能で、あとはファイルの場合と同じ。

そして、Windowsでは、ファイルに0x1Aを置く習慣も廃れ、
また、コンソール(標準入力)でのCtrl+Zは、0x1Aの入力ではなく、
OSがストリームの終わりに達したという扱いに変換するようになっているというのは
Win32コンソールを触ったことがあれば想像の通り。

247:デフォルトの名無しさん
08/04/22 02:42:06
スレ違いウザイ

248:デフォルトの名無しさん
08/04/22 06:04:25
>>246
入力 の意味を理解してから出直せ、ボケ初心者

249:デフォルトの名無しさん
08/04/22 06:09:41
>>248
おまえが考えてる入力の意味ってなに?

250:デフォルトの名無しさん
08/04/22 06:17:08
>>249
自分で調べろよw 基本はデータを読み込む、取り込む。それが文字だろうと数値データだろうと
デジタル機器においては、入出力されるデータは全て数値データ、もっと追求すると
2進法で記録された0と1の組み合わせだよ。その0と1の組み合わせを人間が都合よく
解釈、理解できるように実装されたコンピュータで扱いっているが、EOFが値として
どのように定義されていうと思う?-1と記されて言る資料がほとんどだろ?
EOFがファイルの終わりというのは、人間が都合よく定義した決まりごとであって
所詮は数値データに過ぎないんだよ、これくらい大学に通った奴なら普通に分かるw

っつか、お前はナンバーサインじゃないだろ?何そんな知ったかの肩を持って
このスレにこんな時間まで粘着して、自分の無知を晒してんの?w

251:デフォルトの名無しさん
08/04/22 06:22:05
URLリンク(www.google.co.jp)
EOFの入力は可能です、ありがとうございました。
この粘着はgetcharやfread、fgetc、fgetsなどの ライブラリ の動作について
いちいち話をするが、それらがプログラムの動作において EOF を検出して
どう動作するかについて話をしているが、完全に思い違い。
指定したポインタ、変数へ格納するかどうか?についても話をしているんだろうけど
EOF、すなわちファイルの終わり、それを検出してファイルに書き出す、あるいは
ファイルを読み込んでいるという基本的な処理の例があるにもかかわらず
まだ EOF が入力されないという大ボケをかますプログラマ以前に
コンピュータを扱う技術者としては相応しくない知ったか。いるよな、こういう
聞き分けのない、自分が思ったことをいつまでも相手に理解してもらおうという奴。
完全に筋の通る理論で論破されているのにw

ちなみに、標準入力からはキーボードによる入力でも可能だし、リダイレクトや指定の
ライブラリによるファイルの読みは可能。誰かさん、墓穴を掘ったがファイルの終わりが
全てのファイルにあるのか?って突っ込み、痛すぎ・・・原則として、ファイルの終わりを
示すコードは存在するよw 存在しない例外とも言えるファイルを持ち出そうと必死になるが
本題を崩すなよ。

EOFが入力されるかどうか?についてだろ。すでに昔から存在する事実を
何をいまさら、かじり始めた青二才が必死に反論してんだ?????
頼むからこんなところに来る、自分に反論する人だけに対して
わけのわからん理論で反論せんで、大学の教授にでも質問しろよw

ちなみに、自分は通っていた大学には東大、京大卒の教授が何人もいましたよ。

252:249
08/04/22 06:24:37
>>248が何を食いついてるのかよく分からなかった
EOFに関して>>246>>250ともおかしなこと言ってる訳じゃないのに
議論がかみ合わないのは不思議だと思いますた

253:デフォルトの名無しさん
08/04/22 06:37:24
URLリンク(ja.wikipedia.org)
URLリンク(yougo.ascii.jp)
初心者は用語集でも見てろってw
こういう視野の狭い奴って、自分にとっての入力はこうだって話を始めて
広義を無視して異例でも話をしようとするから困る。あれだろ、路上じゃ
違反者がいれば自分もその違反をしても、自分だけしか取り締まらない
警察にいちゃもんをつける奴w ほかにもいるから取り締まれ、そうでなきゃ
警察は怠惰だとか当り散らすんだろw ちゃんと最初から基本ルールを守れよ、理解しろよw

これ以上は、汎用電子計算機の基本的な仕組みを学ばずに、コードを記述して
プログラムを作っただけで知ったような口を聞いている奴らは放置な。
後ナンバーサインはマジで無視しとけ。こんな奴がもし講師だったら、
とんでもない学校だ。生徒だってことで。

EOFが入力されなかったら、どうやってEOFを検出してファイルの読み込みを
やめたのか、説明せよw 以上終了とか言ったら、もう学校を辞めて
今からでも進路を変更しろ。人生を大きく左右するぞ、いい加減な人生の
舵取りは。

254:249
08/04/22 06:41:57
> EOFが入力されなかったら、どうやってEOFを検出してファイルの読み込みを
> やめたのか、説明せよw
URLリンク(ja.wikipedia.org)

ところでナンバーサインって何?

255:デフォルトの名無しさん
08/04/22 06:48:52
文字も画像も映像も、人間が都合よく解釈、理解できるようにしたプログラム、ソフトによって
表現が可能な機能を実装したコンピュータで展開していうんであって、所詮はどれも
数値データだよ。今こうやって文字を入力していうが、それも元を正せば、人間が
文字として解釈できる形に、使用している環境の文字コード体系に応じて
文字として見えるだけだよ。所詮、数値データ。EOFだけ何か特別扱いせんでも・・・
まさか、それらのデータが最初から色がついている、文字の形をしている、音声として
存在しているとでも思ったの?ファイルのダンプくらい、プログラムの授業でもやらんのか?
教本にも普通に載っているぞ、そんなの。

256:249
08/04/22 06:56:43
>>255
おれ国語の読解力あんまいい方じゃないんで確認なんだけど、
これおれに対するレスじゃないよね?
>>253へのレスなら納得なんだけど

257:デフォルトの名無しさん
08/04/22 07:53:21
>ところでナンバーサインって何?
行頭の'#'のことでしょ。尤も、>253の言う「ナンバーサイン」氏こと>139、>144と>216、>246では使い方が違う罠。
どうやら、「ナンバーサイン」氏は特定個人ではなく、>253の脳内にのみ存在している抽象人格のようだ。


258:デフォルトの名無しさん
08/04/22 09:12:23
EOFが無いファイルって、どうやってOSはファイルを個別のものと
認識、管理してんだよ・・・どこのIT土方の意見だ、EOFが入力できない
なんて言っている奴は?所属、肩書きを示してみろ?

259:デフォルトの名無しさん
08/04/22 09:23:45
横槍でスマンけどEOFってOSのファイルシステム管理が
勝手に入れるもんだと思ってるんだけど。
いちいちアプリ実装者が最後にEOF書く必要が無い、
ということは普通fread()(あんま使ったことないからしらんけど)などで
EOFを検出する必要もない(=fread()内で勝手に止めるからでEOFを受け取ることはできない)
ってことなんじゃないの?
たかだかその程度で何を荒れとるのかと思ったのでw

260:デフォルトの名無しさん
08/04/22 09:38:18
>>258
今時、ファイルシステムはファイルの大きさをバイト単位で持っており、
その場合はファイル上に必ずしもEOFが実在する必要はない。

たからEOF入力なんて存在しないなどというつもりはないけど気になったので。

261:249
08/04/22 09:56:14
>>258>>259
windows系ファイルシステムは知らないけど、Linuxのext3ではEOFなんて
全く関知してないと思う(たぶんwindowsも)。
getchar()などでEOFが返ってくるのは、ライブラリ(libc)がopenされたファイルの終了を検知してるから。
ライブラリ側がEOFの面倒を見てくれるので、アプリ開発者はライブラリ提供のヘッダファイルをincludeすれば問題ないです。
もし、OSがEOFを管理してて個々のアプリがEOFをハンドルしなければならないなら、
アプリ毎にOSのヘッダをincludeしなければならないんじゃないかな。

262:デフォルトの名無しさん
08/04/22 10:02:28
朝から元気なのは結構だがスレ違いなので続けるなら他所へ行ってください

263:249
08/04/22 10:02:35
>>261
> getchar()などでEOFが返ってくるのは、ライブラリ(libc)がopenされたファイルの終了を検知してるから。

自己レスです。
ファイルの終了と言うのはファイル自身にEOFコードが存在するという意味ではないです。
バイナリエディタでファイルの途中に0xFFを書き込んでも、int c; while ((c = getchar()) != EOF) してる限り、
途中の0xFFはスルーされるはずです。
char c; while ((c = getchar()) != EOF) だと途中の0xFFが当然のことながら、EOFになりますね。

264:デフォルトの名無しさん
08/04/22 10:53:07
[1]プログラミング演習
[2]3つのポインタ型変数と3つの変数が
char c, *pc;
int i, *pi;
double d, *pd;
と定義され、
pc = &c;
pi = &i;
pd = &d;
と初期化されたポインタに対して
pc++; pi++; pd++;
加算したときに,格納されている値が(つまり格納しているアドレスが) 何バイト増えたか表示するプログラムを作成せよ.
[3.1]問わず
[3.2]borland
[3.3]C
[4]4/23

お願いしますm(._.)m

265:デフォルトの名無しさん
08/04/22 11:40:03
printf("%d,%d,%d\n", sizeof(char), sizeof(int), sizeof(double));

266:デフォルトの名無しさん
08/04/22 12:02:52
EOFがあるとかないとかどうでも良いんじゃい。
EOFの入力がプログラムへ可能か?って話は
可能だって結論が出てんだろが。何他人を装って
分が悪くなるとうざってぇみたいなことを言ってんだ?
お前がEOFの入力が出来ないと食い下がってきたんだろが。

267:デフォルトの名無しさん
08/04/22 12:25:23
Linux = EOFが入力できる
Win = EOFが入力できない
というわけで
Linux > 越えられない壁 >>>>>>>>>>>>>>>>>> Win
てことだ

268:デフォルトの名無しさん
08/04/22 13:19:09
>>267
標準入力からEOFをいれる方法
Linux Ctrl+D
Windows Ctrl+Z

269:デフォルトの名無しさん
08/04/22 13:33:14
>>268
Wordでそれをやってみろ。
ドザは知識がなさすぎる。

270:デフォルトの名無しさん
08/04/22 13:41:14
ならemacsでやってみたら?
標準入力からって書いてあるだろう。

271:デフォルトの名無しさん
08/04/22 13:46:48
>>270
できないと思ってるのかw

272:デフォルトの名無しさん
08/04/22 13:54:23
はいはい、できなくはないですよ。論点はそこじゃない。

273:デフォルトの名無しさん
08/04/22 13:59:29
一般人に使われないlinuxをちょっと齧って
windowsユーザーを馬鹿にしたくなる年頃なんだろう。
煩わしいコマンドをターミナルに打ち込んで「俺玄人wwwwwwうはwwwww」とか本気で思ってそう。

274:デフォルトの名無しさん
08/04/22 14:11:30
どんなOSを使ったことがあるかとかどうでも良いわ。
俺は大学でUNIXは普通に使ってたよ。ってか、使えないと授業にならねーし。

275:デフォルトの名無しさん
08/04/22 14:50:53
論点=ドザはクリックしかできない

276:デフォルトの名無しさん
08/04/22 14:57:34
やっぱりヤツがいると荒れるな。

277:デフォルトの名無しさん
08/04/22 15:01:48
そうだな、論点ズレまくりのナンバーサインがいると。以後放置よろ。

278:デフォルトの名無しさん
08/04/22 15:13:17
EOFをファイルデータとして持ってたのは昔のメインフレームくらいじゃないの?
今はほとんどファイルシステムで管理してるでしょ

279:デフォルトの名無しさん
08/04/22 15:16:21
またそれかよ・・・EOFが何なのかなんてどうでも良いんだよ。
入力されることがあるかないか?ナンバーサインがズレてんのは
getcharとfreadのライブラリの性質に話を持ち込んで、キーボードからの
EOF入力さえも否定したから悪いんだよw
普通にEOF入力なんてあるわ、とっくの昔からw

280:デフォルトの名無しさん
08/04/22 15:19:44
>>258

281:デフォルトの名無しさん
08/04/22 15:20:57
ヒント:印字可能な文字(データ)しか入力できないという考えがすでに素人以下

282:デフォルトの名無しさん
08/04/22 15:32:17
どっちもそこら辺で勘弁してやれよ。

283:デフォルトの名無しさん
08/04/22 15:38:17
URLリンク(kansai2channeler.hp.infoseek.co.jp)

よろしくお願いします。

284:249
08/04/22 15:45:10
>>279
キーボードから直接EOFコードを入力できると言ってるように聞こえるので一言。
もし、そうじゃなかったらごめん。

アプリがライブラリのgetchar()を呼ぶと、kernelはユーザーの入力待ちになる。
ユーザーがたとえば "test string^D" を入力すると、kernelは^Dを入力の終了と判断し、
ライブラリに "test string" を返す。アプリはライブラリからそれを一文字ずつ取り出して使う。
もしここで "test string" を入力せず、単に^Dだけ入力した場合、kernelは\0をライブラリに返す。
ライブラリは入力がなかったという意味でEOFをアプリに返す。

要は、EOFはもうそれ以上入力がないということを示す、
ライブラリとそれを利用するアプリの取り決めになっています。

285:デフォルトの名無しさん
08/04/22 15:50:46
相手にしたらダメな人だから

286:デフォルトの名無しさん
08/04/22 15:54:26
ヒント:改行もタブも印字不可能でもキーボードからの入力が可能。
便宜上出力で指定する場合に \n や \t など、印字可能な文字で代用しているものがある。
所詮テキストファイルにしても、バイナリーデータにしても数値データの塊に過ぎない。
バイナリに関しては、変数の型を指定することで、数値データを適切にプログラムが
解釈するようにコードを記述する際に宣言をしている。

287:デフォルトの名無しさん
08/04/22 16:31:03
お前らスレタイ読め。
C/C++でEOFは「もうそれ以上入力がない」という意味では「ない」。
アフォはひたすらクリックしてればいいんだよ。
妄想披露スンナ。
これだからドザは(ry

288:デフォルトの名無しさん
08/04/22 16:35:12
>>287
> もうそれ以上入力がない
いつ誰がそんなことを言ったんだよ?w お前こそ黙っとれw

289:デフォルトの名無しさん
08/04/22 16:37:39
言ってなくても書いてあるだろが。
掲示板でどうやって言うんだよ。
ドザは駄目だな。

290:デフォルトの名無しさん
08/04/22 16:38:59
「引数として配列のポインタとデータの個数を用いて、引数に与えられた整数の2乗を引数に値を返す関数を作成し、1^2から10^2まで表示せよ」

5時間悩んでも出来ませんでした。よろしくお願いします。

291:249
08/04/22 16:43:49
>>287
「もうそれ以上入力がない」というのは語弊があるかもしれないですね。
アプリがgetchar()で次の文字を取りに行ったとき、入力がなかったときライブラリがEOFを返します。

以下、ちょっと補足。
Linuxの場合、端末から入力された^Dは、kernelでは16進の0x04になります。
で、ライブラリに返すときこれを\0で上書きします。
^Dは入力の終了を示すものであり、EOFではないです。
興味ある人は drivers/char/n_tty.c とかglibcのソースを見るといいです。

292:デフォルトの名無しさん
08/04/22 16:45:28
そろそろ自演でスレ伸ばすの止めようぜ?

293:デフォルトの名無しさん
08/04/22 16:49:40
>>291
アフォか。
規格書読め。
これだからドザは。

294:デフォルトの名無しさん
08/04/22 16:51:31
>>290
#include <stdio.h>

void f(int *p, int n) { while(n--) p[n] = p[n] * p[n]; }

int main(void)
{
int a[10], i;

for(i=0; i<10; i++) a[i] = i + 1;
f(a, 10);
for(i=0; i<10; i++) printf("%d ", a[i]);

return 0;
}


295:デフォルトの名無しさん
08/04/22 16:52:36
なんだ、249をNGにしていたから気づかなかったが、まだ勘違いバカが
粘着しているのかw お前が黙ってりゃ一番解決するんだよ。
スレ板読めや、基地外。自分にとってそれはこういう意味ですとか
このように解釈しました、そう解釈した理由を こじつけ で勝手に作るなよw
お前はISO関係者か?コンピュータの設計者か?これらはすべて
国際的に決められた標準化に基づいて構成されてんだよ。
思い違いを正当化するために、自分の知識の貧弱さを露呈しなくて良いから
黙ってろや、どこぞの学校の講師か知らんが、貴様の元では学びたくないな。
生徒だったらどんな講師に学んだんだと?w

296:デフォルトの名無しさん
08/04/22 16:55:36
#include <stdio.h>

int main(void)
{
char ch;

while( ( ch=getchar() ) != EOF );
printf("%d %c / EOF : %d %c ",ch,ch,EOF,EOF);

return 0;
}

これをコンパイルして、Ctlr-zでEOFを検出させてみろw
そしてEOFとして定義されているマクロの値を調べてみましょう。
EOFが入力されたことが一目瞭然です、ありがとうございました。
さてと、これ以上は無駄なんで、以後放置よろ。


297:デフォルトの名無しさん
08/04/22 16:58:56
>>296
はい0点

298:デフォルトの名無しさん
08/04/22 17:02:33
では次ぎ、テキストでもバイナリーデータでも、当然画像でも音声データでも良い。
>>296 のプログラムにリダイレクトでファイルを入力させてみろ。
ほれ、やっぱりEOF、ファイルの終わりを検出して終了し、そのときのコード、値と
EOFが一致しました、本当に、本当に、重ね重ね、ありがとうございますた!

299:デフォルトの名無しさん
08/04/22 17:03:45
>>296
少なくとも変数 ch は int 型でないといけない

300:デフォルトの名無しさん
08/04/22 17:07:05
>>294
どうもありがとうございます!!

301:249
08/04/22 17:07:17
>>293
Cの規格書JISX3010ちらっと見てみたけど、7.19.1にこう書いてありました。
「EOFは、ファイルの終わり(end-of-file)、すなわちストリームからもうそれ以上の入力
がないことを示すために、幾つかの関数から返される、」

302:デフォルトの名無しさん
08/04/22 17:07:28
良いか、ボケ共、入力は何も 文字データ だけじゃねーんだよ。
標準入力で人間がキーボードから行う入力と言えば文字データが思い浮かぶが
プログラムへのデータの入力は、文字だろうと所詮デジタルデータ、
数値データに過ぎんのだよ。それが使用している環境の
文字コード体系で印字可能な文字は視覚的に見えるんであって
バイナリーデータのような数値データの塊でも、入力できるんだよ。
そしてEOFも。なんでEOFが入力できないのか、もう説明しなくて良い。
とっくの昔からEOFの入力なんてされてたんだよ、当たり前のように。
でなきゃ、プログラムはどうやってファイルの終わりを認識してたのだね?ん?
怒らないから、そんな秘密の情報があるなら、おいちゃんの耳元でそぉ~っと言ってごらん?

303:デフォルトの名無しさん
08/04/22 17:07:35
>>298
0点。
規格書読め。

304:デフォルトの名無しさん
08/04/22 17:09:57
>>301
アフォか。
エラーを示すために-1を返す関数が一つ以上あれば、-1はエラーか。
ドザはほんとに駄目だな。

305:デフォルトの名無しさん
08/04/22 17:10:27
>>299
はぁ?なんで?1バイトずつ読み込まないでどうすんだ???
お前、もしかして・・・変数の型を誤解してないか?wwww

306:デフォルトの名無しさん
08/04/22 17:12:01
>>303
-100点。お前が説明しろ、ボケ低レベルへたれプログラマーwwwwww
東大、京大卒の教授の元で指導を受けた俺と、それ未満の講師に
コードの入力だけ教わったお前とは格が違いすぎ。
説明と言う説明がお前は出来てないだろ、目の前にあるものの
来本部部は同じだと言うのにw

307:デフォルトの名無しさん
08/04/22 17:14:16
>>305
EOF != 0xFF
おk?

308:デフォルトの名無しさん
08/04/22 17:15:36
299 名前:デフォルトの名無しさん 投稿日:2008/04/22(火) 17:03:45
>>296
少なくとも変数 ch は int 型でないといけない

↑このアフォーの思い違いを説明せよ 配点-100点wwww

では >>296 のコードを
int ch;
に変更して実行してみましょう。あららっ!?結果は同じ -1 が検出されましたwwwww
だから何について説明しているか分からない低レベルは黙ってろって。
お前らとは使用していた施設のレベルからして違うんだよ!
大学にあった施設は企業レベル、いやそれ以上。だからお前らとは
見てきたものが違い過ぎるんだよwwwww

309:デフォルトの名無しさん
08/04/22 17:18:30
ぷぷっ、こいつ、EOFが int 型だと思ってるよwwwwwwwwwwwwwwwwwww
-1なんて1bitでも表現できんだよ!char型は1バイト、すなわち標準的な環境では
8bitなので、十分EOFの検出は可能です、ありがとうございましたwwww
そもそも、ACSIIコードとShift-JISの仕組みが分かっていれば、下らない突っ込みなんてしねーよ。
全角で2バイト必要な文字は、それに応じた文字コードが割り振られてんだがw
お前、Shift-JISで日本語の全角文字をすべて表示するコードを書いてみろや!
結局、そんなものは基本の拡張に過ぎないと気づくからw

んで、EOFが入力できない説明をしてくれよ。俺はそれを求めてんだが?

310:デフォルトの名無しさん
08/04/22 17:18:31
kusakabe先生の教えを守って書き込みしたらスレが伸びる伸びる

311:デフォルトの名無しさん
08/04/22 17:19:35
>>309
> ぷぷっ、こいつ、EOFが int 型だと
規格書読めよ。

312:デフォルトの名無しさん
08/04/22 17:21:21
>>305
Cには、データベースなんかで見かけるNull値ありの型がないから、
getcharなどはNull値相当をEOFに割り当てて、
Null値ありcharをただのintで代用しているという考え方が近いと思う。

313:デフォルトの名無しさん
08/04/22 17:23:21
お前さぁ、負の値が2進数、デジタルデータの世界でどのように表現されているか知らんのぉ?
まぁ、これは大学でやった実験では普通に扱いましたよ、論理回路も含めて。
なんで変数の型に、敢えて unsigned があると思ってんの?
8bitで扱える値の幅、パターンの数、負の値がどのように記録されているかも
C言語でもコードを書いて調べることが出来るんだがねぇ。
んで、EOFが入力できない説明を求む。それ以外の御託はいらねー

314:デフォルトの名無しさん
08/04/22 17:27:12
>>309
-1単体は1ビットでも区別可能だけど、
ここでは、(unsigned) charの値と区別できないといけないから、
charよりビット数の多い(はずの)intなんだろ。

315:デフォルトの名無しさん
08/04/22 17:28:43
>>313
先生の教えに背いて教えてやってもいいんだが、完全にお前の理屈を否定することになるぞ。
どうやらここにはドザしかいないようだから、味方してやってもいいんだが?

316:デフォルトの名無しさん
08/04/22 17:32:37
URLリンク(kansai2channeler.hp.infoseek.co.jp)

困っています。よろしくお願いします。
Windows
gcc
C
です。

317:デフォルトの名無しさん
08/04/22 17:37:29
さて、ドザかまっててもしょうがないから宿題やるか。

318:249
08/04/22 17:48:49
>>296>>298
これ実行すると、ファイルの終了に達していなくても、ファイルの途中にたまたま0xFFが現れたら
そこでwhileループ抜けるよね。
> ほれ、やっぱりEOF、ファイルの終わりを検出して終了し、
whileループを抜けたのはファイルの終わりを検出したわけではないです。

319:デフォルトの名無しさん
08/04/22 17:50:15
騒いでる奴らはそろそろ専用スレ立てろや

320:デフォルトの名無しさん
08/04/22 17:54:41
ビット演算子の意味も分かってなさそうだな。こりゃダメだ・・・
所詮、文字コードでしかプログラムの意味が分からんのだろ。
高度でもない、当たり前なことを知っている人は、”汎用”電子計算機に対して
制御を行うコードを書いているという、当たり前な頭はあるんだよ。
そんなの大学に通わなくても、それ関連の仕事をしている人は
当たり前に見ている。人間なんて、所詮見た目が良かろうが
DNAによって動物細胞の塊が人それぞれ違った形に形成されていると
医療関係に属する人が知っているように。萌え~なんていっている奴は、
2次元にしろ3次元にしろ、そういう人達から見ると不思議に思えるんだろうね。
だって、所詮動物細胞、0と1の組み合わせのデジタルデータなんだもの、みつを。

321:デフォルトの名無しさん
08/04/22 17:54:52
>>296
jpegファイルはいきなり0xFFで始まるんですが、読み込めないということですか?わかりません><

322:デフォルトの名無しさん
08/04/22 18:01:55
>>320
最後おちゃらけて見せて、興奮を隠そうとしなくてもいいよ
わかるわかる

323:デフォルトの名無しさん
08/04/22 18:10:28
>>296はcharがunsignedの環境なら無限ループだな

324:デフォルトの名無しさん
08/04/22 18:11:11
ビット演算なんて、もはや遺伝子組み換えレベルの操作なのさ~♪

325:デフォルトの名無しさん
08/04/22 18:33:29
もうね、鸚鵡返しのように 規格書 とか言うだけで、具体的に該当する
事項を示さないアホは何?w 自分が言いたいこと、思ったことを
相手に理解してもらえないって言っているだけじゃん。お前が言いたいことがあるなら
具体的に示せよ、低レベル講師め。お前んとこの学校はどこだ?
通報しておいてやるよ、EOFが入力できないなんていい加減なことを、
ありもしない規格書を持ち出して事実を捻じ曲げているとw

頼むから大学レベル未満のお前、EOFが入力されないという
話が拗れた根本の説明をしてみろや?どうやってEOFを検出して
終了するコードが実行されたのか、摩訶不思議アドベンチャーで
ゴクウも界王拳をスーパーサイヤ人になってからお前にお見舞いするだろうよw


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch