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

このエントリーをはてなブックマークに追加
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++の宿題片付けます 138代目
http://pc12.2ch.net/test/read.cgi/tech/1279286575/
2デフォルトの名無しさん:2010/08/01(日) 18:07:04
> 気に入らない質問やその他の発言はスルーの方向で。
これが理解できない精神レベルの低いお子ちゃまが多いですね。
回答者のレベルが低いこともあって、このスレ痛すぎ
3デフォルトの名無しさん:2010/08/01(日) 18:10:48
バブーならスルーすればいいでちゅー
4デフォルトの名無しさん:2010/08/01(日) 18:57:08
磯の話は良いから、とっとと課題を回答しろや、引きこもりニートw
5デフォルトの名無しさん:2010/08/01(日) 18:59:15
最近のアイちゃんはヒトと議論ができるまで成長したんだな
ノイズが多すぎるから誰か未解決の問題まとめてくれ
6 ◆QZaw55cn4c :2010/08/01(日) 19:13:28
7デフォルトの名無しさん:2010/08/01(日) 19:27:35
学校の課題で使われているC言語は何も個人的なものではありません。
普通に世に出回っている製品で使われていることもありますよ。
だから世界的な標準規格の話も出てくる。そもそも、自分が日頃使っている
電子機器だって、チップや基板、固定に使われているネジにしろISO準拠の
規格のものを普通に見かけるんだが?いかに自分が既成の共通したものを
使っているかという自覚が無いか、思い知っただろ。視野が狭すぎ。
そこまでゴネるなら、大きな組織になって独自の仕様でも世界に押し付けたら?
まずより多くの人が認めてくれないだろうから、採用されずに廃れるだろうね。
たとえゲーム会社が独自のゲーム機を開発しようが、出力するモニタだって
特別なものでもなかろう。任天堂のDSはPSPみたいに外部出力は出来ないがw
8デフォルトの名無しさん:2010/08/01(日) 20:27:32
前スレにも書きましたが、お願いします。
[1] 授業単元:プログラム演習
[2] 問題文(含コード&リンク):
以下のデータは、ある病気にかかっている患者のグループ(罹患者グループ)と健常者のグループ各30名に対して、ある二種類の検査をした結果を表している。
罹患者グループ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10900.txt
健常者グループ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10901.txt
さて、この人たちとは異なる20名の人たちが同じ検査を行い、以下のようなデータが得られた(検査データと呼ぶ)。
これらの20名の人たちが病気にかかっているかどうかを判断するプログラムを作成しなさい。
検査データ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10902.txt
各グループのデータと検査データの入力はファイルから行うものとし、出力は、各検査データを前から順に一人ずつ判断して結果を標準出力(ターミナル)に表示するよう実装すること。
どのような基準で、病気にかかっている/かかっていないを判断したかを、プログラム中のコメントで説明しなさい。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年8月3日まで
[5] その他の制限:特にないです。よろしくお願いいたします。
9デフォルトの名無しさん:2010/08/01(日) 20:31:04
>>8
統計すら分からない医者にかかりたくないから
遠慮なく留年してくれ
10デフォルトの名無しさん:2010/08/01(日) 22:52:50
今やC言語解釈処理系(コンパイラ)メーカーはNIXコミュニティなど
C言語文法に強い影響を与える人たちの意向よりも、
CPUメーカーの意向のほうに影響されやすいことは否めません。
数多あるプロセッサに出来るだけ広く対応し、また対応を
せざるを得ないC言語のおかれた特殊な歴史と深い関係がある話
になってきます。
ただCPUメーカーや関連ハードウェア規格には*NIXを中心とした
分散端末システム業界は非常に強い影響力を与えている筈なので
頭から否定すべきことであるとも言い切れません。
11 ◆QZaw55cn4c :2010/08/02(月) 00:06:41
http://pc12.2ch.net/test/read.cgi/tech/1279286575/926
http://codepad.org/7vZASstY

>>7
申し訳ないのですが、お説はあなたに言われるまでもなく、よく理解しています。
こちらとしては、
http://pc12.2ch.net/test/read.cgi/tech/1279286575/935
http://pc12.2ch.net/test/read.cgi/tech/1279286575/939
等で私見とはいえ理を尽くして述べたのですが、あなたはすこしも私の意見を理解・判定しようとせず、一方的にわかりきったことを羅列することしかできないようですね。
まあいいですけどね。この件はスルーできなかった私にも問題がありますから、よしとしましょう。

あと、
http://pc12.2ch.net/test/read.cgi/tech/1279286575/721 は根本的にまちがっていることを
http://pc12.2ch.net/test/read.cgi/tech/1279286575/726 で詳しく説明しておきましたからよく読んでくださいね。
12デフォルトの名無しさん:2010/08/02(月) 00:09:05
どっちもうざいから他所いってやれよ
日本語の読めなさレベルも同程度なんだし
13 ◆QZaw55cn4c :2010/08/02(月) 00:13:42
失礼。固有値を求める問題でしたか。>>11 は行列式をもとめてますので全く違いますね。すててください。
14デフォルトの名無しさん:2010/08/02(月) 00:15:00
[1] 授業単元: C言語入門
[2] 問題文
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10906.txt
[3.1] OS:Windows 
[3.2] VC 6.0
[3.3] 言語:C
[4] 期限:なし
[5] 制限:void main(void)を使用すること void main( int argc, char *argv[], char *env[] )等は禁止
以前もお世話になりました いまいちどよろしくお願いいたします
15デフォルトの名無しさん:2010/08/02(月) 00:19:20
void main()void
16デフォルトの名無しさん:2010/08/02(月) 00:24:04
>>14
の問題の制限は、>>14自身に与えられた制限であり
代行者のコードを書き写す時に>>14がそれを実行すべきと
認定されました。よって代行者の方はそれを守る必要は
ありません。(守っても構いませんが)
17デフォルトの名無しさん:2010/08/02(月) 00:26:50
敢えて void main と指定するとか意味不明だわ。意地でも回答側は
int main (void) { return int型; } と書いて抵抗してやれw
18デフォルトの名無しさん:2010/08/02(月) 02:22:19
課題の中でアルゴリズムに直接関わるものでもない
void main指定とか、どこの学校だ?講師がバカ過ぎ。
どうせこのスレを見て、自分のスタイルが否定されてムキになったバカ講師が
おかしな制限をつけて課題を出したんだろうけど。
低レベルな生徒しか卒業しないから、ブラックリスト入り決定だから
そんな課題を出した学校名を教えてくれ。
19デフォルトの名無しさん:2010/08/02(月) 03:11:59
いやあ、生徒が今まで習ったvoid main(void)で提出したいのに
int main(void)と書かれたら困るからと、勝手につけた制限かもしれないよ。

そんなんで悩むなよと思わなくもないし、この問題でargc argv envpを使う用途がないだろ。
20デフォルトの名無しさん:2010/08/02(月) 04:48:31
昔のソースコード、そのまま通してくるとありがたいよね。
多分枯れてるから、バグは無いと覆うお

新しく書き起こすソースは、チェックしてくれると助かるよね。
人間、本人が思っているほど完璧ではないしね。
21デフォルトの名無しさん:2010/08/02(月) 05:06:40
もう10数年前に授業でC言語を学んだが、void mainと書いてたなぁ。
ttp://oshiete.goo.ne.jp/qa/2445252.html
↑でも質問をする人がいるが、色々と説がある。
まぁこのスレではもう解決済みだがね。あくまでも
標準スタイルでの条件付で。
22デフォルトの名無しさん:2010/08/02(月) 05:20:54
>main関数の戻り値をコマンドプロンプトやシェルスクリプトが利用しますので
って書かれているけど、具体的に何に使ってるの?
void mainって書いててもイマイチ何も変わらないから分からんorz
23デフォルトの名無しさん:2010/08/02(月) 06:25:25
低レベルな講師による幼稚な問題を出題して
自分で答える自作自演の始まりです!
24デフォルトの名無しさん:2010/08/02(月) 07:20:33
>>8をお願いします。
ちなみに医者にはなりません。
25デフォルトの名無しさん:2010/08/02(月) 11:21:27
>>21
その後10数年Cは触ってないの?

>>22
成功したかどうかを判断するのに使う
26デフォルトの名無しさん:2010/08/02(月) 11:23:38
>>24
「どのような基準で、病気にかかっている/かかっていないを判断」
これについてはどう考えてるの?丸投げ?
27デフォルトの名無しさん:2010/08/02(月) 11:24:05
前スレ697です
>>699さんありがとうございました
28デフォルトの名無しさん:2010/08/02(月) 11:25:59
mainの戻り値を利用した人は一人も居ないという伝説。
29デフォルトの名無しさん:2010/08/02(月) 11:34:08
>>24
読み込みはやったけど、何の法則を使ったらいいのか俺にはよくわからない。
http://ideone.com/8Bn9a
30デフォルトの名無しさん:2010/08/02(月) 11:52:21
>>28
makeコマンドのmainの戻り値はよく使うな
31デフォルトの名無しさん:2010/08/02(月) 12:00:34
>>29
純粋に質問なんだが、

struct man{
double a;
double b;
double sub;
double add;
double multi;
};

int comp( const void *c1, const void *c2 )
{
man test1 = *(man *)c1;
man test2 = *(man *)c2;

int tmp1 = test1.sub;
int tmp2 = test2.sub;

return tmp1 - tmp2;
}

関数中で一度デリファレンスするのはどういう流儀?
とくにこの場合は
int comp( const void *c1, const void *c2 )
{
return ((man *)c1)->sub - ((man *)c2)->sub;
}
で行けそうだし(未確認ですまん)、
余計な代入が無いからスカッとしそうだけど。
32デフォルトの名無しさん:2010/08/02(月) 12:07:45
>>24
ttp://www1.axfc.net/uploader/Sc/so/139977.jpg
プログラミングの問題っていうよか
統計の問題だな。

で、>>24はこの分布をどういう風に処理したいの?
教えてくれれば実装するし、
分からなきゃ統計をもう一度やり直してくれ。
33デフォルトの名無しさん:2010/08/02(月) 12:23:21
>>31
コピペしただけだから流儀とかはない。
その指摘部分は正しくは↓な感じだな。

int comp( const void *c1, const void *c2 )
{
man test1 = *(man *)c1;
man test2 = *(man *)c2;

int tmp1 = test1.sub*100000;
int tmp2 = test2.sub*100000;

return tmp1 - tmp2;
}
34デフォルトの名無しさん:2010/08/02(月) 13:18:22
>>24
2群なら一番簡単なのは判別分析かな
http://ideone.com/fSyKg

参考はココ
http://aoki2.si.gunma-u.ac.jp/lecture/Discriminant/disc2.html

行列計算は面倒なんでライブラリ使った
http://sourceforge.net/apps/wordpress/itpp/
使い方はググレばたくさん出てくるから割愛
面倒なら自分で行列クラスとガウス式書くのも有り
2×2行列だから、LU分解でも問題ないはず
35デフォルトの名無しさん:2010/08/02(月) 13:45:48
>33
勝手にconst外さないでください
36デフォルトの名無しさん:2010/08/02(月) 16:37:34
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):キーボードより本体価格と税率を入力し、その税込価格を
               表示するプログラムを作成せよ。

               任意の数値xを小数点以下第n位で四捨五入する作れ(nは任意)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年08月03日 18:00まで
[5] その他の制限:特に無いです。
上記の2つのプログラムを作成していただきたいです。
よろしくお願いします。
37デフォルトの名無しさん:2010/08/02(月) 16:52:06
自分の書いた文章が正しいかどうかのチェックすら怠る者に、
俺なら何もしてやりたくはない。
38デフォルトの名無しさん:2010/08/02(月) 17:10:43
>>36
#include <stdio.h>

int main(void)
{
int price, rate;

printf("本体価格:");
scanf("%d", &price);

printf("税率(%):");
scanf("%d", &rate);

printf("税込価格:%d\n", (100 + rate) * price / 100);

return 0;
}
39デフォルトの名無しさん:2010/08/02(月) 18:38:26
このスレって日本語の通じない低学歴が多いよなw
説明すら意味を理解していない。コードを書いて実行すれば分かるのに。
どんな劣悪な環境で甘んじているのか知らんが、余程貧しい地方の
学校なんだろうねw
40デフォルトの名無しさん:2010/08/02(月) 19:03:57
>>37が言いたいのは、>>36
>任意の数値xを小数点以下第n位で四捨五入する作れ(nは任意)
の一文において、“する”と“作れ”の間に“プログラムを”が抜けてるってことだろ。
コードを書いて実行すればわかるとかって問題じゃない。

ああ、日本語通じない人にはわかるわけねーか
41デフォルトの名無しさん:2010/08/02(月) 19:04:47
ぜってーISOの英文の説明が理解できない講師がいるぜw
レベルが低いんだよ!プログラミングに関しても、人間性もw
42デフォルトの名無しさん:2010/08/02(月) 19:32:43
見えない人と戦いはじめちゃったか…。
こうなると長いぞ皆の衆。
43デフォルトの名無しさん:2010/08/02(月) 19:45:22
>>34だけど、動作確認はVC++2008でやってます
コンパイラにgccって書いてあることにカキコしてから気がついたスマン
まぁ、IT++はgccでも使えるんで大丈夫なはず リンクが面倒だけど

>>35
>任意の数値xを小数点以下第n位で四捨五入する作れ(nは任意)
http://f4.aaa.livedoor.jp/~pointc/log887.htmlを発展させればできると思われる


答えてばかりじゃツマランので俺もなんか質問してみようかしら
44デフォルトの名無しさん:2010/08/02(月) 19:47:17
ここで他人の意見に噛みついてくる精神レベルの低いガキって
大したこと無いくせに長年、プログラムの授業で講師をやっていた講師だろ?
大人気ない、恥ずかしい奴よのぉ〜
45デフォルトの名無しさん:2010/08/02(月) 19:59:21
完全な四捨五入って難しすぎるw
46デフォルトの名無しさん:2010/08/02(月) 20:02:18
俺は>>44みたいなやつがコテ付きで回答するのを見てみたいよw
どんな言い逃れもせずに男らしく、
コードの美しさでみんなを黙らせて見せて欲しいw
お腹が痛いとか今調子悪いとか、お前らと違って時間が無いとか、
そーいうのもういいから。もう沢山だから。
47デフォルトの名無しさん:2010/08/02(月) 20:03:56
コード書くたびに突っ込まれすぎて書かなくなっちゃったんだよw
48デフォルトの名無しさん:2010/08/02(月) 20:17:06
>>36
ggった方が聞くより早いんじゃね?
ttp://f4.aaa.livedoor.jp/~pointc/log887.html

#include <stdio.h>
#include <stdlib.h>
/* ************************************************************
関数名【 round() 】
丸め処理関数
処理概要
浮動小数点数を指定された精度で丸めた値を返す
引数
1) val = 丸めたい値
2) precision = 精度
戻り値
指定精度で丸めた値
************************************************************ */
double round( double val, int precision )
{
/* ***** 内部変数定義 ***** */
double ret;
char buf[256] = {'\0'};
char *p;

/* ***** 丸めを行い文字列に変換 ***** */
sprintf( buf, "%.*f", precision, val );
/* ***** 文字列から数値に再変換 ***** */
ret = strtod( buf, &p );

return ret;
}
4936:2010/08/02(月) 20:18:06
回答してくださった方々ありがとうございました
50 ◆QZaw55cn4c :2010/08/02(月) 20:24:06
51デフォルトの名無しさん:2010/08/02(月) 21:03:45
52デフォルトの名無しさん:2010/08/02(月) 21:04:25
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
   変数に格納された値、及びバイナリデータを、連続した1つのバイナリ配列に格納しなさい

  条件:
      1) 入力値は short型、入力バイナリは unsigned char型配列15bit(16bit - 1bit)分とする
      2) 出力(格納)バイナリ列は4バイト(32bit)分確保されているものとする
      3) 出力バイナリ列は右詰めとし、バイトオーダーはビッグエンディアンとする
        (入力バイナリの左1bit分に、int型入力値のバイナリデータが1bit右シフトしている状態)

例) ※一部
      short num = 65535;
       unsigned char inBinary[2] = 0xEFFF;
      unsigned char outBinary[4] = {'\0'};

      memcpy(outBinary, &num, 2);
      memcpy(outBinary + 2, inBinary, 2);

      // ここの時点で outBinaryのバイナリデータは
      // 0xFFEFFFFF となっている
      // 本当は 0xEFFFFFFF としたい

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc (バージョン不明)
 [3.3] 言語:C
[4] 期限:2010年08月05日 10:00まで
[5] その他の制限: Linux使用により、デフォルトはリトルエンディアンとなっている

ソケット通信で使われるそうです。よろしくお願いします
53前スレより:2010/08/02(月) 21:10:24
724 名前: デフォルトの名無しさん Mail: sage 投稿日: 2010/07/29(木) 21:23:50
[1] プログラミング宿題
[2]
XY平面において座標値(x,y)のうちx,yのどちらか一方は少なくとも非負整数であるような点を
格子と呼ぶ。両方が非負整数の点を格子点と呼ぶ。
N>=1としコマンドラインでN個の格子点が与えられるものとする。
(同じ点が与えられた場合はその指定は無視する)
(0,0)から出発し格子上だけを通りすべての指定された格子点を1回ずつ通り(0,0)に戻り、なおかつ
同じ点は2度とおらないような経路で最短なものを一つ抽出するプログラムを作成
但し経路において右折が出来ないものとする。
解が無い場合は「不能」と表示すること。(最短経路解が複数あっても、抽出は一つのみで良い)
[3] Linux/GCC/ C/C++どちらでも可能
[4]9/16
54デフォルトの名無しさん:2010/08/02(月) 21:41:45
>>53
格子点 ⊆ 格子として考えて良いの? でもそれだと格子要らないよね
頭の悪いダイクストラを使って N * ((N - 1) ! - 1) 回、2点間の距離を求めさせればできそう
55前スレより追加:2010/08/02(月) 22:24:16
727 名前: 724 Mail: sage 投稿日: 2010/07/29(木) 21:40:23
問題文に不備がありました。訂正します。
×但し経路において右折が出来ないものとする
○但し経路において特定の格子点(x,yのいずれかが5の倍数である場合)
上では右折できないものとする
56デフォルトの名無しさん:2010/08/02(月) 23:49:05
>>54
>でもそれだと格子要らないよね
前スレでも散々言われてたが、通れるのは格子の上だけ。
おまえさ、読解力がハナから無いからこういう問題向いてないよ。
57デフォルトの名無しさん:2010/08/02(月) 23:54:32
最近、ここ煽りんこが居るの?
アリジゴクにでも嵌ったんじゃね?
58 ◆NeStPsnpRk :2010/08/03(火) 00:13:26
リトルエンディアンのファイル読み込みルーチンだと思うのですが、
これに対応する書き込みルーチンを教えてください!

unsigned char *readBytes(FILE *f, int n)
{
static unsigned char s[16];

if (fread(s, n, 1, f) != 1) {
exit(1);
}
return s;
}

unsigned long readUlong(FILE *f)
{
unsigned char *s = getBytes(f, 4);
return s[0] + 256LU * (s[1] + 256LU * (s[2] + 256LU * s[3]));
}

unsigned readUshort(FILE *f)
{
unsigned char *s = getBytes(f, 2);
return s[0] + 256U * s[1];
}
59 ◆NeStPsnpRk :2010/08/03(火) 00:16:56
すいません、コピペをミスしました。
writeUlong関数とwriteUShort関数をどなたか作ってください。

unsigned char *readBytes(FILE *f, int n)
{
static unsigned char s[16];

if (fread(s, n, 1, f) != 1) {
exit(1);
}
return s;
}

unsigned long readUlong(FILE *f)
{
unsigned char *s = readBytes(f, 4);
return s[0] + 256LU * (s[1] + 256LU * (s[2] + 256LU * s[3]));
}

unsigned readUshort(FILE *f)
{
unsigned char *s = readBytes(f, 2);
return s[0] + 256U * s[1];
}
60デフォルトの名無しさん:2010/08/03(火) 00:23:34
[1] 授業単元:プログラミングT
[2] 問題文(含コード&リンク):標準入力から西暦、月、日を表す整数を読み込み、その日が何曜日かを
               判定するプログラムを作成せよ。
               ※年をy,月をm,日をdとする
               ※曜日はr=( y + y/4 - y/100 + y/400 + (13m+8)/ 5 + d ) % 7
※r=0が日曜日、r=1が月曜日・・・・のようになる
               ※ただし1月と2月は前の年の13月、14月として計算する

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名:gcc
 [3.3] 言語:C
[4] 期限:2010年08月03日16:00まで
[5] その他の制限:特にありません
61デフォルトの名無しさん:2010/08/03(火) 00:29:46
前スレにも書きましたが、お願いします。
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
任意のnに対して、正則なn次正方行列の固有値を求めるプログラムを作成しなさい。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年8月4日まで
[5] その他の制限:特になし
よろしくお願いします。
62デフォルトの名無しさん:2010/08/03(火) 01:01:07
63デフォルトの名無しさん:2010/08/03(火) 01:02:11
すまぬ >>62 は取り消し
64デフォルトの名無しさん:2010/08/03(火) 01:08:48
65デフォルトの名無しさん:2010/08/03(火) 01:18:45
>>59
普通にこういう感じでいいのかな

void writeBytes(FILE *f, unsigned char *s, size_t l)
{
if (fwrite(s, 1, l, f) != l) {
exit(1);
}
}

void writeUlong(FILE *f, unsigned long l)
{
unsigned char s[4];
s[0] = (unsigned char)(l >> 24) & 0xFF;
s[1] = (unsigned char)(l >> 16) & 0xFF;
s[2] = (unsigned char)(l >> 8) & 0xFF;
s[3] = (unsigned char)l & 0xFF;
writeBytes(f, s, 4);
}

void writeUshort(FILE *f, unsigned short w)
{
unsigned char s[2];
s[0] = (unsigned char)(w >> 8) & 0xFF;
s[1] = (unsigned char)w & 0xFF;
writeBytes(f, s, 2);
}
66 ◆NeStPsnpRk :2010/08/03(火) 02:58:58
>>65
ありがとうございます!
67デフォルトの名無しさん:2010/08/03(火) 07:42:56
>>64
ありがとうございました!
68 ◆QZaw55cn4c :2010/08/03(火) 08:33:56
>>61
調べてみましたが、正方行列になんらかの制限がつかないかぎり、非常に難しい問題になります。
69デフォルトの名無しさん:2010/08/03(火) 09:11:49
非常に難しい問題って… 数値演算では基本だぞ。
プログラミング演習の課題ならQR法そのままでOKだ。
検索すりゃ回答例そのものが見つかるくらいポピュラー。

http://www2.ee.knct.ac.jp/el/E4/H15-E406/eigenvalue6.html
70デフォルトの名無しさん:2010/08/03(火) 09:14:30
QZaw55cn4cの頭の中では十分に難しい問題なんだろな。
71デフォルトの名無しさん:2010/08/03(火) 09:39:53
>>51
こりゃひでーなw ワザとか?w
72デフォルトの名無しさん:2010/08/03(火) 10:44:33
C言語の問題なのですが

4ケタの番号,名前,名前(フリガナ),都道府県,住所,電話番号

といった300人分の名簿データみたいなcsvファイルがあり
それをで4ケタの番号どうりに単純ソートで昇順に表示して
番号を入力すると2分探索で探索を開始し
正しい番号を入力すると電話番号を、不正な番号を入力すると
エラー表示が出るプログラムを作成したいのですがわからず困ってます
どなたかよろしくお願いします
(malloc関数は使わずにとの事です)
73デフォルトの名無しさん:2010/08/03(火) 10:54:55
ガスライティング
74デフォルトの名無しさん:2010/08/03(火) 11:02:35
C言語の問題に回答しようと思っていますが、何がわらないのか、わからず困っています。
どなたかよろしくお願いします
75デフォルトの名無しさん:2010/08/03(火) 11:37:40
72です
300人分の名簿データみたいなcsvファイルがあり
それをで4ケタの番号どうりに単純ソートで昇順に表示する
という部分がわからず困っています
76デフォルトの名無しさん:2010/08/03(火) 11:49:20
>>75
”バブルソート”でググると幸せになれるかも
77デフォルトの名無しさん:2010/08/03(火) 11:49:35
テンプレに従わない奴ってなんなの
78デフォルトの名無しさん:2010/08/03(火) 12:08:51
>>69
演習で学生が回答できるレベルに限れば大抵はそうだな。
"任意のn"ってあるから実数だけで良いのか、とか収束スピードや精度を気にしなくていいかって事だろう。
79デフォルトの名無しさん:2010/08/03(火) 12:15:20
> "任意のn"ってあるから実数だけで良いのか
nが複素数って事か? お前天才すぎる。人類史上最強の天才。
80デフォルトの名無しさん:2010/08/03(火) 12:28:24
>>79は行列を扱ったことがないようだから放って置くとして、ここを見てる初心者のために補足すると、
整数nが大きいと、複素数まで考慮が必要かどうかを調べるだけでも演算量が半端なく大きい。
Cの演習であって数学ではないので、普通は出題しないと思うが。
注意すべきは、演習で作ったものがそのまま汎用的に使える場合は少ない、という事。
81デフォルトの名無しさん:2010/08/03(火) 12:34:36
>>47
最近はコテつきでやってますのでよくわかるのですが、突っ込まれるということはありがたいことです。
82デフォルトの名無しさん:2010/08/03(火) 12:50:08
>>75
>>76

ここはかっこよくシェルソートしようず
83デフォルトの名無しさん:2010/08/03(火) 13:33:06
>>69
>>61回答をお願いします
84デフォルトの名無しさん:2010/08/03(火) 15:08:02
固有値問題一つ解くのに、スパコンシステムを1個作ったって逸話
が残されてるくらいだから、奥はそれなりに広いのだろね
85デフォルトの名無しさん:2010/08/03(火) 15:18:37
>>83
>>69にあるURLの回答例では何が気に入らないのか説明して、
親切な人が納得すれば、作り直してくれるかも知れません。
86デフォルトの名無しさん:2010/08/03(火) 17:33:53
>>85
>>61回答をお願いします、日本を代表してお願いします
87デフォルトの名無しさん:2010/08/03(火) 17:42:58
>>86
熱意が足りない
88 ◆QZaw55cn4c :2010/08/03(火) 18:08:24
>>69
実対称行列のみならず、一般の実行列でも、いろいろと前処理をすれば QR法が使えるのですね。ご指摘ありがとうございます。
89デフォルトの名無しさん:2010/08/03(火) 18:12:24
[1] 授業単元:プログラミング C
[2] 問題文(含コード&リンク):入力した5つのデータを大きい順に並び替えるプログラムを作れ。
例↓
a0=4
a1=7
a2=12
a3=1
a4=5
rank1: 12
rank2: 7
rank3: 5
rank4: 4
rank5: 1
             次に入力した5つのデータを大きい順に順番をつけるプログラムを作れ。
例↓
a0=4
a1=7
a2=12
a3=1
a4=5
a0=4 : rank4
a1=7 : rank2
a2=12 : rank1
a3=1 : rank5
a4=5 : rank3
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名:gcc
 [3.3] 言語:C
[4] 期限:2010年08月04日12:00まで
[5] その他の制限:作成するプログラムは2つありますが、1つのソースにまとめるのではなく、2つに分けて作ってください。
よろしくお願いします
90デフォルトの名無しさん:2010/08/03(火) 18:33:39
Dr.schemeでの課題です。
「フィボナッチ数列を返すfibsを作りなさい。ただし引数として項の値の上限limitを与えるものとする。
たとえば項の上限を100とすると
(fibs 100)→(1 1 2 3 5 8 13 21 34 55 89)」

(define (fibs limit)
(fibs2 1 1 limit))
(define (fibs2 a b limit)
(空欄  (fibs(?) b (+ a b) limit)

ここまでは先生が教えてくれました。
他にもやりかたがあるらしいのですが、
これが一番処理が早いそうです。
空欄の所を埋めればできると先生が言ってました。
たぶんfilter関数を使うんじゃないかなと思ってます。
あともしかしたら(?)の部分は先生の間違いじゃないかなと思ってます。
どなたかお願いします。
91デフォルトの名無しさん:2010/08/03(火) 18:35:24
テンプレに従わない奴ってなんなの
92デフォルトの名無しさん:2010/08/03(火) 18:36:54
>>90
C/C++
93デフォルトの名無しさん:2010/08/03(火) 18:43:15
>>91
お前ら宿題頑張って解け。
問題も頑張って解釈しろ←ここの余計な追加
94デフォルトの名無しさん:2010/08/03(火) 20:17:10
イタリアンっぽく名前を仕立ててみました。
フィボナッチ > ヘヴォナッツィオ
95デフォルトの名無しさん:2010/08/03(火) 21:06:02
>>89
http://codepad.org/ytdT9qRi
別ファイルに分けるのは自分でやってね
あと、ソートが絶対に正確かは自信なし(一応確認はした)

96デフォルトの名無しさん:2010/08/03(火) 21:30:07
ソートはそぉ〜っとね
97デフォルトの名無しさん:2010/08/03(火) 21:36:14
>>96
( bb || !bb ) ?
98デフォルトの名無しさん:2010/08/03(火) 22:08:11
>>95
何をどう確認したのか教えてくれw
99デフォルトの名無しさん:2010/08/03(火) 22:28:45
そろそろ麻呂のクソースが発動しそうです ><;
100デフォルトの名無しさん:2010/08/03(火) 22:59:56
パンパンパーン
  ∧_∧ ∩
 ( ・∀・)彡☆
   ⊂彡☆))Д´) >>96
       ☆
101 ◆QZaw55cn4c :2010/08/03(火) 23:46:04
>>72
http://codepad.org/CXzw36Wq
CSVファイルの読み込みは適当です。もしうまく読めなかったら、そのCSVファイルの一部を張って教えてください。
102デフォルトの名無しさん:2010/08/03(火) 23:46:55
>>99
コテつきで codepad へどうぞ。
103デフォルトの名無しさん:2010/08/03(火) 23:48:40
麻呂の円やかなクソースが出そうです ><;
104デフォルトの名無しさん:2010/08/03(火) 23:56:42
>>101
4ケタは番号だけにかかるものだろ、常識的に考えて
105デフォルトの名無しさん:2010/08/04(水) 00:01:09
>>104が何をいってるのかわからない、とおもってソースを見たらこれはひどい。

曲解する流れに乗ったのか?
あと、単純ソート。
106デフォルトの名無しさん:2010/08/04(水) 00:01:46
>>101
#define BUFFLEN 5
struct data {
int num;
char name[BUFFLEN];
char name2[BUFFLEN];
char pref[BUFFLEN];
char address[BUFFLEN];
char tel[BUFFLEN];
};

こりゃねーわ
やっぱ読解力ないよこの人
電話番号が4桁で済むわけねーじゃん
107デフォルトの名無しさん:2010/08/04(水) 00:05:15
お前ら苛めちゃイカン。苛めちゃ・・・ぷっ、ぷぷぷ、ブリッ
あっやべっ、漏れた
108デフォルトの名無しさん:2010/08/04(水) 00:11:06
>>106
そこまで長いのかくなら、回答コードを書いてやれよ
109デフォルトの名無しさん:2010/08/04(水) 00:16:44
>>108
cじゃなくてperlとかのほうが楽だろ、これ。
110デフォルトの名無しさん:2010/08/04(水) 00:23:27
>>109
アルゴリズムの実装が主だからなぁ。
見つけるだけ、ソートするだけならそれぞれコマンドひとつなわけで。
111 ◆QZaw55cn4c :2010/08/04(水) 00:28:06
>>72
http://codepad.org/Ua20QLc9
たしかに電話番号その他の情報を入れ込むには、ちと領域長が短すぎましたね。テスト用に短く設定したまま忘れておりました。
多数からのご指摘、感謝いたします。

あと、シェルソートを標準ライブラリの qsort() と同じインターフェースと同じになるようにしておきました。
要素の交換のために内部で malloc() しているのが、ちょっとまずいのですが、いつか直す機会があればいいですね。

問題がまだ残っておればご指摘いただけると嬉しゅうございます。m(_ _)m
112デフォルトの名無しさん:2010/08/04(水) 00:31:58
麻ー呂っくでおじゃるか、さすが目の付け所が違うでおじゃる。
113デフォルトの名無しさん:2010/08/04(水) 00:34:53
for (h = 1; h < n; h = 3 * h + 1)
;
h = (h - 1) / 3;

エラーは出ないだろうけど、
ここ何?
114デフォルトの名無しさん:2010/08/04(水) 00:41:51
>>113
シェルソートでの、比較&交換間隔 h を決めています。
ここでは、h(n+1) = 3 * h(n) + 1 (1, 4, 13, 40, ... ) という数列を使用しています。
要素数が 15 なら最初の h は 13 にして、以下 4, 1, と変化させます。
要素数が 50 なら最初の h は 40にして、以下 13, 4, 1 とします。

‥‥‥というつもりですが、いかがでしょうか?
11589:2010/08/04(水) 00:52:19
>>95
作成していただいたプログラムをコンパイルしたのですが、問題文の主旨とは
異なる動作をしてしまいました。

どなたか>>89のプログラム作成をお願いできませんでしょうか?
116デフォルトの名無しさん:2010/08/04(水) 01:46:04
>>111
エラーチェックは大してなくともいいだろうけど、宿題的には4桁の数字ぐらいのチェックをしておくといいと思う。
117デフォルトの名無しさん:2010/08/04(水) 01:56:21
4桁だけあって湿気た
118デフォルトの名無しさん:2010/08/04(水) 01:58:42
>>116
たしかに第一要素の数字については、特に 4 桁限定としては書いていませんね。これも文字列にしておいたほうがよかったかなあ。
119デフォルトの名無しさん:2010/08/04(水) 02:05:31
>>89, >>115
http://codepad.org/9SJ5m2xK
上の問題ではprint1,下の問題ではprint2を使う
120デフォルトの名無しさん:2010/08/04(水) 03:13:00
[1] 授業単元:
C++プログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10909.txt
[3] 環境
 [3.1] OS:
Windows
 [3.2] コンパイラ名とバージョン:
Visual Studio 2008
 [3.3] 言語:
C++
[4] 期限:
8月6日(金) 23:59まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
最後の問題だけが解けませんでした。よろしくお願いします。
121デフォルトの名無しさん:2010/08/04(水) 04:07:42
#include<iostream>
using namespace std;

struct test{
char name[21];
int score;
};

int main(){
test t[5], tmp;
int i, j;

for( i=0; i<5; i++ ){
cout << "name" << i+1 << "?";
cin >> t[i].name;
cout << "score" << i+1 << "?";
cin >> t[i].score;
cout << "-------------------\n";
}
for( i=0; i<4; i++ ){
for( j=i+1; j<5; j++){
if( t[i].score < t[j].score ){
tmp = t[i];
t[i] = t[j];
t[j] = tmp;
}
}
}
for( i=0; i<5; i++)
cout << t[i].name << ":" << t[i].score << "\n\n";
return 0;
}
122デフォルトの名無しさん:2010/08/04(水) 04:09:43
文字数エラーチェック必要なら自分で入れろw
あと標準ライブラリ使わないって無理でしょw
STLが無理と勝手に解釈したからw
123デフォルトの名無しさん:2010/08/04(水) 07:34:26
ここまで未解決の質問って >>52>>53だけ?
>>52はビットフラグとかシフトとか、バイトオーダーはスワップで何とかなるのかな
>>53は問題の意味がよく理解出来ないけど、ダイクストラ法の問題?
12489:2010/08/04(水) 08:26:56
>>119
ありがとうございました!
125デフォルトの名無しさん:2010/08/04(水) 13:50:15
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):以下の2つのプログラムを作成せよ。
               1)3×3の行列AとBを標準入力から読み込み、その和を計算し、表示するプログラム
               2)3×3の行列AとBを標準入力から読み込み、その積を計算し、表示するプログラム
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年08月04日18:00まで
[5] その他の制限:2次元配列を使って作成してください
今日の18:00までなのでどうぞよろしくお願いします
126デフォルトの名無しさん:2010/08/04(水) 14:51:11
どのレベルの出力が求められてるんだ?w
#include<stdio.h>

int main(void){
int i, j, a[3][3], b[3][3];
for( i=0; i<3; i++){
for( j=0; j<3; j++){
printf("入力:");
scanf("%d", &a[i][j]);
printf("入力:");
scanf("%d", &b[i][j]);
}
}
printf("行列の和\n");
printf(" | %3d %3d %3d |\n", a[0][0]+b[0][0],a[0][1]+b[0][1],a[0][2]+b[0][2]);
printf(" |%13c|\n",' ');
printf(" | %3d %3d %3d |\n", a[1][0]+b[1][0],a[1][1]+b[1][1],a[1][2]+b[1][2]);
printf(" |%13c|\n", ' ');
printf(" | %3d %3d %3d |\n", a[2][0]+b[2][0],a[2][1]+b[2][1],a[2][2]+b[2][2]);
return 0;
}
こんな感じでいいのかな?
127デフォルトの名無しさん:2010/08/04(水) 16:31:33
[1] 授業単元: 情報科学U
[2] 問題文(含コード&リンク): 出席番号と数学,英語,国語,理科,社会の点をキーボードから読み込み,
各人の合計点,平均点と共に表示するプログラムを作成しなさい.
1)出席番号,各教科点数,合計点,平均点を格納する配列を使ったプログラムを作る.
2)構造体を使ったプログラムを作る.
3)成績の良い学生から順に表示するプログラムにする.

・キーボードからの入力
10001 90 83 75 82 66
10002 73 64 56 47 52
10003 87 65 59 52 73
・画面出力
学籍番号 英語 数学 国語 理科 社会 合計 平均
10001    90   83 75 82 66  396 79.2
10002    73   64   56  47   52  336 67.2
10003    87   65  59  52   73  292 58.4

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2010
 [3.3] 言語: C/C++どちらでも可
[4] 期限: 2010年8月20日12:00まで
[5] その他の制限: stdio.hでお願いします
どうぞよろしくお願いします
128デフォルトの名無しさん:2010/08/04(水) 17:28:10
>>127
1問目
#include<stdio.h>

int main(void){
int attend_num[3], eigo[3], suugaku[3], kokugo[3], rika[3], syakai[3], total[3],i;
float ave[3];
for( i=0; i<3; i++){
scanf("%d %d %d %d %d %d", &attend_num[i],&eigo[i],&suugaku[i],&kokugo[i],&rika[i],&syakai[i]);
total[i] = eigo[i] + suugaku[i] + kokugo[i] + rika[i] + syakai[i];
ave[i] = total[i] / 5;
}
printf("学籍番号 英語 数学 国語 理科 社会 合計 平均\n");
for( i=0; i<3; i++)
printf( "%-8d %-4d %-4d %-4d %-4d %-4d %-4d %-4.1f\n",attend_num[i],eigo[i],suugaku[i],kokugo[i],rika[i],syakai[i],total[i],ave[i]);
return 0;
}
129デフォルトの名無しさん:2010/08/04(水) 17:29:22
>>127 
3問目
#include<stdio.h>
struct test{
int attend_num, eigo, suugaku, kokugo, rika, syakai, total;
float ave;
};

int main(void){
int i, j;
test t[3], tmp;

for( i=0; i<3; i++){
scanf("%d %d %d %d %d %d", &t[i].attend_num,&t[i].eigo,&t[i].suugaku,&t[i].kokugo,&t[i].rika,&t[i].syakai);
t[i].total = t[i].eigo + t[i].suugaku + t[i].kokugo + t[i].rika + t[i].syakai;
t[i].ave = t[i].total / 5;
}
for( i=0; i<2; i++ ){
for( j=i+1; j<3; j++){
if( t[i].total < t[j].total ){
tmp = t[i];
t[i] = t[j];
t[j] = tmp;
}
}
}
printf("学籍番号 英語 数学 国語 理科 社会 合計 平均\n");
for( i=0; i<3; i++)
printf( "%-8d %-4d %-4d %-4d %-4d %-4d %-4d %-4.1f\n",t[i].attend_num,t[i].eigo,t[i].suugaku,t[i].kokugo,t[i].rika,t[i].syakai,t[i].total,t[i].ave);
return 0;
}
130デフォルトの名無しさん:2010/08/04(水) 17:31:31
>>126
ありがとうございました
131デフォルトの名無しさん:2010/08/04(水) 22:39:20
だんだんとパターン化してきたみたいで結構
C言語の練習問題など100問程度で充分
ただしもう少し精選は必要かもだけど
140代にも到達し一歴史を築いたとも言える
このスレ、そろそろ精選問題回答集Wikiでも
作ってそこに誘導してあげることを考える時期
かもな
132デフォルトの名無しさん:2010/08/04(水) 22:44:19
あぁそれ、前にも提案されて言いだしっぺのお前がやれみたいなことを言われたたよw
自分も提案したけど、何かまとめサイトもあったけど、まだまだ不十分だと思ったが
それから全く発展してないなw
133デフォルトの名無しさん:2010/08/04(水) 22:52:04
まとめサイトがあったとして、
教えてクンならぬ宿題丸投げクンがそれを読むと思うかね?
宿題をテンプレに沿って示すことが出来ないやつすらいるのに。

たすけてー(ただしなんの努力もしませんw
テンプレも読みませんw ぐぐりもしませんw)

が基本だし、さらに答えるほうもヒマでしゃーないから、
そのヒマが急になくなる事もないだろう。2ちゃんもヒマ人も永遠だ。
134デフォルトの名無しさん:2010/08/04(水) 22:53:41
このままパターン化すると麻呂のトイレになることは必須
135デフォルトの名無しさん:2010/08/04(水) 22:56:15
麻呂のクソースじゃ話にならんw
しかも模範として載せられないw
136デフォルトの名無しさん:2010/08/04(水) 22:56:50
解きたい人も毎年ある程度増えるだろうから
古参はとっとと引退して
新しい回答者がよくある落とし穴にはまる様を
黙って見てればいいじゃない
137デフォルトの名無しさん:2010/08/04(水) 22:58:21
いやぁ引退なんてしていいんたい?
138デフォルトの名無しさん:2010/08/04(水) 22:59:27
>>137
(゚∀゚) ?
139デフォルトの名無しさん:2010/08/04(水) 23:06:33
       パンパーン!!
  ∧_∧ ∩
 ( ・∀・)彡☆))Д´) >>117
   ⊂彡☆))Д´) >>137
140デフォルトの名無しさん:2010/08/04(水) 23:22:48
まぁありきたりなもの、パターンはテンプレ化しておk。
素数、ソート、カレンダー、組合せ、階乗、平方根、リストなど。
141デフォルトの名無しさん:2010/08/04(水) 23:24:40
あと、別パターンも作っておk。閏年を求めるルーチン、モジュールも
高速化できるものとか。
142デフォルトの名無しさん:2010/08/04(水) 23:42:59
鯖移転記念
143デフォルトの名無しさん:2010/08/05(木) 01:11:01
どーせならうpローダーと、CodePadみたいなのとWikiを
融合させた新しい鯖アプリ作るってのも面白そう
144デフォルトの名無しさん:2010/08/05(木) 01:28:23
俺らでイカタコウィ(ry
145デフォルトの名無しさん:2010/08/05(木) 03:27:56
>>143
言いだしっぺが作るべ
146デフォルトの名無しさん:2010/08/05(木) 04:14:23
Cプログラマには無理だろ
それぐらい複雑だとCGI系じゃ辛い
ServeletとかJSPレベルにしないと厳しいような
147デフォルトの名無しさん:2010/08/05(木) 04:26:25
本格的にやるんなら有料レンタルサーバ借りないといけなくね
無料のとこでもウザい広告とか出ないで容量も速度もじゅうぶんなところが今はあるのかな
148デフォルトの名無しさん:2010/08/05(木) 04:32:28
そもそもお決まりのパターンのコードのサンプルなんて
まとめるのに大規模なものでなくてもおk。そこまでする必要があるかどうか?
149デフォルトの名無しさん:2010/08/05(木) 04:33:39
まっ、ままままま、麻呂の肛門、封鎖できません ><;
スパゲッティーミートクソミソースが漏れそうです ><;
150デフォルトの名無しさん:2010/08/05(木) 11:35:56
まとめるならmain関数は
int main(/*void*/)
{
  return /*0*/;
}
で統一しようぜ
151デフォルトの名無しさん:2010/08/05(木) 12:46:18
コマンドライン引数がある場合はどうするんだよ?
152デフォルトの名無しさん:2010/08/05(木) 12:48:10
>>150
統一するならこうだろ
int main(int argc, char* args[])
{
  〜
  return 0;
}
153デフォルトの名無しさん:2010/08/05(木) 12:53:40
wiki使ってくれよ

>>140-141
素数とかソートとかカレンダーとかすでにあるよ
無いのはぜひ追加してくれ
154デフォルトの名無しさん:2010/08/05(木) 13:26:40
>>152
統一するならこうだろ
int main(int argc, char **argv)
{
  〜
  return 0;
}
155デフォルトの名無しさん:2010/08/05(木) 13:35:16
君たち、今や海栗が標準なんですが....
156デフォルトの名無しさん:2010/08/05(木) 14:46:19
C++ならreturn 0;を省略しますのでそのつもりで
157デフォルトの名無しさん:2010/08/05(木) 17:01:47
こんなどうでもいいことでさえ統一できないことが欠陥言語の象徴だなw
158デフォルトの名無しさん:2010/08/05(木) 17:02:22
>>154
**argv > *argv[]
159デフォルトの名無しさん:2010/08/05(木) 17:26:29
えっ…
160デフォルトの名無しさん:2010/08/05(木) 18:19:25
[1]プログラミング演習
[2]ttp://www.comm.info.eng.osaka-cu.ac.jp/~sugi/C_lang2/C6.htmlの
[問題6-2]はこのページの本文の指示通りにやるとどうなるのでしょうか?
[3.1]Linux環境
[3.2] gcc
[3.3]C言語
[3.4]今日の午後9時

よろしくお願いします
161デフォルトの名無しさん:2010/08/05(木) 19:17:04
>>160
#include<stdio.h>
#include<stdlib.h>
struct TIME{
int day, hour, minute;
};
TIME time_add(TIME t1, TIME t2){
if( t2.day<0 || t2.hour<0 || t2.minute<0 ) exit(1);
t1.day += t2.day; t1.hour += t2.hour; t1.minute += t2.minute;
while( t1.minute > 60 ){
t1.hour++;
t1.minute -= 60;
}
while( t1.hour > 24 ){
t1.day++;
t1.hour -= 24;
}
return t1;
}
int main(void){
TIME t1 = {0} , t2;
while(1){
printf("(day, hour, minute)? ");
scanf("%d %d %d", &t2.day, &t2.hour, &t2.minute);
t1 = time_add(t1, t2);
printf("sum = %d %d %d\n", t1.day, t1.hour, t1.minute);
}
return 0;
}
162デフォルトの名無しさん:2010/08/05(木) 19:42:55
>>160
こうなるんじゃね?

(day, hour, minute)? 3 12 44
sum = 3 12 44
(day, hour, minute)? 1 22 54
sum = 5 11 38
(day, hour, minute)? 8 21 0
sum = 14 8 38
(day, hour, minute)? -1 -1 -1
163デフォルトの名無しさん:2010/08/05(木) 19:53:15
>>162
結果は間違えてないよね。
何に疑問持ったのか分かんない。
164デフォルトの名無しさん:2010/08/05(木) 19:59:37
間を取って public static void Main (String[] args) で
165デフォルトの名無しさん:2010/08/05(木) 22:12:02
サンプルコード
166デフォルトの名無しさん:2010/08/06(金) 19:51:15
曜日を求める課題が出てたよな・・・ってことは、発展系で
閏年、カレンダーの課題もクルー!
167デフォルトの名無しさん:2010/08/06(金) 21:21:51
さぁこい、年収1千万円程度の貧乏人の俺でも多少は生活に余裕が持てるようになった。
今の俺は無敵ではないが、どんな課題でも解けそうな気がするぅ〜あると思います。
168デフォルトの名無しさん:2010/08/06(金) 21:54:06
年収1000万って、手取りに換算するとあんまり大したこと無いよね。
これが手取りで1000万だと結構すごいと思うけど。
169デフォルトの名無しさん:2010/08/06(金) 21:58:38
>>167
>>52-53をどうぞ
170デフォルトの名無しさん:2010/08/06(金) 22:33:31
>>168
いや手取りで。確かに大したことないからまだまだ貧乏人と言っているんです。
171デフォルトの名無しさん:2010/08/06(金) 22:54:42
>>167
コテ(トリ)つけて codepad にあげてごらんよ。
172デフォルトの名無しさん:2010/08/07(土) 06:07:14
【文化】インターネット掲示板『2ちゃんねる』で大人気のアスキーアート・キャラクター「麻呂」が大増殖中
http://kamome.2ch.net/test/read.cgi/newsplus/1281100346/
173デフォルトの名無しさん:2010/08/07(土) 16:57:09
>>167
どんな課題も解けないよ
174デフォルトの名無しさん:2010/08/07(土) 18:03:47
>>173
> 解けそうな気がするぅ〜あると思います。
日本語が読めない人って困りますねw
175デフォルトの名無しさん:2010/08/07(土) 20:26:53
スレチかもしれないのですが、
柴田さんの明解C言語の入門編と前橋さんのポインタ完全制覇を
一通りやったのですが、この後にオススメな本はなんでしょうか?
もしよろしかったら答えていただけると嬉しいです。
176デフォルトの名無しさん:2010/08/07(土) 20:28:12
まずは忘れる事だ
177デフォルトの名無しさん:2010/08/07(土) 20:28:43
>>175
・256倍シリーズ
・最新アルゴリズム辞典
178デフォルトの名無しさん:2010/08/07(土) 20:53:54
>>175
このスレで遊ぶのはどうでしょうか?楽しいですよ。
>>176
至言ですねえ。
>>177
アルゴリズム辞典は持っていて損はないのですが、あー、やっぱりいちからよむものですかやっぱりそうですか
179デフォルトの名無しさん:2010/08/07(土) 22:11:27
>>178
どんな本でもそうだけど、頭から尻まできっちり全部読んでおいて
詳細は忘れてもいいからなにが書いてあったかだけ覚えておけ。
180デフォルトの名無しさん:2010/08/08(日) 04:19:25
で?カレンダー、双方向リストまだー?
181デフォルトの名無しさん:2010/08/08(日) 10:01:33
この時期になっても出てこないならもう出ないだろ
182デフォルトの名無しさん:2010/08/08(日) 10:23:48
でてもとけないだろう。
183デフォルトの名無しさん:2010/08/08(日) 11:20:53
何でだよ、毎年解いているのに今さら解けない訳ねーだろw
184デフォルトの名無しさん:2010/08/08(日) 11:25:11
>>183
うらやましい。俺なんか過去にといた問題と同じものが出たとしてもとける気がしない。
毎日が新鮮でいいのかもしれないが。w
185デフォルトの名無しさん:2010/08/08(日) 21:12:21
[2] 問題文(含コード&リンク):2つの数列の相関係数を求めるプログラムを作成する。
[3] 環境
 [3.1] OS: Mac OSX 10.6
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:[2010年8月9日まで]
[5] その他の制限:できるだけ簡単なプログラムでお願いします。
186デフォルトの名無しさん:2010/08/08(日) 21:15:47
>>184 日本語でおk。このスレに何しにきてんですか?
187デフォルトの名無しさん:2010/08/09(月) 01:17:24
188デフォルトの名無しさん:2010/08/09(月) 10:16:34
[2] 問題文:任意のウェブページ(ここではイントラページ)を、既定設定されているブラウザで表示させる
[3] 環境
 [3.1] OS: Windows, Mac, Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: どちらでも可
[4] 期限: 2010年8月11日15:00まで
[5] その他の制限: スパゲティックな感じでも構わないので、読みやすい感じでお願いします。後学の為にできるだけ理解したいので。
189デフォルトの名無しさん:2010/08/09(月) 12:25:27
読みやすいスパゲッティってあるのか
190デフォルトの名無しさん:2010/08/09(月) 12:51:00
>>188
問題文が、C言語の範疇を越えてるよ
191デフォルトの名無しさん:2010/08/09(月) 12:55:32
windows限定なら
system("open http://hogehoge.fugafuga");
だけで桶
192デフォルトの名無しさん:2010/08/09(月) 15:31:08
アリアリアリアリアリアリアリアリアリアリ
193デフォルトの名無しさん:2010/08/09(月) 15:35:30
(;゚;ж;゚; )ブッ
194デフォルトの名無しさん:2010/08/09(月) 19:51:11
[2] 問題文
実数 -1.0 ~ 1.0 の範囲をもつ任意の長さの数列を、下記の条件でヒストグラムとして
表示するプログラムを作成せよ。
~ -0.95 (x < -0.95)
-0.95 ~ -0.85 (-0.95 <= x && x < -0.85)
-0.85 ~ -0.75 (-0.85 <= x && x < -0.75)
-0.75 ~ -0.65 (-0.75 <= x && x < -0.65)
-0.65 ~ -0.55 (-0.65 <= x && x < -0.55)
-0.55 ~ -0.45 (-0.55 <= x && x < -0.45)
-0.45 ~ -0.35 (-0.45 <= x && x < -0.35)
-0.35 ~ -0.25 (-0.35 <= x && x < -0.25)
-0.25 ~ -0.15 (-0.25 <= x && x < -0.15)
-0.15 ~ -0.05 (-0.15 <= x && x < -0.05)
-0.05 ~ 0.05 (-0.05 <= x && x < 0.05)
0.05 ~ 0.15 (0.05 <= x && x < 0.15)
0.15 ~ 0.25 (0.15 <= x && x < 0.25)
0.25 ~ 0.35 (0.25 <= x && x < 0.35)
0.35 ~ 0.45 (0.35 <= x && x < 0.45)
0.45 ~ 0.55 (0.45 <= x && x < 0.55)
0.55 ~ 0.65 (0.55 <= x && x < 0.65)
0.65 ~ 0.75 (0.65 <= x && x < 0.75)
0.75 ~ 0.85 (0.75 <= x && x < 0.85)
0.85 ~ 0.95 (0.85 <= x && x < 0.95)
0.95 ~ (0.95 <= x )
数列の各値を、上記の範囲ごとに振り分けるようなプログラムをお願いします。
[3] 環境
 [3.1] OS: Mac
 [3.2] コンパイラ名:gcc
 [3.3] 言語:C
[4] 期限:[2010年8月10日まで]
[5] その他の制限:なるべく難易度の低いプログラムでお願いします。
195デフォルトの名無しさん:2010/08/09(月) 22:45:23
196デフォルトの名無しさん:2010/08/10(火) 01:24:38
自分が解きたい問題を解く、何が悪い?俺が解きたいと思わない課題は
お前らにくれてやるから、俺が解きたい課題は俺より先に出すなよ、な!
197デフォルトの名無しさん:2010/08/10(火) 01:27:28
ああ、それでいいよ
だがおまえはコテハンつけて、といてる問題を宣言するんだ
そして少なくとも5分ごとにスレをチェックしろ
最低でもそれを守れ
198デフォルトの名無しさん:2010/08/10(火) 01:37:05
そして質問者は複数の回答の中から自分にとって良いものを選んで
提出すれば良い。その中に自分が習っていないものが入っていたり
題意に沿った回答で無い物を選んでも評価されない。
まぁここはそんな出題者の都合なんて知ったこっちゃ無い場所だがねw
199デフォルトの名無しさん:2010/08/10(火) 08:22:14
すみません、以下のプログラムを、C++ではなくC言語に直してほしいです。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10913.txt


200デフォルトの名無しさん:2010/08/10(火) 09:09:54
コピペ乙
201デフォルトの名無しさん:2010/08/10(火) 09:10:41
ほとんどCで書かれてるじゃんwwww
甘え過ぎ。ただ書き直すだけの作業をやるほどお人好しはいないと思うw
楽しくないからな。
202194:2010/08/10(火) 16:55:37
>>195
ありがとうございます。
しかし、実行してみたところ値を分ける条件は21個あるのに結果は20個しかありませんでした。
これを直すにはどうすればよいのでしょうか?
また、あとからになって申し訳ないのですが、条件の書き方を間違えていたので、
修正したものを以下に書いておきます。

~ -0.95 (x <= -0.95)
-0.95 ~ -0.85 (-0.95 < x && x <= -0.85)
-0.85 ~ -0.75 (-0.85 < x && x <= -0.75)
-0.75 ~ -0.65 (-0.75 < x && x <= -0.65)
-0.65 ~ -0.55 (-0.65 < x && x <= -0.55)
-0.55 ~ -0.45 (-0.55 < x && x <= -0.45)
-0.45 ~ -0.35 (-0.45 < x && x <= -0.35)
-0.35 ~ -0.25 (-0.35 < x && x <= -0.25)
-0.25 ~ -0.15 (-0.25 < x && x <= -0.15)
-0.15 ~ -0.05 (-0.15 < x && x <= -0.05)
-0.05 ~ 0.05 (-0.05 < x && x < 0.05)
0.05 ~ 0.15 (0.05 <= x && x < 0.15)
0.15 ~ 0.25 (0.15 <= x && x < 0.25)
0.25 ~ 0.35 (0.25 <= x && x < 0.35)
0.35 ~ 0.45 (0.35 <= x && x < 0.45)
0.45 ~ 0.55 (0.45 <= x && x < 0.55)
0.55 ~ 0.65 (0.55 <= x && x < 0.65)
0.65 ~ 0.75 (0.65 <= x && x < 0.75)
0.75 ~ 0.85 (0.75 <= x && x < 0.85)
0.85 ~ 0.95 (0.85 <= x && x < 0.95)
0.95 ~ (0.95 <= x )

(−領域の<,<=が逆になったのと-0.5~0.5の部分が両方とも<になりました。)
申し訳ないですが、以上の内容で再度お願いします。
203デフォルトの名無しさん:2010/08/10(火) 22:04:09
204デフォルトの名無しさん:2010/08/10(火) 22:55:07
codepad落ちてるな
205デフォルトの名無しさん:2010/08/10(火) 23:40:30
天罰じゃ〜天狗の仕業じゃ〜〜
206デフォルトの名無しさん:2010/08/11(水) 01:39:20
207デフォルトの名無しさん:2010/08/11(水) 20:24:01
>>203
やっぱりひとつたりない。codepad の出力をみてください。
208207:2010/08/11(水) 20:25:37
アンカーミス失礼 >>206
209デフォルトの名無しさん:2010/08/11(水) 20:32:29
>>207
具体的に、どこの範囲が足りていないのでしょうか。
こちらの環境では私の書いた>>203は足りています。
足りないのは>>206の方です。

それと、>>203はcodepadでは結果が出力されていません。
あなたの見間違いです。
210206:2010/08/11(水) 22:13:31
>>207,209
すまん、clangでやっていた。

#include <stdio.h>
int main(int argc, char *argv[])
{
  double max = 1.05;
  double min = -1.05;
  double delta = 0.1;
  double x;

  printf("(max - min) / delta)             = %f\n", (max - min) / delta);
  printf("(int) ((max - min) / delta))     = %d\n", (int) ((max - min) / delta));
  printf("(int) (x=((max - min) / delta))) = %d\n", (int) (x = ((max - min) / delta)));

  return 0;
}

# gcc     : 21.00000    20   21
# g++    : 21.00000    20   21
# clang   : 21.00000    21   21


211デフォルトの名無しさん:2010/08/12(木) 04:26:21
俺は天才、ファンディアスだ!
212デフォルトの名無しさん:2010/08/12(木) 08:22:28
>>210
んー、コンパイラによって結果がかわるのはどうして?
bcc32
(max - min) / delta) = 21.000000
(int) ((max - min) / delta)) = 20
(int) (x=((max - min) / delta))) = 20

lsi-c
(max - min) / delta) = 21.000000
(int) ((max - min) / delta)) = 20
(int) (x=((max - min) / delta))) = 20

msvc 2008
(max - min) / delta) = 21.000000
(int) ((max - min) / delta)) = 21
(int) (x=((max - min) / delta))) = 21
213デフォルトの名無しさん:2010/08/12(木) 09:24:48
>>212
そもそも 1.05 を double の変数に代入した時点で、
丸めが起きて 1.05 では無くなってるんだよ。

こういう誤差が演算の過程でどのように変化するかはC言語の規定外。
誤差の範囲で値が変わるのは問題ない。

こういうふらつきのある値を int に強制的にキャストして、
小数点以下を切り捨てるようなコードに問題がある。
はっきり言ってバグ。コードを修正すべき。
214デフォルトの名無しさん:2010/08/12(木) 10:08:06
>>213
ンな事言ってたらCで小数の比較なんてナンセンスじゃん
数値計算にC使うなってな話になんぞ?
215デフォルトの名無しさん:2010/08/12(木) 10:10:13
>>214
216デフォルトの名無しさん:2010/08/12(木) 10:20:35
double d;
int intvalue;
d=(double) intvalue;
はおk
しかし
intvalue=(int)d;
という書き方する人一杯いるけど、このキャストは
しないほうが良い。上のように処理系依存性が増える。
だからといって処理系のライブラリ関数(round,floor,etc)を
使えというわけじゃないが、ライブラリは同一環境なら処理系間で使
い回せる可能性が若干ある。ソースがあれば完璧
217デフォルトの名無しさん:2010/08/12(木) 10:20:37
たとえば
a = 0.04999999 みたいな数字があって
0.5 が誤差のために実質 0.04999999 だったら
a < 0.5 が true にならないってことですよね?
218デフォルトの名無しさん:2010/08/12(木) 10:24:12
>>217
それは起こりえる。そしてFORTRANだろうがCだろうがJavaだろうが
言語によらず浮動小数点実数を使う限り宿命的に発生する。
BCD実数とか使うしかない。
219デフォルトの名無しさん:2010/08/12(木) 10:33:20
浮動小数点計算は有効数字分だけ合ってれば良いので
無効数字部分をどのように取り扱うかは確か定義され
ていない筈。これが丸め誤差とか桁落ちとかの原因
ライブラリ(処理系組み込みを含む)作成者の裁量が
大きく左右する。
220デフォルトの名無しさん:2010/08/12(木) 10:36:01
んじゃあグダグダいってねーで
ソースあげろよ
221デフォルトの名無しさん:2010/08/12(木) 10:56:56
なるべく難易度が低い
という条件からは浮動小数点誤差回避の技法はスレ違い
222デフォルトの名無しさん:2010/08/12(木) 11:02:24
>>221
× スレ違い
○ 私は無能です
223デフォルトの名無しさん:2010/08/12(木) 11:04:03
>>216
>ライブラリは同一環境なら処理系間で使
>い回せる可能性が若干ある。ソースがあれば完璧
ソースがあっても、そもそもからして浮動小数点実数
の内部型は処理系の裁量じゃね?別にIEEEに準拠する
必要まで強制されてるの?ライブラリのソースなど
そういった内部型の構造に強く依存してたり関連ライ
ブラリグローバル関数とか使ってたりして競合が発生
しやすいんであったところでそのまま使えるケースは
224デフォルトの名無しさん:2010/08/12(木) 11:05:51
少数の計算はどこまでいっても不満と不安がつきまとう。
できるもんなら関わりたくないものだ。
225デフォルトの名無しさん:2010/08/12(木) 11:16:00
>>210

1 printf("(max - min) / delta) = %f\n", (max - min) / delta);
2 printf("(int) ((max - min) / delta)) = %d\n", (int) ((max - min) / delta));
3 printf("(int) (x=((max - min) / delta))) = %d\n", (int) (x = ((max - min) / delta)));

2と3が異なるgccが手元に無いんだが、どういう素姓のgccだ?
本当に2と3が異なるのか?
226デフォルトの名無しさん:2010/08/12(木) 13:13:04
>>216
sizeof float==sizeof intな環境で
float f=1.0;
int i;
i=(int)f;
while(i==1);

このコードを実行させたところ一瞬で終わる環境も
あり得るし、無限ループになる環境もあるってこと
ですね。勉強になりました。(皮肉)
227デフォルトの名無しさん:2010/08/12(木) 13:25:18
>>216は典型的なシッタカ。放置推奨。
228デフォルトの名無しさん:2010/08/12(木) 13:30:07
wktk
229デフォルトの名無しさん:2010/08/12(木) 13:34:17
(sizeof long long ==sizeof double)
とする。
long long l;
double d;

d=1.0;
l=(long long)d;

memcpy(&l,&d,sizeof(long long));
と等価じゃないんだ?
230デフォルトの名無しさん:2010/08/12(木) 13:38:33
>>226は何が言いたいのかわからん。
キャストにsize関係ないし、1.0に誤差が発生する環境なんてない。
231デフォルトの名無しさん:2010/08/12(木) 13:41:40
そういったトラブルの続出でC++ではReInterrupt castとか
Dynamic Castという概念が生まれ区別されるようになった
わけです。Cでもこれは真似したほうがいいかもしれません。
つまりキャストする場合はコメントにそう明示するわけです。
処理系を変えておかしくなる場合はこのあたりに原因がある
ことも少なく有りません。改修作業の苦痛が大幅に軽減され
ます。
232デフォルトの名無しさん:2010/08/12(木) 13:45:03
>>229
当たり前だろ。バカ。お前はバトルへの参加資格なし。
233デフォルトの名無しさん:2010/08/12(木) 13:47:20
>>229
処理系によって変わります。(但しその処理系の正統性は無視です。
正統な処理系だけが稼働しているわけではありません。)
234デフォルトの名無しさん:2010/08/12(木) 14:57:55
>>216
のようにバイト列レベルで見て単純な複製じゃなく
コンパイラが何らかの方法で変換ルーチン(ライブラリ関数
じゃない可能性のほうが大)を自動コールするといったレベ
ルのキャスト(これが正統)を禁止するのはちょっとね。

ただライブラリ関数のコンバート系関数でも同等のことが
出来るし、ライブラリ関数を多用する場合はむしろこちら
のほうが純正性が良いかもしれない
235デフォルトの名無しさん:2010/08/12(木) 16:23:25
バカが多いな。浮動小数点形式が同一なら、浮動小数点から整数へのキャストで
処理系依存性が出るはずが無い。

C99
6.3.1.4 Real floating and integer
When a finite value of real floating type is converted to an integer type
other than _Bool, the fractional part is discarded (i.e., the value is
truncated toward zero).
236デフォルトの名無しさん:2010/08/12(木) 17:04:10
>>225
Windowsでは cygwin / gcc 4.3.4.20090804
237デフォルトの名無しさん:2010/08/12(木) 18:06:54
クオリティ・パフォーマンス・エレガンス:純正>>>>正統
トータルな意味での信頼性:正統>>>>純正
ってところか どんな分野でもこれはある程度言えるんじゃ?
238デフォルトの名無しさん:2010/08/12(木) 18:15:19
>>235
お前が馬鹿だろ、整数へのキャストは小数部の切り捨てしか起こらん。
問題はその前の代入や演算での丸めによる誤差の取り扱いなんだよ。

要するに演算後 21.000... となる処理系と 20.999... となる処理系が存在しうる。
これを整数にキャストしたら前者では 21 となるし、後者では 20 となる。

まともなプログラマなら演算後の double を int にキャストする場合は
i = (int)(d + .000000001) とか書くよ。
239デフォルトの名無しさん:2010/08/12(木) 18:30:49
一方、別のまともなプログラマは有理数クラスを使った
>>238こういうのはバッドノウハウだよな
速度が求められるとか特別な理由が無い限りやめたほうがいい
240デフォルトの名無しさん:2010/08/12(木) 18:33:52
正統でも純正でもない方法(でも場合に依っては有効かも)
241デフォルトの名無しさん:2010/08/12(木) 18:41:12
>>238
>i = (int)(d + .000000001) とか書くよ。

死ね
242デフォルトの名無しさん:2010/08/12(木) 18:43:24
利息計算の場合は、切り捨てて欲しくないなあ^^
243デフォルトの名無しさん:2010/08/12(木) 18:46:07
>>237
純正な有名ライブラリのソース(マルチプラットフォーム対応)を
沢山見てきたが、エレガントに記述されているものなど皆無。
むしろすんごく泥臭いことやってる。パッチだらけで作者じゃな
ければ読めたものじゃないってことも稀じゃない。

正統(某かの規格書に厳密に準拠した文法で書かれており、使うこと
だけでなく見せることも目的に入ってる)志向が強いコードのほうが
強烈にエレガントさを求めるんじゃねぇの?
244デフォルトの名無しさん:2010/08/12(木) 19:53:30
>>238
そんな話はしていない、文脈読めないバカは死んでしまえ。
キャストかライブラリかと言う話だ。
245デフォルトの名無しさん:2010/08/12(木) 20:25:04
>i = (int)(d + .000000001) とか書くよ。

こういうことしちゃう人がいるから嫌なんだよな。
あー少数のない世界へ行きたい。
246デフォルトの名無しさん:2010/08/12(木) 20:31:40
四捨六入っていうのがあってだなあ
247デフォルトの名無しさん:2010/08/12(木) 21:22:41
ライブラリはマルチプラットフォーム対応で作るのだろうから
コンパイラの解釈に依存するようなキャストを使わず
自前でコンバート関数とか用意するだろうし、それを
使って他のライブラリ関数とかテストしてるんだろうから
ライブラリ関数を中心的に使う場合は、可読性は低くなるかも
知れないけどあんましキャストはしないほうがいいと思います。
248デフォルトの名無しさん:2010/08/13(金) 01:17:21
アホか。キャストは四則演算と同じく作用が定義されている演算子だ。
キャストがコンパイラの解釈に依存するから使えないのならば、同じく、
四則演算子も使えねーな。
浮動小数点定数も変換が処理系に依存するから、使えねーな。ww
249デフォルトの名無しさん:2010/08/13(金) 01:36:15
別のCコンパイラでコンパイルしたライブラリコードを
平気でリンクできてしまうのがよくもわるくもC処理系
の特徴であり歴史的事実(それがC固有であり本源的とまで
は言わないが)

厳格に言えば整数演算、文字列演算以外のキャストや
四則演算はこういった性格から信頼性が落ちる場合が
あるってことか。
250デフォルトの名無しさん:2010/08/13(金) 02:48:29
Cじゃなくてアルゴリズムの話なんだけど、アルゴリズムのほうが超過疎なのでこちらで聞きます

[1]
[2]
グラフG(V,E)の各エッジに0〜1.0間の数値で確率がランダムで与えられている。
各ノードに到達するまでの確率の積が最大となるような木を作りたい。

別の表現をすると、一般的なダイクストラ法の条件1.リンクコストが非負、2.コストの和が最小の経路を求める
というのを、1'.リンクコストは0〜1の実数、2'.コストの積が最大の経路を求める
に変えて考えたいです。

ダイクストラのアルゴリズムをちょこっと変えるだけで、この問題を解くアルゴリズムは書けますか?
[3] 指定なし
[4] できるだけ早く
[5] コードじゃなくてアルゴリズムがほしいです
251デフォルトの名無しさん:2010/08/13(金) 02:57:55
スレチだろ
252デフォルトの名無しさん:2010/08/13(金) 04:12:50
鼬買い
数学遺体毛
253デフォルトの名無しさん:2010/08/13(金) 09:26:07
>>245
コンパイラによって結果が変わるコード書く奴の方が100倍は嫌だよ。
254デフォルトの名無しさん:2010/08/13(金) 09:30:58
複数回通る事を禁止していないので明らかに解が無い。
255デフォルトの名無しさん:2010/08/13(金) 10:02:33
>>250
とありあえず、大学、学部が何処かを言ってくれ。
それによって回答のレベルが変わるから。
256デフォルトの名無しさん:2010/08/13(金) 10:10:23
複数回通る事を禁止しなくてもよくないか?
2回目に同じノードを通過するときの確率は1回目の確率以下にしかならない
257デフォルトの名無しさん:2010/08/13(金) 10:18:56
>>250
ダイクストラ法は理解してるのか?理解してたら簡単に書き換えられると思うんだが。

>>255
どう解答のレベルが変わるんだよw
258デフォルトの名無しさん:2010/08/13(金) 11:24:44
>>257
手取り足取りになるのか
ヒントだけで済むのかによって
変わるんじゃないかな
259250:2010/08/13(金) 14:10:58
>>255
個人情報ですから回答できません。

>>257
簡単でないから質問してるのですが・・・
その方法を具体的に書いてください。話はそれからです。
260デフォルトの名無しさん:2010/08/13(金) 14:14:04
大学と学部は個人情報じゃないよ
261デフォルトの名無しさん:2010/08/13(金) 14:20:46
↑質問に答えられないくせに・・・うざいなこいつ
262デフォルトの名無しさん:2010/08/13(金) 14:23:15
質問スレではどういう態度で発言すべきか学習してから出直す事だな。
1年もすればほとぼり冷めるだろう。
263デフォルトの名無しさん:2010/08/13(金) 14:34:37
↑質問の意味すら理解できない馬鹿wwww
264デフォルトの名無しさん:2010/08/13(金) 14:57:32
宿題は自分で考えないと意味がないだろ
265デフォルトの名無しさん:2010/08/13(金) 21:06:53
>>259
たとえばコストを計算するときに一般的なダイクストラ法では、cost = node.cost + costs[i];とかするわけじゃん
これをcost = node.cost * costs[i];にすればいいでしょ
あとはcostがでかくなるように経路を確定していけばいいじゃん
すごく簡単だと思うんだけど、どこが簡単じゃないのか具体的に書いてください。話はそれからです。
266デフォルトの名無しさん:2010/08/13(金) 23:52:39
ほう・・・新しいキチガイパターンだな
大学と学部を聞き出そうとするなんて
267デフォルトの名無しさん:2010/08/14(土) 02:54:59
[1] 授業単元: アルゴリズム論1
[2] 問題文(含コード&リンク):
if文を用いないで2つの整数から最大値を求めるプログラムを作る
[3] 環境
 [3.1] OS: Windows
 [3.2] gcc 4.3.4
 [3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
標準ライブラリのmax、及び三項演算子は使用禁止でお願いします
268デフォルトの名無しさん:2010/08/14(土) 03:08:55
#include<stdio.h>
int main()
{
int a,b;
a = 3;
b = 2;
for(;a >= b;){
printf("%d",a);break;}
for(;a < b;){
printf("%d",b);break;}
return 0;
}
269デフォルトの名無しさん:2010/08/14(土) 03:18:38
#include<stdio.h>
int main() 笑
270デフォルトの名無しさん:2010/08/14(土) 03:20:53
あ?なんか文句あんのか?
271デフォルトの名無しさん:2010/08/14(土) 03:29:04
いえ、ありませんが、ISO、ANSI準拠()笑
272デフォルトの名無しさん:2010/08/14(土) 03:32:50
すくなくともC99には外れてねえぞ?
273デフォルトの名無しさん:2010/08/14(土) 04:13:10
[1] 授業単元: Cコーディング初級
[2] 問題文(含コード&リンク):
プログラムを実行した日がその年の第何週目にあるかを終了コードとして整数で返す
[3] 環境
 [3.1] OS: Windows
 [3.2] gcc 4.3.4
 [3.3] 言語: C
[4] 期限: 8/16
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
time.h を使います
週の頭は日曜から始まります
1月1日を含む週に4日以上ある場合に第1週となります
つまり1月1日が日曜から始まっているときはその週が第1週ですが
1月4日が日曜から始まっているときはその週が第1週になります
274デフォルトの名無しさん:2010/08/14(土) 04:16:30
batじゃなかったのか?
275デフォルトの名無しさん:2010/08/14(土) 04:58:30
標準スタイル云々はどうでも良い。
>>268 のコードが稚拙。もう少し捻りなさい。
276デフォルトの名無しさん:2010/08/14(土) 08:44:12
void main(void)厨は>>273どうやって解くの?
277デフォルトの名無しさん:2010/08/14(土) 09:04:43
>>267
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b;
a = 10;
b = 1;
printf("%d\n", (a + b + abs(a - b)) / 2);
}
278デフォルトの名無しさん:2010/08/14(土) 10:15:53
>>272
どうでも良いよ、そんなの。int main() 笑
279デフォルトの名無しさん:2010/08/14(土) 11:22:01
280デフォルトの名無しさん:2010/08/14(土) 11:35:29
>>269
C99 にははずれていないし、C89 ならもっとはずれていないのですけれども。
281デフォルトの名無しさん:2010/08/14(土) 11:50:12
なんかひどい状況になってますなw
282デフォルトの名無しさん:2010/08/14(土) 11:55:50
うん、文法的にはint main() {笑;}が正しいね。>>278は文法を知らないようだ。
283デフォルトの名無しさん:2010/08/14(土) 12:00:18
>>282
何勝利宣言しているのか知らないがISOの標準スタイルについては解決済み。
文法とかではなく、標準スタイルを知らないのはお・ま・え。
この話は終了。自分が知らないことを相手が自分が思ったことを
理解していないで解決している内は、まだまだ情報弱者だという自覚がないようだな。
もしお前が学生ではなく教える立場の人間なら、お前が育てた生徒は碌なのがいない。
284デフォルトの名無しさん:2010/08/14(土) 12:46:04
>>282
> 文法的にはint main() {笑;}が正しい
文法について言うならコードの中に注釈// や /* */ を使用せず
全角文字{笑}なんて書いたらコンパイラが通さないんだが・・・
まぁお前のコンパイラはその 笑 すらコードの一部として通すかもしれないが。
文法で言うならお前の方こそ無駄口を叩いたせいで間違えてるぞ。
そういうの墓穴を掘る、蛇足って言うんだよ。
要らん反論するなよ。お前が無駄口叩いて自分こそが間違えたんだから。
285デフォルトの名無しさん:2010/08/14(土) 12:48:58
int main() のintに突っ込んでいるのか、()に突っ込んでいるのか、どちらだ?
286これが和訳できないなら黙ってろ:2010/08/14(土) 12:51:49
>>282 >>280 C99がどうとかではないんだが・・・

ttp://www.bohyoh.com/CandCPP/FAQ/FAQ00042.html

5.1.2.2.1 Program startup  < ”プログラムの開始”を”main関数”とすることに関する記述


[#1] The function called at program startup is named main.
The implementation declares no prototype for this function.
It shall be defined with no parameters:

int main(void) { /* ... */ }  < 根拠

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[]) { /* ... */ }

or equivalent,9 or in some other implementation-defined
manner.
287デフォルトの名無しさん:2010/08/14(土) 12:53:25
>>282
> うん、文法的にはint main() {笑;}が正しいね。
どこが?何その {笑} の 笑 は?ふざけてんのか?

> >>278は文法を知らないようだ。
ブーメラン・・・お前は民主か?w
288デフォルトの名無しさん:2010/08/14(土) 12:56:03
>>282 は標準スタイルだけでなく文法も基本ルールも知らないようだ。
""で囲うなり注釈などで全角文字は通るが、基本は半角文字を使うのに
やはり独自の環境を使用しているのか、コードの一部に全角が入っても
通るような環境を使っている人は言うことが違うぜw
お前が講師ならお前が育てた生徒は不適切な知識を得て卒業するだろう。
お前が学生なら知ったか無知の未熟者。将来C言語で商売をしようと思わないことだな。
289デフォルトの名無しさん:2010/08/14(土) 12:59:14
>>282
負けを認めろ。C99の標準スタイルでもISOは
プログラムの開始をmain関数とし、引数が無い場合は
int main(void) と提唱しているんだよ。ただ、これはあくまでも
標準スタイル。従わなければいけないものではない。
独自の環境を使用している場合は「その限りではない」と
前スレでもしつこく説明したんだがねぇ。お前新参?
だったら出過ぎた真似をせずに人の話は聞いてな。
未熟者の意見なんて、社会じゃ聞いてもらえないどころか
意見したことで上から目をつけられて干されるよ。
290デフォルトの名無しさん:2010/08/14(土) 13:00:32
それから前スレのログを提示しておく。
これ以上の議論は無駄なんで他所でやってくれ。

http://2bangai.net/read/d17c5b92871645cd16b0d4d4f6cb164865880a01053bdce9b7eff5642a1418ec/901
291デフォルトの名無しさん:2010/08/14(土) 13:01:36
シェルから呼び出す時ならint mainで良いんじゃない?
あと、ループさせないならforは不適。
if推奨。
292デフォルトの名無しさん:2010/08/14(土) 13:05:04
あっ自分のスタイルは int main() 笑 という個人的な話はもう不要ですよ。
あんたがそうしたいなら書けば良いだけ。しかし、正式な場所に出てそんな
記述をしたら笑われますからw こいつ無知だ、自己流だ、世の標準を知らない
情報弱者とな。
293デフォルトの名無しさん:2010/08/14(土) 13:07:28
独自スタイルを何がなんでも認めてもらおうなんて意見は要りませんよ。
あくまでも世界的な標準を決めているISOの提唱に関する話だから。
世の中がお前基準に動いてないことくらい、早く理解してくださいね。
お前も所詮、権力者でもなければ単なる一般人、国籍のある国民の一人に過ぎませんから。
お前一人が自分がそうするから世界で認めろ!なんて言っても、それなりの
立場の人間でなければ受け入れられませんから。
あと、C言語に限らずプログラム言語は何も、個人や学校以外でも
普通に世の製品で用いられていますから。そういうことも理解して下さいね ♥
294デフォルトの名無しさん:2010/08/14(土) 13:20:30
バカしかいねぇw
295デフォルトの名無しさん:2010/08/14(土) 13:26:41
自分の目で5.1.2.2.1を全部見ろよ
ちゃんと通る書き方だってのに
296デフォルトの名無しさん:2010/08/14(土) 13:56:19
Cが欠陥言語だからこんな不毛なレスが出てくるんでしょう
297デフォルトの名無しさん:2010/08/14(土) 14:06:41
Cの場合は規格が後から作られたようなものだから、少々のズレはあるんだ。
逆に後付け設定のくせになにいってんだって感じだよ。
298デフォルトの名無しさん:2010/08/14(土) 14:18:15
>>289-290
つまり、int main(void)は正しいという事だな。めでたく終了。

901: 900 2010/07/31(土) 12:58:41
>>899
ああー、なるほど。

【 899 】: デフォルトの名無しさん 2010/07/31(土) 12:39:42
>>897
できた(値の範囲チェックはしていない)
#include <stdio.h>

int main(void)
{
int busstop[]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 5, 4, 3, 2, 1};
299デフォルトの名無しさん:2010/08/14(土) 14:19:12
とりあえず、一番最初にケチつけたヤツの模範解答希望。
理屈じゃなくてプログラムで。
300デフォルトの名無しさん:2010/08/14(土) 14:31:27
>>273
main云々の話には加わっていないが。

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

int main(void)
{
time_t now;
struct tm *ltm;
int r;

time(&now);
ltm = localtime(&now);
r = abs(ltm->tm_wday - ltm->tm_yday) % 7;
r = (ltm->tm_yday - r) / 7 + 1 + ((r > 3) ? 1 : 0);
/* printf("%d\n", r); */
return r;
}
301267:2010/08/14(土) 15:18:22
>>268
>>277
ありがとうございました
助かりました
302デフォルトの名無しさん:2010/08/14(土) 15:23:44
さすがにISO準拠すら知らない情報弱者が言う反論は根拠がない
自分が勝手に決めたスタイルで笑えるw
一生、公の場でそんな主張をしてみろ。まぁお前が日頃
活動している場所が閉鎖的で、世界だけでなく日本国内でも
無名の小さな会社なんだろうけど。世の中で名のある企業は
何かと安全面でもISO準拠だよw
分かったか?ISOは意味も無く標準化を提唱しているんではないと。
それなりに全体の流れ、能率、効率を考えて取り決めされているんだよ。

口説いようだが、独自の環境を使用している場合はその限りではない。
この但し書きすら理解できないようだなw
別にお前個人が問題ないと思うならそのスタイルを押し通せば良い。
303デフォルトの名無しさん:2010/08/14(土) 15:25:52
ただの宿題スレでやけに必死な奴がいるな^^;
304デフォルトの名無しさん:2010/08/14(土) 15:28:07
int main() がどーのこーの、
return 0 がどーのこーので永遠に罵り合える連中です。
305デフォルトの名無しさん:2010/08/14(土) 15:39:18
ISOだけが正統と考えるのはイクナイ
ANSIだってJISだってそれに匹敵できる正統性を主張
できるくらいのコストをかけて標準作りに勤しんでる筈
306デフォルトの名無しさん:2010/08/14(土) 15:41:02
rubyなんざ標準化されてないもんな。
C/C++は標準化されてるだけマシと考えるべき。
307デフォルトの名無しさん:2010/08/14(土) 15:42:37
int main()
が C99 で ISO 準拠であることを、前スレで ISO/IEC9899 まで引用して説明したんですけど、その議論自体に反証をしめすわけでもないんですね。
議論の仕方をしらないようで、こまったものです。

>>286
>or equivalent
に注目してください。これに、ISO/IEC9899  6.7.5.3 14 を適用すれば int main() が ISO 準拠であることがわかるでしょう。
前スレで該当する箇所を貼り付けてくださった方がおりますので、ご要望があれば再度貼り付けます。
残念ながら http://www.bohyoh.com/CandCPP/FAQ/FAQ00042.html は、この or equivalent の部分が抜けています。
308デフォルトの名無しさん:2010/08/14(土) 15:44:50
もはやスレチの領域
309デフォルトの名無しさん:2010/08/14(土) 16:23:56
もう自分がISO準拠でなかったスタイルを長年継続したせいか
今さら変えたくなくて涙目なんでしょwwwwwww
イイヨイイヨー、別にISO準拠を押し付けたりしないから。
ただ、反論してもそれは個人に対してではなく
ISOに対して意見しているんだと自覚して下さいね ♥
310デフォルトの名無しさん:2010/08/14(土) 16:24:48
>>307
>議論の仕方をしらないようで、こまったものです。

ここは議論の場ではありません
311デフォルトの名無しさん:2010/08/14(土) 16:31:57
場のわきまえ方を知らないようで、こまったものです。
312デフォルトの名無しさん:2010/08/14(土) 16:33:07
>>311
年寄りが若者に対していう言葉ですね。
313デフォルトの名無しさん:2010/08/14(土) 16:36:57
年寄りが馬鹿者に対して言ってる言葉ですが?
314デフォルトの名無しさん:2010/08/14(土) 20:18:24
>>273 2009年1月3日は第0週なのか。それとも第一週か。
315デフォルトの名無しさん:2010/08/14(土) 20:23:24
週の頭は日曜から始まります
1月1日を含む週に4日以上ある場合に第1週となります
つまり1月1日が日曜から始まっているときはその週が第1週ですが
1月4日が日曜から始まっているときはその週が第1週になります
316デフォルトの名無しさん:2010/08/14(土) 21:16:41
「1月4日が日曜から始まっているときはその週が第1週になります」
という状況のときの1/1, 1/2, 1/3は未定義と表示させればいいのか?
317デフォルトの名無しさん:2010/08/14(土) 21:22:45
1月1〜3日は三が日で休みとして、何か仕事に関わる
スケジュールのつもりか?とりあえず1日が木曜日の場合
0週で良いんじゃね?
318デフォルトの名無しさん:2010/08/14(土) 21:29:55
前年の最終週でしょう
319デフォルトの名無しさん:2010/08/14(土) 21:32:26
0時/24時みたいに0週目/53週目で考えると
「その年の何週目」だから0週目なんだろうなやっぱり
320デフォルトの名無しさん:2010/08/14(土) 21:36:41
今年の何週目かでなんで去年の話になる?w
321デフォルトの名無しさん:2010/08/14(土) 22:07:08
vbsだが

Option Explicit

WScript.Echo DatePart("ww", "2010/1/1" , vbSunday , vbFirstFourDays)
322デフォルトの名無しさん:2010/08/14(土) 22:53:52
>>321
スレチ
323デフォルトの名無しさん:2010/08/14(土) 22:58:38
プログラマ板的にわかりやすく根拠書いただけだろ
324デフォルトの名無しさん:2010/08/14(土) 23:43:51
age厨うぜぇ〜ぞ、お前の主観で根拠とか言われても
全然説得力ないから。他所でやれ。
325デフォルトの名無しさん:2010/08/14(土) 23:57:37
どこまで馬鹿なんだこいつは
326デフォルトの名無しさん:2010/08/15(日) 15:53:34
宿題ないですねえ。
327デフォルトの名無しさん:2010/08/15(日) 15:57:33
>>326
夏休みだからなぁ。
328デフォルトの名無しさん:2010/08/15(日) 15:58:26
ナツナツナツナツココーナーッツ♪
329デフォルトの名無しさん:2010/08/15(日) 16:19:47
学生諸君、コピペリポート見破りソフトあるぞ
ttp://headlines.yahoo.co.jp/hl?a=20100815-00000207-yom-soci
 学生のリポート作成で、インターネット上の資料をそのまま引き写す
「コピー&ペースト(コピペ)」の横行に、大学側が悩んでいる。(読売新聞)


このスレ\(^o^)/オワタ
330デフォルトの名無しさん:2010/08/15(日) 16:27:39
このスレはオワテないよ。なぜなら、適当に変数名、数式の書き方などを
適当に個人スタイルに書き直せば良い。丸写しで提出する奴は本当にバカだし
そんなんで理解したと評価されるのはおかしい。
なんなら、暗号化と復元を利用してネットでアップする文字列は
意味不明なものにしても良い。
331デフォルトの名無しさん:2010/08/15(日) 17:00:10
多く出現する変数名いくつかの名前変えるだけで、60%近く変化しそうだな。
332デフォルトの名無しさん:2010/08/15(日) 17:03:33
コピペかどうか分からなくするソフトつくれしw
単なる難読化じゃなくて、それっぽく、識別子を置き換え、
for(;;)やwhile(1)なんかも交換可能なリストを持っておいて、
統一した流儀で書き換える。インデントも。
333デフォルトの名無しさん:2010/08/15(日) 17:08:21
>>332
よし卒論はそれでおkだな
334デフォルトの名無しさん:2010/08/15(日) 17:09:13
カンタンなわりに強力なソフトができるな。
カンタンと言っても、実装はそれなりに複雑だろうけど。
335デフォルトの名無しさん:2010/08/15(日) 18:34:41
336デフォルトの名無しさん:2010/08/15(日) 18:38:50
教官が毎年問題をコピペしてたら、どうする?
337デフォルトの名無しさん:2010/08/15(日) 19:06:19
よろこぶ
338デフォルトの名無しさん:2010/08/16(月) 02:01:40
int main()でreturnを書かないのが標準なの?
339デフォルトの名無しさん:2010/08/16(月) 02:07:48
>>338
もうその話は他所でやれw C++ならそれでおk。
340デフォルトの名無しさん:2010/08/16(月) 03:34:24
何かつまんねぇなぁ。おいっ、どこぞの低レベルの学校の講師、見てっか?
パズルゲームくらい課題にしろ。数独や16ゲームとか、時間が掛かるけど
1年間あればそれくらい作れる人材を育成しろ。
341デフォルトの名無しさん:2010/08/16(月) 17:14:09
>>255-265
ありがとうございます。望んでいる通りに動きました。
一つ心配だったのは、ダイクストラってコスト最小の全域木という保証があるけど
積にして、かつ最大をとるっていうアルゴリズムってコスト積最大の全域木になるのかどうかがわからなかったのです
普通に考えてみれば自明ですよね・・・
ちなみにFらんですすいません
342デフォルトの名無しさん:2010/08/16(月) 18:37:01
>>341
大学をきくやつの頭がどうかしている。がんばれ。
343デフォルトの名無しさん:2010/08/16(月) 20:55:20
>>267
2つ以上の整数の場合

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a,b,c,n,i;
printf("入力する整数の個数を入力して下さい:");
scanf("%d",&n);
printf("1個目の整数:");
scanf("%d",&a);
for (i=0;i<n-1;i++){
printf("%d個目の整数:",i+2);
scanf("%d",&b);
c=(a+b+abs(a-b))/2;a=c;}
printf("入力された整数の最大値は%dです",a);
return 0;
}
344343:2010/08/16(月) 22:02:24
cはいらんね、失礼w
345デフォルトの名無しさん:2010/08/17(火) 07:57:53
if文は使えないが比較演算子が使えない訳ではないのなら楽だが
346デフォルトの名無しさん:2010/08/18(水) 01:16:12
>>340
数独の問題1つ、総当たりなら1年も掛からず作れそうだけど、ちゃんとした問題作成の方法があるんですか?
347346:2010/08/18(水) 01:17:06
問題作るのに1年じゃなくて、問題作成ソフトに1年掛からなそう
348デフォルトの名無しさん:2010/08/18(水) 05:03:19
何もC言語を知らない生徒がいきなり作るのは難しいだろうし
1年を通して最後に提出する課題として、出しておけば良いだけ。
その問題を回答するのに、1年かけなければいけないわけではない。
349デフォルトの名無しさん:2010/08/18(水) 11:35:39
for文まで習えば問題作成も回答も汚いコードだけどできるよね
for文のネストが81できることが前提だけどCの仕様ではどうなってる?
350デフォルトの名無しさん:2010/08/18(水) 17:49:08
規格では特に何も言ってないと思う
351デフォルトの名無しさん:2010/08/18(水) 18:07:04
またまたご冗談を
352デフォルトの名無しさん:2010/08/18(水) 18:51:07

仕様や規格以前に、81もネストするプログラムって何だよ
353デフォルトの名無しさん:2010/08/19(木) 03:53:16
コードの自動生成でもそこまで酷くならないよな。
そもそもそんなにネストして実用的な速度がでるとは思えない。

でも再帰の展開すればそれぐらい行ったりするのか?
354デフォルトの名無しさん:2010/08/19(木) 08:01:09
ひんと
      キャッシュ
355デフォルトの名無しさん:2010/08/19(木) 08:21:36
誰か数独の問題を作り、あるパターンを与えられたら
自動的に解答してくれるコードを書いてちょっ!
356デフォルトの名無しさん:2010/08/19(木) 08:56:17
禿死苦概出
357デフォルトの名無しさん:2010/08/19(木) 10:46:02
>>356 参照無しに言うとかw
358デフォルトの名無しさん:2010/08/19(木) 10:49:33
359デフォルトの名無しさん:2010/08/19(木) 10:49:47
>>357
C/C++の宿題片付けます 135代目
http://pc12.2ch.net/test/read.cgi/tech/1269438098/
360child:2010/08/19(木) 11:38:57
xlsファイルを出力するよう言われたのですが、今までプログラムを扱ったことがなく困っています。
どなたか教えていただけないでしょうか?
361デフォルトの名無しさん:2010/08/19(木) 11:40:36
キミには無理です。
362child:2010/08/19(木) 11:42:04
自分でも難しい事は十分に承知です。周りにもできる人がいないためここに来ました。

どうかよろしくお願い致します。
363デフォルトの名無しさん:2010/08/19(木) 11:42:36
お願いされても無理です
364デフォルトの名無しさん:2010/08/19(木) 11:43:42
>>362
csv じゃダメなんですか
365デフォルトの名無しさん:2010/08/19(木) 11:49:43
xlsとかいきなり言われても、MSの製品だし
366child:2010/08/19(木) 11:50:39
csvでも大丈夫です。

どうぞよろしくお願いいたします。
367デフォルトの名無しさん:2010/08/19(木) 11:51:52
>>360
excel のマクロでやれよ
368デフォルトの名無しさん:2010/08/19(木) 11:53:51
>>366
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
FILE *fp;

fp=fopen("hoge.csv", "w");
if(fp==NULL) exit(1);

fprintf(fp, "1,2,3,4,=a1+c1\n");

fclose(fp);

return 0;
}
369child:2010/08/19(木) 11:59:36
質問なんですが、
FILE *fp;

fp=fopen("hoge.csv", "w");
if(fp==NULL) exit(1);

fprintf(fp, "1,2,3,4,=a1+c1\n");

fclose(fp);

と言うのは言葉で説明すると何をしているのでしょうか?
全く分からないもので申し訳ないです。
370デフォルトの名無しさん:2010/08/19(木) 12:00:21
>>369
本屋へGO!
371デフォルトの名無しさん:2010/08/19(木) 12:03:41
>>369
なんだろう、こいつには絶対答えてやりたくない。
372デフォルトの名無しさん:2010/08/19(木) 12:19:21
だから、キミには無理って言ってるでしょ。

実際のプログラムは>>368の数百倍複雑。
キミは>>369のような質問を数百回繰り返して作るつもりか?
373デフォルトの名無しさん:2010/08/19(木) 12:22:46
1から100まで教わろうとする姿勢。
まさにエクストリーム教えてクン。
374デフォルトの名無しさん:2010/08/19(木) 12:34:54
100までの素数を求めよ
375デフォルトの名無しさん:2010/08/19(木) 12:38:44
1からか?
376デフォルトの名無しさん:2010/08/19(木) 12:40:32
1が素数ではない事を知らない素人は回答禁止。
377デフォルトの名無しさん:2010/08/19(木) 12:41:15
素数だと100に到達できないしなw
378デフォルトの名無しさん:2010/08/19(木) 12:42:42
>>374
#include <stdio.h>
int main(int ac, char **av)
{
  int i;
  for(i = 1; i <= 100; i++){
    printf("1から100までの素数を求めます\n");
  }
  return 0;
}
379デフォルトの名無しさん:2010/08/19(木) 12:43:27
問題文不適切で回答不能
380デフォルトの名無しさん:2010/08/19(木) 12:47:39
100以下のソースを求めよ
381デフォルトの名無しさん:2010/08/19(木) 12:52:11
100円ショップにある
382デフォルトの名無しさん:2010/08/19(木) 12:54:51
1から100までに含まれる全ての素数を求めよ
こういう問題文にしろってこと?
383デフォルトの名無しさん:2010/08/19(木) 12:56:44
マイナスで素数とか
384デフォルトの名無しさん:2010/08/19(木) 13:01:25
いくつから始めるか書いてなければ、解答者が好きに決めていいのか?99からだと、解なしだよな
385child:2010/08/19(木) 14:09:00
素数は1より大きな自然数だと定義されています。
ここはこんな基本常識すら知らない人の集まりなんですね。

まともな回答を期待した私が馬鹿でした。
386デフォルトの名無しさん:2010/08/19(木) 14:19:07
またまたご冗談を
387デフォルトの名無しさん:2010/08/19(木) 14:24:05
まぁ素数って言ったら正の整数で求めるのが一般的ですな。
388デフォルトの名無しさん:2010/08/19(木) 14:27:29
ここはプログラム板、数字板じゃない
389デフォルトの名無しさん:2010/08/19(木) 14:32:24
0は整数でないとして
整数で
1のみが素数で、他は擬素数、擬素数の積が合成数
他は負数

という表現方法もあるが、教科書に書いて広めることは
禁止とまではいかないが圧力をかけられる

おはしを持つ手が右手
と教えられるのと一緒
390デフォルトの名無しさん:2010/08/19(木) 14:35:44
プログラミング言語は文法の固まりみたいなもので
文法の殆どは、「おはしを持つ手は右手」の類いのもの

しかしだからといって余りそのバリエーションが増えす
ぎるとカオスになる。
逆に極端に一つに統一されてもまた大変になる。
難しいですなw
391デフォルトの名無しさん:2010/08/19(木) 14:39:05
このスレは淡々と宿題をやってればいい。議論はいらないよ
392デフォルトの名無しさん:2010/08/19(木) 15:48:41
アルゴリズムなど知らぬ凡人が作ってみたお(´・ω・`)

#include<stdio.h>

int main(void){
int i = 3, j, k;
printf("1〜100までの素数\n");
printf("%2d %2d ", i-1, i);
i += 2;
while( i < 100 ){
k = 0;
for( j=3; j<i/2; j+=2){
if( !(i % j) ){
k++;
break;
}
}
if( !k )
printf("%2d ", i);
i += 2;
}
printf("\n");
return 0;
}
393デフォルトの名無しさん:2010/08/19(木) 16:00:24
複素数は素数の一種ですか
394デフォルトの名無しさん:2010/08/19(木) 16:07:45
いや、全然意味が違うし。どちらかというと素数が複素数の一部に含まれる。
数学的な話は数学板で。まぁあの板、結構気質が悪いけどな・・・

ところで、暇な君達に有難いコードを伝授しよう。

for(;;);
395デフォルトの名無しさん:2010/08/19(木) 16:36:09
なんで complex number の日本語訳が 複素数 になったんだろう
396デフォルトの名無しさん:2010/08/19(木) 16:41:55
虚部と実部の2つ(複数)の要素(元)が存在する数だから
とか言ってみるテスト
397デフォルトの名無しさん:2010/08/19(木) 16:48:11
複虚数とか複合数とかなら分からんでもないが「素」数にしてしまったのが意味不明なんだよな
398デフォルトの名無しさん:2010/08/19(木) 16:49:18
複元数がしっくりくるな
399デフォルトの名無しさん:2010/08/19(木) 16:49:59
宿題以外で沸きすぎだろこのスレ
頭わいてんのか?
400デフォルトの名無しさん:2010/08/19(木) 16:58:14
でも複元数というとtritanion, quatanionを想像してしまう
まぁ、quatanionは複素数を拡張しただけなんだけどね
401デフォルトの名無しさん:2010/08/19(木) 17:14:20
何で宿題スレで関係ない話を延々としてるの?
402デフォルトの名無しさん:2010/08/19(木) 17:19:26
いつものことです
403デフォルトの名無しさん:2010/08/19(木) 17:53:26
そんなに暇なら宿題出そうか?
404デフォルトの名無しさん:2010/08/19(木) 18:10:15
>>385
申し訳ないが、Gaussian integer における素数というものもありますよ。
405デフォルトの名無しさん:2010/08/19(木) 18:12:49
>>385
きみは ばかだなぁ
406デフォルトの名無しさん:2010/08/19(木) 18:18:01
407デフォルトの名無しさん:2010/08/19(木) 18:22:33
>>406
複素数の世界にも素数という概念はあるのですが。
(参考文献)http://www.amazon.co.jp/dp/4000051717/
408407:2010/08/19(木) 18:24:03
409デフォルトの名無しさん:2010/08/19(木) 18:24:30
>>407
???俺は複素数の世界に素数が無いなんて一言も言ってないが???

>>404-405
410デフォルトの名無しさん:2010/08/19(木) 18:25:37
[2] 問題文
以下の関数を記述しなさい。
long Shuffles(int nCards, int iCut);
この関数は、以下の処理の解を返す。

1.n枚の全て異なるカードがAに置かれている。
2.上からi枚目までを取り、右隣Bに置く。
3.Aの山の一番下からカードを取り、Cの上に置く。
4.Bの山の一番下からカードを取り、Cの上に置く。
  以下、3と4を何れかの山が無くなるまで繰り返す。
5.残った山のカードをCの上に置く。
6.Cの山をAの位置に移動する。

カードが初期の並び順に戻るためには、この操作を何回繰り返せば良いか。

引数、nCardsはカードの枚数、iCutは2の操作時に分ける枚数を指定する。
回答は作成したソースと、
正しく動いている証として、Shuffles(1001,100)の実行結果を書きなさい。

[3] 環境
 [3.1] OS:問わない
 [3.2] コンパイラ名とバージョン: 問わない
 [3.3] 言語: C
[4] 期限: 一週間くらい?
411デフォルトの名無しさん:2010/08/19(木) 18:26:39
>>408
自分が他人に説明できる知識として知りもしないのに
ある学者がそういうことを言っている、みたいな引用で
知ったかぶるのは無知も同然ですよ?
知らない人は知らない、しかし存在しないと言っていない以上
否定はしていない。貴方は今この世に存在しているから
誰も貴方の存在は否定できませんが、貴方も私も
お互いに知らないでしょうね。知らないからといって存在しない
訳ではない、そういうことです。もう少し 柔軟な考え 頭 を持ちましょう。
で、貴方自身が何か研究なさっているんですか?学業でそういった
ことを取り扱っているんですか?
412デフォルトの名無しさん:2010/08/19(木) 18:27:55
>>404-405  (・∀・) スレタイも読めないバカは数学板に帰れ
413デフォルトの名無しさん:2010/08/19(木) 18:28:36
>>408
amazon(笑) レビュー(大爆笑)
414デフォルトの名無しさん:2010/08/19(木) 18:28:41
>>409
>>385
>素数は1より大きな自然数だと定義されています。
>>405
415デフォルトの名無しさん:2010/08/19(木) 18:29:55
>>414 >>404-405 お前らはまず日本語から勉強を始めろ
相手にまともに説明できる知識を持ち合わせてないから
416デフォルトの名無しさん:2010/08/19(木) 18:31:59
このスレで出される素数を求める問題と、素数そのものを数学的に考えるのと
一緒くたにされても・・・そういうプログラムが必要なら自分でコードを書けば?
>>404-405
417デフォルトの名無しさん:2010/08/19(木) 18:37:58
一般的には素数は自然数、正の整数の範囲で求めるものばかりだから
これ以上、大学で研究するような専門的なあまり知られていない様な
話はこれくらいにしとけ。相手に理解力がなければいくら説明しても
理解されないのは当然。自分は知っている、だから何?としか思われないよ。
そこまで言うなら、確実に証明できる形で、まずご自分の身元を明かして
どこの誰でどこで研究しているか、活動しているかを明かして数学板で議論をなさっては?
数学板は妙に気持ち悪い、数学を知った気になって初歩的なミスをしている癖に
持論を展開している奴らが多いからなw 所詮2ちゃんねる。
社会的に、世界的に認められた場所でもないから。
418デフォルトの名無しさん:2010/08/19(木) 18:42:51
>>417
いつもながらの無意味に長い長文乙
getchar() の返り値は int でとりこみましょうね?
419デフォルトの名無しさん:2010/08/19(木) 18:56:21
>410
LIAR GAMEでもやるか
数学的な考察をあたえないと僕はプログラムを書く気になれない
420デフォルトの名無しさん:2010/08/19(木) 19:26:43
>>419
わからないなら黙ってればいいおw
421デフォルトの名無しさん:2010/08/19(木) 20:14:16
>>410
330回?
422410:2010/08/19(木) 20:15:46
>>419
設問に、「効率的なロジックを組めば数秒〜1分のオーダーで結果が返る」とありました。
某社のプログラマ採用試験で使われた問題です。
簡単そうに見えますが、まともに組もうとすると、1日かかっても処理が終わりません。
423デフォルトの名無しさん:2010/08/19(木) 21:02:23
>>421
一緒の答えが出た


>>422
1000回繰り返して 1.8秒 だった
桁間違えてない?
424デフォルトの名無しさん:2010/08/19(木) 21:22:45
>>422
Pythonで問題文そのままで組んでみたけどすぐに結果でた
http://codepad.org/gg8kAyjv

>>421>>423
同じく330回
425422:2010/08/19(木) 21:27:43

済まん、問題文間違えてるかも知れない。ちょっと調べてみるね。時間もらいたい
426デフォルトの名無しさん:2010/08/19(木) 22:20:42
夏休みだから自由課題

(n>=1) n枚のカードの束がある。上から1枚目を一番下に移動、次の1枚を捨てる。
これを繰り返すと、最後に残る1枚のカードは最初、上から何枚目にあったカードか求める。
例えば5枚ある場合
1 2 3 4 5 -> 3 4 5 1 -> 5 1 3 -> 3 5 -> 3 となり上から3番目のカードが残ることになる。
また、1〜n枚目のそれぞれの結果をが、どういう法則かもまとめよ。
427デフォルトの名無しさん:2010/08/19(木) 22:29:23
>>410
同じく330

>>426
郡数列面倒だから一般項は求めてない
http://codepad.org/IfDGUk5Z
428デフォルトの名無しさん:2010/08/19(木) 22:50:20
>>426
int hoge(int n)
{
int x;

for(x=1;x*2<=n;x<<=1);

return (n-x)*2+1;
}
429デフォルトの名無しさん:2010/08/20(金) 00:00:12
430デフォルトの名無しさん:2010/08/20(金) 03:04:00
[1]ヒマ人向け
[2] 問題文
以下の関数を記述しなさい。
long Shuffles(int nCards, int iCut);
この関数は、以下の処理の解を返す。

1.n枚の全て異なるカードがAに置かれている。
2.上からi+1枚目から下を取り、右隣Bに置く。
3.Aの山の一番下からカードを取り、Cの上に置く。
4.Bの山の一番下からカードを取り、Cの上に置く。
  以下、3と4を何れかの山が無くなるまで繰り返す。
5.残った山のカードをCの上に置く。
6.Cの山をAの位置に移動する。

カードが初期の並び順に戻るためには、この操作を何回繰り返せば良いか。

引数、nCardsはカードの枚数、iCutは2の操作時に分ける枚数を指定する。
回答は作成したソースと、
正しく動いている証として、Shuffles(1001,100)の実行結果を書きなさい。

[3] 環境
 [3.1] OS:問わない
 [3.2] コンパイラ名とバージョン: 問わない
 [3.3] 言語: C
[4] 期限: 今日の朝10:00迄
431デフォルトの名無しさん:2010/08/20(金) 04:23:37
http://www.google.com/search?q=long+Shuffles(int+nCards%2C+int+iCut)
元ネタはShuffles(1002,101)らしいけどいいの?
まあ32ビットじゃおさまらないけどさ
432デフォルトの名無しさん:2010/08/20(金) 07:42:30
>>430
12025860回 で 73秒 になった
433デフォルトの名無しさん:2010/08/20(金) 07:50:28
なるべく手順どおりに実装する方法で 53秒 までは短縮したけど
根本的にアルゴリズムを考え直さないと数秒ってのは無理っぽいね
434デフォルトの名無しさん:2010/08/20(金) 07:53:13
そうですか・・・残念です。
435デフォルトの名無しさん:2010/08/20(金) 07:58:27
だから、数独の問題を作る。与えられた問題を解くコードを書いてみ。
各行、列に数字は1〜9が1つずつ、さらに対角線も1〜9が1つずつ。
436デフォルトの名無しさん:2010/08/20(金) 08:13:41
ある方法を使って 0.2 秒になった
けど、あたえられる数値によってものすごく処理時間に幅がありそう
437デフォルトの名無しさん:2010/08/20(金) 08:40:34
>>431
count=5812104600 109.109[sec]
438デフォルトの名無しさん:2010/08/20(金) 08:48:34
ハノイの塔でも解きやがれぇ〜、再帰でな
439デフォルトの名無しさん:2010/08/20(金) 09:40:11
探索系問題は(アルゴリズムが既に知られておりメモリ使用量の見積もり
が十分できるものを除いて)
Cで書くのは個人的には敬遠したいところ
出来る出来ないの問題じゃなくて
440デフォルトの名無しさん:2010/08/20(金) 10:07:00
>>439
逆にCだろ
441デフォルトの名無しさん:2010/08/20(金) 11:00:54
ハノイの塔について
最初に A B C のうちの A に N 段あったとして
それを全部 B に最短手順で移動させたい場合
最初の一手を B に置くか C に置くかを N の値によって求めなさい
442デフォルトの名無しさん:2010/08/20(金) 11:07:55
>>441
int hoge(int N)
{
return (N&1)?'B':'C';
}
443デフォルトの名無しさん:2010/08/20(金) 11:28:01
ハノイの塔はN枚を最短で移動するには 2^N - 1 回動かさないといけないんだぞー
仮に1枚を1秒で動かしたら、25枚動かすのに1年以上掛かるんだぞぉ〜
31枚で約68年。一生をハノイの塔の移動で過ごすかい?
444デフォルトの名無しさん:2010/08/20(金) 11:33:10
じゃあ一般化したハノイの塔の最小手順を
円盤枚数をd,ペグの本数をnとして求めなさい
445デフォルトの名無しさん:2010/08/20(金) 12:53:48
インドで62枚のハノイの塔をやり続けている方がいるはず。終わると世界は消滅するとか。
446デフォルトの名無しさん:2010/08/20(金) 13:11:12
62枚では1枚1秒ペースだと1462億年以上掛かりますがな
生きてねーよ、それだけ動く肉体がもたねーよw
447デフォルトの名無しさん:2010/08/20(金) 13:18:45
別に一人で作業する必要はないだろ
つかゲームについてきた「伝説」は64枚な
448デフォルトの名無しさん:2010/08/20(金) 13:35:42
A:1 4
B: 2 5
C: 3 6 9

1:
2:
3:1 2 3 4 5 6
に出来る?最小何ステップで?

一番左の数字を別の文字の先頭に移動できる。
ただし数字は常に左のほうが小さいようにならんでなければならない
449デフォルトの名無しさん:2010/08/20(金) 13:37:21
>>448
A:1 4
B:2 5
C :3 6

A:
B:
C:1 2 3 4 5 6
450デフォルトの名無しさん:2010/08/20(金) 13:43:54
>>447
動かせる範囲からして大勢でやっても効率よくならんし
確かに一人でやるとは言っていないが、1枚1秒ペースでやっても
1462億年以上ですよ?w もはや作業する人の一生がどうとかってレベルじゃねーぞw
451デフォルトの名無しさん:2010/08/20(金) 13:47:16
131215と6回動かして
A:1 2 3 4
B:
C:5 6
残りは4枚のハノイの塔だから4**2-1回動かす
6+15=21回
452デフォルトの名無しさん:2010/08/20(金) 13:48:02
っつか、はっきりとは分からないが人類誕生から約46億年だっけ?
それが終わるまでに地球ごと消滅してんじゃね?
1秒で10枚動かせたとしても、1枚1秒ペースの1/10にしかならん。
100倍のペースにしても、世代を受け継いでも、物理的に現実的に
実現するのは容易いことではないのは言うまでもない。
453デフォルトの名無しさん:2010/08/20(金) 13:50:27
しかも、1枚1秒ペースというのは全体を通しての平均だから
途中で休憩を入れるなり、常にそうでなくても、開始から終了まで
常にそのペースを保っていなければならない。1年間もそうしていられるかね?
そんなことのために?人間の寿命だって人それぞれだし。
馬鹿馬鹿しい。何の為に生まれてきたのかw
454デフォルトの名無しさん:2010/08/20(金) 13:50:49
14
25
36
4
125
36
34
125
6
34
25
16
234
5
16
1234
5
6
1234
-
56
4
123
56
-
123
456
-
-
123456
455デフォルトの名無しさん:2010/08/20(金) 13:51:24
>>450 >>452 >>453
終わると世界が消滅するだけで、終わるまで世界が消滅しないとはどこにm(ry
456デフォルトの名無しさん:2010/08/20(金) 13:55:53
人類じゃなくて地球誕生から46億年か。
人類はたかが数千万年。それも最初は猿程度の下等のものから。
人間の一生はともかく、その作業をそのペースでやった場合
それだけの時間が掛かる作業だということ。
457デフォルトの名無しさん:2010/08/20(金) 13:57:26
よくできました
じゃ調子にのって次いこう
A: 1 5 9 13 17
B: 2 4 6 8 10 12 14 16 18
C: 3 7 11 15
=>
A :
B :
C: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
458デフォルトの名無しさん:2010/08/20(金) 14:08:34
1462億回以上、円盤を動かす訳だろ?その労力だけでも相当なもんだよ。
作業全体を通してどれだけの負担か、それをどれだけの人数で分散するかで
一人当たりの負担は変わるけど、少なくともそんなことに時間を費やせる人が
どれだけいるか?現実的ではないな。もっと他に楽しめる人生があるだろ。
459デフォルトの名無しさん:2010/08/20(金) 14:20:37
>>458
宗教なんてそんなもんだよ
つか「伝説」だって
460デフォルトの名無しさん:2010/08/20(金) 15:19:36
それより数独の問題を作る、与えられた問題を解答するコードを頼むよ
461デフォルトの名無しさん:2010/08/20(金) 15:24:53
462デフォルトの名無しさん:2010/08/20(金) 15:37:05
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10916.txt[3] 環境
上記の誤ったプログラムをデバッグしてください。 
[3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年08月23日 18:00まで
[5] その他の制限:特に無いです。
よろしくお願いします。
463デフォルトの名無しさん:2010/08/20(金) 15:49:40
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):

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

[3] 環境
上記の誤ったプログラムをデバッグしてください。 
[3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年08月23日 18:00まで
[5] その他の制限:特に無いです。
リンクミスりました・・よろしくお願いします。
464デフォルトの名無しさん:2010/08/20(金) 18:55:57
>>463
どこが誤ってるの?
デバックってなにすりゃいいの?
宿題の問題見せてよ
465463:2010/08/20(金) 20:06:29
このプログラムは、プログラム中で指定された年・月の授業予定表を出力するものである。以下の仕様を参考にしてデバッグを行うこと

•年・月の指定は冒頭のマクロで行い、2010年6月を指定している (他の年月でも正しく動作するか確認したい場合は、これらの値を変更すればよい)。
•以下のユーザ定義型を使用している。 構造体のメンバの意味はソース中のコメントを参照。
◦wday_t: 曜日を表す列挙体型
◦period_t: 時限の期間(第何時限〜第何時限まで)を表す構造体型
◦course_t: 授業の情報を表す構造体型
•各授業の情報は course_t 型の配列 course に格納され、それぞれの授業の開講曜日および開講時限を含んでいる。
•予定表は、指定月の1日〜月末最終日までの各日について、 その曜日の開講科目を調べ、該当する時限の位置に出力する。 実験などのように3時限以上にまたがる科目は、 「---->」のように矢印で範囲を示す。
•関数 get_last_day() は、指定年の指定月が何日まであるかを求める。 具体的には、大の月・小の月による判定(4,6,9,11は30日)に加え、 閏年の判定により2月の日数(28日または29日)を求めている。
•関数 get_wday は、指定した年月日が何曜日であるかを求める。 この計算には、以下のツェラーの公式を用いている。
◦Y 年 M 月 D 日の曜日は、以下の式で表される(各除算の結果は小数部切り捨て)。
W = Y + Y /4- Y /100+ Y /400+(13* M +8)/5+ D
◦W を7で割った余りが0, 1, 2, ..., 6のとき、 それぞれ日、月、…、土。
◦ただし、1, 2月については、 それぞれ前年の13, 14月として計算する (例: 2010年2月は2009年14月とする)。


正しく直すとこう出力されます。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10917.txt
466デフォルトの名無しさん:2010/08/20(金) 20:10:18
これはエロい
467デフォルトの名無しさん:2010/08/20(金) 20:10:37
ttp://homes-cp.jp/nanmon/index.html
これを解くコードを書いてくれw
468デフォルトの名無しさん:2010/08/20(金) 20:17:22
>>463
カッコが閉じられてなかったり、
構造体じゃないもののメンバを参照してたり、
インクリメントが++じゃなくて+だけになってたり、こりゃ大変だな。
469デフォルトの名無しさん:2010/08/20(金) 21:20:01
470デフォルトの名無しさん:2010/08/20(金) 23:35:37
471デフォルトの名無しさん:2010/08/21(土) 07:55:38
【質問テンプレ】
[1] 授業単元: プログラム入門
[2] 問題文(含コード&リンク):
リアルタイムで更新する3軸グラフを描画せよ。
X軸Y軸の範囲は100で固定し、
Z軸の値は-100から100までの範囲を取る乱数とする。
乱数の更新間隔は100ms毎とする。
[3] 環境
 [3.1] OS: Windows
 [3.2] VisualStadio2008 Starndard
 [3.3] C++ (MFC)
[4] 期限: 2010年8月23日18時に提出(15時)
[5] その他の制限: MFC or SDK限定(C++/CLI禁止)
VS2008Stanndard以外の有料の物は使用禁止


100ms毎に乱数をZ[X][Y]のような形で100*100の配列に
格納するところは簡単にできたのですが、
TIMERは作ったことがあるので、100msで更新はなんとかなりそうです。

その先の3軸グラフを描画するところが全くわかりません。
MSDN、汎用LIB、フリーのLIBから引っ張るのかな〜と思っているのですが、
どれを使うのか、そして使い方もわかっていません。
472デフォルトの名無しさん:2010/08/21(土) 09:25:48
だから誰か、数独の問題を作るコードと
与えられたパターンから解くコードを!
473デフォルトの名無しさん:2010/08/21(土) 09:38:56
>>472
google使えないお子様はクソしてネロ
ttp://www5.airnet.ne.jp/tomy/cpro/etc17.htm
474デフォルトの名無しさん:2010/08/21(土) 09:44:12
>>430
自信作だよ 早いよ
long long Shuffles(int nCards, int iCut){
int *A, *B, *C, A_idx, B_idx, C_idx, i, match_count=0;
long long ret, x=1;
A=malloc(sizeof(int)*nCards);B=malloc(sizeof(int)*nCards);C=malloc(sizeof(int)*nCards);
for(i=0;i<nCards;i++) A[i]=i;
for(i=0;i<nCards-iCut;i++) B[i]=A[i+iCut];
A_idx=iCut-1;
B_idx=nCards-iCut-1;
C_idx=nCards-1;
while(A_idx>=0 && B_idx>=0){
C[C_idx--]=A[A_idx--];
C[C_idx--]=B[B_idx--];
}
while(A_idx>=0) C[C_idx--]=A[A_idx--];
while(B_idx>=0) C[C_idx--]=B[B_idx--];
memcpy(A, C, sizeof(int)*nCards);
for(ret=x;;ret+=x){
for(i=0;i<nCards;i++) if(A[nCards-1-i]!=nCards-1-i) break;
if(i>=nCards) break;
if(match_count<i){
x=ret;
match_count=i;
memcpy(C, A, sizeof(int)*nCards);
}
for(i=0;i<nCards;i++) B[i]=A[C[i]];
memcpy(A, B, sizeof(int)*nCards);
}
free(A);free(B);free(C);
return ret;
}
475デフォルトの名無しさん:2010/08/21(土) 09:46:13
>>473
googleは使えるがおまえ自身がコードを書けない癖に
他人のを見て知ったかぶっているお前こそ糞だろw
476デフォルトの名無しさん:2010/08/21(土) 09:47:55
>>473
なげーよw
477デフォルトの名無しさん:2010/08/21(土) 09:57:24
ユーザID不正送信騒ぎの『JaneStyle』がバージョンアップ!2ちゃんねるサイドは冷静
http://www.yukawanet.com/archives/2832559.html
478デフォルトの名無しさん:2010/08/21(土) 10:03:16
>>475
数独関係なんてほとんどネットにあるじゃん
それを知らないなんて知能が低いのか?
わざわざこう言うスレで聞くまでもない位の質問だぞ 数独
まずは上のURLのコードみてそれの理解から始めましょうね
夏休みは残ってるからきちんと勉強するんですよ アフォの子ちゃん
479デフォルトの名無しさん:2010/08/21(土) 11:19:38
>>430
例えば n=5, i=2 のとき、この操作は対象群 S_5 の元ひとつ
( 1 2 3 4 5 )
( 3 4 1 5 2 )
になる。
あとはこの元の位数を求めればいいだけじゃない?
GAPつかってみるのも面白いかもな
480デフォルトの名無しさん:2010/08/21(土) 12:52:32
[1]夏休み自由研究
[2]ルービックキューブを解く(6面をあわせる)プログラムを書いてください
[3]
[3.1]出来る限りOS非依存で
[3.2]出来る限りコンパイラ・バージョン非依存で(C99くらいから)
[3.3]出来る限りCで(C++で作る場合は必ずクラスを使ってください)
[4]8/27
[5]
Cで作る場合は
各面の色の状態を 3x3 の配列で表し
全体を 6x3x3 で表してください
C++で作る場合は
面の状態ではなくキューブの物理的構造をクラス化してシミュレーションしてください
481デフォルトの名無しさん:2010/08/21(土) 12:55:55
>出来る限りCで(C++で作る場合は必ずクラスを使ってください)

矛盾に気が付いているのだろうか。
482デフォルトの名無しさん:2010/08/21(土) 13:16:24
【行政】 コンピューターウイルスを作成した段階で処罰できる「作成罪」などを新設 法務省、刑法改正案再
http://kamome.2ch.net/test/read.cgi/newsplus/1281937853/

下手なプログラムを作れば、ウィルス認定されて処罰されるよw
483デフォルトの名無しさん:2010/08/21(土) 17:15:23
>>481
矛盾はしてないと思う
484デフォルトの名無しさん:2010/08/21(土) 17:16:55
>>482
下手じゃないプログラムでも逮捕される世の中だしな

【速報】岡崎市立図書館へのサイバー攻撃、図書館のソフト不具合だった【絶対に許さない】
http://kamome.2ch.net/test/read.cgi/news/1282338089/
485デフォルトの名無しさん:2010/08/21(土) 17:19:41
>>484
そもそも何を根拠に「ウィルス」認定するかが問題になるしね。
本来、ユーザにとって有害でもないプログラムも、類似するものによって
ウィルス認定されかねない。
486デフォルトの名無しさん:2010/08/21(土) 18:17:24
>>467
数独のヒントは7桁の郵便番号かね
487486:2010/08/21(土) 19:33:36
白抜きのとこ2277778になったわ
郵便番号じゃなさそうだね
488デフォルトの名無しさん:2010/08/21(土) 20:43:08
C/C++言語内に、実行ファイルを組み込むことが出来るんでしょうか?
たとえば、
henkan input.bmp output.bmp
でinput.bmpを二値画像に変換するような実行ファイルがあったとき、
これを他のプログラムの内部に組み込みたいと考えているのですが…
henkanという実行ファイルのソースが分からないので…
489デフォルトの名無しさん:2010/08/21(土) 20:52:57
system
490デフォルトの名無しさん:2010/08/21(土) 20:53:13
変わった宿題だね
491デフォルトの名無しさん:2010/08/21(土) 21:12:05
>>489
これで出来るみたいですね、ありがとうございました。
492デフォルトの名無しさん:2010/08/22(日) 09:08:58
スレチマルチ
493デフォルトの名無しさん:2010/08/22(日) 10:30:54
だから何度も何度も言わせんなよ、数独の問題を作るコード、
与えた問題(パターン)から答えを求めるコードを分かり易く頼む
494デフォルトの名無しさん:2010/08/22(日) 10:48:57
まず数独を説明しろカス
495デフォルトの名無しさん:2010/08/22(日) 11:06:32
数独も知らない情報弱者って生きている価値ねーよなw
ググレカス
496デフォルトの名無しさん:2010/08/22(日) 11:34:58
 1 2 3 4 5 6 7 8 9
 4 5 6 7 8 9 1 2 3
 7 8 9 1 2 3 4 5 6
 2 3 4 5 6 7 8 9 1
 5 6 7 8 9 1 2 3 4
 8 9 1 2 3 4 5 6 7
 3 4 5 6 7 8 9 1 2
 6 7 8 9 1 2 3 4 5
 9 1 2 3 4 5 6 7 8
497デフォルトの名無しさん:2010/08/22(日) 14:00:04
498デフォルトの名無しさん:2010/08/22(日) 15:24:37
ttp://www.toto-dream.com/toto/schedule/index.html
totoで見事1等を当てるプログラムを製作せよ!
499デフォルトの名無しさん:2010/08/22(日) 15:47:35
全番号買え
500デフォルトの名無しさん:2010/08/22(日) 15:57:54
残念だが最大 5T 1W または 8W まで。
501デフォルトの名無しさん:2010/08/22(日) 19:13:32
502デフォルトの名無しさん:2010/08/22(日) 20:08:11
>>497
めちゃくちゃ早いなw
503デフォルトの名無しさん:2010/08/22(日) 21:39:03
[1]プログラミング言語 [2]問題文
// 情報欠落の回避
// ◎ソースコード
#define ID
#define NAME

#include <stdio.h>
void main() {
float a, b, c, d, s;
a = 123456.0;
b = 0.654322;
c = -0.000001;
d = -123449.0;
s = 0.0;
/* 以下の4つの文の順番を変更する.*/
s += a;
s += b;
s += c;
s += d;
printf("%s %s\n\n", ID, NAME);
printf("%f\n", s);
}

◎実行結果
◎考察(100字〜200字程度)
(今回行った修正により情報欠落が回避できた理由を考察せよ.)
[期限]2010年8月26日午後
/*?の間に書いてある通りに変更する。
どなたかやってくれる方いませんでしょうか。
考察もそれとなく教えてもらえると助かります。
504デフォルトの名無しさん:2010/08/22(日) 21:41:33
あーもうこれ覚えてねえや。
積み残しつったっけコレ?
505デフォルトの名無しさん:2010/08/22(日) 21:50:40
506デフォルトの名無しさん:2010/08/22(日) 21:53:24
s += a; s += d; s += b; s += c;
7.654321
507デフォルトの名無しさん:2010/08/22(日) 22:00:37
こういうのって初見なんだけど、桁の小さい奴から順に足さないと丸め誤差が出るんじゃないの?
508デフォルトの名無しさん:2010/08/22(日) 22:05:15
>>503
ものすごい大雑把な説明でいくと
floatには正しく表示できる桁数に限界があり、それより大きい桁を扱おうとすると精度が落ちるという性質があるので
最初にaとbを足すことで、桁が増えないようにする

ってとこだろうか、結構語弊があるが
floatの内部仕様に触れないでいくとこんなもんだろうか
指数表記とか講義でやったならこの説明じゃ不味いかも

>>507
なんか勘違いしてないか?
509デフォルトの名無しさん:2010/08/22(日) 22:06:20
最初にaとdでしたごめんなさい
510507:2010/08/22(日) 22:15:51
>>508
例えばa,b,dは変えずにcだけ1000000回足した場合でも同じ結果になる?
511デフォルトの名無しさん:2010/08/22(日) 22:18:49
float=浮動・浮遊 ってな話
byteの中でさまよう小数点
512デフォルトの名無しさん:2010/08/22(日) 22:21:16
浮動小数点数の実装では小数点の位置は固定
513デフォルトの名無しさん:2010/08/22(日) 22:22:44
>>510
やっぱり勘違いしてるな
本質的には同じこと(浮動小数点の仕様)だけど
0.00001とかが2進数じゃ表現できない件はこの問題とはとりあえず関係ないよ

514デフォルトの名無しさん:2010/08/22(日) 22:27:35
丸め誤差じゃなくて桁落ち
515507:2010/08/22(日) 23:09:34
>>513
俺が言ったのは>>514の言うように桁落ちの問題で丸め誤差じゃない。
自分で考えた限りでは桁落ちを少なくするには絶対値の小さい順に足すのが良いと思う。
でもこの問題ではさらにそこから順序を変更すると全く桁落ちしないパスがあるということか。
解答は>>505でいいと思います。
516デフォルトの名無しさん:2010/08/22(日) 23:21:42
丸め誤差でも桁落ちでもなくて情報落ち(情報欠落)だろ?
問題文に書いてあるじゃないか
517507:2010/08/22(日) 23:32:22
>>516
申し訳ない。問題文にもあるしwikipedia見たら確かにそういう分類だった。
桁落ちはかなりマニアックな誤差だし、正しい用語を知らないとダメだね。
というわけで、>>515の「桁落ち」は全て「情報落ち」に訂正します。
518デフォルトの名無しさん:2010/08/22(日) 23:43:23
http://codepad.org/wjVVzBZr
普通は小さいほうから足すよな
519デフォルトの名無しさん:2010/08/23(月) 01:11:04
すばやい解答ありがとうございます!
この丸めだとか情報欠落ってのがいまいちわからなくて困ってたんで助かりました
520デフォルトの名無しさん:2010/08/23(月) 04:53:06
マンドクセッからfloatをdoubleにしちゃいなYO!
521デフォルトの名無しさん:2010/08/23(月) 09:43:16
丸めと情報欠落は別ものだが
桁落ちと情報欠落は本質的には同じものだろ
522デフォルトの名無しさん:2010/08/23(月) 10:08:01
だ・か・らっ、は・や・くっ、数独のコードを書いてちょっ♥
523デフォルトの名無しさん:2010/08/23(月) 10:19:58
>>497
なんでこれでうまくいくかが全然わかんない。
どうしてだ?
524 ◆6HpwTeryPw :2010/08/23(月) 10:25:56
[1] 授業単元: 誤差の数学
[2] 問題文(含コード&リンク): 教科書にあるガウス・ザイデル法のプログラムをSOR法に変換せよ。
               http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10919.txt ←作成したガウス・ザイデル法のプログラムです
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン: gcc 4.3.4
 [3.3] 言語: C言語
[4] 期限: 2010年8月25日 午後2時
[5] その他の制限:(ヒント)SOR法について、w(緩和係数)とx3を宣言し設定(適宜x2をx3に書き換え)よ。
              L2n += pow … を L2n = L2n + pow … に書き換えて…           とのことです。


ガウス・ザイデル法のプログラムを作成したのですが、以下のようなエラーが出てしまいます。
エラーが発生しないように修正していただけませんか?(+よければ問題文の変換についてもお願いします)

gs.c:17: error: expected identifier or ‘(’ before ‘double’
gs.c:26: error: ‘a’ undeclared (first use in this function)
gs.c:26: error: (Each undeclared identifier is reported only once
gs.c:26: error: for each function it appears in.)
525デフォルトの名無しさん:2010/08/23(月) 10:30:52
>>523
一枚だけに注目したときカードは決まった周期で必ず元の場所に帰ってくる
すべてのカードの周期の最小公倍数が答えになる

一枚のカードがどう動くか調べたらその経路上にあるカードは
すべて同じ周期になるから一度調べた経路はスキップする
526デフォルトの名無しさん:2010/08/23(月) 10:52:26
>>525
さんくす
頭のいいやり方は違うなぁ……
527525:2010/08/23(月) 11:10:05
俺は >>497 ではなくて
ソース読んでなるほどと思っただけの人
528デフォルトの名無しさん:2010/08/23(月) 11:14:31
ナルホドウ
529 ◆QZaw55cn4c :2010/08/23(月) 11:42:46
>>524
http://codepad.org/VLzU2CV4
参考にした書籍が違うと思いますので、特に収束判定の部分は変わっています。
あと SOR 法ってうまく係数をとらないと収束が遅い場合があるようですね。
参考文献 http://www.amazon.co.jp/dp/4874084141/
530デフォルトの名無しさん:2010/08/23(月) 12:42:47
C言語なら俺に聞け(入門編)Part 67
http://hibari.2ch.net/test/read.cgi/tech/1278759538/
531air:2010/08/23(月) 14:33:50
CSVファイルを出力するという課題が出ました。
そこで疑問が出たのですが解決していただきたいです。
・出力先はどこになるのか?
・今回用いるCSVファイルは容量が大きく開くことができません。
 出力することにより開けるようになるのでしょうか?
532デフォルトの名無しさん:2010/08/23(月) 14:41:43
出力先はって、テキストファイル?
533デフォルトの名無しさん:2010/08/23(月) 14:49:55
>>531
課題をそのまま貼ったほうがいいよ。
その要約じゃよくわからない。
534air:2010/08/23(月) 14:50:59
まだこの後の課題の説明ははないのですが、おそらく、次はこのCSVのデータに他のデータを組み合わせて
出力するらしいです。

そのための出力する準備なんで、とりあえずは何の操作をするわけではなく再びテキストファイルに出力するだけで
良いんですかね?
535デフォルトの名無しさん:2010/08/23(月) 14:53:42
出力って画面へ標準出力?
536デフォルトの名無しさん:2010/08/23(月) 14:57:31
マルチ消えろよ
537デフォルトの名無しさん:2010/08/23(月) 14:59:10
538デフォルトの名無しさん:2010/08/23(月) 15:40:55
>>469
ネット環境途絶えて超絶亀になりますがありがとうございました!
539デフォルトの名無しさん:2010/08/23(月) 17:23:30
CSVファイルには1つの行に対していくつかの列があります。
その中の要素(行と列を指定)を処理したいのですがどうすればよいでしょうか?
540デフォルトの名無しさん:2010/08/23(月) 17:24:42
, (マンコ)の数を調べれば良いがな
541デフォルトの名無しさん:2010/08/23(月) 17:24:58
>>539
具体的に。
542デフォルトの名無しさん:2010/08/23(月) 17:37:32
CSVファイル(例)
  t y u i o p(列)
a 2 5 6 8 3 1
b 3 5 3 6 8 0
c 2 1 5 7 4 6
d 6 8 4 2 5 8
(行)
というのがあり、ある列に注目し、その要素には2をかけ、
また、別の列に注目するとそこには5をかけるという風に、列ごとに
与えるデータを変えるというものです。
543デフォルトの名無しさん:2010/08/23(月) 17:39:03
CSVファイル(例)
    t y u i o p(列)
 a   2 5 6 8 3 1
 b   3 5 3 6 8 0
 c   2 1 5 7 4 6
 d   6 8 4 2 5 8
(行)
というのがあり、ある列に注目し、その要素には2をかけ、
また、別の列に注目するとそこには5をかけるという風に、列ごとに
与えるデータを変えるというものです。
544デフォルトの名無しさん:2010/08/23(月) 17:43:56
>>543
カンマ区切りじゃないのですか?
CSV = Comma-Separated Values
545デフォルトの名無しさん:2010/08/23(月) 17:49:04
テキストでは重くて開けないのですが、
CSVファイルをそのままひらくとカンマは表示されてないです。
ただ単に数字がたくさん並んでます。
546デフォルトの名無しさん:2010/08/23(月) 17:58:51
>>545
excelで開いてるんじゃないの?
547デフォルトの名無しさん:2010/08/23(月) 18:02:48
>>545
それは excel とか他のアプリケーションが起動しているからではないですか?
c をコンパイルできる環境なら、
http://codepad.org/XtvsU5xW
をコンパイルして、できた実行ファイル(たとえば a.out)をつかって、
./a.out < 対象のCVSファイル名 > output.txt
として、その output.txt を >>1 のアップローダに貼り付けて我々に見せてください。
548デフォルトの名無しさん:2010/08/23(月) 18:04:57
そうでした。それなら当たり前ですね。すみません。
カンマ区切りだと思います。

543で書いたのはエクセルで開いたときです。ただ、メモ帳では
容量が重く開けません。どうやって各要素にデータを与えればよいでしょうか?
549デフォルトの名無しさん:2010/08/23(月) 18:16:52
>>548
>>547 のとおりにしてみてください。これが難しいのであれば(それもしかたがありません)、>>1 のテンプレートにそって環境・処理系等の情報をください。
Windows ならば、私のほうで、適当な実行ファイルをつくって、あなたの CSV ファイルがいったいどういうものか、それを解明するところからはじめましょうか。
550デフォルトの名無しさん:2010/08/23(月) 18:42:43
ワードパッドでなら開くことができました。
00200533,1001090005,2001,J,0000000004,0000000001, 2, ,0,02,02,05,02,07, , , , ,5, ,02,02,04,02,02,03, , , ,4,02,04,01,03,01,1, , , , ,1, , , , ,01,7,06,01,2,07, , , , , , , , , , , , ,02, 2, 2,17,02,3,0,
00200533,1001090005,2001,J,0000000009,0000000003, 1, ,0,01,01,12,02,06, , , , ,5,05,02,03,02,01,01,05, , , ,4,01,05,01,03,01,1, , , , ,1, , , , , , , , , , , , , , , , , , , , , , ,00, 2, 0,17,12,5, ,
これはある二つの行をのせただけです。横にはもっとたくさんあるので1部分を抜粋しました。しかし残りも似たような感じです。
行に関しては10万近くのデータがあります。
551デフォルトの名無しさん:2010/08/23(月) 18:55:09
>>550
次にあなたの環境を教えてください。
>>1 のテンプレートにしたがって、分かるところだけでいいから書いてください。
特に、C のプログラムをコンパイルできるかどうか、それを教えてください。
こちらから提示した C のプログラムをコンパイルできなければ、残念ながら、お役に立つことはできません。

最後に、処理の内容を正確に書いてください。
「○列目の値を数値のみなして、5倍する。全部の行について行う」
「○列目の値と△列目の値をたして、□列目に数値としてセットする。」
など。
処理の量がいくらあっても大丈夫ですが、処理内容が微塵でも不正確だとプログラムをつくることはできません。
552デフォルトの名無しさん:2010/08/23(月) 19:09:24
[1] 授業単元: 研究
[2] 問題文(含コード&リンク):口頭の支持のみ
[3] 環境
 [3.1] OS: Windows XP
 [3.2] わかりませんが、microsoft visual studio2005を使用しています。
 [3.3] 言語: C++
[4] 期限:おそらく数週間
[5] その他の制限: ifstreamやofstreamを使いなさいとの事でした。

処理の内容ですが、CSVファイルの容量が多いため処理量を把握できていません。
そのためサンプルのような形でお願いします。
処理としては、
CSVファイルの列ごとに、ある固定値をかけるというものです。(よって列によってでかけるものが変わる)
また、何も行わない列もあります。(1部分の列のみに数値をかける)そしてその結果を出力するというものです。

もし、この説明で漠然としているようでしたらご指摘お願い致します。

553デフォルトの名無しさん:2010/08/23(月) 19:10:05
日本語不自由な人に皆やさしいなぁ
554デフォルトの名無しさん:2010/08/23(月) 19:12:47
結局なにすればいいのかさっぱりわからん
555デフォルトの名無しさん:2010/08/23(月) 19:13:11
a.out って、そう環境じゃないって普通にわかるけどな。質問者イジメとしか思えん。
この人実社会でまともにコミニュケーションとれてるんだろうか。。。
556デフォルトの名無しさん:2010/08/23(月) 19:14:58
ここは質問者を叩いて楽しむところだからw
557デフォルトの名無しさん:2010/08/23(月) 19:16:36
>>552
実生活でこういう人と絡むと、ごっつストレスかかる。
558デフォルトの名無しさん:2010/08/23(月) 19:17:56
>>552
もっと真面目に書けませんか?
559デフォルトの名無しさん:2010/08/23(月) 20:35:08
>>552
"ある固定値"はファイルからの入力?
10万もデータがあるのに手入力とは思えんのだが
560デフォルトの名無しさん:2010/08/23(月) 21:08:34
>処理の内容ですが、CSVファイルの容量が多いため処理量を把握できていません。
>そのためサンプルのような形でお願いします。
>処理としては、

上の文章いらね。

>CSVファイルの列ごとに、ある固定値をかけるというものです。(よって列によってでかけるものが変わる)

列数はいくつなんだ。CSV開けないってExcelは65,535行より大きいファイルは開けん。テキストエディタで確認しろ。
CSVの最初の10行くらいサンプルとして載せろ。

>また、何も行わない列もあります。(1部分の列のみに数値をかける)そしてその結果を出力するというものです。

「ある固定値」はプログラム上に決め打ちでいいのか。
何も行わない列の判断はどうする、これはコマンドライン引数で指定するのか。
結果は標準出力でいいのか。

これほど意図が伝わらないのも珍しい、ネタで書いてるとしか思えない。
561デフォルトの名無しさん:2010/08/23(月) 21:25:54
csv はダブルクォートを考えなければ楽
562デフォルトの名無しさん:2010/08/23(月) 21:29:11
>>560
>列数はいくつなんだ。CSV開けないってExcelは65,535行より大きいファイルは開けん。テキストエディタで確認しろ。
>CSVの最初の10行くらいサンプルとして載せろ。
>>550
563デフォルトの名無しさん:2010/08/23(月) 21:43:53
だからマンコごとにアタイを入れれば良いのさ
564デフォルトの名無しさん:2010/08/23(月) 21:48:40
エラーチェックはご自分でどうぞ
#include <stdio.h>
#include <stdlib.h>
int main(void){
char buf_value[1000+1], buf_conna[1+1], buf_lf[1+1];
FILE *fp_in, *fp_out;
int row, column;

fp_in=fopen("foo.csv", "r");
fp_out=fopen("bar.csv", "w");
if(fp_in==NULL || fp_out==NULL) exit(1);

for(column=1;;column++){
for(row=1;;row++){
if(row!=1 && fscanf(fp_in, "%1[,]", buf_conna)!=1) break;
buf_value[0]='\0';
fscanf(fp_in, "%1000[^,\n]", buf_value);

if(row==3){ // C 列の数値を三倍する
double value=atof(buf_value)*3;
sprintf(buf_value, "%f", value);
}

fprintf(fp_out, "%s%s", (row==1)?"":",", buf_value);
}
fprintf(fp_out, "\n");
if(fscanf(fp_in, "%1[\n]", buf_lf)!=1) break;
}
fclose(fp_in);
fclose(fp_out);
return 0;
}
565デフォルトの名無しさん:2010/08/23(月) 21:58:30
>>564
STL使えってお題なんじゃ・・・。
566デフォルトの名無しさん:2010/08/24(火) 01:33:30
[1] 授業単元:応用C言語
[2] 問題文(含コード&リンク):
テキストファイルを読み込み、指定された文字列を検索し、指定文字列が含まれている行を抽出して出力するプログラムを作成せよ。
プログラムの実行および引数は以下の通りである。
実行ファイル名 入力ファイル名 検索文字列 出力ファイル名

*1行50文字×1000行以上扱えること
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン: BCC5.5
 [3.3] 言語: C言語
[4] 期限:8月31日 正午
[5] その他の制限: 特になし
567デフォルトの名無しさん:2010/08/24(火) 01:42:00
>>560
そのエクセルふるいよ
568デフォルトの名無しさん:2010/08/24(火) 02:05:58
569 ◆QZaw55cn4c :2010/08/24(火) 02:06:30
570デフォルトの名無しさん:2010/08/24(火) 02:19:33
[1] 授業単元:応用C言語
[2] 問題文(含コード&リンク):
標準入力を読み込み、指定された文字列(mainの引数に2個以上与えられる)を検索し、それらの指定文字列が現れた、直後に与えられた引数に置換
して標準出力するプログラムを作成せよ。
ただし最後の引数の文字列が現れた場合は最初に指定された文字列に
置換するものとする。
また複数の指定文字列に一致する箇所の場合、もっとも長い文字列が
現れたものと解釈する。

*入力文字に非ASCII文字が含まれないとして良い
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン: BCC5.5
 [3.3] 言語: C言語
[4] 期限:8月31日 正午
[5] その他の制限: 特になし
571570:2010/08/24(火) 02:22:48
訂正させてください
×
標準入力を読み込み、指定された文字列(mainの引数に2個以上与えられる)を検索し、それらの指定文字列が現れた、直後に与えられた引数に置換
して標準出力するプログラムを作成せよ。


標準入力を読み込み、指定された文字列(mainの引数に2個以上与えられる)を検索し、それらの指定文字列が現れたら、その文字列を直後に与えられた
引数文字列に置換して(それ以外は特に変更せず)標準出力するプログラム
を作成せよ。
572デフォルトの名無しさん:2010/08/24(火) 02:52:24
なんか地味に難しいって感じ
573デフォルトの名無しさん:2010/08/24(火) 03:23:25
>>572
そうでもなかった

>>570
http://codepad.org/ji66oOXQ
574デフォルトの名無しさん:2010/08/24(火) 03:27:02
>>570
マッチ位置が前方にあるということと、複数一致する場合最長の文字列に置換するということは
マッチ位置が前方にあるということを優先していいの?(そうでない場合同じ長さのマッチはどうするの?)

例:
置換文字列:[ABC, ABCD, XYZZY]
対象の文字列:ABCXYZZY
置換後文字列:ABCDABC
XYZZYより前方にあるABCが優先される

置換文字列:[ABC, ABCD, XYZZY]
対象の文字列:ABCDXYZZY
置換後文字列:XYZZYABC
ABCより長いABCDが優先される
575573:2010/08/24(火) 03:28:42
> ただし最後の引数の文字列が現れた場合は最初に指定された文字列に
> 置換するものとする。
> また複数の指定文字列に一致する箇所の場合、もっとも長い文字列が
> 現れたものと解釈する。

ごめん、これ実装してなかった
576574:2010/08/24(火) 03:43:05
置換が複数回起こるのかも分からんな
置換は1回なのか複数回なのかどっち?
577デフォルトの名無しさん:2010/08/24(火) 03:47:23
>>576
問題文を理解出来ないような低能は参加すんなよ
578573:2010/08/24(火) 03:55:42
>>570
http://codepad.org/MhbWwa7t

引数 123 xxx 2345 yyy が与えられた時、
文字列 12345 があるとしたら、
xxx45 に変換すべきなのか、
1yyy に変換すべきなのか、
分からなかったので、前者にしておいた。
579デフォルトの名無しさん:2010/08/24(火) 04:06:15
>>577
煽るしか出来ないような低能はどっか行けよ
580デフォルトの名無しさん:2010/08/24(火) 09:35:50
552の書き込みのものです。列数はたくさんあるのですが実際に操作に使うのは約80列くらいです。
また、それぞれの列にたいして掛け算を行うため、掛け算に使う固有値は約80個くらいです。
3*3   6*9  4*7
2*3   5*9  2*7
8*3   3*9  5*7
2*3   1*9  8*7
という具合です。これは3列ですが、実際には80列くらいあります。
そして、行に関してこれは4行ですが実際には10万行くらいあります。
よろしくお願い致します。解答をみると操作する列の数ではなく、何列目を操作するかがプログラムを行う上で大事ということでしょうか?
先ほども書きましたが、ifstreamやofstreamは使うよう指示があります。
581デフォルトの名無しさん:2010/08/24(火) 09:53:44
一行の文字数に制限を入れないと地味に難しかった
582デフォルトの名無しさん:2010/08/24(火) 10:49:06
>>580
>3*3   6*9  4*7
>2*3   5*9  2*7
>8*3   3*9  5*7
>2*3   1*9  8*7
これの意味を教えてください。
あと、最終的には行列計算を行うのですか?
583デフォルトの名無しさん:2010/08/24(火) 10:53:30
>>570
すみません。引数の与え方を教えてください。
いまいちよくわかりませんが、
xxx.exe ABC abc VIM xyzzy
と指定したら、
ABC を abc に
VIM を xyzzy に
変更置き換えすればいいのでしょうか?
584デフォルトの名無しさん:2010/08/24(火) 11:20:12
3*3   6*9  4*7
2*3   5*9  2*7
8*3   3*9  5*7
2*3   1*9  8*7

実際には列と行はたくさんあります。上にのせている数字の意味ですが、
このCSVファイルを開くと(列と行が多いため簡単に示します)
1,3,5,7,3345,2222,7,4,,,,,,,7,8,3,444,3,,2,,6,,8,,999,
5,7,3,0,2265,8575,9,3,,,,,,,3,6,2,086,4,,4,,6,,1,,363,

このようなものがたくさんあります。この1部分の列だけにそれぞれ固有の数値をかけたいんです。
例えば上の数値を使うと、
6個目のコンマの次の列だけに2をかけ、
16個目のコンマの次の列だけに3をかけるような感じです。(よって何も行わない列と数値をかける列があります。
また、同じ列には同じ数値をかけるといった具合です。)

実際にはこの作業を行う列が80くらいあります。
結果を出力したいです。宜しくお願い致します。
585デフォルトの名無しさん:2010/08/24(火) 11:50:04
てst’
586デフォルトの名無しさん:2010/08/24(火) 14:29:08
>>584
この質問に答えて
1. 処理する列と処理しない列はどのように与えられるのか。ファイル入力か手入力か。書式は?
2. 固有の数値はどのように与えられるのか。ファイル入力か手入力か。書式は?
3. 掛けられる数は整数なのか。0で始まる行は処理対象から外れているのか、0を無視するのか。
4. 空行は処理対象から外れているのか、0として扱うのか。
587デフォルトの名無しさん:2010/08/24(火) 15:08:00
業務に関するものだろ。いい加減スルーしろ。
588デフォルトの名無しさん:2010/08/24(火) 15:25:31
>>584
C++詳しい人、書き換え頼む。
cnv = [3, 4,
       5, 6,
      ]
a = []
while(cnv != [])
  a[cnv.shift - 1] = cnv.shift
end

while w = gets
  printf("%s\n", w
           .chomp
           .split(',')
           .zip(a)
           .map{|x|x[1] ? x[0].to_i * x[1] : x[0]}
           .join(',')
         )
end
589デフォルトの名無しさん:2010/08/24(火) 15:39:21
1. 処理する列と処理しない列はどのように与えられるのか。ファイル入力か手入力か。書式は?
与えられているというよりかは、どこの列を処理するかは把握できています。よって、手入力になるかもしれません。書式とはどういう事でしょうか?すみません。

2. 固有の数値はどのように与えられるのか。ファイル入力か手入力か。書式は?
  80程度ですので手入力でもよろしいかと思います
3. 掛けられる数は整数なのか。0で始まる行は処理対象から外れているのか、0を無視するのか。
  小数点第2位まであります。0として扱います。

4. 空行は処理対象から外れているのか、0として扱うのか。
  処理対象から外れています。
  
まとめると、0がついていたら0と把握し、空行であれば無視して良いです。
ちなみに、今回空列は処理しません。今回処理する列には0を含め、必ず数字が入っています。
590デフォルトの名無しさん:2010/08/24(火) 15:45:43
>>584
> 6個目のコンマの次の列だけに2をかけ、
>16個目のコンマの次の列だけに3をかけるような感じです。
この文言は、
> 3*3   6*9  4*7
> 2*3   5*9  2*7
> 8*3   3*9  5*7
> 2*3   1*9  8*7
のどこに対応しているのでしょうか。この表の読み方を教えてください。
データのすべてをメモリに持っておかねばならないかどうかを計っています。

>>587
宿題だろうが仕事だろうがお金がからむものだろうが、面白いものならば。
まだやるときめたわけじゃないですし。
591デフォルトの名無しさん:2010/08/24(火) 15:50:17
>>589
「かもしれません」とか「80程度です」とか曖昧な表現やめようよ。
本気で仕様を相手に伝えたいならだけど。
592デフォルトの名無しさん:2010/08/24(火) 15:55:13
1,3,5,7,3345,2222,7,4,,,,,,,7,8,3,444,3,,2,,6,,8,,999,
5,7,3,0,2265,8575,9,3,,,,,,,3,6,2,086,4,,4,,6,,1,,363,
この文はこちらと関連しています。こちらは抜粋していますが実際にはもっと列も行もたくさんあります。
6個目のコンマの次の列だけに2をかけ、
16個目のコンマの次の列だけに3をかけるような感じです。
このような作業をする列が80ほどあります(作業をしない列もあります)。また、作業をする列には必ず数値が入り、空はありません。
ちなみにこちらは先生からの課題です。
593デフォルトの名無しさん:2010/08/24(火) 16:47:28
はい
594デフォルトの名無しさん:2010/08/24(火) 16:55:33
本人も仕様を把握してないんだから教えるつもりのやつは適当に仕様決めて教えてやれよ。
595デフォルトの名無しさん:2010/08/24(火) 18:01:50
>>592
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10920.txt

最初の引数で定義ファイル、次の引数でcsvファイルを指定して実行。
定義ファイルは以下の書式で。

6*3
14*6
20*5.2

6*3を例に6が列番号、3が掛ける係数。列番号は0開始で。後は知らね。
596デフォルトの名無しさん:2010/08/24(火) 19:44:39
単純にCSVファイルを読み込んで任意のファイルに出力するプログラムを教えてください。
stlとboostは使っても構いません。
fstreamは使ってほしいです。 よろしくお願いします。
597デフォルトの名無しさん:2010/08/24(火) 20:05:51
(#^ω^)つはい

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

void main(void)
{
 string str;
 ofstream ofs("out.txt");
 ifstream ifs("in.csv");
 while(!ifs.eof())
 {
  ifs >> str;
  if(ifs.good())
   ofs << str << endl;
 }
}
598デフォルトの名無しさん:2010/08/24(火) 20:26:33
エラーがたくさん出ます。
このプログラムはin.csvを読み込んでout.txtにそのまま出力するんですよね?
599デフォルトの名無しさん:2010/08/24(火) 20:29:43
string str とありますが何を指しているんでしょうか?
ifs >> strしてもstrはただ単にstring型だけの意味だと思うのですが。
600デフォルトの名無しさん:2010/08/24(火) 20:40:17
>>598
その通り。こっちではエラーでません。VisualStudio2008だけど。

>>599
ifsから1行読み込んでstrに格納。
strは型じゃなく実体(インスタンス)です。
601デフォルトの名無しさん:2010/08/24(火) 20:41:34
お前ら馬鹿には優しいな
602デフォルトの名無しさん:2010/08/24(火) 20:47:41
僕はVisualStudio2005なのですがどうすればよいでしょうか?
どなたか教えてください。
603デフォルトの名無しさん:2010/08/24(火) 21:09:16
プロジェクト作るとき Win32コンソールアプリケーション。
アプリケーションの種類がコンソールアプリケーション。
追加オプションで「空のプロジェクト」チェック、「プリコンパイル・・・」の方はチェック外す。
ソースコピペ。
604デフォルトの名無しさん:2010/08/24(火) 21:19:37
603の方の言うとおりにしましたがやはり同じエラーが出ました。
この文字を識別子で使用することはできませんとでました。
string strのところです。
605デフォルトの名無しさん:2010/08/24(火) 21:23:17
全角スペースまでそのままコピペするなよ
606デフォルトの名無しさん:2010/08/24(火) 21:29:33
全角スペースってありますか?
607デフォルトの名無しさん:2010/08/24(火) 21:32:34
ある
608デフォルトの名無しさん:2010/08/24(火) 21:36:37
あるんですか。もしよければ教えてください。

それか、597の方が打っていたものをコピペせずに手入力すれば大丈夫でしょうか?
609デフォルトの名無しさん:2010/08/24(火) 21:41:15
っつか、全角スペースを半角スペースに置換すりゃええがな
610デフォルトの名無しさん:2010/08/24(火) 21:41:58
あっ、別に半角スペースでなくても良いんだけどね。
字下げは後で自分でやっても良いし。
611デフォルトの名無しさん:2010/08/24(火) 21:47:44
先は長そうだなおいw
612デフォルトの名無しさん:2010/08/24(火) 21:59:55
これってもう初心者スレでやるべき話でしょw
613デフォルトの名無しさん:2010/08/24(火) 22:12:56
隔離用スレである宿題スレで引き取っていただきたいが。
614デフォルトの名無しさん:2010/08/24(火) 23:07:45
>>604
http://codepad.org/SW07pvuS
これをコピペしてみてください。
615デフォルトの名無しさん:2010/08/24(火) 23:08:51
[1] 授業単元:プログラミング演習
[2] 問題文:
ポインタによる二分探索木の作成
二分探索木へのデータ入力,削除および検索関数の作成
以下のように人名と電話番号が並んでいるファイル"namelist.txt"がある
koeki kouki 011-375-9593
take sadahira 019-755-2036
tanyama siki 011-179-6806
このファイルから二分探索木を作成し、
更に、新しいデータを挿入する関数,削除する関数,
および,データを検索する関数を作成する
まず,作成した二分探索木に対する処理(入力,検索,削除)
の選択を標準入力で行い,
次に処理を行うデータを入力する
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語:C
[4] 期限: 9月2日
[5] その他の制限:二重ポインタの使用禁止
よろしくお願いします。
616デフォルトの名無しさん:2010/08/24(火) 23:17:42
>>615
>[5] その他の制限:二重ポインタの使用禁止
それは困りましたねえ。
617デフォルトの名無しさん:2010/08/24(火) 23:32:09
type **二重ポインタ;
だろ
618デフォルトの名無しさん:2010/08/25(水) 01:38:45
>>615
http://codepad.org/9aiZMhx6
あとは削除機能だけですが、その仕様を考えあぐねております。デバッグコード入りですが、とりあえずあげておきます。つづきはまた今度。
二重ポインタはなくしたつもりですが、残っていたら教えてください。

>>617
たとえば、
struct node *root;
root = add_node(root, data);
って無駄っぽくないですか?
619デフォルトの名無しさん:2010/08/25(水) 02:19:52
root->add_node(data);
620 ◆6HpwTeryPw :2010/08/25(水) 06:13:09
>>529
ありがとうございました
621デフォルトの名無しさん:2010/08/25(水) 10:19:47
>>529
このプログラムを実行してもリンク先に書いてある通りにはならずkが1000までいって解が求められないのですがなぜでしょうか
環境は>>524と同じはずなのですが
622デフォルトの名無しさん:2010/08/25(水) 12:01:19
[1] 授業単元:プログラム基礎
[2] 問題文:入力された値までの素因数を表示するプログラムを作成せよ。
例:入力10
  表示
  2
  3
  5
  7
[3] 環境
 [3.1] OS:Windows 7
 [3.2] コンパイラ名とバージョン:visual studio
 [3.3] 言語: c言語
[4] 期限: 8月31日(火)まで
[5] その他の制限: 2未満の数値、および整数以外の値が入力されたときは
もう一度正しい数値を入力してくださいと表示し、もう一度入力を求めるものと
値が不適切ですと表示し、そこでプログラムを終えるものの2パターン作成すること。
623デフォルトの名無しさん:2010/08/25(水) 12:22:47
>>622
10 の素因数は 2 と 5 じゃないの?
624デフォルトの名無しさん:2010/08/25(水) 12:23:58
>>621
まずガウス-ザイデル法で考えますね。
収束しない a[10][10] と b[10] の内容を教えてください。
また、 a = E(単位行列), b = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) で実行するとどうなりますか?

なお、ガウスザイデル法は任意の連立方程式について収束するとはかぎりません。
625624 ◆QZaw55cn4c :2010/08/25(水) 12:39:46
>>621
すみませんが、次にご返事できるのは 20:00 以降になります。
626622:2010/08/25(水) 12:43:51
ごめんなさい。間違えました。素因数ではなくて素数です。
627 ◆1KAwi07cG. :2010/08/25(水) 12:48:37
>>624
すみません
プログラムを実行したときにKが1000まで続いていたので収束していないものと勘違いをしておりました
http://codepad.org/VLzU2CV4 をそのまま実行した結果以下のようになりました

http://www.dotup.org/uploda/www.dotup.org1110686.jpg

a = E(単位行列), b = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) にしても
上と同様にk=2以降 nan が続いてしまいます
628デフォルトの名無しさん:2010/08/25(水) 13:07:15
629デフォルトの名無しさん:2010/08/25(水) 13:51:05
boost::format( "%.15g" ) % s.weight;
って何をしているのでしょうか?
s.weightの値をどうかするんだとは思いますがよく分かりません。
630627:2010/08/25(水) 16:42:50
事故解決しました
631 ◆QZaw55cn4c :2010/08/25(水) 18:17:29
>>630
了解しました。
632デフォルトの名無しさん:2010/08/25(水) 18:57:36
596を書き込んだものです。みなさんありがとうございました。
申し訳ないのですが、つけ忘れたことがありました。
getlineを使ったものでよろしくお願いします。
633デフォルトの名無しさん:2010/08/25(水) 22:31:56
>>632 さすがに皆呆れたようだな。
634デフォルトの名無しさん:2010/08/26(木) 12:42:07
635デフォルトの名無しさん:2010/08/26(木) 13:54:47
>>634
ありがとうございます。
削除の部分はどのようになっているのでしょうか?
636 ◆QZaw55cn4c :2010/08/26(木) 18:39:36
>>635
すみません。まだ削除の部分は完成しておりません。>>634 はバグもあります。しばしお待ちを。
637デフォルトの名無しさん:2010/08/26(木) 18:44:37
ピキーン・・・麻呂のクソース発動5秒前
638デフォルトの名無しさん:2010/08/26(木) 18:50:41
>>637
何が始まるんだ?
639デフォルトの名無しさん:2010/08/26(木) 22:09:51
>>637
バッチ来い
640デフォルトの名無しさん:2010/08/26(木) 22:12:51
麻呂は単方向だろw
641 ◆QZaw55cn4c :2010/08/26(木) 23:42:55
>>615
http://codepad.org/ZyqFCqeU
やれることは今までと変わりません(削除はできません)が、内部のデータ構造が増分されています。
あとは 296 行目からの2分探索木削除関数を実装するだけとなりました。今のところはまだアイディア上のあてはないのですけど。
642 ◆QZaw55cn4c :2010/08/27(金) 21:32:35
>>615
途中経過報告です。仕事で疲れすぎてしまいましたので、20行ほど書いてダウン。
http://codepad.org/jVzdB2L9
条件付(※)で削除機能を盛り込みました。※子ノードを二つもっている親ノードはまだ削除できません。
続きはまた明日にでも。しばし待たれよ。
643デフォルトの名無しさん:2010/08/27(金) 21:52:51
うぜえ
644デフォルトの名無しさん:2010/08/27(金) 21:57:48
>>643
まねしたらいいじゃない。
645デフォルトの名無しさん:2010/08/27(金) 22:09:52
うざい奴をまねて何の意味があるんだ
646デフォルトの名無しさん:2010/08/27(金) 22:15:27
>>645
では、QZaw55cn4c がもたもたしている間に、さらっと正解を書き上げるのはいかが?
647デフォルトの名無しさん:2010/08/27(金) 22:21:00
稚拙ながらも一生懸命がんばっている人をもたもたと言うのはいかがなものか。
648デフォルトの名無しさん:2010/08/27(金) 22:25:51
こっちの問題のスマートな解法が知りたい

C/C++の宿題片付けます 137代目
http://pc12.2ch.net/test/read.cgi/tech/1276810079/20

20 名前:>>3-4[sage] 投稿日:2010/06/18(金) 12:03:12
961 :デフォルトの名無しさん :2010/06/18(金) 01:29:00
[1]授業単元:暗号理論(大学専門コース)
[2]問題文(含コード&リンク)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10714.lzh
[3]環境
[3-1] OS:C/C++処理系があれば何でも可
[3-2] コンパイラ:gccに近い処理系が理想
[3-3] 言語:C/C++どちらでも可
[4] 9/15迄(夏休み終了まで)
[5] 難しいそうです。無理しないほうがいいそうです。ただ出来たら
テストの点に無関係に単位をくれるそうです
649デフォルトの名無しさん:2010/08/28(土) 00:40:50
>>642
ありがとうございます。
650デフォルトの名無しさん:2010/08/28(土) 11:52:12
>>615
削除機能を実装しました。
http://codepad.org/Rjv70KxG
デバッグコードも含んでいます。もしもなにかおかしい動作が発見されたら、実行ファイルと同じところにできている "debug.out" ファイルを
>>1 にでも貼り付けて知らせてください。

問題がないようでしたら、デバッグコードを抜いて清書します。
651デフォルトの名無しさん:2010/08/28(土) 12:11:34
[1]授業単元:プログラミング言語
[3]環境
[3-3] 言語:C/C++どちらでも可
[4] 明日29日まで
問題文が長いので半分半分書き込みます
652デフォルトの名無しさん:2010/08/28(土) 12:13:04
[2]問題文
_/*----------------------------------------------------------------------*/
// ●演習9-1 リストを用いた成績処理
// ◎ソースコード
#include <stdio.h>
#include <stdlib.h>
#define NAME_LEN 20
#define SUB_NO 4.0
typedef struct student {
struct student *next;
int st_id;
char st_name[NAME_LEN];
int english;
int mathematics;
int chemistry;
int physics;
} student_t;
void printdata (student_t *stp) {
printf("%d\t%s\t%d\t%d\t%d\t%d\n",
function myprint(num)
_/*!!*/stp->st_id,
_/*?? (1) ここにstpの各メンバを出力する記述をする */);
}
void printAverage (student_t *stp) {
double ave = (
_/*!!*/stp->english + ...
_/*?? (2) ここに各科目の総和を計算する式を記述する*/)/SUB_NO;
printf("The average score of %d %s is %4.1f.\n",
stp->st_id, stp->st_name, ave);
}
653デフォルトの名無しさん:2010/08/28(土) 12:13:52
オセロのプログラムを作ってくれや?コンピュータのIQを高めに設定でな
654デフォルトの名無しさん:2010/08/28(土) 12:14:53
void main() {
student_t* head;//リストの先頭
student_t* stup;//入力されたデータ
student_t* spt;//リスト操作用
int found;
int command;
int key_id;
int stn = 0;
double subjectAverage[4] = {0, 0, 0, 0};
_/*!!*/print("%s %s\n\n", ID NAME);
head = _/*?? (3) ここでheadにNULLを代入する */;
while(1) {
stup = _/*?? (4) malloc関数を使ってヒープ領域に確保する */;
printf("Please input data. : No.%d \n", stn+1);
printf("Student number (Typing \"0\" to exit.):");
scanf_s("%d", &stup->st_id);
if (stup->st_id == 0) break;
printf("Name:");
scanf_s("%s", stup->st_name, NAME_LEN);
printf("English:");
scanf_s("%d", &stup->english);
printf("Mathematics:");
scanf_s("%d", &stup->mathematics);
printf("Chemistry:");
scanf_s("%d", &stup->chemistry);
printf("Physics:");
scanf_s("%d", &stup->physics);
stup->next = head;
stn++;
655デフォルトの名無しさん:2010/08/28(土) 12:17:06
if (head == NULL) head = stup;//一個目を入力
else if (head->st_id >= stup->st_id) {
//リストのhead側(先頭)の学番より入力された学番が小さい場合は,
//リストのhead側(先頭)に入力されたデータを追加する.
_/*?? (5) リストのhead側(先頭)にstupを追加する処理を記述する */
_/*?? (6) headの中身を現在の先頭のものに入れ替える */
_/*!!*/stup->next = ;
_/*!!*/head = ;
} else {
//リストのhead側(先頭)の学番より入力された学番が大きい場合は,
//リスト内を操作して入力されたデータを適切な場所に追加する.
spt = head;
while (spt->next != NULL ) {
//sptには現在操作中の構造体データが入っている
if (spt->next->st_id >= stup->st_id){
//sptの次に操作するデータの学番が入力された
//学番より大きい場合はwhileから抜ける
break;
}
656デフォルトの名無しさん:2010/08/28(土) 12:17:56
_/*?? (7) sptを次に操作するデータ用に更新する処理を記述する*/
_/*!!*/stp = _/* stpが指すセルの次のセル */;
}
//現在操作中のデータの後に入力されたデータを挿入する.
stup->next = spt->next;
spt->next = stup;
}
}
spt = NULL; //sptを再初期化
printf("%d students data loaded.\n", stn);
printf("\n--------------------------------\n");
while(1) {
printf("\nPlease input the number.\n");
printf("1 : List of Result\n");
printf("2 : Personal Result\n");
printf("3 : Personal Average\n");
printf("4 : Subject Average\n");
printf("0 : exit\n");
scanf_s("%d", &command);
if (command == 1){
printf("List of Result\n");
printf("Num.\tName\tEng.\tMath.\tChem.\tPhys.\n");
for( _/*?? (8) リストの走査条件 */) {
//上記により,リストの要素を先頭(head側)から順に処理をする
//着目している要素はsptで示している.
printdata(spt);
}
657デフォルトの名無しさん:2010/08/28(土) 12:29:26
} else if (command == 2){
printf("Please input student number.\n");
scanf_s("%d", &key_id);
found = 0;
for( _/*?? (8) と同じ */) {
if (spt->st_id == key_id) {
printdata(spt);
found = 1;
break;
}
}
658デフォルトの名無しさん:2010/08/28(土) 12:30:22
if (found == 0) printf("Not Found. (%d)\n", key_id);
} else if (command == 3) {
printf("Please input student number.\n");
scanf_s("%d", &key_id);
found = 0;
for( _/*?? (8) と同じ */) {
if (spt->st_id == key_id) {
printAverage(spt);
found = 1;
break;
}
}
if (found == 0) printf("Not Found. (%d)\n", key_id);
} else if (command == 4) {
printf("Eng.\tMath.\tChem.\tPhys.\n");
for( _/*?? (8) と同じ */) {
subjectAverage[0] += spt->english;
subjectAverage[1] += spt->mathematics;
subjectAverage[2] += spt->chemistry;
subjectAverage[3] += spt->physics;
}
for (int i = 0; i < 4; i++) {
printf("%4.1f\t", subjectAverage[i] / (double)stn);
}
} else if (command == 0) break;
printf("\n--------------------------------\n");
spt = NULL; //sptを再初期化
}
}
すごい長々とすいません。
長文の場合のサイトでも直接貼り付けちゃったのでそっちのが見やすいと思います
659デフォルトの名無しさん:2010/08/28(土) 12:48:15
660デフォルトの名無しさん:2010/08/28(土) 15:50:44
>>650
実行してみたのですが、こちらの環境だと
要素の追加からメニューに戻れないようです。
要素を追加する度にメニューに戻るかたちにすることは可能でしょうか…?
661デフォルトの名無しさん:2010/08/28(土) 16:34:41
662 ◆QZaw55cn4c :2010/08/28(土) 16:35:51
>>660
データを一行分入力し enter を押した後、CTRL-D を押すか、
思い当たる別の環境では CTRL-Z を押した後、enter を押すと終わると思います。

そのあたりがわかりやすいように表示を変えてみました。
あとバグ修正も行いました。
http://codepad.org/Kl44XK1L

以上で試してみてください。
663 ◆QZaw55cn4c :2010/08/28(土) 22:18:49
>>615
http://codepad.org/mpK8wnZh
デバッグコードを取り除きました。
664デフォルトの名無しさん:2010/08/28(土) 23:09:49
まぁなんだね、私があれほど言っているのに
数独の問題を作る、与えられた問題を解くコードを
まだ完成させていないのかね?駄目だね、君達は。
せいぜいオセロでも作ってなさい。
665デフォルトの名無しさん:2010/08/29(日) 00:43:50
>>664
宿題を投げるわけでも、投げられた宿題を解くわけでもない君に、何を求めればいいのですか?
666デフォルトの名無しさん:2010/08/29(日) 02:52:08
>>665 ( ^ω^) 大人しくしゃぶれお
667デフォルトの名無しさん:2010/08/29(日) 09:54:10
>>664
それはお前の釣りレベルが低い事を示しているw
もっと効果的にここの住人を釣れよw
668デフォルトの名無しさん:2010/08/29(日) 12:37:36
int main() 笑
はよく釣れたようですね。
669デフォルトの名無しさん:2010/08/29(日) 12:39:12
return 0;もなw
670デフォルトの名無しさん:2010/08/29(日) 13:07:34
>>668
いや、int main() 笑は、釣った方があとで釣られまくっていたようですよ。無駄な長文を連発していましたから。
671デフォルトの名無しさん:2010/08/29(日) 13:38:49
未だに”C言語”で int main()笑 って時代遅れのオッサンくらいだろw
>>670
ISOの説明をされても理解できなくて悔しかったんですね、時代遅れのオッサンw
世の中はお前が知らない内にどんどん動いてますよ。
672デフォルトの名無しさん:2010/08/29(日) 13:39:59
>>669
でたーー、一番最後に省略可について理解していなかったおバカさんw
無理に釣れたとか言って、本当は事実関係を探りたかったんだろ?
他人の力を借りてw
お前らまともに英文も訳せない癖に、英数文字だらけのコードを
書くだけの無能な人間だと言うことが判明w
所詮、分かりきったコードを真似ることしか出来ない猿。
673デフォルトの名無しさん:2010/08/29(日) 13:40:51
力量あげてきよったw

( ´ー`)y─┛~~
674ISOの英文が理解できないオッサンの負け惜しみ最後っ屁:2010/08/29(日) 13:42:23
670 名前:デフォルトの名無しさん 投稿日:2010/08/29(日) 13:07:34
>>668
いや、int main() 笑は、
釣った方があとで釣られまくっていたようですよ。
無駄な長文を連発していましたから。

釣った方があとで釣られまくっていたようですよ。
無駄な長文を連発していましたから。

釣った方があとで釣られまくっていたようですよ。
無駄な長文を連発していましたから。

↑自分が説明文も理解できずに、逆に釣られたことに気づいていないバカw
675こいつの釣りの構図は逆:2010/08/29(日) 13:43:27
>>670
スレと関係ないんだけどさ、俺「釣り」とか「釣り師」っていうのは、

 釣り師 ↓     
.            /| ←竿
     ○  /  |
.    (Vヽ/    |
    <>     |
゙'゙":"''"''':'';;':,':;.:.,.,__|_________
             |
  餌(疑似餌)→.§ >゚++< 〜
                 の組み合わせだと思ってたんだけど、

最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか
言ってるの多いよね。
 これは、どっちかというと、



          ,〜〜〜〜〜〜 、
|\     ( 釣れたよ〜・・・)
|  \    `〜〜〜v〜〜〜´
し   \
゙'゙":"''"''':'';;':,':;.:.,.,  ヽ○ノ
          ~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                 ト>゚++<
              ノ)

かと思うんだけど、どうよ?
676こいつら暇になったから自作自演で無理やり盛り上げ様として失敗:2010/08/29(日) 13:44:51
>>670 = >>669 = >>668

最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか
言ってるの多いよね。
 これは、どっちかというと、



          ,〜〜〜〜〜〜 、
|\     ( 釣れたよ〜・・・)
|  \    `〜〜〜v〜〜〜´
し   \
゙'゙":"''"''':'';;':,':;.:.,.,  ヽ○ノ
          ~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                 ト>゚++<
              ノ) < >>670 = >>669 = >>668
677デフォルトの名無しさん:2010/08/29(日) 13:50:16
C言語における標準スタイル。
・プログラムの開始をmain関数とする。
・main関数の戻り値はint型とする。
・パラメータが無い場合はvoid、必要なら int argc, char *argv[]
↑これらの条件がISOの所定の場所に「英文」で記述されているんだが。

ttp://www.bohyoh.com/CandCPP/FAQ/FAQ00014.html
標準C §5.1.2.2.1 Program Startup
標準C99 §5.1.2.2.1 Program Startup

C99がどうとか言っていた時代遅れのゴミクズ爺がほざいていたが
C99も同様 ( ´,_ゝ`)プッ
678デフォルトの名無しさん:2010/08/29(日) 13:52:38
Programming languages -- C の該当部分

5.1.2.2.1 Program startup

[#1] The function called at program startup is named main.
The implementation declares no prototype for this function.
It shall be defined with a return type of int and with no
parameters:

int main(void) { /* ... */ }

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[]) { /* ... */ }

↑こんな初歩的な中学生レベルの英語も理解できないとか ( ´,_ゝ`)プッ
さすが低ランク大学のか専門学校程度の連中が言うことは違うぜ ( ´,_ゝ`)プッ
679デフォルトの名無しさん:2010/08/29(日) 13:54:26
     /.: ̄ ̄ ̄ ̄ ̄ \
    /: : :             \
  /: : : :            \
/: : : : : :               \
: : : : : : : :.._        _      \
: : : : : : : ´⌒\,, ;、、、/⌒`        l  みなさんに
: : : : ::;;( ● )::::ノヽ::::::( ● );;:::    |  残念なお知らせがあります
: : : : : : ´"''",       "''"´       l
: : : : : : . . (    j    )/       /   このスレはもうダメです!
\: : : : : : :.`ー-‐'´`ー-‐'′    /    
/ヽ: : : : : : : : : : : : : : : : : : : : イ\
: : : : : : : : : :.``ー- -‐'"´        \
: : : : . : : . : : .                   \
680デフォルトの名無しさん:2010/08/29(日) 13:55:49
最後に断っておきますが、あくまでもISO、ANSI「準拠」の「標準スタイル」ですから
独自の環境を使用している場合は「その限りではない」。ここまで親切に
説明してもらっておいて、釣られたとか、自分の無知を晒しておいて
未だに相手を攻撃する性格を見ると、どう考えてもド田舎の閉鎖的な思想を持った
連中がこのスレにいますね?w まさか、あんたが世の中心だと思ってないだろうな?
東京へ地方から来たばかりのおのぼりさん?まぁ世界基準は東京中心にも
動いてませんからw 日本の経済も、世界のある基準に基づいて動いてますからね。
特に円、株価。C言語なんかで世界を知った気にならないで下さいね、こちらは
プログラムに限らず世界の様々な標準、基準、規定を知っていますからw
681デフォルトの名無しさん:2010/08/29(日) 14:02:43
基準や標準に対して物申す奴って絶対に田舎者だよなw
東京でも自分の地域限定ルールを言い出して、周りに理解されずに
孤立して干される奴とかいるしw
日本はまだ州といった独自の法律を持つ地方自治体は無いからね。
こういった規格に限らず、世の中には基本ルールがあるんだが
それを基に社会が動き、時にはトラブルがあればそれを基に処理されているんだが
自分が気に入った、そうだと思ったことをルールブックで否定されたことが
よっぽど気に入らなかったのか、昔からあるルールブックに対して批判的な意見をする
閉鎖的で自己中心的な人間を、昔からネットでも見かけますが、最近は本当に
ド田舎にもネット回線が普及したせいか、そういう人間が増えましたねw
自分は12年前に、都市部で生活、ネットを利用していたが、あの当時はまだまだ
日本国内でのネットの利用者は少なかったからトラブルも少なかったんですがね。
あっても、当事者で適当に処理していたんだが。最近は妙に時代遅れの頑固爺まで
しゃしゃり出てきて、自分の方が人生経験が長いから、その地域限定なのに
長老ぶってかだれそれ構わず上から目線で発言し、相手を威圧しますねw
ネットしか友達がいないの?w
682デフォルトの名無しさん:2010/08/29(日) 14:05:46
| 釣れますか?                ,
\                         ,/ ヽ
   ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄         ,/    ヽ
   ∧_∧          ∧∧  ,/          ヽ
  ( ´∀`)         (゚Д゚,,),/             ヽ
  (    )      (|  つ@                ヽ
  | | |   ___ 〜|  |  ←Cで int main()    ヽ
  (__)_) |――|.  ∪∪                     ヽ
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|                 ヽ
  /⌒\/⌒\/⌒\/⌒\|彡~゚ ゜~ ~。゜ ~ ~ ~ ~~ ~ ~~ ~ ~~ ~~ ~~
  ⌒\/⌒\/⌒\/⌒\/⌒\彡 〜 〜〜 〜〜 〜〜 〜 〜
683デフォルトの名無しさん:2010/08/29(日) 14:34:50
なんか、会社ってところはどこもそうなのかも知れないけどさ
良い人から辞めちゃうよね
んでもって、腹黒い人とか、他人を動とも思わない人とか、
図々しい人とか、・・・そんなのばかりがテコでも動かないぜって
感じで居座り続ける・・・
会社って、こうやってダメになっていくんだと思う
それはそのまんま居座り族・牛耳り族が社会をダメにしていくって
ことなんだ。。。
684デフォルトの名無しさん:2010/08/29(日) 14:36:50
                |
                |
                |
                |
     /V\        ,J < Cで int main()
    /◎;;;,;,,,,ヽ
 _ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)   < int main(void)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'

      | Hit!
      |
   ぱくっ|
     /V\
    /◎;;;,;,,,,ヽ   そんなエサで
 _ ム::::(,,゚Д゚)::|   俺様が釣られると思ってんのか!!
ヽツ.(ノ:::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'
685デフォルトの名無しさん:2010/08/29(日) 14:38:36
             |
〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
   >( c´_ゝ`)  |
            |
>( c´_ゝ`)     J < Cでint main()笑
     >( c´_ゝ`)

             |
〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
             |     >( c´,_ゝ`) プッ
             |
             J   >( c´,_ゝ`) プッ
                    >( c´,_ゝ`) プッ
686デフォルトの名無しさん:2010/08/29(日) 14:41:25
          ,〜〜〜〜〜〜 、
|\     ( 釣れたよ〜・・・)
|  \    `〜〜〜v〜〜〜´
し   \
゙'゙":"''"''':'';;':,':;.:.,.,  ヽ○ノ < Cでint main()
          ~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                 ト>゚++<
              ノ)
687デフォルトの名無しさん:2010/08/29(日) 14:47:49
何の話で盛り上がってるのかと思ったら
int main()
int main(void)
とどっちで書くかの話?処理する側からすればどっちも一緒。
670 名前:デフォルトの名無しさん 投稿日:2010/08/29(日) 13:07:34
>>668
いや、int main() 笑は、
釣った方があとで釣られまくっていたようですよ。
釣った方があとで釣られまくっていたようですよ。
釣った方があとで釣られまくっていたようですよ。
釣った方があとで釣られまくっていたようですよ。
釣った方があとで釣られまくっていたようですよ。
無駄な長文を連発していましたから。
689 ◆QZaw55cn4c :2010/08/29(日) 15:09:51
>>615
削除ルーチンに重大なバグが発見されました。以下に訂正します。
http://codepad.org/yN2ZXynA
690デフォルトの名無しさん:2010/08/29(日) 15:14:37
>>678
その続きがあるんですよ。省かないでください。

or equivalent;9) or in some other implementation-defined manner.
9) Thus, int can be replaced by a typedef name defined as int, or the type of argv can be written as
char ** argv, and so on.

この or equivalent; に対して ISO/IEC 9899:1999(E) 6.7.5.3 14

An identifier list declares only the identifiers of the parameters of the function. An empty
list in a function declarator that is part of a definition of that function specifies that the
function has no parameters. The empty list in a function declarator that is not part of a
definition of that function specifies that no information about the number or types of the
parameters is supplied.124)

を適用すると、int main() がISO/IEC 9899:1999 に準拠していることがわかります。
691デフォルトの名無しさん:2010/08/29(日) 15:16:33
おいっ痴呆の、いや、地方のド田舎者!お前らが持つ情報は古いんだよ!w
692デフォルトの名無しさん:2010/08/29(日) 15:22:18
どっちにせよ全く役に立たない知識だな
693デフォルトの名無しさん:2010/08/29(日) 15:39:10
技術者たちが画面に向かい両手を動かしぃ〜
夢や希望や名声までも つかもうとしている
その姿は きのうまでの何も知らない私
あなたに このレスが届くと信じていたぁ〜♪

変数と構造体が ふれ合うソース
過去からの標準化を 呼んでるスレ
あなたにとって私 ただの通りすがり
ちょっと強がってみただけの 地方人〜♪
694デフォルトの名無しさん:2010/08/29(日) 15:40:57
695デフォルトの名無しさん:2010/08/29(日) 15:56:36
異邦人 と 地方人 で替え歌w
696デフォルトの名無しさん:2010/08/29(日) 16:19:45
>>691
じゃあ、新しい情報をポインタだけでも示してください。
697 ◆QZaw55cn4c :2010/08/29(日) 16:22:17
>>667
ね?よく釣れましたでしょう?
いまだに入れ食いのようですね。
698デフォルトの名無しさん:2010/08/29(日) 17:48:36
>>697
池沼は黙ってろよw
699デフォルトの名無しさん:2010/08/29(日) 18:26:26
>>698
コテつけてコードを投稿しない人に何をいわれても。
いちどやってごらんなさいよ。叩いてあげるから。
700デフォルトの名無しさん:2010/08/29(日) 19:10:56
>689
入力が再現できないけどメモリリークが一件あった、デバッグ情報仕込んでおけばよかった
名前が数字のときおかしくなる、メモリに対して不正な書き込みなど
せっかくの二分木なのに線形探索で部分マッチ、部分マッチだとそうなるよな
追加終了が^Dだからテストの自動化が面倒
適当にテストした感想
701 ◆QZaw55cn4c :2010/08/29(日) 20:28:04
>>700
ありがとうございます。

確かに、せっかくの二分木を検索時に線形リストに載せなおしているのは、そもそもなんのための二分木か、という面がありますね。
実装時の(こっちで決めた)仕様が欲張りだったんですね。

名前が数字のときおかしくなる、というのは、数字がひとつでもみつかったら、その先は電話番号だとしているからです。
名前に数字は入らないと仮定しましたが、やや強引でしたか。

もしお手すきでしたら、メモリーリークについては、次のコードで試していただけませんでしょうか。
http://codepad.org/SG6Plo9H
エラーが発生したとき、実行ファイルとおなじところにあるファイル debug.out を
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
にでも張っていただけるとありがたいです。
期限までまだ間がありますので、テストしていただけると幸いです。
よろしくお願いいたします。
702デフォルトの名無しさん:2010/08/30(月) 14:23:24
↓( ^ω^) 早く俺のをしゃぶって数独のコードを教えろお
703デフォルトの名無しさん:2010/08/30(月) 19:15:07
今年も夏休みは終わろうとしているのに宿題スレ閑散としてるな
704デフォルトの名無しさん:2010/08/30(月) 20:11:31
自由課題で数独レベルのものを提出すれば
好成績になれるお ^ω^
だから早く俺に、優秀な数独のコードを教えろお ^ω^
705 ◆QZaw55cn4c :2010/08/30(月) 20:19:55
>>615
バグを修正しました。
・削除コマンドで、予期しない値が入力されたり入力そのものがなかった場合にメモリーリークや異常終了を起こしていたのを修正。
仕様を変更しました。
・追加コマンドで、一件登録するごとに、コマンドプロンプトに戻るように変更。>>660 >>700 でこの仕様の方が自然である、という意見だとおもわれたので反映しました。
デバッグバージョン(不具合報告に使用してください。debug.out を張ってください。):http://codepad.org/qnUQyT64
清書バージョン:http://codepad.org/qRvj5zbI
>>700
貴重な報告ありがとうございました。ひきつづき、メモリへの不正な書き込みを調査いたします。

#strlen(NULL) が環境によってはコアダンプを引き起こすとは知りませんでした。
706デフォルトの名無しさん:2010/08/30(月) 20:26:31
> #strlen(NULL) が環境によってはコアダンプを引き起こすとは知りませんでした。

ゲロ吐く処理系の方が多くね?
707デフォルトの名無しさん:2010/08/30(月) 20:45:15
>>706
ポインタをインクリメントしながら'\0'を探すのですから、コア吐いて当然といえばそうなんですね。気がつきませんでした。
708デフォルトの名無しさん:2010/08/30(月) 21:58:37
strlenにNULLを渡すとかどんな初心者だよ
709デフォルトの名無しさん:2010/08/30(月) 22:03:01
free(NULL) は?
fclose(NULL)は?
printf(NULL)は?
710デフォルトの名無しさん:2010/08/30(月) 22:03:06
ぬるいんだから、許してやれw
711デフォルトの名無しさん:2010/08/30(月) 22:04:56
>>709
free(NULL) だけおk
712デフォルトの名無しさん:2010/08/30(月) 22:07:03
>>709
それぞれが意味を成すか疑問だが、free(NULL);は実行されたようだが
その他は不正な処理で落ちたw
713デフォルトの名無しさん:2010/08/30(月) 22:36:22
>>712
if ((fp = fopen()) != NULL) {
...
}
fclose(fp);
などと書いてしまうとアウト。
printf(NULL) はさすがにおもいつきまへん。
714デフォルトの名無しさん:2010/08/30(月) 22:39:59
fprintf(NULL, hoge, huga)
sprintf(NULL, hoge, huga)
715デフォルトの名無しさん:2010/08/30(月) 23:04:08
宿題スレだったよなココ。
夏休みも終わりだが、今年は皆真面目に自分でやるのかな。
716デフォルトの名無しさん:2010/08/30(月) 23:05:18
>>715
毎年、乙^^
717デフォルトの名無しさん:2010/08/30(月) 23:06:12
提出はこれからだから
忙しくなるのはこの一週間だろうな
718デフォルトの名無しさん:2010/08/30(月) 23:36:57
>>713
うん、意味不明で>>712のレスになってないから、それw
719デフォルトの名無しさん:2010/08/31(火) 00:08:58
メモリ確保は実行してみないと分からないから、
確保できたかチェックして無くても安全にしたとか?
理由になってないな^^

複数ファイル扱ってる時に、開いてるかどうかを
いちいちチェックしなくて良くなるから
NULLはスルーしてくれるとありがたいな^^

printfにNULL渡すなんてバグとしか思えない。
720デフォルトの名無しさん:2010/08/31(火) 02:54:43
メモリ確保を複数回行うような場面のどこかで失敗した時に、全部freeするコードを書いても落ちないように。
ただし、初期化を正しく行っていない場合は落ちる。
721デフォルトの名無しさん:2010/08/31(火) 03:42:59
alloc/free論争、またやるの?
722デフォルトの名無しさん:2010/08/31(火) 06:27:46
基本出汁
723デフォルトの名無しさん:2010/08/31(火) 07:29:00
>>720
正しい初期化とは?
724デフォルトの名無しさん:2010/08/31(火) 07:31:39
意味を成さないコードがどうなるか?なんてどうでも良い。
それより NULL や ぬるぽ が何なのか、理解した方が良い。
725デフォルトの名無しさん:2010/08/31(火) 07:35:17
>>724
printf(NULL) はともかく、
free(NULL) や fclose(NULL) がどうなるかによって、書き方がかわるのでは?
だからこれらがどうなるかは知っておいたほうがよいのでは?
726デフォルトの名無しさん:2010/08/31(火) 11:48:16
リソース確保は注意深くやるべきだろうが、後始末は楽したい
727デフォルトの名無しさん:2010/08/31(火) 14:33:28
>>725
そんなことに依存するようなコードを書いて良いわけがない。そういうものに依存するようなコードを書くなよ
728デフォルトの名無しさん:2010/08/31(火) 17:10:44
>>725 ( ^ω^) いちいちてめぇの持論を他人に言わなくて良いお うぜーお しゃぶれお^^
729デフォルトの名無しさん:2010/08/31(火) 17:14:59
>>728
エロイ人の言うことは、謙虚に聞き流せ
730デフォルトの名無しさん:2010/08/31(火) 17:20:32
(^ω^ ) 早くしゃぶったら俺の為に数独のコードを書けお^^
731デフォルトの名無しさん:2010/08/31(火) 17:40:44
俺が代わりにゲロ吐いてやんよ
732デフォルトの名無しさん:2010/08/31(火) 18:10:16
スレタイが読めないのに、仕様について延々と持論を展開して
想像で物を言う奴は他所でやれお ^ω^
733デフォルトの名無しさん:2010/08/31(火) 18:47:15
>>728
釣りならもっと面白く。>>670 がお手本になる。
734デフォルトの名無しさん:2010/08/31(火) 19:04:15
( ^ω^) 何度も何度も言わせんじゃねーお?
早く数独のコードを俺に分かりやすく書けお^^
735デフォルトの名無しさん:2010/08/31(火) 20:18:25
>>615
ttp://codepad.org/EU13f1AW
・二分探索木初めて書いたので解釈が間違っているかもしれない。
・英語が色々恥ずかしいのは自覚している。
・二重ポインタの使用禁止、これchar **argvも駄目なのか。
・codepadはタブ8なので見にくい。書いてる環境はタブ4。
・削除の解釈は適当。
・無保証
736デフォルトの名無しさん:2010/08/31(火) 20:24:48
そうですか
それは残念ですね
737デフォルトの名無しさん:2010/08/31(火) 20:33:02
麻呂のクソース、漏れません ><;
738デフォルトの名無しさん:2010/08/31(火) 20:47:19
>>735
とりあえず、d コマンドで削除してみましたが、free() を失敗します。
手書きでうつすと、
> a
please input your data string.
add: abc abc 123
it was accepted.
> d
search: abc
abc abc 123
delete this? y/n: y
で終わってしまいます。
739738:2010/08/31(火) 20:54:38
>>735
失礼、strdup() の存在を忘れていました。
740735:2010/08/31(火) 21:17:22
strdupが問題になりうるっつーことか。
結果的にはおk? オチなくなりました?
741デフォルトの名無しさん:2010/08/31(火) 21:18:12
>>735
読みました。
プログラムの終了時には領域はfree() していませんが、この書き方でノードの消去を書くとすれば、どういう書き方になるのか興味があります。
742デフォルトの名無しさん:2010/08/31(火) 21:19:19
> プログラムの終了時には領域はfree() していませんが

しない主義なんです><
数年前までする主義でしたが、アホらしくなって止めました。
743741:2010/08/31(火) 21:20:07
>>740
意地悪にも、自前の malloc(), free() をリンクしていたのです。strdup() を見落としていました。
strdup を実装して確かめてみたところ問題はありませんでした。

それにしてもきれいですね。
744デフォルトの名無しさん:2010/08/31(火) 21:21:40
>>742
それもありですが、興味があるのは、もしこの流儀で書くとすればどんな形になるのか、ですね。
745デフォルトの名無しさん:2010/08/31(火) 21:32:33
>>743
> 自前の malloc(), free() をリンクしていたのです。

すさまじい!

>>744
たぶん一度リストに真っ直ぐに並べる必要があるかも。
再帰で都合よくは行かない予感。
それか>>741さんのようにもっと根本からケアするか。
746744:2010/08/31(火) 21:44:56
>>745
登録と削除は非再帰(でいいですか?)ですが、全表示は再帰。であれば、
全削除も表示と同じようにやればいいかも。
747745:2010/08/31(火) 21:56:52
void delete_node_all(const struct node *n) {
if (n->left) delete_node_all(n->left);
delete_node(n);
if (n->right) delete_node_all(n->right);
}

↑こういう風に書いて消しながら再帰できればスカッとするんですが、
単純にたどりながら削除はできないような気が。
削除して、繋ぎなおしながらやっても怖い。
再帰を使ってrealloc上等の配列かリストかに回収して、
その一覧をつかって片っ端から消していくのが無難そう。

などと言いつつ二分岐の辿り方に色々あって、深さ優先? なんとか優先?
まったく詳しくはないのですが、それによっては消しながら再帰できるかも。

実は、dのyで検索して繋ぎなおしながら消すのをしてるんですが、
!tree->rootまでこれを繰り返すと、安全に最後まで消せるはずです。
いちいち中身見ながら検索するので相当ウザイですが。
748747:2010/08/31(火) 21:59:47
> !tree->rootまでこれを繰り返すと、

delete_node(disconnect_node(t0, search_node(t0, t0->root)));
みたいなのを!tree->rootになるまで繰り返すと。
749746:2010/08/31(火) 22:11:10
>>748
if (n->left) delete_node_all(n->left);
if (n->right) delete_node_all(n->right);
delete_node(n);
の順になるとおもいますが、問題は data615 を共用しているのと、細かいことですが empty が鬼門かも。
750デフォルトの名無しさん:2010/08/31(火) 22:29:50
> 問題は data615 を共用しているのと、

多分、ツリーごとに一本ごと全削除処理する場合は、
最後のツリーの時に一緒に織り込んでやっちゃうとか。

for (;t0->root;) delete_node(disconnect_node(t0, t0->root));
for (;t1->root;) delete_node(disconnect_node(t1, t1->root));
for (;t2->root;) {
void *value = t2->root->value;
delete_node(disconnect_node(t2, t2->root));
delete_data615(value); // 最後だけこれを織り込む
}こういう感じにすれば、とにかく全部は削除できそう。

> 細かいことですが empty が鬼門かも。

これはcreate_data615これ経由しますんで、
贅沢ですがstrdupの元でしかなく、削除には無関係かと。
data615 が持つのはstrdupした、固有の領域のはず。

> の順になるとおもいますが、

再帰が苦手なんでどうも懐疑的です…。イケそうですか?
751デフォルトの名無しさん:2010/08/31(火) 22:38:44
>>750
>strdupの元でしかなく、削除には無関係かと。
そうですね、create_data615 で構造体も各メンバも複製してますね。なるほど。
752デフォルトの名無しさん:2010/09/01(水) 00:34:11
早く俺に、9x9の数独の全パターンを出力するコードを教えろお ^ω^
753デフォルトの名無しさん:2010/09/01(水) 00:54:43
[1]夏休みの宿題
[2]
次のコードは数独パズルの解答を列挙するプログラムである
【】を埋めてコードを完成させなさい
マクロなら追加して良いが、変数、関数は追加してはならない。
#include <stdio.h>
int bann[9]9];
#define FORALL(i,j) 【1】
int main(void){
FORALL(0,0)
FORALL(1,0){
if(【2】)continue;
FORALL(2,0){
if(【2】)continue;
FORALL(3,0){
if(【3】)continue;
FORALL(4,0){
if( 【4】)continue;
FOALL(5,0){
【5】
}
}
}
}
return 0;
}
[3] linux/gcc/C
[4]明日まで
よろしくお願いします。
754デフォルトの名無しさん:2010/09/01(水) 00:59:48
夏休みが終わるのに今さら夏休みの課題とか言われても・・・
755デフォルトの名無しさん:2010/09/01(水) 02:01:24
>753 デフォルトの名無しさん [sage] 2010/09/01(水) 00:54:43 ID: Be:
すでに9月1日
756デフォルトの名無しさん:2010/09/01(水) 02:11:55
あぁ、そうか、感覚のズレか。自分の大学は9月半ばまで夏休みだったんで。
757デフォルトの名無しさん:2010/09/01(水) 02:42:40
中学生じゃね?
758デフォルトの名無しさん:2010/09/01(水) 03:51:31
8月中に新学期が始まるところもあるさ
759デフォルトの名無しさん:2010/09/01(水) 05:06:20
[1]
[2] 文字列をscanf関数で入力し、入力した文字列の中に含まれる文字の一覧表を
出力するプログラムを作れ。
文字はASCIIコードの昇順にソートし、文字とその出現頻度も合わせて出力せよ
但し、入力する文字列はすべて20文字以下とする。
*文字(char型)と出現回数(int型)から構成される構造体配列を宣言する。

[入出力例] Please input string ==> abcd
***** CHAR LIST *****
a -- 1
b -- 1
〜略〜

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10928.txt
(一応途中のコードです・・・)
[3] 環境
 [3.1] OS: Windows7
 [3.2] vs.net 2003
 [3.3] 言語: C
[4] 無期限

上記のコードをコンパイルすると
LNK2019: 未解決の外部シンボル _input が関数 _main で参照されました。
LNK1120: 外部参照 1 が未解決です。
というエラーが出てしまいます。
よろしくお願いします


http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10928.txt
760デフォルトの名無しさん:2010/09/01(水) 06:43:23
>>753
これは例の荒らしの書き込みです、皆さんスルーの方向で
761デフォルトの名無しさん:2010/09/01(水) 12:39:09
>>752 >>753
釣りならもっと面白く。
>>670 に釣られたもの
>>671 >>672 >>674-678 >>680-686 >>688 >>691 >>693-695
762デフォルトの名無しさん:2010/09/01(水) 13:23:18
>>753
のコード本気で自分じゃ書けないと思う奴は
回答者の資格無しじゃね
763デフォルトの名無しさん:2010/09/01(水) 13:31:35
だいたいこれ何?

>int bann[9]9]; ←
764デフォルトの名無しさん:2010/09/01(水) 13:36:56
今度生まれ変わったらCコンパイラになりたいですwwwwww
てかもう既にCコンパイラになったつもりの可哀想な人が居る
スレはここですか?
765デフォルトの名無しさん:2010/09/01(水) 13:37:17
昔は秒殺で回答うpされてたけどな
2chもレベル落ちまくりだな
766デフォルトの名無しさん:2010/09/01(水) 13:41:22
レベルも何も過疎ってんだろw
767デフォルトの名無しさん:2010/09/01(水) 13:45:31
つまり過疎った結果

レベルの低いひとだけが残った

ということか
俺も含めて
768デフォルトの名無しさん:2010/09/01(水) 13:56:56
単に釣り針が凶悪になってきただけとかw
だが>>723は釣りだけじゃないだろ
Cの書式がある種の定義書となり得ることを
示す例示とか
769デフォルトの名無しさん:2010/09/01(水) 13:58:59
>>723
じゃなくて
>>753
ごめんちゃい
770デフォルトの名無しさん:2010/09/01(水) 14:05:24
>>723 も十分釣り臭いw
771デフォルトの名無しさん:2010/09/01(水) 15:33:54
>>753
の解答コードを生成するCコードって作れる?
(手打ちは幾ら何でも面倒)
772デフォルトの名無しさん:2010/09/01(水) 16:11:47
( ^ω^) おっ、俺の為に数独のコードを書いてくれるかお?^^
773デフォルトの名無しさん:2010/09/01(水) 16:15:47
出来たとしてもここに貼る奴はいない
774デフォルトの名無しさん:2010/09/01(水) 17:07:20
( ^ω^) おっ?公開しないのに誰の為に吸う毒のコードを書いたのかお?^^
775デフォルトの名無しさん:2010/09/01(水) 17:28:23
でけたー
776デフォルトの名無しさん:2010/09/01(水) 17:30:47
さわりだけ書いてやろう
// It works by keeping track of which numbers can be used to fill the remaining
// cells in each row, column and block. It then will only fill a cell with a
// number that is valid for that row, column and block.

// On every recursion, it chooses the cell with the least possible number
// available to choose from. This has the rather nice effect that impossible
// cells are noticed straight away without any special cases, and cells with
// only one possibility are filled in straight away.

#include <iostream>
#include <cassert>

using namespace std;

// The size of the Sudoku game
static const unsigned blockSize = 3;
static const unsigned gridSize = blockSize * blockSize;

//
// Some functions for representing sets as bitfields
// (counting from 0)
//

typedef unsigned long bitfield;
777デフォルトの名無しさん:2010/09/01(水) 17:31:59
( ^ω^) おっ?C++じゃなくてC言語で頼むお^^
C++コンパイラはあるけどお^^
778デフォルトの名無しさん:2010/09/01(水) 17:34:47
いやぷー。ってか自分で書けよ能無し。
779デフォルトの名無しさん:2010/09/01(水) 17:43:43
( ^ω^) おっ?やってくれない奴には頼んでないお?^^
自意識過剰な奴は自分が求められていると勘違いするナルシストだから困るお^^
780デフォルトの名無しさん:2010/09/01(水) 17:50:45
明らかに頼んでるじゃんw
781デフォルトの名無しさん:2010/09/01(水) 18:06:32
( ^ω^) おっ?やってくれない人には頼んでないお?^^
782デフォルトの名無しさん:2010/09/01(水) 18:13:41
>>776-778 明らかに頼んでるwしかも断られとるw
783デフォルトの名無しさん:2010/09/01(水) 18:17:48
>>759
ttp://codepad.org/gKx33HwZ
・途中のコード(>>759 10928.txt)には触れていません
・二分探索木を使用
・既に出現した文字であればカウントを加算、そうでなければ木に追加
・追加する過程で勝手にソートされてる
784デフォルトの名無しさん:2010/09/01(水) 20:57:52
>>782
やってくれない人には頼んでないだろ?w
自分が頼まれたと思っている辺り、自意識過剰ですなw
785デフォルトの名無しさん:2010/09/01(水) 20:59:04
数独なら2,3スレ前に解いたし
俺のも含めてに3つくらい答えが上がってたと思う
786デフォルトの名無しさん:2010/09/01(水) 21:00:58
ところでC/C++って数独解くのに向いた言語なの?
LispとかPrologの方が解き易い?
787デフォルトの名無しさん:2010/09/01(水) 21:16:46
>>784
本人乙。同じ言葉の繰り返しとか見苦しいぞ。間違ってるし。
>>785
そうそう、ネットにも落ちてるしな。
ちなみに>>776は俺様がpublic domainのものの一部を貼った。
>>786
より素直に書けそうだよね。
788デフォルトの名無しさん:2010/09/01(水) 21:17:18
( ^ω^) おっ?やってくれる人に頼むお。数独のコードを書いてくれお^^
789デフォルトの名無しさん:2010/09/01(水) 21:18:33
>>753,762,765
明らかに同一人物、何がしたいのか知らんが暇なんだな。
790デフォルトの名無しさん:2010/09/01(水) 21:19:21
( ^ω^) 個人を特定して数独のコードを書いてくれとは頼んでないお?^^
やってくれる人に任意で頼んでいるお^^
791759:2010/09/01(水) 21:24:11
>>783
助かりました、ありがとうございます!
参考にさせて頂きました

粗末なお礼ですみません



792デフォルトの名無しさん:2010/09/01(水) 21:54:51
( ^ω^) おっ?俺に噛み付くか?盾突くか?
年収1千万円程度の俺が貧乏だと知ってのことかお?^^
793デフォルトの名無しさん:2010/09/02(木) 00:05:27
( ^ω^) おっ?静かになったかお?ごちゃごちゃ言ってねーでやる気がある奴は
どうか私の為に数独のコードを書いて教えてくれお^^
794デフォルトの名無しさん:2010/09/02(木) 00:30:35
ったくしょうがねーな
ほらよhttp://norvig.com/sudoku.html
795デフォルトの名無しさん:2010/09/02(木) 00:32:29
( ^ω^) おっ?ありがとお^^ それで9x9の全パターンが出力できるかお?^^
796デフォルトの名無しさん:2010/09/02(木) 00:41:41
そんぐらい嫁や
797デフォルトの名無しさん:2010/09/02(木) 00:45:00
( ^ω^) ・・・、・・・、・・・、ぬるぽっ!
798デフォルトの名無しさん:2010/09/02(木) 01:01:44
>>786
アルゴリズムにもよるが、典型的な列挙法
(漏れなく列挙する方針で埋まった時点で矛盾が無ければ出力。
途中で矛盾が発覚した時点で枝狩り)
では状態の複製という操作が不可欠というか禁止するとコード
は煩雑になり、よほど巧く書かない限り改良性に乏しいもの
になりがち。メモリ管理を手動でやることもまた同じ。
となるとガベージコレクタの存在を仮定できる言語がこの種の
問題には適しているんじゃないかと。あと構造化例外処理も
あるのとないのではだいぶ違う。setjmp longjmpでも出来なくも
無いがやはり機械的ルーチン的でありながらも煩雑。
C/C++に向いているとは多分言えない。
そこで代替言語ということになるが
C言語とかけ離れすぎた書式や文法の言語もヤだろうから答えは
殆ど決まってくるんじゃね?
799デフォルトの名無しさん:2010/09/02(木) 01:42:36
いつまで構ってもらおうとしてんだよ。
どーせお前を叩いてない>>792から>>798までは自演だろ?
もう間違い指摘すら面倒だぜ。
いくらでも落ちてるんだから探せよ能無し。
じゃあな!
800デフォルトの名無しさん:2010/09/02(木) 01:58:31
>>799
>能無し。
バカの一つ覚えを偉そうに上から目線で言う割には
お前が一番 能無し だとバレているからw
口先ばっかり。無能の証拠w
801798:2010/09/02(木) 02:17:52
>>799
自演を指摘するほど住人意識が強いのなら、
トリップ付けるのがマナー
ま、自演を指摘されたくないのならトリップ
付けろという板もあるかも知れないが
IDも出ない板だし回答者はどーせ少数だから
トリップ付けられると目立ってかえって
ウザがられるだろうし
今回の場合、文体やリズムみて自演に見える
人のほうが珍しいんじゃね?
802デフォルトの名無しさん:2010/09/02(木) 02:55:30
>>761
お前はまだ根に持っているのかよw さすがに陰険だな。
お前、そうやって孤立したタイプだろ?引きこもりの臭いがぷんぷんすんぜ?
803デフォルトの名無しさん:2010/09/02(木) 15:01:58
( ^ω^) おっ?自作自演なんてしてないのに、見えない敵を相手に
噛み付く奴は気持ち悪いお^^ このスレもID制にして欲しいお^^
と言うことで、早くおいらに分かる数独のコードを書いてくれお^^
9x9の全パターンと、与えられた問題を解くプログラムを頼むお^^^
804デフォルトの名無しさん:2010/09/02(木) 15:02:55
( ^ω^) 何度も言うけどC言語で頼むお ^ω^
805デフォルトの名無しさん:2010/09/02(木) 16:20:58
自演乙
806デフォルトの名無しさん:2010/09/02(木) 16:22:46
( ^ω^) おっ?書いてくれと言っておいてネット上にあるコードを何で自分に対して
差し出すかお?そのコードが9x9の全パターンの出力が出来て、与えた問題を
解くコードなのか聞いているのにお? ^ω^
807798:2010/09/02(木) 16:42:48
てか自分で組めや
C言語だとそうとうメンドイと思うんでおすすめ
しないが.
808デフォルトの名無しさん:2010/09/02(木) 16:59:47
( ^ω^) ・・・、誰の命令も受けぬ。
809デフォルトの名無しさん:2010/09/02(木) 17:03:15
      t;; ::::::::::::::   :::::::::: ;;;;;;;;;;;;;;;;::::     iij}}}        ,,、 、,,,、j ,  、
       t;;; :::::::::: :  ::::::::::  {;;;;:::::::::::::      ;;;;|     ,,r'(v" '"  '"" "''"'j-
       t;;;;  :::::  ::::::::::  ii、::::::::::       iiリー、,   i、t vii
        t;;;;;;  :::  :::::::::: iiii::::::::::        ii}  ヽ, ( 从 ,,!!ヽiii,,,,,、z、
        t;;;;     ::::::::::: iii:::::::::::::       ijj  tt从ソ  リiハii ,,r,、-,,,"''''',,""
        ::|::;;;; :::::::::::::::::::::::::::iit:::::::::::::::     iii   ミ,/ i" i::リ}},,;;;;'-、ー'''"ラー
       :::::;i;;;;;;;  ::::::::::::::::::::::::iit::::::::::::: :::::  ,iii|   、,i j't-,i、iyiiYー|;;/7 辷ー
.       ヽ::;;;;;      :::::::::::::::iit:::::::::::::: :::::::  }}   :: |,リ ~'´'-)≧;r'旡-、,z,,之
       ヽ:::;;;;      :::: :: :::::::::t::::::::;;;;;;;:::::::iii  彡 ::リ;;| :::::r'",, ,r;;;"`'''" `'ii
       ヽヽ ;;    ::::::::::::::: ;;;;;:::::t::::::::;;;;;;::::::   彡彡i''| ::::'、;;;、);;      ツ,/r
        ヽヽ  :::::::::::::::::::::::: t;;;;、,;;i:::::::;;;;;;::::::::  ,,,イ''''" | |~'=ニ、,   ::""リ "ニ
         ヽヽ :::::::::::::::::::::::::::::ヽ;;;;;;;i} ''' 、;;}}} }i、  ;;;;;;;;iiii| i ~''''''''〉  ''""j'-、、、
          :::::::::::::::::::::::::::::: ::::::::ii;;;リ    "' """ "フ;;;;;;i '、ェ、 ,,ノ    ,ソ彡 ,,
           ;;;;;;;;;;;;:::::::::::::::::::::::::ii;;;i,         ii}}};;;i ~''-、"   ,,、- '";;;;彡}}}
             ;;;;;;;;;;;;::::::::::::::::::ii t     ,    iiリ;;~'' 、;;,、- ''":::'" iii}"  iiiii

我がソースコードに一行のエラー無し!
810デフォルトの名無しさん:2010/09/02(木) 17:40:32
(`・ω´・) もう良い、円周率を指定した小数点以下の桁まで求めるコードを教えろ。
811デフォルトの名無しさん:2010/09/02(木) 17:58:29
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int ac, char **av)
{
  char *pi = "3.14159265358979323846264338327950288419716939937510";
  char buf[512];
  int n = 0;
  printf("桁数を入力してください(1〜50): ?");
  fgets(buf, sizeof(buf), stdin);
  sscanf(buf, "%d", &n);
  if(n < 1 || n > 50) printf("範囲を超えています");
  else printf(pi[n + 1]);
  return 0;
}

// テストはしていません
812デフォルトの名無しさん:2010/09/02(木) 18:00:00
指定した小数点*以下*の桁まで

ってなんかおかしいよね(´・ω・`) 
813デフォルトの名無しさん:2010/09/02(木) 18:02:26
おかしくないよ。普通に言われているよ。小数点以上の方がおかしいし
それは整数と言えば良いことだがw
814デフォルトの名無しさん:2010/09/02(木) 18:04:25
>>811
ワロス
815デフォルトの名無しさん:2010/09/02(木) 18:05:56
自分の感覚が絶対正しい、認めないものは不適切としか思えない視野の狭い引きこもり ( ´,_ゝ`)プッ
そういう奴に限って、自分の言葉足らずを相手から指摘されて、誤解されて
理解されないことにファビョってキレる ( ´,_ゝ`)プッ
816デフォルトの名無しさん:2010/09/02(木) 18:09:27
円周率を10桁求めろ言ったら、整数部分の1桁と小数点以下の9桁となりますが?
たとえ1桁でも細けぇこたぁ〜と言うなら、お前がそういうことに対して、例えば
以上や超、以下と未満を軽視するような人間だと思われるだけ。
言葉の揚げ足を取ったつもりが、自分のいい加減さを露呈しただけに過ぎない。
おかしいと思うなら思えば?お前は他人の事をおかしく思っているだろうけど
他人から見ればお前の方がおかしいと思っている人は多いから。
例えば、こんなスレで主観で揚げ足を取っている引きこもりw
817デフォルトの名無しさん:2010/09/02(木) 18:14:56
>>790
ttp://codepad.org/OPCtafM5
・基本的に書きかけ
・CじゃなくてC++
・判明してる数字で、縦横および枠内の可能性を減らす
・可能性の減りを見て、有効なものを拾う
・可能性が二個か三個のとき、その並び方に注目して他を減らす
・カンタンな問題だけ解ける
>>467は難しすぎて解けない
818デフォルトの名無しさん:2010/09/02(木) 18:17:39
ttp://questionbox.jp.msn.com/qa1537503.html
表現そのものに対する意見と、それ自身が持つ意味とは別だが
小数点以下という表現は普通に使われている。これだから
ド田舎の地方人は・・・
819デフォルトの名無しさん:2010/09/02(木) 18:19:15
>>467
間取りは日本地図にしか見えない
820817:2010/09/02(木) 18:20:45
補足:
ttp://codepad.org/OPCtafM5
・165行目と166行目のコメントアウトが逆。

//model->at(r, col)->erase(n);
printf("delete %d %d\n", r, col);

↑こうじゃなくて、↓こう。

model->at(r, col)->erase(n);
//printf("delete %d %d\n", r, col);
821デフォルトの名無しさん:2010/09/02(木) 18:23:13
痴呆では小数点”以下”に違和感があるそうですw
では何と表現しているんでしょうか?地方限定で?w
822デフォルトの名無しさん:2010/09/02(木) 18:25:55
>>811
> else printf(pi[n + 1]);

それだと後半しか出ないw
  else printf((pi[n + 1] = 0, pi));
823デフォルトの名無しさん:2010/09/02(木) 18:28:11
自分が感じた違和感は他人にとって普通。自分の主観だけで物を言わないようにね。
特に痴呆特有の文化なんて、中央では受け付けられませんよ。
国に帰って子供でも指導してろ、カッペ
824デフォルトの名無しさん:2010/09/02(木) 19:03:56
なんかドキュメントに書いてることと真反対のこと言い出すとか、触っちゃいけないタイプの人に触っちゃったようだ
みなさんごめんなさい、もう終わりにします
825デフォルトの名無しさん:2010/09/02(木) 19:06:50
仕事中にあれを修正しようとかこれを実装しようとかやる気満々なのに、
帰ってきた途端やる気が無くなる現象を何と呼べばいい?
826デフォルトの名無しさん:2010/09/02(木) 19:19:11
倦怠期
827デフォルトの名無しさん:2010/09/02(木) 19:34:43
828デフォルトの名無しさん:2010/09/02(木) 23:12:02
現実逃避
829デフォルトの名無しさん:2010/09/03(金) 15:07:38
( ^ω^) おっ?何か盛り上がってないお^^
だから早く俺の指定した課題、吸う毒のコードを書けお^^
830デフォルトの名無しさん:2010/09/03(金) 23:03:04
( ^ω^) まだかお?待っている間にも刻一刻と時間が過ぎ去り
死ぬ日に近づいて生きられる時間が失われているお?^^
いつまでも生きていられないから、早く頼むお^^
831デフォルトの名無しさん:2010/09/04(土) 01:55:12
数独数独言いはじめてから今まで何日経ってるのか分からんが、そのあいだに作ることができたんじゃないの?
何度も確認してまだかとレスをするよりは少ないリソースで出来上がると思う
832デフォルトの名無しさん:2010/09/04(土) 02:30:34
>>830
誰も数独のCコードをまともに作らない理由は?
1)難しい
2)くだらない
3)Cじゃいやだ
4)その他(時間がない)
833デフォルトの名無しさん:2010/09/04(土) 02:38:31
一つ言えること。
数毒を自分の頭で解いてみて、アホらしい
と感じるようになれなければ書けない
834デフォルトの名無しさん:2010/09/04(土) 02:50:26
そんなことないよ。
解くだけでいいのなら、いつぞやのスレでも回答したけど、総当りで解ける。
総当りするとどんだけ膨大な時間かかるか分かってんのか!?とか鼻息荒い人もいたけど、
そんなことないっしょ、と思い回答し、やはり大した時間はかからずに解けたよ。
835デフォルトの名無しさん:2010/09/04(土) 03:22:52
1億桁の素数を求めよ
836デフォルトの名無しさん:2010/09/04(土) 03:37:32
解がある数毒の空欄を埋めて完成させるのは
そりゃできるっしょw
数毒の解答をすべて列挙しデータベース化
しろだろ
837デフォルトの名無しさん:2010/09/04(土) 03:44:12
つーか、問題を解く価値にはいささか疑問を感じざるを得ない
が、コードを巧く書く練習題材としては中々優秀じゃないかと
アルゴリズムの工夫以外にもデータ構造の工夫、書式の工夫
とか色々と訓練になる部分はある(こういうのは実際に
書いてみなければ得られない。他人のを読んで理解する
だけじゃダメ)
但し処女コードでもあるまいし行為自体は全く無意味。
たとえは極端に悪いがソープに通いつめるようなもの。
貴重な人生の一部分をこういうくだらないことに捧げて
悦に入りたいアホバカタコは繰り返し書いてみるのが良いのでは
ないかと。
838デフォルトの名無しさん:2010/09/04(土) 04:07:59
>>837
Hの練習とCコーディングは似たりてかw
案外と言えてるかもな


なわけねぇだろw
839デフォルトの名無しさん:2010/09/04(土) 04:10:14
我輩は無職である。まだ職歴は無い。
どこで人生を踏み外したか、とんと検討がつかぬ。
何でも、就職難の時代に成人を向かえ、必死に
職探しをしていたことは記憶している。
840デフォルトの名無しさん:2010/09/04(土) 04:12:22
見当だな。
841デフォルトの名無しさん:2010/09/04(土) 04:39:06
>>836
それは解答プログラムよりも難しいのかね?
842デフォルトの名無しさん:2010/09/04(土) 04:39:30
生まれた時点で既に..
と考えるのも一つの考えだが
職などを必死で探すような奴は絶対に
信用されないということもまた真実
(つ「職」何故耳へんになってる?)

あと
数毒のコード例で優秀なの見っけなのでURL紹介
JavaScriptだけどC移植はJavaよりか容易
ttp://www.kawa.net/works/js/game/ncross.html
843デフォルトの名無しさん:2010/09/04(土) 04:52:38
就社する奴<<<<<<<<<<<<<<<就職する奴<<<<<<<<<<<<<<<<<<<<<<<<<<無職
844デフォルトの名無しさん:2010/09/04(土) 07:18:16
40代無職職歴無し
845デフォルトの名無しさん:2010/09/04(土) 07:21:45
>>842
米欄がSPAMで埋め尽くされててワロス
846デフォルトの名無しさん:2010/09/04(土) 13:40:29
こっちのほうがマシかも
ttp://www.tokumaru.org/pazzle/sudoku.htm
同じくJSによるもの
.NET Frameworkについてるjscコンパイラで
コンソール対応にしてからCに移植ってのが楽そう
847デフォルトの名無しさん:2010/09/04(土) 19:16:25
だから移植とかしなくてもそこらにCのコード落ちてるってば
848デフォルトの名無しさん:2010/09/04(土) 19:23:23
具体的なURLとか貼付けはムリか?
849デフォルトの名無しさん:2010/09/04(土) 19:25:23
URLを貼るのは簡単でしょ。それよりも
( ^ω^) 吸う毒の全パターンを出力するコードを頼むお?^^
850デフォルトの名無しさん:2010/09/04(土) 19:42:31
ソースコード一覧
http://www.google.com/codesearch?q=Sudoku+lang:c

全パターン
http://doorgod.org/sudoku/

その他参考になるサイト
http://gugurekasu.com/
851デフォルトの名無しさん:2010/09/04(土) 19:46:26
>約 60 垓個(6 の後ろに 0 が 21 個並ぶ)通り
( ^ω^) ・・・、参ったお^^ スパコンで出力してもきつそうだお?^^
852デフォルトの名無しさん:2010/09/04(土) 21:40:56
なんで数独にこだわってんだ?
オセロの必勝法の方が良くね?
853デフォルトの名無しさん:2010/09/04(土) 22:26:55
そう言えばオセロが強い人って、最初は相手に取らせるんだよね。
そして相手が置く場所がなくなるようにする。そう、挟めないように。
854デフォルトの名無しさん:2010/09/05(日) 00:01:45
オタック25でも分かるけど、最初に真ん中を取っても
後から数少ない正解者に逆転されることがある。
855デフォルトの名無しさん:2010/09/05(日) 00:45:39
オセロは後手必勝で完全解析終了。
856デフォルトの名無しさん:2010/09/05(日) 01:05:00
8x8で完全解析されたの?興味あるからソースくれ
857デフォルトの名無しさん:2010/09/05(日) 01:27:27
この先自分がミスらなければ絶対勝てる (A)

この先相手がミスらない限り絶対勝てない

この先ミスっても絶対勝てる

この先相手がミスっても絶対勝てない
の4状態のいずれか
完全解析できた場合、先手か後手のどちらかは必ず
(A)の状態に持ち込めるが、ミスらないように判定
するアルゴリズムは到底無理。相手の手によって
変えなければならないから。
858デフォルトの名無しさん:2010/09/05(日) 01:38:18
解析結果を記録しとけば手を決定するのは簡単だろ
あと引き分けを忘れるな
859デフォルトの名無しさん:2010/09/05(日) 01:57:38
パーフェクトリバティーだっけ
860デフォルトの名無しさん:2010/09/05(日) 02:13:24
>>857
>解析結果を記録しとけば
絶望的に膨大
861デフォルトの名無しさん:2010/09/05(日) 03:42:03
>>860
そうだっけ?
2テラくらいあれば鏡像とか全無視しても余裕じゃね?
862デフォルトの名無しさん:2010/09/05(日) 11:49:15
>>861
3^64≒10^31 だからまだ足りない。
863デフォルトの名無しさん:2010/09/05(日) 11:51:00
>>862
最初の4石は埋まってる訳だが
864デフォルトの名無しさん:2010/09/05(日) 12:27:44
1024ビット=1Kビット
1048576ビット=1Mビット
1073741824ビット=1Gビット
1.099512x10^12ビット=1Tビット
1.124900x10^15ビット=1Pビット
1.152921x10^18ビット=1024Pビット

10^30ビットは何Tバイト必要?
865デフォルトの名無しさん:2010/09/05(日) 13:00:35
>>862
俺もそう考えたけど
実際には存在しない盤面が相当数あるから指数部がもっと小さくなる
866デフォルトの名無しさん:2010/09/05(日) 13:07:00
[1] 夏休み課題(大学専門課程)
[2] 8Queen問題を一般のn(>=1)に拡張する。
それぞれのnに対し
同一視をしない場合のパターン数
鏡映のみを同一視した場合のパターン数、
回転のみを同一視した場合のパターン数、
鏡映回転を同一視した場合のパターン数
を項目とする表にして出力するプログラム
列挙的に生成し内部に二分木を用いた簡易データベースで重複チェック
(対称同一視も含む)を行う方法で
結果はメモリの許す限りで出来るだけ大きなnに対して行うこと
ファイルは使用してはならない。
コードと結果を提出
[3] Linux,Gcc,C言語を想定(他のOS,C++言語でも可)
[4] 9/16まで
[5]処理速度よりも、結果の正しさとコードの「明晰」さを重視しします。
適当に書いて動かして他の人と結果が一致したといった程度では
十分に評価されません。速度をできるだけ落とさないで、コードの
清書作業は必ず行ってください。
867デフォルトの名無しさん:2010/09/05(日) 13:26:18
>>864
最初の4石が埋まってる時点で
鏡像とか全無視しても
単に3^60よりも範囲は随分狭くなる
868デフォルトの名無しさん:2010/09/05(日) 13:40:08
>>865
確かにそれはあるが、さてどのくらい限られてくるかを見積もる方法はないものか?
869デフォルトの名無しさん:2010/09/05(日) 13:42:58
最初の4石が埋まっている、という理由では、盤面は対して狭くならないと思われ。
870デフォルトの名無しさん:2010/09/05(日) 13:47:47
>>866
鏡映パターンは存在しないのでは?

>>867
   3^64 = 3433683820292512484657849089281
2^4*3^60 = 678258532403459256228710931216
これは随分と言っていいのか・・・
もちろん>>865を考慮するともっと減るけど
871デフォルトの名無しさん:2010/09/05(日) 14:11:20
>>870
お前あほやな
872デフォルトの名無しさん:2010/09/05(日) 14:14:45
ごめんあほだった
873デフォルトの名無しさん:2010/09/05(日) 16:45:46
約 60 垓個って、どんだけぇ〜
874デフォルトの名無しさん:2010/09/05(日) 23:32:46
パソコンレベルでオセロが完全な手を打ってくるのって何十年後になりそう?
875デフォルトの名無しさん:2010/09/06(月) 01:01:11
>>874
10年前。
876デフォルトの名無しさん:2010/09/06(月) 01:37:51
あれは十年前に
877デフォルトの名無しさん:2010/09/06(月) 09:01:57
ディープブルーはパソコンだったのか。
878デフォルトの名無しさん:2010/09/06(月) 09:05:44
そりゃチェスの世界チャンピオンに勝ったスパコンだ。
879デフォルトの名無しさん:2010/09/06(月) 09:16:40
>>878
自分で笑ったw
すまん、本当にチェスの話してるのかと思ってた。
880デフォルトの名無しさん:2010/09/06(月) 09:42:50
ロジステロだろ
881デフォルトの名無しさん:2010/09/06(月) 15:17:35
で、お前ら仕事は?
882デフォルトの名無しさん:2010/09/06(月) 15:19:59
無職ニート糖質童貞粘着
883デフォルトの名無しさん:2010/09/06(月) 15:23:23
>>881
ハローワークの求人が更新されるのは火曜日
いくら無職だからって一週間休みなしじゃ疲れるんだよ
884デフォルトの名無しさん:2010/09/06(月) 16:17:57
>>882 お前悲惨な人生を送ってるなw
なんでこのスレにいるの?これで稼げる仕事を探しているの?
885デフォルトの名無しさん:2010/09/06(月) 16:44:17
童貞 ニート 無職 引きこもり 子供だけが生き甲斐

全国に1000万人は居るだろ?
886デフォルトの名無しさん:2010/09/06(月) 18:24:40
18歳未満はすべからく童貞だろJK
887デフォルトの名無しさん:2010/09/06(月) 18:28:52
「かくいう私も童貞でね。」のAAを貼ってくれい。
888デフォルトの名無しさん:2010/09/06(月) 20:10:14
(+c+;;)
889デフォルトの名無しさん:2010/09/06(月) 23:23:26
        ,'   ヽ ',                  ,/    ',
       ,'.    ヽヽ              //      ヽ
      ,'        ヽ、         ,._='ヘ.!       ',
.      i  、      ヽ ヽ      ''"    !!         ',
     i  ヽ      `ヽ、 ` 、      ハ /´     i
     i   ヽ、       二ー 、ヽ     |! i _,,,,,,,,_  ノ
.     i.ヽ! ヽ   ヽ、     ,. ,.-=、、ヽヽ.   / !'""ー-   ,'
   i.!ヽ.ヽ、ヽ、 ヽ、ー-/  !::O:.i ヽ  -=/-/ 'T:::エヽ ,'
    !  ヽヽ  ヽ  ヽ、. `` ' ー ' '"/  /'  i 、    /',
.    !  , 〉 、 ヽ   ` 、 _  _ /_, ィ´   ! ` ー ´  !
   i  i  ノ ヽ  ヽ、       /´     i      !
.    ', ヽ !、 ヽ   ヽ、       ' .,. 、     !、     /
    ヽ  ヽ.'  ', ヽ、、 ヽ、      ,'         ',   ,イ
     ヽ   i  ', ヽ` 、 ` 、    '-‐‐、  ,.-〈   / i
       ',  ノ 、ヽ  ヽ 、`ー 、`ヽ      ̄  ',  ! i
       ".! ! ヽヽ  ヽ` ー 、`__ ' " `  -‐ 、  / .! i   かく言う私も童貞でね・・・
        i .!   ヽヽ、 `ヽ、 `` ー-`二ニ二>',   !
          ! i   ヽ、    ``ー- 、 _   _ ... '   /
         ! ヽ、   ヽ      ,.   ̄  、   /
890デフォルトの名無しさん:2010/09/07(火) 03:58:09

童貞問題は、NPだろうか?
891デフォルトの名無しさん:2010/09/07(火) 04:23:27
官庁体験で多項式オーダーで解決なのでPに属してるんじゃね?
892デフォルトの名無しさん:2010/09/12(日) 08:37:36
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):http://www.postimage.org/image.php?v=aVKu2Qr
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual C++
 [3.3] 言語:C言語
[4] 期限:9/12 16:00まで
[5] その他の制限: for()文while()文あたりまで学習しました。次の章が配列ですがまだ学習していません。
[6] コメント: 自力で解いてみたのですが(b)移行が解りませんでした。
(a) for(i=1; i<=3; i++) printf("+");
(b),(c),(d) 解らない。
893デフォルトの名無しさん:2010/09/12(日) 09:24:09
(b)
for(j = i % 4 + 1; j > 0; j--) printf("+");
printf("\n");
(c)
#include <stdio.h>
int main(void)
{
int i, j;
for(i = 0; i < 8; i++) {
for(j = i % 4 + 1; j > 0; j--) printf("+");
printf("\n");
}
return 0;
}
(d)
#include <stdio.h>
int main(void)
{
int i, j, n;
scanf("%d", &n);
for(i = 0; i < n; i++) {
for(j = i % 4 + 1; j > 0; j--) printf("+");
printf("\n");
}
return 0;
}
894デフォルトの名無しさん:2010/09/12(日) 09:28:10
>>893
速い回答ありがとうございます!
参考に学習したいと思います。
895デフォルトの名無しさん:2010/09/12(日) 20:43:45
2次元配列を使って、魔法陣を作るプログラムなんですが、
箱を作って、1〜9まで入れるところまではできたのですが、どうしても
好きなところに配置することが出来ません
12時頃からやっているのですが、未だ出来ません
出来れば、自力で解きたかったのですが、他の宿題もあるので、あきらめます
誰か、解説お願いします


http://wannabees.hp.infoseek.co.jp/cgi-bin/upload/src/wu0979.txt
896デフォルトの名無しさん:2010/09/12(日) 21:31:06
>>895
魔法陣って何だよ。
最終的にどうなったら正解なのかわからん。
897デフォルトの名無しさん:2010/09/12(日) 21:36:27
知らない人は答えなくていいです
898デフォルトの名無しさん:2010/09/12(日) 21:50:40
魔「方」陣のことだろ?
3×3とかの空欄に数字を入れて、縦・横・斜めの合計がどれも同じになるやつ。
899デフォルトの名無しさん:2010/09/12(日) 21:53:28
グルグルじゃないのかw
900895:2010/09/12(日) 22:07:02
すいません補足します

>>898
さんの言うとおりです。説明不足でした

http://uploader.sakura.ne.jp/src/up16156.jpg

それと897は俺じゃありません
901デフォルトの名無しさん:2010/09/12(日) 22:07:14
魔方陣列挙は数独より難しいだろ
902デフォルトの名無しさん:2010/09/12(日) 22:07:37
厳密に言うと「奇数」魔方陣やな。どの列、行、対角線の合計が同じってやつ。
903デフォルトの名無しさん:2010/09/12(日) 22:08:17
>>901 いや、数独より楽だわw
904デフォルトの名無しさん:2010/09/12(日) 22:15:11
>>901
偶数次数では奇数の場合と違って一般的に使える
生成手順が見つかってないからな
数独の問題解答なんてそれに比べればずっと楽
数独の解答の全体の列挙は知らんが
905デフォルトの名無しさん:2010/09/12(日) 22:17:46
>>904
偶数でも一通りは簡単に出来るだろ
列挙はしらんけど
906デフォルトの名無しさん:2010/09/12(日) 22:19:19
>>902
1~N^2で構成されたN^2個の自然数がNxNマスの中に一つずつ配置
されており、縦横どの和も同じN(N^2+1)/2になるような配置の
全体を求める問題
907デフォルトの名無しさん:2010/09/12(日) 22:22:43
そもそも、ありうる回答を全部を列挙するって課題じゃないよな。
908デフォルトの名無しさん:2010/09/12(日) 22:29:29
>>895
>next_x = cur_x++;
>next_y = cur_y--;
909デフォルトの名無しさん:2010/09/12(日) 22:32:18
>>908
えっと、すいませんどう言う事ですか
その2つが間違ってるということですか?
910デフォルトの名無しさん:2010/09/12(日) 22:34:36
いや、奇数魔方陣の解き方は出ているんだが・・・
その順番通りに数字を入れていけば良い訳だろ?
まさか、入れた数字の合計を計算して、すべて一致するものを
全パターンから探そうとしてないか?w
例えそうでも数独より時間は掛からないけどなw
911デフォルトの名無しさん:2010/09/12(日) 22:42:46
>>910
あの空欄に回答を入れるのが課題です
それで、あの中身が分からなくて困っているのです

その数字が分からないのです
912デフォルトの名無しさん:2010/09/12(日) 22:51:44
>>909
その2つが間違ってるんだよ
それだとcur_xとnext_x、cur_yとnext_yが同じになってしまう

next_x = ++cur_x;
next_y = --cur_y;
にすれば全部のマスが埋まるようになる
913デフォルトの名無しさん:2010/09/12(日) 23:14:05
>>912
ありがとうございます

ただ、あと少しなんすよ
数字がズレちゃって
http://www1.axfc.net/uploader/Sc/so/152716
914デフォルトの名無しさん:2010/09/12(日) 23:24:38
 for(no = 2; no <= 3*3; no++)
 {
  next_x = cur_x+1; /* 変更 */
  next_y = cur_y-1; /* 変更 */
/* 中略 */
  if((hairetu[next_y][next_x]) != 0) //セルが埋まっている
  {
   next_x = cur_x; /*変更*/
   next_y = cur_y + 1; /*変更*/
  }
915デフォルトの名無しさん:2010/09/12(日) 23:31:08
>>913
exeあげんなw
916デフォルトの名無しさん:2010/09/12(日) 23:34:25
>>915
すいません

417
852
396

この状態です
917デフォルトの名無しさん:2010/09/12(日) 23:37:21
>>895>>912に修正すればそんな結果にはならないはずだが
答えとしては>>914の方がいいけど
918デフォルトの名無しさん:2010/09/12(日) 23:44:07
>>914
>>917
すいません、オートリロードで自動で既読になってて
見逃してました

http://www.dotup.org/uploda/www.dotup.org1143538.png


みなさんありがとうございました
もう一つの課題も、あと30分ほどで終わりそうです

これで、何とか単位落とさずにすみそうです

本当にありがとうございました
919デフォルトの名無しさん:2010/09/14(火) 14:21:45
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):三角形の各辺の値を入力し、それぞれの内角を表示するプログラムを作成せよ
[3] 環境
 [3.1] OS:Windows (Cygwin使用)
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 2010年09月17日 まで
[5] その他の制限: とくに無いです。

上記の問題のプログラムを作成していただきたいです。
どうかよろしくお願いします。
920デフォルトの名無しさん:2010/09/14(火) 14:48:11
#include <stdio.h>
#include <math.h>

int main(void)
{
double a, b, c;
double A, B, C;

scanf("%lf%lf%lf", &a, &b, &c);

if(a + b <= c || b + c <= a || c + a <= b) return 0;

A = acos((b * b + c * c - a * a) / (2 * b * c));
B = acos((c * c + a * a - b * b) / (2 * c * a));
C = acos((a * a + b * b - c * c) / (2 * a * b));

printf("%f %f %f\n", 180 * A / M_PI, 180 * B / M_PI, 180 * C / M_PI);

return 0;
}
921デフォルトの名無しさん:2010/09/15(水) 00:03:52
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):
[3] 環境:n個のデータを入力して、最大値と最小値を求めるプログラムを作りなさい。ただし、入力データは配列に格納して処理すること。
 [3.1] OS: linux
 [3.2] コンパイラ:gcc 3.4
 [3.3] 言語: C
[4] 期限: [無期限]
[5] その他の制限:関数を使用して配列を渡す

ポインタを使って配列を渡すとこまでは分かったのですがそれ以降の使い方が分かりません・・
よろしくお願いします。
922デフォルトの名無しさん:2010/09/15(水) 00:08:05
ほとんどの問題はもう概出なんだよな
過去ログ嫁
で終わっちゃう
923 ◆QZaw55cn4c :2010/09/15(水) 00:17:48
924デフォルトの名無しさん:2010/09/15(水) 00:24:11
>>921
素早い解答ありがとうございます!

自分でここまで作ってみたのですが、最小値がかなり変な数字になります(-858993460)
どこが間違ってるのでしょうか?

http://codepad.org/bK1xfNJD
925デフォルトの名無しさん:2010/09/15(水) 00:24:45
っとミスです・・
>>924>>923宛です
926デフォルトの名無しさん:2010/09/15(水) 00:29:21
>>924
数値は入力した?
927デフォルトの名無しさん:2010/09/15(水) 00:37:12
>>926

数値を入力して動かしてみたのですが、最大値は正常に表示されます。
ですが、最小値がいつも同じ値(-858993460)になります・・・
928デフォルトの名無しさん:2010/09/15(水) 00:42:56
参考までに実行時の画像です

http://www1.axfc.net/uploader/Img/so/94447
929デフォルトの名無しさん:2010/09/15(水) 00:43:57
>>924
せっかくつくった input() を呼び出していないのではないでしょうか。
930デフォルトの名無しさん:2010/09/15(水) 00:44:06
>>927
input() が呼ばれてないように見えるのは俺だけか?
931デフォルトの名無しさん:2010/09/15(水) 00:49:55
あう、すみません。
コード上げる際に綺麗に直してたら入れ忘れてました・・orz
こっちが最新版です

http://codepad.org/11ge54jV

最大値は正常に動いてる分謎すぎます・・
932デフォルトの名無しさん:2010/09/15(水) 00:51:02
scanf禁止
933デフォルトの名無しさん:2010/09/15(水) 00:55:17
getchar() や fgets にEOF禁止
934デフォルトの名無しさん:2010/09/15(水) 00:57:35
>>931
input() のなかで手に入れた size を main() になんらかの方法でもどして、
get_max() や get_min() に渡してやらないといけないのでは?
今は N = 101 が get_max()/get_min() にわたっています。
935デフォルトの名無しさん:2010/09/15(水) 01:10:08
>>931
void input(int *iNum,const int size)を
int input(int *iNum)にして、
最後にreturn n;して、
mainで
const int size=sizeof(iNum)/sizeof(iNum[0]);を
int size;にして
呼び出しを、size = input(iNum);にする
936デフォルトの名無しさん:2010/09/15(水) 01:26:03
>>935

おおおおお!できました!ありがとうございます!
一応完成版上げときました。
http://codepad.org/DBcRuavR
937デフォルトの名無しさん:2010/09/15(水) 02:00:41
細かいけど for(i=0;i<size;i++) は for(i=1;i<size;i++) でいい
938デフォルトの名無しさん:2010/09/15(水) 22:33:36
>>937
sizeにはデータ件数が入るから、0から回さないと不味くね?
939デフォルトの名無しさん:2010/09/15(水) 22:41:33
ふぅん
940デフォルトの名無しさん:2010/09/15(水) 22:51:20
どう不味いのかよく分からんから説明ヨロ
うまくいかないテストケースも書いてもらえるとありがたい
941デフォルトの名無しさん:2010/09/15(水) 23:00:15
>>940
#include<stdio.h>

int main()
{
int iNum[10];
int i,n;

printf("要素数は?\n");
scanf("%d",&n);
if(n>10) exit(0);
printf("要素の数だけ数字を入れて下さい\n");
for (i=1;i<n;i++){
printf("[%d]=",i);
scanf("%d",&iNum[i]);
}
for (i=1;i<n;i++){
printf("[%d]=[%d]\n",i,iNum[i]);
}
return 0;
}
942デフォルトの名無しさん:2010/09/15(水) 23:54:59
なんか勘違いしてる
11行目と28行目の for(i=0;i<size;i++) だぞ
943デフォルトの名無しさん:2010/09/15(水) 23:58:59
>>942
それなら、行番号も書かなきゃ
944デフォルトの名無しさん:2010/09/16(木) 00:04:33
つ grep
念のため言っとくが48行目はマッチしないからな
945デフォルトの名無しさん:2010/09/16(木) 00:05:51
>>944
書くなら、誤解されないように書いた方がいいよねw
946デフォルトの名無しさん:2010/09/16(木) 00:09:13
素直に自分が間違ってたって認めようぜ
947デフォルトの名無しさん:2010/09/16(木) 00:10:32
>>946
どこを直したらいいかを書くときに
誤解を受けないような書き方をした方がいいよねw
948デフォルトの名無しさん:2010/09/16(木) 07:06:06
>>938=>>941はnとsizeの区別もつかないバカってことか?
949デフォルトの名無しさん:2010/09/16(木) 10:17:57
本物のバカは直ぐに他人をバカ認定する
950デフォルトの名無しさん:2010/09/16(木) 10:22:44
バカなことしてバカって言われたら、バカっていうほうがバカなんだ言い返せばオッケーってことかw
951デフォルトの名無しさん:2010/09/16(木) 13:21:04
自分の非を認められないのは子供
952デフォルトの名無しさん:2010/09/16(木) 13:58:35
だよな
>>938も素直に自分の勘違いをみとめてりゃよかったのになw
953デフォルトの名無しさん:2010/09/16(木) 14:33:13
だいたい0でも問題ないし
954デフォルトの名無しさん:2010/09/16(木) 14:45:47
ふぅん
955デフォルトの名無しさん:2010/09/16(木) 17:05:05
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク):入力した文字列の中に
指定した文字が含まれていればその文字が左から何文字目にあるかを表示し、
指定した文字がなかった場合は-1と表示する関数を作成せよ。
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: visual studio
 [3.3] 言語: C言語のみ
[4] 期限: [2010年09月21日まで]
[5] その他の制限: 関数名はint str_char(const char str[], int c)で作ること
956デフォルトの名無しさん:2010/09/16(木) 17:20:00
int str_chr(const char str[], int c)
{
int i;

for(i = 0; str[i]; i++) if(str[i] == c) return i;

return -1;
}
957955:2010/09/16(木) 17:21:14
>>956
ありがとうございます。
958デフォルトの名無しさん:2010/09/16(木) 17:23:36
っと表示する関数か
int str_chr(const char str[], int c)
{
int i;

for(i = 0; str[i]; i++) {
if(str[i] == c) {
printf("%d\n", i);
return i;
}}

printf("-1\n");
return -1;
}
959デフォルトの名無しさん:2010/09/16(木) 17:24:57
>>955
int str_char(const char str[], int c) {
int index;
for (index = 0; str[index] != '\0'; index++) {
if (str[index] == c) return index;
}
return -1;
}
960959:2010/09/16(木) 17:26:02
>>956-958
うわーリロードしてなかったゴメン。
961デフォルトの名無しさん:2010/09/16(木) 17:26:31
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク):入力した文字列の中に
指定した文字がいくつあるか表示し、
指定した文字がなかった場合は0と表示する関数を作成せよ。
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: visual studio
 [3.3] 言語: C言語のみ
[4] 期限: [2010年09月21日まで]
[5] その他の制限: 関数名はint str_chnum(const char str[], int c)で作ること
連続ですみませんが、よろしくお願いします。
962デフォルトの名無しさん:2010/09/16(木) 17:28:18
>>955
ttp://codepad.org/QPK8jHFF

一番左は1文字目だろ
963デフォルトの名無しさん:2010/09/16(木) 17:31:04
>>961
// 指定した文字がいくつあるか表示し、 指定した文字がなかった場合は0と表示
// ↑表示は無視
int str_chnum(const char str[], int c) {
int sum = 0;
char *p;
for (p = str; *p != '\0'; p++) {
if (*p == c) sum++;
}
return sum;
}
964デフォルトの名無しさん:2010/09/16(木) 17:43:44
958 959 962さんもありがとうございます。
963さん、助かります。
965デフォルトの名無しさん:2010/09/16(木) 17:52:54
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク):
void put_string(const char str[])
{
  unsigned i = 0;

  while (str[i])
    putchar(str[i++]);
}
上の関数と同じ動きする関数をputcharではなくprintfを用いて作成せよ。
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: visual studio
 [3.3] 言語: C言語のみ
[4] 期限: [2010年09月21日まで]
[5] その他の制限:なし
一人でたくさん投稿してすみません。
課題が8つ出たので今のが3つ目です。
よろしくお願いします。
966963:2010/09/16(木) 17:56:22
修正:
char *p;

const char *p;
967デフォルトの名無しさん:2010/09/16(木) 18:04:07
>>965
void put_string(const char str[])
{
  printf("%s", str);
}


printf(str);
だと間違い。
968デフォルトの名無しさん:2010/09/16(木) 18:04:35
残り全部まとめて出したほうが面倒がなくていいと思うよ
969デフォルトの名無しさん:2010/09/16(木) 18:06:22
まとめて出したら答えないよ
970デフォルトの名無しさん:2010/09/16(木) 18:07:33
>>966
了解です。

>>967
ありがとうございます。
971デフォルトの名無しさん:2010/09/16(木) 18:11:19
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク):
void put_string(const char str[])
{
  unsigned i = 0;

  while (str[i])
    putchar(str[i++]);
}
上の関数をもとに、入力された文字列を逆に表示する関数を作成せよ。
例:ABC→CBA
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: visual studio
 [3.3] 言語: C言語のみ
[4] 期限: [2010年09月21日まで]
[5] その他の制限:なし
課題4つ目です。
よろしくお願いします。

972971:2010/09/16(木) 18:12:34
追加します。
関数名はput_rstringでお願いします。
973デフォルトの名無しさん:2010/09/16(木) 18:14:05
>>967
こうしないとUINT_MAXを超えたときの挙動が変わっちまうだろ?

void put_string(const char str[])
{
  unsigned i = 0;

  while (str[i])
    printf("%c", str[i++]);
}
974デフォルトの名無しさん:2010/09/16(木) 18:16:55
>>971
int put_rstring(const char str[]) {
unsigned i = 0, tail = strlen(str) - 1;
while (str[tail - i])
putchar(str[tail - i++]);
}
975974:2010/09/16(木) 18:22:14
>>971
// 変数一個減らしてみた。けど、ちょっと流れは不自然かも。
int put_rstring(const char str[]) {
unsigned i = strlen(str);
while (i)
putchar(str[--i]);
}
976デフォルトの名無しさん:2010/09/16(木) 18:23:37
977デフォルトの名無しさん:2010/09/16(木) 18:24:30
>>971
void put_rstring(const char str[])
{
unsigned i = 0;

while(str[i]) i++;

while(i--) putchar(str[i]);
}
978デフォルトの名無しさん:2010/09/16(木) 18:26:14
>>974
ダメ
>>976
ダメ
979デフォルトの名無しさん:2010/09/16(木) 18:29:53
>>978
どれならいいの?
980デフォルトの名無しさん:2010/09/16(木) 18:35:25
いやダメと言われても
981デフォルトの名無しさん:2010/09/16(木) 18:36:36
ダメな理由を書いてほしいな
982デフォルトの名無しさん:2010/09/16(木) 18:37:14
>>974
終了条件をよく考えましょう

>>978
どこから表示してるのかよく考えましょう
983デフォルトの名無しさん:2010/09/16(木) 18:38:15
>>978じゃなくて>>976
984974:2010/09/16(木) 18:39:27
>>978
unsigned i = 0, tail = strlen(str) - 1;
while (str[tail - i])

あー。こういうのは長さがゼロのときマイナス行っちゃうからダメなのか。
unsigned int で4294967295。
こちらの環境ではうまくいってるのは偶然か。
985デフォルトの名無しさん:2010/09/16(木) 18:41:52
長さが0とかじゃなく、文字列先頭の1文字前には何が入ってるか決まってないから
986デフォルトの名無しさん:2010/09/16(木) 18:42:47
>>983
>>976 は CBA と表示されてるだろ?
何が言いたいのかわからん。
987デフォルトの名無しさん:2010/09/16(木) 18:43:58
>>985
先頭の一文字前に行くの?
今の段階では strlen("") - 1のとき、
str + 4294967295を見ると思ってるけど、そうはならないのかな。
988デフォルトの名無しさん:2010/09/16(木) 18:48:04
[1] 授業単元:C基礎実習
[2] 問題文(含コード&リンク):ユーザーが入力できるr行s列の行列Xとt行y列の行列Yの掛け算を計算するプログラムを作成しなさい。尚、ポインタを使用して計算すること
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC++ 2008
 [3.3] 言語: C
[4] 期限: 9月22日
[5] その他の制限: 必ずポインタを使う事と、任意の数をユーザーが入力できること

#include <stdio.h>
int main(void){
int a[][4]={{1,2,3,4},{5,6,7,8}};
int *b;
int sum[2], i, j;

b=a[0];
printf("&a[0][0]= %u, a[0]= %u\n", &a[0][0], a[0]);
sum[0]=sum[1]=0;
for(i=0; i<2; i++){
for(j=0; j<4; j++){
sum[i] += *(b+4*i+j);
}
}

printf("sum[0]= %d, sum[1]= %d\n", sum[0], sum[1]);
}

任意の数を入力させない場合はできたのですが、任意の数を読み込ませる形がわかりません・・・お願いします
989デフォルトの名無しさん:2010/09/16(木) 18:51:26
>>986
> while (str[i++]);
これが終了するときのiの値をよく考えてみましょう

>>987
char str[] = "abcdef";

put_rstring(str + 3);

って試してみましょう

990デフォルトの名無しさん:2010/09/16(木) 18:55:32
991デフォルトの名無しさん:2010/09/16(木) 19:00:40
>>989
unsigned 分かってなかった…。
char cs[] = "abcdef", *p = cs + 3;
unsigned ui = - 1;
printf("ui u[%u], d[%d]\n", ui, ui);
printf("cs[%s], p[%s]\n", cs, p);
printf("p[-1] = [%c]\n", p[-1]);
printf("p[ui] = [%c]\n", p[ui]);

ui u[4294967295], d[-1]
cs[abcdef], p[def]
p[-1] = [c]
p[ui] = [c]
992デフォルトの名無しさん:2010/09/16(木) 19:01:07
>>965
問題が有り得ないな、逆なら判るけど
993デフォルトの名無しさん:2010/09/16(木) 19:02:27
っていうかどこで止まるつもりだったんだよ
994デフォルトの名無しさん:2010/09/16(木) 19:08:19
>>989
>>976 は正しい様に思えるよ
putchar( str[--i] ); が putchar(str[i--]); なら間違いだけど
995デフォルトの名無しさん:2010/09/16(木) 19:11:52
>>994
なんで>>990で何も言わずに修正したのか理解できていません

while(str[i++]);
このループが終了したとき、str[i]は文字列終端の一文字後ろ指します
そして
putchar(stt[--i]);
の最初は、そこから一つ前、すなわち文字列の終端である'\0'になります
996デフォルトの名無しさん:2010/09/16(木) 19:16:16
失礼、>>990 見てなかった、ちょっと吊ってくる
997デフォルトの名無しさん:2010/09/16(木) 19:18:30
C/C++の宿題片付けます 140代目
http://hibari.2ch.net/test/read.cgi/tech/1284632294/
998デフォルトの名無しさん:2010/09/16(木) 19:19:05
ところで次スレ大丈夫?
999デフォルトの名無しさん:2010/09/16(木) 19:19:55
1000デフォルトの名無しさん:2010/09/16(木) 19:19:57
>>997
よくやった!乙!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。