C/C++の宿題片付けます 139代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/08/01(日) 18:01:51【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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/
0002デフォルトの名無しさん
2010/08/01(日) 18:07:04これが理解できない精神レベルの低いお子ちゃまが多いですね。
回答者のレベルが低いこともあって、このスレ痛すぎ
0003デフォルトの名無しさん
2010/08/01(日) 18:10:480004デフォルトの名無しさん
2010/08/01(日) 18:57:080005デフォルトの名無しさん
2010/08/01(日) 18:59:15ノイズが多すぎるから誰か未解決の問題まとめてくれ
http://pc12.2ch.net/test/read.cgi/tech/1279286575/955
http://pc12.2ch.net/test/read.cgi/tech/1279286575/735
http://pc12.2ch.net/test/read.cgi/tech/1279286575/931 にヒントあり。
http://pc12.2ch.net/test/read.cgi/tech/1279286575/926
http://pc12.2ch.net/test/read.cgi/tech/1279286575/718
http://pc12.2ch.net/test/read.cgi/tech/1279286575/724
http://pc12.2ch.net/test/read.cgi/tech/1279286575/727
こんなところでしょうか。
0007デフォルトの名無しさん
2010/08/01(日) 19:27:35普通に世に出回っている製品で使われていることもありますよ。
だから世界的な標準規格の話も出てくる。そもそも、自分が日頃使っている
電子機器だって、チップや基板、固定に使われているネジにしろISO準拠の
規格のものを普通に見かけるんだが?いかに自分が既成の共通したものを
使っているかという自覚が無いか、思い知っただろ。視野が狭すぎ。
そこまでゴネるなら、大きな組織になって独自の仕様でも世界に押し付けたら?
まずより多くの人が認めてくれないだろうから、採用されずに廃れるだろうね。
たとえゲーム会社が独自のゲーム機を開発しようが、出力するモニタだって
特別なものでもなかろう。任天堂のDSはPSPみたいに外部出力は出来ないがw
0008デフォルトの名無しさん
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] その他の制限:特にないです。よろしくお願いいたします。
0009デフォルトの名無しさん
2010/08/01(日) 20:31:04統計すら分からない医者にかかりたくないから
遠慮なく留年してくれ
0010デフォルトの名無しさん
2010/08/01(日) 22:52:50C言語文法に強い影響を与える人たちの意向よりも、
CPUメーカーの意向のほうに影響されやすいことは否めません。
数多あるプロセッサに出来るだけ広く対応し、また対応を
せざるを得ないC言語のおかれた特殊な歴史と深い関係がある話
になってきます。
ただCPUメーカーや関連ハードウェア規格には*NIXを中心とした
分散端末システム業界は非常に強い影響力を与えている筈なので
頭から否定すべきことであるとも言い切れません。
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 で詳しく説明しておきましたからよく読んでくださいね。
0012デフォルトの名無しさん
2010/08/02(月) 00:09:05日本語の読めなさレベルも同程度なんだし
0014デフォルトの名無しさん
2010/08/02(月) 00:15:00[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[] )等は禁止
以前もお世話になりました いまいちどよろしくお願いいたします
0015デフォルトの名無しさん
2010/08/02(月) 00:19:200016デフォルトの名無しさん
2010/08/02(月) 00:24:04の問題の制限は、>>14自身に与えられた制限であり
代行者のコードを書き写す時に>>14がそれを実行すべきと
認定されました。よって代行者の方はそれを守る必要は
ありません。(守っても構いませんが)
0017デフォルトの名無しさん
2010/08/02(月) 00:26:50int main (void) { return int型; } と書いて抵抗してやれw
0018デフォルトの名無しさん
2010/08/02(月) 02:22:19void main指定とか、どこの学校だ?講師がバカ過ぎ。
どうせこのスレを見て、自分のスタイルが否定されてムキになったバカ講師が
おかしな制限をつけて課題を出したんだろうけど。
低レベルな生徒しか卒業しないから、ブラックリスト入り決定だから
そんな課題を出した学校名を教えてくれ。
0019デフォルトの名無しさん
2010/08/02(月) 03:11:59int main(void)と書かれたら困るからと、勝手につけた制限かもしれないよ。
そんなんで悩むなよと思わなくもないし、この問題でargc argv envpを使う用途がないだろ。
0020デフォルトの名無しさん
2010/08/02(月) 04:48:31多分枯れてるから、バグは無いと覆うお
新しく書き起こすソースは、チェックしてくれると助かるよね。
人間、本人が思っているほど完璧ではないしね。
0021デフォルトの名無しさん
2010/08/02(月) 05:06:40ttp://oshiete.goo.ne.jp/qa/2445252.html
↑でも質問をする人がいるが、色々と説がある。
まぁこのスレではもう解決済みだがね。あくまでも
標準スタイルでの条件付で。
0022デフォルトの名無しさん
2010/08/02(月) 05:20:54って書かれているけど、具体的に何に使ってるの?
void mainって書いててもイマイチ何も変わらないから分からんorz
0023デフォルトの名無しさん
2010/08/02(月) 06:25:25自分で答える自作自演の始まりです!
0024デフォルトの名無しさん
2010/08/02(月) 07:20:33ちなみに医者にはなりません。
0025デフォルトの名無しさん
2010/08/02(月) 11:21:27その後10数年Cは触ってないの?
>>22
成功したかどうかを判断するのに使う
0026デフォルトの名無しさん
2010/08/02(月) 11:23:38「どのような基準で、病気にかかっている/かかっていないを判断」
これについてはどう考えてるの?丸投げ?
0027デフォルトの名無しさん
2010/08/02(月) 11:24:05>>699さんありがとうございました
0028デフォルトの名無しさん
2010/08/02(月) 11:25:590029デフォルトの名無しさん
2010/08/02(月) 11:34:08読み込みはやったけど、何の法則を使ったらいいのか俺にはよくわからない。
http://ideone.com/8Bn9a
0030デフォルトの名無しさん
2010/08/02(月) 11:52:21makeコマンドのmainの戻り値はよく使うな
0031デフォルトの名無しさん
2010/08/02(月) 12:00:34純粋に質問なんだが、
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;
}
で行けそうだし(未確認ですまん)、
余計な代入が無いからスカッとしそうだけど。
0032デフォルトの名無しさん
2010/08/02(月) 12:07:45ttp://www1.axfc.net/uploader/Sc/so/139977.jpg
プログラミングの問題っていうよか
統計の問題だな。
で、>>24はこの分布をどういう風に処理したいの?
教えてくれれば実装するし、
分からなきゃ統計をもう一度やり直してくれ。
0033デフォルトの名無しさん
2010/08/02(月) 12:23:21コピペしただけだから流儀とかはない。
その指摘部分は正しくは↓な感じだな。
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;
}
0034デフォルトの名無しさん
2010/08/02(月) 13:18:222群なら一番簡単なのは判別分析かな
http://ideone.com/fSyKg
参考はココ
http://aoki2.si.gunma-u.ac.jp/lecture/Discriminant/disc2.html
行列計算は面倒なんでライブラリ使った
http://sourceforge.net/apps/wordpress/itpp/
使い方はググレばたくさん出てくるから割愛
面倒なら自分で行列クラスとガウス式書くのも有り
2×2行列だから、LU分解でも問題ないはず
0035デフォルトの名無しさん
2010/08/02(月) 13:45:48勝手にconst外さないでください
0036デフォルトの名無しさん
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つのプログラムを作成していただきたいです。
よろしくお願いします。
0037デフォルトの名無しさん
2010/08/02(月) 16:52:06俺なら何もしてやりたくはない。
0038デフォルトの名無しさん
2010/08/02(月) 17:10:43#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;
}
0039デフォルトの名無しさん
2010/08/02(月) 18:38:26説明すら意味を理解していない。コードを書いて実行すれば分かるのに。
どんな劣悪な環境で甘んじているのか知らんが、余程貧しい地方の
学校なんだろうねw
0040デフォルトの名無しさん
2010/08/02(月) 19:03:57>任意の数値xを小数点以下第n位で四捨五入する作れ(nは任意)
の一文において、“する”と“作れ”の間に“プログラムを”が抜けてるってことだろ。
コードを書いて実行すればわかるとかって問題じゃない。
ああ、日本語通じない人にはわかるわけねーか
0041デフォルトの名無しさん
2010/08/02(月) 19:04:47レベルが低いんだよ!プログラミングに関しても、人間性もw
0042デフォルトの名無しさん
2010/08/02(月) 19:32:43こうなると長いぞ皆の衆。
0043デフォルトの名無しさん
2010/08/02(月) 19:45:22コンパイラにgccって書いてあることにカキコしてから気がついたスマン
まぁ、IT++はgccでも使えるんで大丈夫なはず リンクが面倒だけど
>>35
>任意の数値xを小数点以下第n位で四捨五入する作れ(nは任意)
http://f4.aaa.livedoor.jp/~pointc/log887.htmlを発展させればできると思われる
答えてばかりじゃツマランので俺もなんか質問してみようかしら
0044デフォルトの名無しさん
2010/08/02(月) 19:47:17大したこと無いくせに長年、プログラムの授業で講師をやっていた講師だろ?
大人気ない、恥ずかしい奴よのぉ〜
0045デフォルトの名無しさん
2010/08/02(月) 19:59:210046デフォルトの名無しさん
2010/08/02(月) 20:02:18どんな言い逃れもせずに男らしく、
コードの美しさでみんなを黙らせて見せて欲しいw
お腹が痛いとか今調子悪いとか、お前らと違って時間が無いとか、
そーいうのもういいから。もう沢山だから。
0047デフォルトの名無しさん
2010/08/02(月) 20:03:560048デフォルトの名無しさん
2010/08/02(月) 20:17:06ggった方が聞くより早いんじゃね?
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;
}
004936
2010/08/02(月) 20:18:060051デフォルトの名無しさん
2010/08/02(月) 21:03:45つhttp://pc12.2ch.net/test/read.cgi/tech/1279286575/721
0052デフォルトの名無しさん
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使用により、デフォルトはリトルエンディアンとなっている
ソケット通信で使われるそうです。よろしくお願いします
0053前スレより
2010/08/02(月) 21:10:24[1] プログラミング宿題
[2]
XY平面において座標値(x,y)のうちx,yのどちらか一方は少なくとも非負整数であるような点を
格子と呼ぶ。両方が非負整数の点を格子点と呼ぶ。
N>=1としコマンドラインでN個の格子点が与えられるものとする。
(同じ点が与えられた場合はその指定は無視する)
(0,0)から出発し格子上だけを通りすべての指定された格子点を1回ずつ通り(0,0)に戻り、なおかつ
同じ点は2度とおらないような経路で最短なものを一つ抽出するプログラムを作成
但し経路において右折が出来ないものとする。
解が無い場合は「不能」と表示すること。(最短経路解が複数あっても、抽出は一つのみで良い)
[3] Linux/GCC/ C/C++どちらでも可能
[4]9/16
0054デフォルトの名無しさん
2010/08/02(月) 21:41:45格子点 ⊆ 格子として考えて良いの? でもそれだと格子要らないよね
頭の悪いダイクストラを使って N * ((N - 1) ! - 1) 回、2点間の距離を求めさせればできそう
0055前スレより追加
2010/08/02(月) 22:24:16問題文に不備がありました。訂正します。
×但し経路において右折が出来ないものとする
○但し経路において特定の格子点(x,yのいずれかが5の倍数である場合)
上では右折できないものとする
0056デフォルトの名無しさん
2010/08/02(月) 23:49:05>でもそれだと格子要らないよね
前スレでも散々言われてたが、通れるのは格子の上だけ。
おまえさ、読解力がハナから無いからこういう問題向いてないよ。
0057デフォルトの名無しさん
2010/08/02(月) 23:54:32アリジゴクにでも嵌ったんじゃね?
0058 ◆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];
}
0059 ◆NeStPsnpRk
2010/08/03(火) 00:16:56writeUlong関数と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];
}
0060デフォルトの名無しさん
2010/08/03(火) 00:23:34[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] その他の制限:特にありません
0061デフォルトの名無しさん
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] その他の制限:特になし
よろしくお願いします。
0062デフォルトの名無しさん
2010/08/03(火) 01:01:07http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10907.c
0063デフォルトの名無しさん
2010/08/03(火) 01:02:110064デフォルトの名無しさん
2010/08/03(火) 01:08:48http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10908.c
0065デフォルトの名無しさん
2010/08/03(火) 01:18:45普通にこういう感じでいいのかな
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);
}
0066 ◆NeStPsnpRk
2010/08/03(火) 02:58:58ありがとうございます!
0067デフォルトの名無しさん
2010/08/03(火) 07:42:56ありがとうございました!
調べてみましたが、正方行列になんらかの制限がつかないかぎり、非常に難しい問題になります。
0069デフォルトの名無しさん
2010/08/03(火) 09:11:49プログラミング演習の課題ならQR法そのままでOKだ。
検索すりゃ回答例そのものが見つかるくらいポピュラー。
http://www2.ee.knct.ac.jp/el/E4/H15-E406/eigenvalue6.html
0070デフォルトの名無しさん
2010/08/03(火) 09:14:300071デフォルトの名無しさん
2010/08/03(火) 09:39:53こりゃひでーなw ワザとか?w
0072デフォルトの名無しさん
2010/08/03(火) 10:44:334ケタの番号,名前,名前(フリガナ),都道府県,住所,電話番号
といった300人分の名簿データみたいなcsvファイルがあり
それをで4ケタの番号どうりに単純ソートで昇順に表示して
番号を入力すると2分探索で探索を開始し
正しい番号を入力すると電話番号を、不正な番号を入力すると
エラー表示が出るプログラムを作成したいのですがわからず困ってます
どなたかよろしくお願いします
(malloc関数は使わずにとの事です)
0073デフォルトの名無しさん
2010/08/03(火) 10:54:550074デフォルトの名無しさん
2010/08/03(火) 11:02:35どなたかよろしくお願いします
0075デフォルトの名無しさん
2010/08/03(火) 11:37:40300人分の名簿データみたいなcsvファイルがあり
それをで4ケタの番号どうりに単純ソートで昇順に表示する
という部分がわからず困っています
0076デフォルトの名無しさん
2010/08/03(火) 11:49:20”バブルソート”でググると幸せになれるかも
0077デフォルトの名無しさん
2010/08/03(火) 11:49:350078デフォルトの名無しさん
2010/08/03(火) 12:08:51演習で学生が回答できるレベルに限れば大抵はそうだな。
"任意のn"ってあるから実数だけで良いのか、とか収束スピードや精度を気にしなくていいかって事だろう。
0079デフォルトの名無しさん
2010/08/03(火) 12:15:20nが複素数って事か? お前天才すぎる。人類史上最強の天才。
0080デフォルトの名無しさん
2010/08/03(火) 12:28:24整数nが大きいと、複素数まで考慮が必要かどうかを調べるだけでも演算量が半端なく大きい。
Cの演習であって数学ではないので、普通は出題しないと思うが。
注意すべきは、演習で作ったものがそのまま汎用的に使える場合は少ない、という事。
0081デフォルトの名無しさん
2010/08/03(火) 12:34:36最近はコテつきでやってますのでよくわかるのですが、突っ込まれるということはありがたいことです。
0082デフォルトの名無しさん
2010/08/03(火) 12:50:08>>76
ここはかっこよくシェルソートしようず
0084デフォルトの名無しさん
2010/08/03(火) 15:08:02が残されてるくらいだから、奥はそれなりに広いのだろね
0085デフォルトの名無しさん
2010/08/03(火) 15:18:37>>69にあるURLの回答例では何が気に入らないのか説明して、
親切な人が納得すれば、作り直してくれるかも知れません。
0086デフォルトの名無しさん
2010/08/03(火) 17:33:53>>61回答をお願いします、日本を代表してお願いします
0087デフォルトの名無しさん
2010/08/03(火) 17:42:58熱意が足りない
実対称行列のみならず、一般の実行列でも、いろいろと前処理をすれば QR法が使えるのですね。ご指摘ありがとうございます。
0089デフォルトの名無しさん
2010/08/03(火) 18:12:24[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つに分けて作ってください。
よろしくお願いします
0090デフォルトの名無しさん
2010/08/03(火) 18:33:39「フィボナッチ数列を返す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関数を使うんじゃないかなと思ってます。
あともしかしたら(?)の部分は先生の間違いじゃないかなと思ってます。
どなたかお願いします。
0091デフォルトの名無しさん
2010/08/03(火) 18:35:240092デフォルトの名無しさん
2010/08/03(火) 18:36:54C/C++
0093デフォルトの名無しさん
2010/08/03(火) 18:43:15お前ら宿題頑張って解け。
問題も頑張って解釈しろ←ここの余計な追加
0094デフォルトの名無しさん
2010/08/03(火) 20:17:10フィボナッチ > ヘヴォナッツィオ
0095デフォルトの名無しさん
2010/08/03(火) 21:06:02http://codepad.org/ytdT9qRi
別ファイルに分けるのは自分でやってね
あと、ソートが絶対に正確かは自信なし(一応確認はした)
0096デフォルトの名無しさん
2010/08/03(火) 21:30:070097デフォルトの名無しさん
2010/08/03(火) 21:36:14( bb || !bb ) ?
0098デフォルトの名無しさん
2010/08/03(火) 22:08:11何をどう確認したのか教えてくれw
0099デフォルトの名無しさん
2010/08/03(火) 22:28:450100デフォルトの名無しさん
2010/08/03(火) 22:59:56∧_∧ ∩
( ・∀・)彡☆
⊂彡☆))Д´) >>96
☆
http://codepad.org/CXzw36Wq
CSVファイルの読み込みは適当です。もしうまく読めなかったら、そのCSVファイルの一部を張って教えてください。
0102デフォルトの名無しさん
2010/08/03(火) 23:46:55コテつきで codepad へどうぞ。
0103デフォルトの名無しさん
2010/08/03(火) 23:48:400104デフォルトの名無しさん
2010/08/03(火) 23:56:424ケタは番号だけにかかるものだろ、常識的に考えて
0105デフォルトの名無しさん
2010/08/04(水) 00:01:09曲解する流れに乗ったのか?
あと、単純ソート。
0106デフォルトの名無しさん
2010/08/04(水) 00:01:46#define BUFFLEN 5
struct data {
int num;
char name[BUFFLEN];
char name2[BUFFLEN];
char pref[BUFFLEN];
char address[BUFFLEN];
char tel[BUFFLEN];
};
こりゃねーわ
やっぱ読解力ないよこの人
電話番号が4桁で済むわけねーじゃん
0107デフォルトの名無しさん
2010/08/04(水) 00:05:15あっやべっ、漏れた
0108デフォルトの名無しさん
2010/08/04(水) 00:11:06そこまで長いのかくなら、回答コードを書いてやれよ
0109デフォルトの名無しさん
2010/08/04(水) 00:16:44cじゃなくてperlとかのほうが楽だろ、これ。
0110デフォルトの名無しさん
2010/08/04(水) 00:23:27アルゴリズムの実装が主だからなぁ。
見つけるだけ、ソートするだけならそれぞれコマンドひとつなわけで。
http://codepad.org/Ua20QLc9
たしかに電話番号その他の情報を入れ込むには、ちと領域長が短すぎましたね。テスト用に短く設定したまま忘れておりました。
多数からのご指摘、感謝いたします。
あと、シェルソートを標準ライブラリの qsort() と同じインターフェースと同じになるようにしておきました。
要素の交換のために内部で malloc() しているのが、ちょっとまずいのですが、いつか直す機会があればいいですね。
問題がまだ残っておればご指摘いただけると嬉しゅうございます。m(_ _)m
0112デフォルトの名無しさん
2010/08/04(水) 00:31:580113デフォルトの名無しさん
2010/08/04(水) 00:34:53;
h = (h - 1) / 3;
エラーは出ないだろうけど、
ここ何?
0114デフォルトの名無しさん
2010/08/04(水) 00:41:51シェルソートでの、比較&交換間隔 h を決めています。
ここでは、h(n+1) = 3 * h(n) + 1 (1, 4, 13, 40, ... ) という数列を使用しています。
要素数が 15 なら最初の h は 13 にして、以下 4, 1, と変化させます。
要素数が 50 なら最初の h は 40にして、以下 13, 4, 1 とします。
‥‥‥というつもりですが、いかがでしょうか?
011589
2010/08/04(水) 00:52:19作成していただいたプログラムをコンパイルしたのですが、問題文の主旨とは
異なる動作をしてしまいました。
どなたか>>89のプログラム作成をお願いできませんでしょうか?
0116デフォルトの名無しさん
2010/08/04(水) 01:46:04エラーチェックは大してなくともいいだろうけど、宿題的には4桁の数字ぐらいのチェックをしておくといいと思う。
0117デフォルトの名無しさん
2010/08/04(水) 01:56:210118デフォルトの名無しさん
2010/08/04(水) 01:58:42たしかに第一要素の数字については、特に 4 桁限定としては書いていませんね。これも文字列にしておいたほうがよかったかなあ。
0119デフォルトの名無しさん
2010/08/04(水) 02:05:31http://codepad.org/9SJ5m2xK
上の問題ではprint1,下の問題ではprint2を使う
0120デフォルトの名無しさん
2010/08/04(水) 03:13:00C++プログラミング
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
最後の問題だけが解けませんでした。よろしくお願いします。
0121デフォルトの名無しさん
2010/08/04(水) 04:07:42using 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;
}
0122デフォルトの名無しさん
2010/08/04(水) 04:09:43あと標準ライブラリ使わないって無理でしょw
STLが無理と勝手に解釈したからw
0123デフォルトの名無しさん
2010/08/04(水) 07:34:26>>52はビットフラグとかシフトとか、バイトオーダーはスワップで何とかなるのかな
>>53は問題の意味がよく理解出来ないけど、ダイクストラ法の問題?
0125デフォルトの名無しさん
2010/08/04(水) 13:50:15[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までなのでどうぞよろしくお願いします
0126デフォルトの名無しさん
2010/08/04(水) 14:51:11#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;
}
こんな感じでいいのかな?
0127デフォルトの名無しさん
2010/08/04(水) 16:31:33[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でお願いします
どうぞよろしくお願いします
0128デフォルトの名無しさん
2010/08/04(水) 17:28:101問目
#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;
}
0129デフォルトの名無しさん
2010/08/04(水) 17:29:223問目
#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;
}
0130デフォルトの名無しさん
2010/08/04(水) 17:31:31ありがとうございました
0131デフォルトの名無しさん
2010/08/04(水) 22:39:20C言語の練習問題など100問程度で充分
ただしもう少し精選は必要かもだけど
140代にも到達し一歴史を築いたとも言える
このスレ、そろそろ精選問題回答集Wikiでも
作ってそこに誘導してあげることを考える時期
かもな
0132デフォルトの名無しさん
2010/08/04(水) 22:44:19自分も提案したけど、何かまとめサイトもあったけど、まだまだ不十分だと思ったが
それから全く発展してないなw
0133デフォルトの名無しさん
2010/08/04(水) 22:52:04教えてクンならぬ宿題丸投げクンがそれを読むと思うかね?
宿題をテンプレに沿って示すことが出来ないやつすらいるのに。
たすけてー(ただしなんの努力もしませんw
テンプレも読みませんw ぐぐりもしませんw)
が基本だし、さらに答えるほうもヒマでしゃーないから、
そのヒマが急になくなる事もないだろう。2ちゃんもヒマ人も永遠だ。
0134デフォルトの名無しさん
2010/08/04(水) 22:53:410135デフォルトの名無しさん
2010/08/04(水) 22:56:15しかも模範として載せられないw
0136デフォルトの名無しさん
2010/08/04(水) 22:56:50古参はとっとと引退して
新しい回答者がよくある落とし穴にはまる様を
黙って見てればいいじゃない
0137デフォルトの名無しさん
2010/08/04(水) 22:58:210138デフォルトの名無しさん
2010/08/04(水) 22:59:27(゚∀゚) ?
0139デフォルトの名無しさん
2010/08/04(水) 23:06:33∧_∧ ∩
( ・∀・)彡☆))Д´) >>117
⊂彡☆))Д´) >>137
0140デフォルトの名無しさん
2010/08/04(水) 23:22:48素数、ソート、カレンダー、組合せ、階乗、平方根、リストなど。
0141デフォルトの名無しさん
2010/08/04(水) 23:24:40高速化できるものとか。
0142デフォルトの名無しさん
2010/08/04(水) 23:42:590143デフォルトの名無しさん
2010/08/05(木) 01:11:01融合させた新しい鯖アプリ作るってのも面白そう
0144デフォルトの名無しさん
2010/08/05(木) 01:28:230145デフォルトの名無しさん
2010/08/05(木) 03:27:56言いだしっぺが作るべ
0146デフォルトの名無しさん
2010/08/05(木) 04:14:23それぐらい複雑だとCGI系じゃ辛い
ServeletとかJSPレベルにしないと厳しいような
0147デフォルトの名無しさん
2010/08/05(木) 04:26:25無料のとこでもウザい広告とか出ないで容量も速度もじゅうぶんなところが今はあるのかな
0148デフォルトの名無しさん
2010/08/05(木) 04:32:28まとめるのに大規模なものでなくてもおk。そこまでする必要があるかどうか?
0149デフォルトの名無しさん
2010/08/05(木) 04:33:39スパゲッティーミートクソミソースが漏れそうです ><;
0150デフォルトの名無しさん
2010/08/05(木) 11:35:56int main(/*void*/)
{
return /*0*/;
}
で統一しようぜ
0151デフォルトの名無しさん
2010/08/05(木) 12:46:180152デフォルトの名無しさん
2010/08/05(木) 12:48:10統一するならこうだろ
int main(int argc, char* args[])
{
〜
return 0;
}
0153デフォルトの名無しさん
2010/08/05(木) 12:53:40>>140-141
素数とかソートとかカレンダーとかすでにあるよ
無いのはぜひ追加してくれ
0154デフォルトの名無しさん
2010/08/05(木) 13:26:40統一するならこうだろ
int main(int argc, char **argv)
{
〜
return 0;
}
0155デフォルトの名無しさん
2010/08/05(木) 13:35:160156デフォルトの名無しさん
2010/08/05(木) 14:46:190157デフォルトの名無しさん
2010/08/05(木) 17:01:470158デフォルトの名無しさん
2010/08/05(木) 17:02:22**argv > *argv[]
0159デフォルトの名無しさん
2010/08/05(木) 17:26:290160デフォルトの名無しさん
2010/08/05(木) 18:19:25[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時
よろしくお願いします
0161デフォルトの名無しさん
2010/08/05(木) 19:17:04#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;
}
0162デフォルトの名無しさん
2010/08/05(木) 19:42:55こうなるんじゃね?
(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
0163デフォルトの名無しさん
2010/08/05(木) 19:53:15結果は間違えてないよね。
何に疑問持ったのか分かんない。
0164デフォルトの名無しさん
2010/08/05(木) 19:59:370165デフォルトの名無しさん
2010/08/05(木) 22:12:020166デフォルトの名無しさん
2010/08/06(金) 19:51:15閏年、カレンダーの課題もクルー!
0167デフォルトの名無しさん
2010/08/06(金) 21:21:51今の俺は無敵ではないが、どんな課題でも解けそうな気がするぅ〜あると思います。
0168デフォルトの名無しさん
2010/08/06(金) 21:54:06これが手取りで1000万だと結構すごいと思うけど。
0169デフォルトの名無しさん
2010/08/06(金) 21:58:38>>52-53をどうぞ
0170デフォルトの名無しさん
2010/08/06(金) 22:33:31いや手取りで。確かに大したことないからまだまだ貧乏人と言っているんです。
0171デフォルトの名無しさん
2010/08/06(金) 22:54:42コテ(トリ)つけて codepad にあげてごらんよ。
0172デフォルトの名無しさん
2010/08/07(土) 06:07:14http://kamome.2ch.net/test/read.cgi/newsplus/1281100346/
0173デフォルトの名無しさん
2010/08/07(土) 16:57:09どんな課題も解けないよ
0174デフォルトの名無しさん
2010/08/07(土) 18:03:47> 解けそうな気がするぅ〜あると思います。
日本語が読めない人って困りますねw
0175デフォルトの名無しさん
2010/08/07(土) 20:26:53柴田さんの明解C言語の入門編と前橋さんのポインタ完全制覇を
一通りやったのですが、この後にオススメな本はなんでしょうか?
もしよろしかったら答えていただけると嬉しいです。
0176デフォルトの名無しさん
2010/08/07(土) 20:28:120177デフォルトの名無しさん
2010/08/07(土) 20:28:43・256倍シリーズ
・最新アルゴリズム辞典
0178デフォルトの名無しさん
2010/08/07(土) 20:53:54このスレで遊ぶのはどうでしょうか?楽しいですよ。
>>176
至言ですねえ。
>>177
アルゴリズム辞典は持っていて損はないのですが、あー、やっぱりいちからよむものですかやっぱりそうですか
0179デフォルトの名無しさん
2010/08/07(土) 22:11:27どんな本でもそうだけど、頭から尻まできっちり全部読んでおいて
詳細は忘れてもいいからなにが書いてあったかだけ覚えておけ。
0180デフォルトの名無しさん
2010/08/08(日) 04:19:250181デフォルトの名無しさん
2010/08/08(日) 10:01:330182デフォルトの名無しさん
2010/08/08(日) 10:23:480183デフォルトの名無しさん
2010/08/08(日) 11:20:530184デフォルトの名無しさん
2010/08/08(日) 11:25:11うらやましい。俺なんか過去にといた問題と同じものが出たとしてもとける気がしない。
毎日が新鮮でいいのかもしれないが。w
0185デフォルトの名無しさん
2010/08/08(日) 21:12:21[3] 環境
[3.1] OS: Mac OSX 10.6
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:[2010年8月9日まで]
[5] その他の制限:できるだけ簡単なプログラムでお願いします。
0186デフォルトの名無しさん
2010/08/08(日) 21:15:470187デフォルトの名無しさん
2010/08/09(月) 01:17:24http://codepad.org/W9xfYypJ
0188デフォルトの名無しさん
2010/08/09(月) 10:16:34[3] 環境
[3.1] OS: Windows, Mac, Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: どちらでも可
[4] 期限: 2010年8月11日15:00まで
[5] その他の制限: スパゲティックな感じでも構わないので、読みやすい感じでお願いします。後学の為にできるだけ理解したいので。
0189デフォルトの名無しさん
2010/08/09(月) 12:25:270190デフォルトの名無しさん
2010/08/09(月) 12:51:00問題文が、C言語の範疇を越えてるよ
0191デフォルトの名無しさん
2010/08/09(月) 12:55:32system("open http://hogehoge.fugafuga");
だけで桶
0192デフォルトの名無しさん
2010/08/09(月) 15:31:080193デフォルトの名無しさん
2010/08/09(月) 15:35:300194デフォルトの名無しさん
2010/08/09(月) 19:51:11実数 -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] その他の制限:なるべく難易度の低いプログラムでお願いします。
0195デフォルトの名無しさん
2010/08/09(月) 22:45:23ttp://codepad.org/yJqUZTR6
0196デフォルトの名無しさん
2010/08/10(火) 01:24:38お前らにくれてやるから、俺が解きたい課題は俺より先に出すなよ、な!
0197デフォルトの名無しさん
2010/08/10(火) 01:27:28だがおまえはコテハンつけて、といてる問題を宣言するんだ
そして少なくとも5分ごとにスレをチェックしろ
最低でもそれを守れ
0198デフォルトの名無しさん
2010/08/10(火) 01:37:05提出すれば良い。その中に自分が習っていないものが入っていたり
題意に沿った回答で無い物を選んでも評価されない。
まぁここはそんな出題者の都合なんて知ったこっちゃ無い場所だがねw
0199デフォルトの名無しさん
2010/08/10(火) 08:22:14http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10913.txt
0200デフォルトの名無しさん
2010/08/10(火) 09:09:540201デフォルトの名無しさん
2010/08/10(火) 09:10:41甘え過ぎ。ただ書き直すだけの作業をやるほどお人好しはいないと思うw
楽しくないからな。
0202194
2010/08/10(火) 16:55:37ありがとうございます。
しかし、実行してみたところ値を分ける条件は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の部分が両方とも<になりました。)
申し訳ないですが、以上の内容で再度お願いします。
0203デフォルトの名無しさん
2010/08/10(火) 22:04:09ttp://codepad.org/zG6XgLPj
0204デフォルトの名無しさん
2010/08/10(火) 22:55:070205デフォルトの名無しさん
2010/08/10(火) 23:40:300206デフォルトの名無しさん
2010/08/11(水) 01:39:20http://codepad.org/8lMNCDEZ
0207デフォルトの名無しさん
2010/08/11(水) 20:24:01やっぱりひとつたりない。codepad の出力をみてください。
0209デフォルトの名無しさん
2010/08/11(水) 20:32:29具体的に、どこの範囲が足りていないのでしょうか。
こちらの環境では私の書いた>>203は足りています。
足りないのは>>206の方です。
それと、>>203はcodepadでは結果が出力されていません。
あなたの見間違いです。
0210206
2010/08/11(水) 22:13:31すまん、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
0211デフォルトの名無しさん
2010/08/12(木) 04:26:210212デフォルトの名無しさん
2010/08/12(木) 08:22:28んー、コンパイラによって結果がかわるのはどうして?
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
0213デフォルトの名無しさん
2010/08/12(木) 09:24:48そもそも 1.05 を double の変数に代入した時点で、
丸めが起きて 1.05 では無くなってるんだよ。
こういう誤差が演算の過程でどのように変化するかはC言語の規定外。
誤差の範囲で値が変わるのは問題ない。
こういうふらつきのある値を int に強制的にキャストして、
小数点以下を切り捨てるようなコードに問題がある。
はっきり言ってバグ。コードを修正すべき。
0214デフォルトの名無しさん
2010/08/12(木) 10:08:06ンな事言ってたらCで小数の比較なんてナンセンスじゃん
数値計算にC使うなってな話になんぞ?
0215デフォルトの名無しさん
2010/08/12(木) 10:10:13笑
0216デフォルトの名無しさん
2010/08/12(木) 10:20:35int intvalue;
d=(double) intvalue;
はおk
しかし
intvalue=(int)d;
という書き方する人一杯いるけど、このキャストは
しないほうが良い。上のように処理系依存性が増える。
だからといって処理系のライブラリ関数(round,floor,etc)を
使えというわけじゃないが、ライブラリは同一環境なら処理系間で使
い回せる可能性が若干ある。ソースがあれば完璧
0217デフォルトの名無しさん
2010/08/12(木) 10:20:37a = 0.04999999 みたいな数字があって
0.5 が誤差のために実質 0.04999999 だったら
a < 0.5 が true にならないってことですよね?
0218デフォルトの名無しさん
2010/08/12(木) 10:24:12それは起こりえる。そしてFORTRANだろうがCだろうがJavaだろうが
言語によらず浮動小数点実数を使う限り宿命的に発生する。
BCD実数とか使うしかない。
0219デフォルトの名無しさん
2010/08/12(木) 10:33:20無効数字部分をどのように取り扱うかは確か定義され
ていない筈。これが丸め誤差とか桁落ちとかの原因
ライブラリ(処理系組み込みを含む)作成者の裁量が
大きく左右する。
0220デフォルトの名無しさん
2010/08/12(木) 10:36:01ソースあげろよ
0221デフォルトの名無しさん
2010/08/12(木) 10:56:56という条件からは浮動小数点誤差回避の技法はスレ違い
0222デフォルトの名無しさん
2010/08/12(木) 11:02:24× スレ違い
○ 私は無能です
0223デフォルトの名無しさん
2010/08/12(木) 11:04:03>ライブラリは同一環境なら処理系間で使
>い回せる可能性が若干ある。ソースがあれば完璧
ソースがあっても、そもそもからして浮動小数点実数
の内部型は処理系の裁量じゃね?別にIEEEに準拠する
必要まで強制されてるの?ライブラリのソースなど
そういった内部型の構造に強く依存してたり関連ライ
ブラリグローバル関数とか使ってたりして競合が発生
しやすいんであったところでそのまま使えるケースは
稀
0224デフォルトの名無しさん
2010/08/12(木) 11:05:51できるもんなら関わりたくないものだ。
0225デフォルトの名無しさん
2010/08/12(木) 11:16:001 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が異なるのか?
0226デフォルトの名無しさん
2010/08/12(木) 13:13:04sizeof float==sizeof intな環境で
float f=1.0;
int i;
i=(int)f;
while(i==1);
このコードを実行させたところ一瞬で終わる環境も
あり得るし、無限ループになる環境もあるってこと
ですね。勉強になりました。(皮肉)
0227デフォルトの名無しさん
2010/08/12(木) 13:25:180228デフォルトの名無しさん
2010/08/12(木) 13:30:070229デフォルトの名無しさん
2010/08/12(木) 13:34:17とする。
long long l;
double d;
d=1.0;
l=(long long)d;
は
memcpy(&l,&d,sizeof(long long));
と等価じゃないんだ?
0230デフォルトの名無しさん
2010/08/12(木) 13:38:33キャストにsize関係ないし、1.0に誤差が発生する環境なんてない。
0231デフォルトの名無しさん
2010/08/12(木) 13:41:40Dynamic Castという概念が生まれ区別されるようになった
わけです。Cでもこれは真似したほうがいいかもしれません。
つまりキャストする場合はコメントにそう明示するわけです。
処理系を変えておかしくなる場合はこのあたりに原因がある
ことも少なく有りません。改修作業の苦痛が大幅に軽減され
ます。
0232デフォルトの名無しさん
2010/08/12(木) 13:45:03当たり前だろ。バカ。お前はバトルへの参加資格なし。
0233デフォルトの名無しさん
2010/08/12(木) 13:47:20処理系によって変わります。(但しその処理系の正統性は無視です。
正統な処理系だけが稼働しているわけではありません。)
0234デフォルトの名無しさん
2010/08/12(木) 14:57:55のようにバイト列レベルで見て単純な複製じゃなく
コンパイラが何らかの方法で変換ルーチン(ライブラリ関数
じゃない可能性のほうが大)を自動コールするといったレベ
ルのキャスト(これが正統)を禁止するのはちょっとね。
ただライブラリ関数のコンバート系関数でも同等のことが
出来るし、ライブラリ関数を多用する場合はむしろこちら
のほうが純正性が良いかもしれない
0235デフォルトの名無しさん
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).
0236デフォルトの名無しさん
2010/08/12(木) 17:04:10Windowsでは cygwin / gcc 4.3.4.20090804
0237デフォルトの名無しさん
2010/08/12(木) 18:06:54トータルな意味での信頼性:正統>>>>純正
ってところか どんな分野でもこれはある程度言えるんじゃ?
0238デフォルトの名無しさん
2010/08/12(木) 18:15:19お前が馬鹿だろ、整数へのキャストは小数部の切り捨てしか起こらん。
問題はその前の代入や演算での丸めによる誤差の取り扱いなんだよ。
要するに演算後 21.000... となる処理系と 20.999... となる処理系が存在しうる。
これを整数にキャストしたら前者では 21 となるし、後者では 20 となる。
まともなプログラマなら演算後の double を int にキャストする場合は
i = (int)(d + .000000001) とか書くよ。
0239デフォルトの名無しさん
2010/08/12(木) 18:30:49>>238こういうのはバッドノウハウだよな
速度が求められるとか特別な理由が無い限りやめたほうがいい
0240デフォルトの名無しさん
2010/08/12(木) 18:33:520241デフォルトの名無しさん
2010/08/12(木) 18:41:12>i = (int)(d + .000000001) とか書くよ。
死ね
0242デフォルトの名無しさん
2010/08/12(木) 18:43:240243デフォルトの名無しさん
2010/08/12(木) 18:46:07純正な有名ライブラリのソース(マルチプラットフォーム対応)を
沢山見てきたが、エレガントに記述されているものなど皆無。
むしろすんごく泥臭いことやってる。パッチだらけで作者じゃな
ければ読めたものじゃないってことも稀じゃない。
正統(某かの規格書に厳密に準拠した文法で書かれており、使うこと
だけでなく見せることも目的に入ってる)志向が強いコードのほうが
強烈にエレガントさを求めるんじゃねぇの?
0244デフォルトの名無しさん
2010/08/12(木) 19:53:30そんな話はしていない、文脈読めないバカは死んでしまえ。
キャストかライブラリかと言う話だ。
0245デフォルトの名無しさん
2010/08/12(木) 20:25:04こういうことしちゃう人がいるから嫌なんだよな。
あー少数のない世界へ行きたい。
0246デフォルトの名無しさん
2010/08/12(木) 20:31:400247デフォルトの名無しさん
2010/08/12(木) 21:22:41コンパイラの解釈に依存するようなキャストを使わず
自前でコンバート関数とか用意するだろうし、それを
使って他のライブラリ関数とかテストしてるんだろうから
ライブラリ関数を中心的に使う場合は、可読性は低くなるかも
知れないけどあんましキャストはしないほうがいいと思います。
0248デフォルトの名無しさん
2010/08/13(金) 01:17:21キャストがコンパイラの解釈に依存するから使えないのならば、同じく、
四則演算子も使えねーな。
浮動小数点定数も変換が処理系に依存するから、使えねーな。ww
0249デフォルトの名無しさん
2010/08/13(金) 01:36:15平気でリンクできてしまうのがよくもわるくもC処理系
の特徴であり歴史的事実(それがC固有であり本源的とまで
は言わないが)
厳格に言えば整数演算、文字列演算以外のキャストや
四則演算はこういった性格から信頼性が落ちる場合が
あるってことか。
0250デフォルトの名無しさん
2010/08/13(金) 02:48:29[1]
[2]
グラフG(V,E)の各エッジに0〜1.0間の数値で確率がランダムで与えられている。
各ノードに到達するまでの確率の積が最大となるような木を作りたい。
別の表現をすると、一般的なダイクストラ法の条件1.リンクコストが非負、2.コストの和が最小の経路を求める
というのを、1'.リンクコストは0〜1の実数、2'.コストの積が最大の経路を求める
に変えて考えたいです。
ダイクストラのアルゴリズムをちょこっと変えるだけで、この問題を解くアルゴリズムは書けますか?
[3] 指定なし
[4] できるだけ早く
[5] コードじゃなくてアルゴリズムがほしいです
0251デフォルトの名無しさん
2010/08/13(金) 02:57:550252デフォルトの名無しさん
2010/08/13(金) 04:12:50数学遺体毛
0253デフォルトの名無しさん
2010/08/13(金) 09:26:07コンパイラによって結果が変わるコード書く奴の方が100倍は嫌だよ。
0254デフォルトの名無しさん
2010/08/13(金) 09:30:580255デフォルトの名無しさん
2010/08/13(金) 10:02:33とありあえず、大学、学部が何処かを言ってくれ。
それによって回答のレベルが変わるから。
0256デフォルトの名無しさん
2010/08/13(金) 10:10:232回目に同じノードを通過するときの確率は1回目の確率以下にしかならない
0257デフォルトの名無しさん
2010/08/13(金) 10:18:56ダイクストラ法は理解してるのか?理解してたら簡単に書き換えられると思うんだが。
>>255
どう解答のレベルが変わるんだよw
0258デフォルトの名無しさん
2010/08/13(金) 11:24:44手取り足取りになるのか
ヒントだけで済むのかによって
変わるんじゃないかな
0259250
2010/08/13(金) 14:10:58個人情報ですから回答できません。
>>257
簡単でないから質問してるのですが・・・
その方法を具体的に書いてください。話はそれからです。
0260デフォルトの名無しさん
2010/08/13(金) 14:14:040261デフォルトの名無しさん
2010/08/13(金) 14:20:460262デフォルトの名無しさん
2010/08/13(金) 14:23:151年もすればほとぼり冷めるだろう。
0263デフォルトの名無しさん
2010/08/13(金) 14:34:370264デフォルトの名無しさん
2010/08/13(金) 14:57:320265デフォルトの名無しさん
2010/08/13(金) 21:06:53たとえばコストを計算するときに一般的なダイクストラ法では、cost = node.cost + costs[i];とかするわけじゃん
これをcost = node.cost * costs[i];にすればいいでしょ
あとはcostがでかくなるように経路を確定していけばいいじゃん
すごく簡単だと思うんだけど、どこが簡単じゃないのか具体的に書いてください。話はそれからです。
0266デフォルトの名無しさん
2010/08/13(金) 23:52:39大学と学部を聞き出そうとするなんて
0267デフォルトの名無しさん
2010/08/14(土) 02:54:59[2] 問題文(含コード&リンク):
if文を用いないで2つの整数から最大値を求めるプログラムを作る
[3] 環境
[3.1] OS: Windows
[3.2] gcc 4.3.4
[3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
標準ライブラリのmax、及び三項演算子は使用禁止でお願いします
0268デフォルトの名無しさん
2010/08/14(土) 03:08:55int main()
{
int a,b;
a = 3;
b = 2;
for(;a >= b;){
printf("%d",a);break;}
for(;a < b;){
printf("%d",b);break;}
return 0;
}
0269デフォルトの名無しさん
2010/08/14(土) 03:18:38int main() 笑
0270デフォルトの名無しさん
2010/08/14(土) 03:20:530271デフォルトの名無しさん
2010/08/14(土) 03:29:040272デフォルトの名無しさん
2010/08/14(土) 03:32:500273デフォルトの名無しさん
2010/08/14(土) 04:13:10[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週になります
0274デフォルトの名無しさん
2010/08/14(土) 04:16:300275デフォルトの名無しさん
2010/08/14(土) 04:58:30>>268 のコードが稚拙。もう少し捻りなさい。
0276デフォルトの名無しさん
2010/08/14(土) 08:44:120277デフォルトの名無しさん
2010/08/14(土) 09:04:43#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b;
a = 10;
b = 1;
printf("%d\n", (a + b + abs(a - b)) / 2);
}
0278デフォルトの名無しさん
2010/08/14(土) 10:15:53どうでも良いよ、そんなの。int main() 笑
0279デフォルトの名無しさん
2010/08/14(土) 11:22:01http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10914.c
0280デフォルトの名無しさん
2010/08/14(土) 11:35:29C99 にははずれていないし、C89 ならもっとはずれていないのですけれども。
0281デフォルトの名無しさん
2010/08/14(土) 11:50:120282デフォルトの名無しさん
2010/08/14(土) 11:55:500283デフォルトの名無しさん
2010/08/14(土) 12:00:18何勝利宣言しているのか知らないがISOの標準スタイルについては解決済み。
文法とかではなく、標準スタイルを知らないのはお・ま・え。
この話は終了。自分が知らないことを相手が自分が思ったことを
理解していないで解決している内は、まだまだ情報弱者だという自覚がないようだな。
もしお前が学生ではなく教える立場の人間なら、お前が育てた生徒は碌なのがいない。
0284デフォルトの名無しさん
2010/08/14(土) 12:46:04> 文法的にはint main() {笑;}が正しい
文法について言うならコードの中に注釈// や /* */ を使用せず
全角文字{笑}なんて書いたらコンパイラが通さないんだが・・・
まぁお前のコンパイラはその 笑 すらコードの一部として通すかもしれないが。
文法で言うならお前の方こそ無駄口を叩いたせいで間違えてるぞ。
そういうの墓穴を掘る、蛇足って言うんだよ。
要らん反論するなよ。お前が無駄口叩いて自分こそが間違えたんだから。
0285デフォルトの名無しさん
2010/08/14(土) 12:48:580286これが和訳できないなら黙ってろ
2010/08/14(土) 12:51:49ttp://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.
0287デフォルトの名無しさん
2010/08/14(土) 12:53:25> うん、文法的にはint main() {笑;}が正しいね。
どこが?何その {笑} の 笑 は?ふざけてんのか?
> >>278は文法を知らないようだ。
ブーメラン・・・お前は民主か?w
0288デフォルトの名無しさん
2010/08/14(土) 12:56:03""で囲うなり注釈などで全角文字は通るが、基本は半角文字を使うのに
やはり独自の環境を使用しているのか、コードの一部に全角が入っても
通るような環境を使っている人は言うことが違うぜw
お前が講師ならお前が育てた生徒は不適切な知識を得て卒業するだろう。
お前が学生なら知ったか無知の未熟者。将来C言語で商売をしようと思わないことだな。
0289デフォルトの名無しさん
2010/08/14(土) 12:59:14負けを認めろ。C99の標準スタイルでもISOは
プログラムの開始をmain関数とし、引数が無い場合は
int main(void) と提唱しているんだよ。ただ、これはあくまでも
標準スタイル。従わなければいけないものではない。
独自の環境を使用している場合は「その限りではない」と
前スレでもしつこく説明したんだがねぇ。お前新参?
だったら出過ぎた真似をせずに人の話は聞いてな。
未熟者の意見なんて、社会じゃ聞いてもらえないどころか
意見したことで上から目をつけられて干されるよ。
0290デフォルトの名無しさん
2010/08/14(土) 13:00:32これ以上の議論は無駄なんで他所でやってくれ。
http://2bangai.net/read/d17c5b92871645cd16b0d4d4f6cb164865880a01053bdce9b7eff5642a1418ec/901
0291デフォルトの名無しさん
2010/08/14(土) 13:01:36あと、ループさせないならforは不適。
if推奨。
0292デフォルトの名無しさん
2010/08/14(土) 13:05:04あんたがそうしたいなら書けば良いだけ。しかし、正式な場所に出てそんな
記述をしたら笑われますからw こいつ無知だ、自己流だ、世の標準を知らない
情報弱者とな。
0293デフォルトの名無しさん
2010/08/14(土) 13:07:28あくまでも世界的な標準を決めているISOの提唱に関する話だから。
世の中がお前基準に動いてないことくらい、早く理解してくださいね。
お前も所詮、権力者でもなければ単なる一般人、国籍のある国民の一人に過ぎませんから。
お前一人が自分がそうするから世界で認めろ!なんて言っても、それなりの
立場の人間でなければ受け入れられませんから。
あと、C言語に限らずプログラム言語は何も、個人や学校以外でも
普通に世の製品で用いられていますから。そういうことも理解して下さいね ♥
0294デフォルトの名無しさん
2010/08/14(土) 13:20:300295デフォルトの名無しさん
2010/08/14(土) 13:26:41ちゃんと通る書き方だってのに
0296デフォルトの名無しさん
2010/08/14(土) 13:56:190297デフォルトの名無しさん
2010/08/14(土) 14:06:41逆に後付け設定のくせになにいってんだって感じだよ。
0298デフォルトの名無しさん
2010/08/14(土) 14:18:15つまり、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};
0299デフォルトの名無しさん
2010/08/14(土) 14:19:12理屈じゃなくてプログラムで。
0300デフォルトの名無しさん
2010/08/14(土) 14:31:27main云々の話には加わっていないが。
#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;
}
0302デフォルトの名無しさん
2010/08/14(土) 15:23:44自分が勝手に決めたスタイルで笑えるw
一生、公の場でそんな主張をしてみろ。まぁお前が日頃
活動している場所が閉鎖的で、世界だけでなく日本国内でも
無名の小さな会社なんだろうけど。世の中で名のある企業は
何かと安全面でもISO準拠だよw
分かったか?ISOは意味も無く標準化を提唱しているんではないと。
それなりに全体の流れ、能率、効率を考えて取り決めされているんだよ。
口説いようだが、独自の環境を使用している場合はその限りではない。
この但し書きすら理解できないようだなw
別にお前個人が問題ないと思うならそのスタイルを押し通せば良い。
0303デフォルトの名無しさん
2010/08/14(土) 15:25:520304デフォルトの名無しさん
2010/08/14(土) 15:28:07return 0 がどーのこーので永遠に罵り合える連中です。
0305デフォルトの名無しさん
2010/08/14(土) 15:39:18ANSIだってJISだってそれに匹敵できる正統性を主張
できるくらいのコストをかけて標準作りに勤しんでる筈
0306デフォルトの名無しさん
2010/08/14(土) 15:41:02C/C++は標準化されてるだけマシと考えるべき。
0307デフォルトの名無しさん
2010/08/14(土) 15:42:37が 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 の部分が抜けています。
0308デフォルトの名無しさん
2010/08/14(土) 15:44:500309デフォルトの名無しさん
2010/08/14(土) 16:23:56今さら変えたくなくて涙目なんでしょwwwwwww
イイヨイイヨー、別にISO準拠を押し付けたりしないから。
ただ、反論してもそれは個人に対してではなく
ISOに対して意見しているんだと自覚して下さいね ♥
0310デフォルトの名無しさん
2010/08/14(土) 16:24:48>議論の仕方をしらないようで、こまったものです。
ここは議論の場ではありません
0311デフォルトの名無しさん
2010/08/14(土) 16:31:570312デフォルトの名無しさん
2010/08/14(土) 16:33:07年寄りが若者に対していう言葉ですね。
0313デフォルトの名無しさん
2010/08/14(土) 16:36:570314デフォルトの名無しさん
2010/08/14(土) 20:18:240315デフォルトの名無しさん
2010/08/14(土) 20:23:241月1日を含む週に4日以上ある場合に第1週となります
つまり1月1日が日曜から始まっているときはその週が第1週ですが
1月4日が日曜から始まっているときはその週が第1週になります
0316デフォルトの名無しさん
2010/08/14(土) 21:16:41という状況のときの1/1, 1/2, 1/3は未定義と表示させればいいのか?
0317デフォルトの名無しさん
2010/08/14(土) 21:22:45スケジュールのつもりか?とりあえず1日が木曜日の場合
0週で良いんじゃね?
0318デフォルトの名無しさん
2010/08/14(土) 21:29:550319デフォルトの名無しさん
2010/08/14(土) 21:32:26「その年の何週目」だから0週目なんだろうなやっぱり
0320デフォルトの名無しさん
2010/08/14(土) 21:36:410321デフォルトの名無しさん
2010/08/14(土) 22:07:08Option Explicit
WScript.Echo DatePart("ww", "2010/1/1" , vbSunday , vbFirstFourDays)
0322デフォルトの名無しさん
2010/08/14(土) 22:53:52スレチ
0323デフォルトの名無しさん
2010/08/14(土) 22:58:380324デフォルトの名無しさん
2010/08/14(土) 23:43:51全然説得力ないから。他所でやれ。
0325デフォルトの名無しさん
2010/08/14(土) 23:57:370326デフォルトの名無しさん
2010/08/15(日) 15:53:340327デフォルトの名無しさん
2010/08/15(日) 15:57:33夏休みだからなぁ。
0328デフォルトの名無しさん
2010/08/15(日) 15:58:260329デフォルトの名無しさん
2010/08/15(日) 16:19:47ttp://headlines.yahoo.co.jp/hl?a=20100815-00000207-yom-soci
学生のリポート作成で、インターネット上の資料をそのまま引き写す
「コピー&ペースト(コピペ)」の横行に、大学側が悩んでいる。(読売新聞)
このスレ\(^o^)/オワタ
0330デフォルトの名無しさん
2010/08/15(日) 16:27:39適当に個人スタイルに書き直せば良い。丸写しで提出する奴は本当にバカだし
そんなんで理解したと評価されるのはおかしい。
なんなら、暗号化と復元を利用してネットでアップする文字列は
意味不明なものにしても良い。
0331デフォルトの名無しさん
2010/08/15(日) 17:00:100332デフォルトの名無しさん
2010/08/15(日) 17:03:33単なる難読化じゃなくて、それっぽく、識別子を置き換え、
for(;;)やwhile(1)なんかも交換可能なリストを持っておいて、
統一した流儀で書き換える。インデントも。
0333デフォルトの名無しさん
2010/08/15(日) 17:08:21よし卒論はそれでおkだな
0334デフォルトの名無しさん
2010/08/15(日) 17:09:13カンタンと言っても、実装はそれなりに複雑だろうけど。
0335デフォルトの名無しさん
2010/08/15(日) 18:34:41http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10915.c
0336デフォルトの名無しさん
2010/08/15(日) 18:38:500337デフォルトの名無しさん
2010/08/15(日) 19:06:190338デフォルトの名無しさん
2010/08/16(月) 02:01:400339デフォルトの名無しさん
2010/08/16(月) 02:07:48もうその話は他所でやれw C++ならそれでおk。
0340デフォルトの名無しさん
2010/08/16(月) 03:34:24パズルゲームくらい課題にしろ。数独や16ゲームとか、時間が掛かるけど
1年間あればそれくらい作れる人材を育成しろ。
0341デフォルトの名無しさん
2010/08/16(月) 17:14:09ありがとうございます。望んでいる通りに動きました。
一つ心配だったのは、ダイクストラってコスト最小の全域木という保証があるけど
積にして、かつ最大をとるっていうアルゴリズムってコスト積最大の全域木になるのかどうかがわからなかったのです
普通に考えてみれば自明ですよね・・・
ちなみにFらんですすいません
0342デフォルトの名無しさん
2010/08/16(月) 18:37:01大学をきくやつの頭がどうかしている。がんばれ。
0343デフォルトの名無しさん
2010/08/16(月) 20:55:202つ以上の整数の場合
#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;
}
0344343
2010/08/16(月) 22:02:240345デフォルトの名無しさん
2010/08/17(火) 07:57:530346デフォルトの名無しさん
2010/08/18(水) 01:16:12数独の問題1つ、総当たりなら1年も掛からず作れそうだけど、ちゃんとした問題作成の方法があるんですか?
0347346
2010/08/18(水) 01:17:060348デフォルトの名無しさん
2010/08/18(水) 05:03:191年を通して最後に提出する課題として、出しておけば良いだけ。
その問題を回答するのに、1年かけなければいけないわけではない。
0349デフォルトの名無しさん
2010/08/18(水) 11:35:39for文のネストが81できることが前提だけどCの仕様ではどうなってる?
0350デフォルトの名無しさん
2010/08/18(水) 17:49:080351デフォルトの名無しさん
2010/08/18(水) 18:07:040352デフォルトの名無しさん
2010/08/18(水) 18:51:07仕様や規格以前に、81もネストするプログラムって何だよ
0353デフォルトの名無しさん
2010/08/19(木) 03:53:16そもそもそんなにネストして実用的な速度がでるとは思えない。
でも再帰の展開すればそれぐらい行ったりするのか?
0354デフォルトの名無しさん
2010/08/19(木) 08:01:09キャッシュ
0355デフォルトの名無しさん
2010/08/19(木) 08:21:36自動的に解答してくれるコードを書いてちょっ!
0356デフォルトの名無しさん
2010/08/19(木) 08:56:170357デフォルトの名無しさん
2010/08/19(木) 10:46:020358デフォルトの名無しさん
2010/08/19(木) 10:49:330359デフォルトの名無しさん
2010/08/19(木) 10:49:47C/C++の宿題片付けます 135代目
http://pc12.2ch.net/test/read.cgi/tech/1269438098/
0360child
2010/08/19(木) 11:38:57どなたか教えていただけないでしょうか?
0361デフォルトの名無しさん
2010/08/19(木) 11:40:360362child
2010/08/19(木) 11:42:04どうかよろしくお願い致します。
0363デフォルトの名無しさん
2010/08/19(木) 11:42:360364デフォルトの名無しさん
2010/08/19(木) 11:43:42csv じゃダメなんですか
0365デフォルトの名無しさん
2010/08/19(木) 11:49:430366child
2010/08/19(木) 11:50:39どうぞよろしくお願いいたします。
0367デフォルトの名無しさん
2010/08/19(木) 11:51:52excel のマクロでやれよ
0368デフォルトの名無しさん
2010/08/19(木) 11:53:51#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;
}
0369child
2010/08/19(木) 11:59:36FILE *fp;
fp=fopen("hoge.csv", "w");
if(fp==NULL) exit(1);
fprintf(fp, "1,2,3,4,=a1+c1\n");
fclose(fp);
と言うのは言葉で説明すると何をしているのでしょうか?
全く分からないもので申し訳ないです。
0370デフォルトの名無しさん
2010/08/19(木) 12:00:21本屋へGO!
0371デフォルトの名無しさん
2010/08/19(木) 12:03:41なんだろう、こいつには絶対答えてやりたくない。
0372デフォルトの名無しさん
2010/08/19(木) 12:19:21実際のプログラムは>>368の数百倍複雑。
キミは>>369のような質問を数百回繰り返して作るつもりか?
0373デフォルトの名無しさん
2010/08/19(木) 12:22:46まさにエクストリーム教えてクン。
0374デフォルトの名無しさん
2010/08/19(木) 12:34:540375デフォルトの名無しさん
2010/08/19(木) 12:38:440376デフォルトの名無しさん
2010/08/19(木) 12:40:320377デフォルトの名無しさん
2010/08/19(木) 12:41:150378デフォルトの名無しさん
2010/08/19(木) 12:42:42#include <stdio.h>
int main(int ac, char **av)
{
int i;
for(i = 1; i <= 100; i++){
printf("1から100までの素数を求めます\n");
}
return 0;
}
0379デフォルトの名無しさん
2010/08/19(木) 12:43:270380デフォルトの名無しさん
2010/08/19(木) 12:47:390381デフォルトの名無しさん
2010/08/19(木) 12:52:110382デフォルトの名無しさん
2010/08/19(木) 12:54:51こういう問題文にしろってこと?
0383デフォルトの名無しさん
2010/08/19(木) 12:56:440384デフォルトの名無しさん
2010/08/19(木) 13:01:250385child
2010/08/19(木) 14:09:00ここはこんな基本常識すら知らない人の集まりなんですね。
まともな回答を期待した私が馬鹿でした。
0386デフォルトの名無しさん
2010/08/19(木) 14:19:070387デフォルトの名無しさん
2010/08/19(木) 14:24:050388デフォルトの名無しさん
2010/08/19(木) 14:27:290389デフォルトの名無しさん
2010/08/19(木) 14:32:24整数で
1のみが素数で、他は擬素数、擬素数の積が合成数
他は負数
という表現方法もあるが、教科書に書いて広めることは
禁止とまではいかないが圧力をかけられる
おはしを持つ手が右手
と教えられるのと一緒
0390デフォルトの名無しさん
2010/08/19(木) 14:35:44文法の殆どは、「おはしを持つ手は右手」の類いのもの
しかしだからといって余りそのバリエーションが増えす
ぎるとカオスになる。
逆に極端に一つに統一されてもまた大変になる。
難しいですなw
0391デフォルトの名無しさん
2010/08/19(木) 14:39:050392デフォルトの名無しさん
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;
}
0393デフォルトの名無しさん
2010/08/19(木) 16:00:240394デフォルトの名無しさん
2010/08/19(木) 16:07:45数学的な話は数学板で。まぁあの板、結構気質が悪いけどな・・・
ところで、暇な君達に有難いコードを伝授しよう。
for(;;);
0395デフォルトの名無しさん
2010/08/19(木) 16:36:090396デフォルトの名無しさん
2010/08/19(木) 16:41:55とか言ってみるテスト
0397デフォルトの名無しさん
2010/08/19(木) 16:48:110398デフォルトの名無しさん
2010/08/19(木) 16:49:180399デフォルトの名無しさん
2010/08/19(木) 16:49:59頭わいてんのか?
0400デフォルトの名無しさん
2010/08/19(木) 16:58:14まぁ、quatanionは複素数を拡張しただけなんだけどね
0401デフォルトの名無しさん
2010/08/19(木) 17:14:200402デフォルトの名無しさん
2010/08/19(木) 17:19:260403デフォルトの名無しさん
2010/08/19(木) 17:53:260404デフォルトの名無しさん
2010/08/19(木) 18:10:15申し訳ないが、Gaussian integer における素数というものもありますよ。
0405デフォルトの名無しさん
2010/08/19(木) 18:12:49きみは ばかだなぁ
0407デフォルトの名無しさん
2010/08/19(木) 18:22:33複素数の世界にも素数という概念はあるのですが。
(参考文献)http://www.amazon.co.jp/dp/4000051717/
0408407
2010/08/19(木) 18:24:03http://www.amazon.co.jp/dp/4320010019/
0410デフォルトの名無しさん
2010/08/19(木) 18:25:37以下の関数を記述しなさい。
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] 期限: 一週間くらい?
0411デフォルトの名無しさん
2010/08/19(木) 18:26:39自分が他人に説明できる知識として知りもしないのに
ある学者がそういうことを言っている、みたいな引用で
知ったかぶるのは無知も同然ですよ?
知らない人は知らない、しかし存在しないと言っていない以上
否定はしていない。貴方は今この世に存在しているから
誰も貴方の存在は否定できませんが、貴方も私も
お互いに知らないでしょうね。知らないからといって存在しない
訳ではない、そういうことです。もう少し 柔軟な考え 頭 を持ちましょう。
で、貴方自身が何か研究なさっているんですか?学業でそういった
ことを取り扱っているんですか?
0412デフォルトの名無しさん
2010/08/19(木) 18:27:550413デフォルトの名無しさん
2010/08/19(木) 18:28:36amazon(笑) レビュー(大爆笑)
0414デフォルトの名無しさん
2010/08/19(木) 18:28:41>>385
>素数は1より大きな自然数だと定義されています。
>>405
0416デフォルトの名無しさん
2010/08/19(木) 18:31:59一緒くたにされても・・・そういうプログラムが必要なら自分でコードを書けば?
>>404-405
0417デフォルトの名無しさん
2010/08/19(木) 18:37:58これ以上、大学で研究するような専門的なあまり知られていない様な
話はこれくらいにしとけ。相手に理解力がなければいくら説明しても
理解されないのは当然。自分は知っている、だから何?としか思われないよ。
そこまで言うなら、確実に証明できる形で、まずご自分の身元を明かして
どこの誰でどこで研究しているか、活動しているかを明かして数学板で議論をなさっては?
数学板は妙に気持ち悪い、数学を知った気になって初歩的なミスをしている癖に
持論を展開している奴らが多いからなw 所詮2ちゃんねる。
社会的に、世界的に認められた場所でもないから。
0418デフォルトの名無しさん
2010/08/19(木) 18:42:51いつもながらの無意味に長い長文乙
getchar() の返り値は int でとりこみましょうね?
0419デフォルトの名無しさん
2010/08/19(木) 18:56:21LIAR GAMEでもやるか
数学的な考察をあたえないと僕はプログラムを書く気になれない
0420デフォルトの名無しさん
2010/08/19(木) 19:26:43わからないなら黙ってればいいおw
0421デフォルトの名無しさん
2010/08/19(木) 20:14:16330回?
0422410
2010/08/19(木) 20:15:46設問に、「効率的なロジックを組めば数秒〜1分のオーダーで結果が返る」とありました。
某社のプログラマ採用試験で使われた問題です。
簡単そうに見えますが、まともに組もうとすると、1日かかっても処理が終わりません。
0423デフォルトの名無しさん
2010/08/19(木) 21:02:23一緒の答えが出た
>>422
1000回繰り返して 1.8秒 だった
桁間違えてない?
0424デフォルトの名無しさん
2010/08/19(木) 21:22:45Pythonで問題文そのままで組んでみたけどすぐに結果でた
http://codepad.org/gg8kAyjv
>>421>>423
同じく330回
0425422
2010/08/19(木) 21:27:43済まん、問題文間違えてるかも知れない。ちょっと調べてみるね。時間もらいたい
0426デフォルトの名無しさん
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枚目のそれぞれの結果をが、どういう法則かもまとめよ。
0427デフォルトの名無しさん
2010/08/19(木) 22:29:23同じく330
>>426
郡数列面倒だから一般項は求めてない
http://codepad.org/IfDGUk5Z
0428デフォルトの名無しさん
2010/08/19(木) 22:50:20int hoge(int n)
{
int x;
for(x=1;x*2<=n;x<<=1);
return (n-x)*2+1;
}
0429デフォルトの名無しさん
2010/08/20(金) 00:00:12http://codepad.org/5nsJuQgb
0430デフォルトの名無しさん
2010/08/20(金) 03:04:00[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迄
0431デフォルトの名無しさん
2010/08/20(金) 04:23:37元ネタはShuffles(1002,101)らしいけどいいの?
まあ32ビットじゃおさまらないけどさ
0432デフォルトの名無しさん
2010/08/20(金) 07:42:3012025860回 で 73秒 になった
0433デフォルトの名無しさん
2010/08/20(金) 07:50:28根本的にアルゴリズムを考え直さないと数秒ってのは無理っぽいね
0434デフォルトの名無しさん
2010/08/20(金) 07:53:130435デフォルトの名無しさん
2010/08/20(金) 07:58:27各行、列に数字は1〜9が1つずつ、さらに対角線も1〜9が1つずつ。
0436デフォルトの名無しさん
2010/08/20(金) 08:13:41けど、あたえられる数値によってものすごく処理時間に幅がありそう
0437デフォルトの名無しさん
2010/08/20(金) 08:40:34count=5812104600 109.109[sec]
0438デフォルトの名無しさん
2010/08/20(金) 08:48:340439デフォルトの名無しさん
2010/08/20(金) 09:40:11が十分できるものを除いて)
Cで書くのは個人的には敬遠したいところ
出来る出来ないの問題じゃなくて
0440デフォルトの名無しさん
2010/08/20(金) 10:07:00逆にCだろ
0441デフォルトの名無しさん
2010/08/20(金) 11:00:54最初に A B C のうちの A に N 段あったとして
それを全部 B に最短手順で移動させたい場合
最初の一手を B に置くか C に置くかを N の値によって求めなさい
0442デフォルトの名無しさん
2010/08/20(金) 11:07:55int hoge(int N)
{
return (N&1)?'B':'C';
}
0443デフォルトの名無しさん
2010/08/20(金) 11:28:01仮に1枚を1秒で動かしたら、25枚動かすのに1年以上掛かるんだぞぉ〜
31枚で約68年。一生をハノイの塔の移動で過ごすかい?
0444デフォルトの名無しさん
2010/08/20(金) 11:33:10円盤枚数をd,ペグの本数をnとして求めなさい
0445デフォルトの名無しさん
2010/08/20(金) 12:53:480446デフォルトの名無しさん
2010/08/20(金) 13:11:12生きてねーよ、それだけ動く肉体がもたねーよw
0447デフォルトの名無しさん
2010/08/20(金) 13:18:45つかゲームについてきた「伝説」は64枚な
0448デフォルトの名無しさん
2010/08/20(金) 13:35:42B: 2 5
C: 3 6 9
を
1:
2:
3:1 2 3 4 5 6
に出来る?最小何ステップで?
一番左の数字を別の文字の先頭に移動できる。
ただし数字は常に左のほうが小さいようにならんでなければならない
0449デフォルトの名無しさん
2010/08/20(金) 13:37:21A:1 4
B:2 5
C :3 6
A:
B:
C:1 2 3 4 5 6
ね
0450デフォルトの名無しさん
2010/08/20(金) 13:43:54動かせる範囲からして大勢でやっても効率よくならんし
確かに一人でやるとは言っていないが、1枚1秒ペースでやっても
1462億年以上ですよ?w もはや作業する人の一生がどうとかってレベルじゃねーぞw
0451デフォルトの名無しさん
2010/08/20(金) 13:47:16A:1 2 3 4
B:
C:5 6
残りは4枚のハノイの塔だから4**2-1回動かす
6+15=21回
0452デフォルトの名無しさん
2010/08/20(金) 13:48:02それが終わるまでに地球ごと消滅してんじゃね?
1秒で10枚動かせたとしても、1枚1秒ペースの1/10にしかならん。
100倍のペースにしても、世代を受け継いでも、物理的に現実的に
実現するのは容易いことではないのは言うまでもない。
0453デフォルトの名無しさん
2010/08/20(金) 13:50:27途中で休憩を入れるなり、常にそうでなくても、開始から終了まで
常にそのペースを保っていなければならない。1年間もそうしていられるかね?
そんなことのために?人間の寿命だって人それぞれだし。
馬鹿馬鹿しい。何の為に生まれてきたのかw
0454デフォルトの名無しさん
2010/08/20(金) 13:50:4925
36
4
125
36
34
125
6
34
25
16
234
5
16
1234
5
6
1234
-
56
4
123
56
-
123
456
-
-
123456
0455デフォルトの名無しさん
2010/08/20(金) 13:51:24終わると世界が消滅するだけで、終わるまで世界が消滅しないとはどこにm(ry
0456デフォルトの名無しさん
2010/08/20(金) 13:55:53人類はたかが数千万年。それも最初は猿程度の下等のものから。
人間の一生はともかく、その作業をそのペースでやった場合
それだけの時間が掛かる作業だということ。
0457デフォルトの名無しさん
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
0458デフォルトの名無しさん
2010/08/20(金) 14:08:34作業全体を通してどれだけの負担か、それをどれだけの人数で分散するかで
一人当たりの負担は変わるけど、少なくともそんなことに時間を費やせる人が
どれだけいるか?現実的ではないな。もっと他に楽しめる人生があるだろ。
0459デフォルトの名無しさん
2010/08/20(金) 14:20:37宗教なんてそんなもんだよ
つか「伝説」だって
0460デフォルトの名無しさん
2010/08/20(金) 15:19:360461デフォルトの名無しさん
2010/08/20(金) 15:24:530462デフォルトの名無しさん
2010/08/20(金) 15:37:05[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] その他の制限:特に無いです。
よろしくお願いします。
0463デフォルトの名無しさん
2010/08/20(金) 15:49:40[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] その他の制限:特に無いです。
リンクミスりました・・よろしくお願いします。
0464デフォルトの名無しさん
2010/08/20(金) 18:55:57どこが誤ってるの?
デバックってなにすりゃいいの?
宿題の問題見せてよ
0465463
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
0466デフォルトの名無しさん
2010/08/20(金) 20:10:180467デフォルトの名無しさん
2010/08/20(金) 20:10:37これを解くコードを書いてくれw
0468デフォルトの名無しさん
2010/08/20(金) 20:17:22カッコが閉じられてなかったり、
構造体じゃないもののメンバを参照してたり、
インクリメントが++じゃなくて+だけになってたり、こりゃ大変だな。
0469デフォルトの名無しさん
2010/08/20(金) 21:20:01http://codepad.org/MbqIW42n
0470デフォルトの名無しさん
2010/08/20(金) 23:35:37http://codepad.org/ddcoMxrB
0471デフォルトの名無しさん
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から引っ張るのかな〜と思っているのですが、
どれを使うのか、そして使い方もわかっていません。
0472デフォルトの名無しさん
2010/08/21(土) 09:25:48与えられたパターンから解くコードを!
0473デフォルトの名無しさん
2010/08/21(土) 09:38:56google使えないお子様はクソしてネロ
ttp://www5.airnet.ne.jp/tomy/cpro/etc17.htm
0474デフォルトの名無しさん
2010/08/21(土) 09:44:12自信作だよ 早いよ
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;
}
0475デフォルトの名無しさん
2010/08/21(土) 09:46:13googleは使えるがおまえ自身がコードを書けない癖に
他人のを見て知ったかぶっているお前こそ糞だろw
0476デフォルトの名無しさん
2010/08/21(土) 09:47:55なげーよw
0477デフォルトの名無しさん
2010/08/21(土) 09:57:24http://www.yukawanet.com/archives/2832559.html
0478デフォルトの名無しさん
2010/08/21(土) 10:03:16数独関係なんてほとんどネットにあるじゃん
それを知らないなんて知能が低いのか?
わざわざこう言うスレで聞くまでもない位の質問だぞ 数独
まずは上のURLのコードみてそれの理解から始めましょうね
夏休みは残ってるからきちんと勉強するんですよ アフォの子ちゃん
0479デフォルトの名無しさん
2010/08/21(土) 11:19:38例えば n=5, i=2 のとき、この操作は対象群 S_5 の元ひとつ
( 1 2 3 4 5 )
( 3 4 1 5 2 )
になる。
あとはこの元の位数を求めればいいだけじゃない?
GAPつかってみるのも面白いかもな
0480デフォルトの名無しさん
2010/08/21(土) 12:52:32[2]ルービックキューブを解く(6面をあわせる)プログラムを書いてください
[3]
[3.1]出来る限りOS非依存で
[3.2]出来る限りコンパイラ・バージョン非依存で(C99くらいから)
[3.3]出来る限りCで(C++で作る場合は必ずクラスを使ってください)
[4]8/27
[5]
Cで作る場合は
各面の色の状態を 3x3 の配列で表し
全体を 6x3x3 で表してください
C++で作る場合は
面の状態ではなくキューブの物理的構造をクラス化してシミュレーションしてください
0481デフォルトの名無しさん
2010/08/21(土) 12:55:55矛盾に気が付いているのだろうか。
0482デフォルトの名無しさん
2010/08/21(土) 13:16:24http://kamome.2ch.net/test/read.cgi/newsplus/1281937853/
下手なプログラムを作れば、ウィルス認定されて処罰されるよw
0483デフォルトの名無しさん
2010/08/21(土) 17:15:23矛盾はしてないと思う
0484デフォルトの名無しさん
2010/08/21(土) 17:16:55下手じゃないプログラムでも逮捕される世の中だしな
【速報】岡崎市立図書館へのサイバー攻撃、図書館のソフト不具合だった【絶対に許さない】
http://kamome.2ch.net/test/read.cgi/news/1282338089/
0485デフォルトの名無しさん
2010/08/21(土) 17:19:41そもそも何を根拠に「ウィルス」認定するかが問題になるしね。
本来、ユーザにとって有害でもないプログラムも、類似するものによって
ウィルス認定されかねない。
0486デフォルトの名無しさん
2010/08/21(土) 18:17:24数独のヒントは7桁の郵便番号かね
0487486
2010/08/21(土) 19:33:36郵便番号じゃなさそうだね
0488デフォルトの名無しさん
2010/08/21(土) 20:43:08たとえば、
henkan input.bmp output.bmp
でinput.bmpを二値画像に変換するような実行ファイルがあったとき、
これを他のプログラムの内部に組み込みたいと考えているのですが…
henkanという実行ファイルのソースが分からないので…
0489デフォルトの名無しさん
2010/08/21(土) 20:52:570490デフォルトの名無しさん
2010/08/21(土) 20:53:130491デフォルトの名無しさん
2010/08/21(土) 21:12:05これで出来るみたいですね、ありがとうございました。
0492デフォルトの名無しさん
2010/08/22(日) 09:08:580493デフォルトの名無しさん
2010/08/22(日) 10:30:54与えた問題(パターン)から答えを求めるコードを分かり易く頼む
0494デフォルトの名無しさん
2010/08/22(日) 10:48:570495デフォルトの名無しさん
2010/08/22(日) 11:06:32ググレカス
0496デフォルトの名無しさん
2010/08/22(日) 11:34:584 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
0497デフォルトの名無しさん
2010/08/22(日) 14:00:04O(n*log(n))で解けた。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10918.cpp
0498デフォルトの名無しさん
2010/08/22(日) 15:24:37totoで見事1等を当てるプログラムを製作せよ!
0499デフォルトの名無しさん
2010/08/22(日) 15:47:350500デフォルトの名無しさん
2010/08/22(日) 15:57:540501デフォルトの名無しさん
2010/08/22(日) 19:13:32ttp://www.pro.or.jp/~fuji/numplace/index.html
0502デフォルトの名無しさん
2010/08/22(日) 20:08:11めちゃくちゃ早いなw
0503デフォルトの名無しさん
2010/08/22(日) 21:39:03// 情報欠落の回避
// ◎ソースコード
#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日午後
/*?の間に書いてある通りに変更する。
どなたかやってくれる方いませんでしょうか。
考察もそれとなく教えてもらえると助かります。
0504デフォルトの名無しさん
2010/08/22(日) 21:41:33積み残しつったっけコレ?
0505デフォルトの名無しさん
2010/08/22(日) 21:50:40http://codepad.org/D7C5EO2r
0506デフォルトの名無しさん
2010/08/22(日) 21:53:247.654321
0507デフォルトの名無しさん
2010/08/22(日) 22:00:370508デフォルトの名無しさん
2010/08/22(日) 22:05:15ものすごい大雑把な説明でいくと
floatには正しく表示できる桁数に限界があり、それより大きい桁を扱おうとすると精度が落ちるという性質があるので
最初にaとbを足すことで、桁が増えないようにする
ってとこだろうか、結構語弊があるが
floatの内部仕様に触れないでいくとこんなもんだろうか
指数表記とか講義でやったならこの説明じゃ不味いかも
>>507
なんか勘違いしてないか?
0509デフォルトの名無しさん
2010/08/22(日) 22:06:200511デフォルトの名無しさん
2010/08/22(日) 22:18:49byteの中でさまよう小数点
0512デフォルトの名無しさん
2010/08/22(日) 22:21:160513デフォルトの名無しさん
2010/08/22(日) 22:22:44やっぱり勘違いしてるな
本質的には同じこと(浮動小数点の仕様)だけど
0.00001とかが2進数じゃ表現できない件はこの問題とはとりあえず関係ないよ
0514デフォルトの名無しさん
2010/08/22(日) 22:27:350515507
2010/08/22(日) 23:09:34俺が言ったのは>>514の言うように桁落ちの問題で丸め誤差じゃない。
自分で考えた限りでは桁落ちを少なくするには絶対値の小さい順に足すのが良いと思う。
でもこの問題ではさらにそこから順序を変更すると全く桁落ちしないパスがあるということか。
解答は>>505でいいと思います。
0516デフォルトの名無しさん
2010/08/22(日) 23:21:42問題文に書いてあるじゃないか
0517507
2010/08/22(日) 23:32:22申し訳ない。問題文にもあるしwikipedia見たら確かにそういう分類だった。
桁落ちはかなりマニアックな誤差だし、正しい用語を知らないとダメだね。
というわけで、>>515の「桁落ち」は全て「情報落ち」に訂正します。
0518デフォルトの名無しさん
2010/08/22(日) 23:43:23普通は小さいほうから足すよな
0519デフォルトの名無しさん
2010/08/23(月) 01:11:04この丸めだとか情報欠落ってのがいまいちわからなくて困ってたんで助かりました
0520デフォルトの名無しさん
2010/08/23(月) 04:53:060521デフォルトの名無しさん
2010/08/23(月) 09:43:16桁落ちと情報欠落は本質的には同じものだろ
0522デフォルトの名無しさん
2010/08/23(月) 10:08:010523デフォルトの名無しさん
2010/08/23(月) 10:19:58なんでこれでうまくいくかが全然わかんない。
どうしてだ?
0524 ◆6HpwTeryPw
2010/08/23(月) 10:25:56[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.)
0525デフォルトの名無しさん
2010/08/23(月) 10:30:52一枚だけに注目したときカードは決まった周期で必ず元の場所に帰ってくる
すべてのカードの周期の最小公倍数が答えになる
一枚のカードがどう動くか調べたらその経路上にあるカードは
すべて同じ周期になるから一度調べた経路はスキップする
0526デフォルトの名無しさん
2010/08/23(月) 10:52:26さんくす
頭のいいやり方は違うなぁ……
0528デフォルトの名無しさん
2010/08/23(月) 11:14:31http://codepad.org/VLzU2CV4
参考にした書籍が違うと思いますので、特に収束判定の部分は変わっています。
あと SOR 法ってうまく係数をとらないと収束が遅い場合があるようですね。
参考文献 http://www.amazon.co.jp/dp/4874084141/
0530デフォルトの名無しさん
2010/08/23(月) 12:42:47http://hibari.2ch.net/test/read.cgi/tech/1278759538/
0531air
2010/08/23(月) 14:33:50そこで疑問が出たのですが解決していただきたいです。
・出力先はどこになるのか?
・今回用いるCSVファイルは容量が大きく開くことができません。
出力することにより開けるようになるのでしょうか?
0532デフォルトの名無しさん
2010/08/23(月) 14:41:430533デフォルトの名無しさん
2010/08/23(月) 14:49:55課題をそのまま貼ったほうがいいよ。
その要約じゃよくわからない。
0534air
2010/08/23(月) 14:50:59出力するらしいです。
そのための出力する準備なんで、とりあえずは何の操作をするわけではなく再びテキストファイルに出力するだけで
良いんですかね?
0535デフォルトの名無しさん
2010/08/23(月) 14:53:420536デフォルトの名無しさん
2010/08/23(月) 14:57:310537デフォルトの名無しさん
2010/08/23(月) 14:59:10http://hibari.2ch.net/test/read.cgi/tech/1280914463/
0538デフォルトの名無しさん
2010/08/23(月) 15:40:55ネット環境途絶えて超絶亀になりますがありがとうございました!
0539デフォルトの名無しさん
2010/08/23(月) 17:23:30その中の要素(行と列を指定)を処理したいのですがどうすればよいでしょうか?
0540デフォルトの名無しさん
2010/08/23(月) 17:24:420541デフォルトの名無しさん
2010/08/23(月) 17:24:58具体的に。
0542デフォルトの名無しさん
2010/08/23(月) 17:37:32t 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をかけるという風に、列ごとに
与えるデータを変えるというものです。
0543デフォルトの名無しさん
2010/08/23(月) 17:39:03t 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をかけるという風に、列ごとに
与えるデータを変えるというものです。
0544デフォルトの名無しさん
2010/08/23(月) 17:43:56カンマ区切りじゃないのですか?
CSV = Comma-Separated Values
0545デフォルトの名無しさん
2010/08/23(月) 17:49:04CSVファイルをそのままひらくとカンマは表示されてないです。
ただ単に数字がたくさん並んでます。
0546デフォルトの名無しさん
2010/08/23(月) 17:58:51excelで開いてるんじゃないの?
0547デフォルトの名無しさん
2010/08/23(月) 18:02:48それは excel とか他のアプリケーションが起動しているからではないですか?
c をコンパイルできる環境なら、
http://codepad.org/XtvsU5xW
をコンパイルして、できた実行ファイル(たとえば a.out)をつかって、
./a.out < 対象のCVSファイル名 > output.txt
として、その output.txt を >>1 のアップローダに貼り付けて我々に見せてください。
0548デフォルトの名無しさん
2010/08/23(月) 18:04:57カンマ区切りだと思います。
543で書いたのはエクセルで開いたときです。ただ、メモ帳では
容量が重く開けません。どうやって各要素にデータを与えればよいでしょうか?
0549デフォルトの名無しさん
2010/08/23(月) 18:16:52>>547 のとおりにしてみてください。これが難しいのであれば(それもしかたがありません)、>>1 のテンプレートにそって環境・処理系等の情報をください。
Windows ならば、私のほうで、適当な実行ファイルをつくって、あなたの CSV ファイルがいったいどういうものか、それを解明するところからはじめましょうか。
0550デフォルトの名無しさん
2010/08/23(月) 18:42:4300200533,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万近くのデータがあります。
0551デフォルトの名無しさん
2010/08/23(月) 18:55:09次にあなたの環境を教えてください。
>>1 のテンプレートにしたがって、分かるところだけでいいから書いてください。
特に、C のプログラムをコンパイルできるかどうか、それを教えてください。
こちらから提示した C のプログラムをコンパイルできなければ、残念ながら、お役に立つことはできません。
最後に、処理の内容を正確に書いてください。
「○列目の値を数値のみなして、5倍する。全部の行について行う」
「○列目の値と△列目の値をたして、□列目に数値としてセットする。」
など。
処理の量がいくらあっても大丈夫ですが、処理内容が微塵でも不正確だとプログラムをつくることはできません。
0552デフォルトの名無しさん
2010/08/23(月) 19:09:24[2] 問題文(含コード&リンク):口頭の支持のみ
[3] 環境
[3.1] OS: Windows XP
[3.2] わかりませんが、microsoft visual studio2005を使用しています。
[3.3] 言語: C++
[4] 期限:おそらく数週間
[5] その他の制限: ifstreamやofstreamを使いなさいとの事でした。
処理の内容ですが、CSVファイルの容量が多いため処理量を把握できていません。
そのためサンプルのような形でお願いします。
処理としては、
CSVファイルの列ごとに、ある固定値をかけるというものです。(よって列によってでかけるものが変わる)
また、何も行わない列もあります。(1部分の列のみに数値をかける)そしてその結果を出力するというものです。
もし、この説明で漠然としているようでしたらご指摘お願い致します。
0553デフォルトの名無しさん
2010/08/23(月) 19:10:050554デフォルトの名無しさん
2010/08/23(月) 19:12:470555デフォルトの名無しさん
2010/08/23(月) 19:13:11この人実社会でまともにコミニュケーションとれてるんだろうか。。。
0556デフォルトの名無しさん
2010/08/23(月) 19:14:580557デフォルトの名無しさん
2010/08/23(月) 19:16:36実生活でこういう人と絡むと、ごっつストレスかかる。
0558デフォルトの名無しさん
2010/08/23(月) 19:17:56もっと真面目に書けませんか?
0559デフォルトの名無しさん
2010/08/23(月) 20:35:08"ある固定値"はファイルからの入力?
10万もデータがあるのに手入力とは思えんのだが
0560デフォルトの名無しさん
2010/08/23(月) 21:08:34>そのためサンプルのような形でお願いします。
>処理としては、
上の文章いらね。
>CSVファイルの列ごとに、ある固定値をかけるというものです。(よって列によってでかけるものが変わる)
列数はいくつなんだ。CSV開けないってExcelは65,535行より大きいファイルは開けん。テキストエディタで確認しろ。
CSVの最初の10行くらいサンプルとして載せろ。
>また、何も行わない列もあります。(1部分の列のみに数値をかける)そしてその結果を出力するというものです。
「ある固定値」はプログラム上に決め打ちでいいのか。
何も行わない列の判断はどうする、これはコマンドライン引数で指定するのか。
結果は標準出力でいいのか。
これほど意図が伝わらないのも珍しい、ネタで書いてるとしか思えない。
0561デフォルトの名無しさん
2010/08/23(月) 21:25:540562デフォルトの名無しさん
2010/08/23(月) 21:29:11>列数はいくつなんだ。CSV開けないってExcelは65,535行より大きいファイルは開けん。テキストエディタで確認しろ。
>CSVの最初の10行くらいサンプルとして載せろ。
>>550
0563デフォルトの名無しさん
2010/08/23(月) 21:43:530564デフォルトの名無しさん
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;
}
0565デフォルトの名無しさん
2010/08/23(月) 21:58:30STL使えってお題なんじゃ・・・。
0566デフォルトの名無しさん
2010/08/24(火) 01:33:30[2] 問題文(含コード&リンク):
テキストファイルを読み込み、指定された文字列を検索し、指定文字列が含まれている行を抽出して出力するプログラムを作成せよ。
プログラムの実行および引数は以下の通りである。
実行ファイル名 入力ファイル名 検索文字列 出力ファイル名
*1行50文字×1000行以上扱えること
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン: BCC5.5
[3.3] 言語: C言語
[4] 期限:8月31日 正午
[5] その他の制限: 特になし
0567デフォルトの名無しさん
2010/08/24(火) 01:42:00そのエクセルふるいよ
0568デフォルトの名無しさん
2010/08/24(火) 02:05:58http://codepad.org/taaD5P60
0570デフォルトの名無しさん
2010/08/24(火) 02:19:33[2] 問題文(含コード&リンク):
標準入力を読み込み、指定された文字列(mainの引数に2個以上与えられる)を検索し、それらの指定文字列が現れた、直後に与えられた引数に置換
して標準出力するプログラムを作成せよ。
ただし最後の引数の文字列が現れた場合は最初に指定された文字列に
置換するものとする。
また複数の指定文字列に一致する箇所の場合、もっとも長い文字列が
現れたものと解釈する。
*入力文字に非ASCII文字が含まれないとして良い
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン: BCC5.5
[3.3] 言語: C言語
[4] 期限:8月31日 正午
[5] その他の制限: 特になし
0571570
2010/08/24(火) 02:22:48×
標準入力を読み込み、指定された文字列(mainの引数に2個以上与えられる)を検索し、それらの指定文字列が現れた、直後に与えられた引数に置換
して標準出力するプログラムを作成せよ。
○
標準入力を読み込み、指定された文字列(mainの引数に2個以上与えられる)を検索し、それらの指定文字列が現れたら、その文字列を直後に与えられた
引数文字列に置換して(それ以外は特に変更せず)標準出力するプログラム
を作成せよ。
0572デフォルトの名無しさん
2010/08/24(火) 02:52:240573デフォルトの名無しさん
2010/08/24(火) 03:23:25そうでもなかった
>>570
http://codepad.org/ji66oOXQ
0574デフォルトの名無しさん
2010/08/24(火) 03:27:02マッチ位置が前方にあるということと、複数一致する場合最長の文字列に置換するということは
マッチ位置が前方にあるということを優先していいの?(そうでない場合同じ長さのマッチはどうするの?)
例:
置換文字列:[ABC, ABCD, XYZZY]
対象の文字列:ABCXYZZY
置換後文字列:ABCDABC
XYZZYより前方にあるABCが優先される
置換文字列:[ABC, ABCD, XYZZY]
対象の文字列:ABCDXYZZY
置換後文字列:XYZZYABC
ABCより長いABCDが優先される
0575573
2010/08/24(火) 03:28:42> 置換するものとする。
> また複数の指定文字列に一致する箇所の場合、もっとも長い文字列が
> 現れたものと解釈する。
ごめん、これ実装してなかった
0576574
2010/08/24(火) 03:43:05置換は1回なのか複数回なのかどっち?
0577デフォルトの名無しさん
2010/08/24(火) 03:47:23問題文を理解出来ないような低能は参加すんなよ
0578573
2010/08/24(火) 03:55:42http://codepad.org/MhbWwa7t
引数 123 xxx 2345 yyy が与えられた時、
文字列 12345 があるとしたら、
xxx45 に変換すべきなのか、
1yyy に変換すべきなのか、
分からなかったので、前者にしておいた。
0579デフォルトの名無しさん
2010/08/24(火) 04:06:15煽るしか出来ないような低能はどっか行けよ
0580デフォルトの名無しさん
2010/08/24(火) 09:35:50また、それぞれの列にたいして掛け算を行うため、掛け算に使う固有値は約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は使うよう指示があります。
0581デフォルトの名無しさん
2010/08/24(火) 09:53:440582デフォルトの名無しさん
2010/08/24(火) 10:49:06>3*3 6*9 4*7
>2*3 5*9 2*7
>8*3 3*9 5*7
>2*3 1*9 8*7
これの意味を教えてください。
あと、最終的には行列計算を行うのですか?
0583デフォルトの名無しさん
2010/08/24(火) 10:53:30すみません。引数の与え方を教えてください。
いまいちよくわかりませんが、
xxx.exe ABC abc VIM xyzzy
と指定したら、
ABC を abc に
VIM を xyzzy に
変更置き換えすればいいのでしょうか?
0584デフォルトの名無しさん
2010/08/24(火) 11:20:122*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くらいあります。
結果を出力したいです。宜しくお願い致します。
0585デフォルトの名無しさん
2010/08/24(火) 11:50:040586デフォルトの名無しさん
2010/08/24(火) 14:29:08この質問に答えて
1. 処理する列と処理しない列はどのように与えられるのか。ファイル入力か手入力か。書式は?
2. 固有の数値はどのように与えられるのか。ファイル入力か手入力か。書式は?
3. 掛けられる数は整数なのか。0で始まる行は処理対象から外れているのか、0を無視するのか。
4. 空行は処理対象から外れているのか、0として扱うのか。
0587デフォルトの名無しさん
2010/08/24(火) 15:08:000588デフォルトの名無しさん
2010/08/24(火) 15:25:31C++詳しい人、書き換え頼む。
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
0589デフォルトの名無しさん
2010/08/24(火) 15:39:21与えられているというよりかは、どこの列を処理するかは把握できています。よって、手入力になるかもしれません。書式とはどういう事でしょうか?すみません。
2. 固有の数値はどのように与えられるのか。ファイル入力か手入力か。書式は?
80程度ですので手入力でもよろしいかと思います
3. 掛けられる数は整数なのか。0で始まる行は処理対象から外れているのか、0を無視するのか。
小数点第2位まであります。0として扱います。
4. 空行は処理対象から外れているのか、0として扱うのか。
処理対象から外れています。
まとめると、0がついていたら0と把握し、空行であれば無視して良いです。
ちなみに、今回空列は処理しません。今回処理する列には0を含め、必ず数字が入っています。
0590デフォルトの名無しさん
2010/08/24(火) 15:45:43> 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
宿題だろうが仕事だろうがお金がからむものだろうが、面白いものならば。
まだやるときめたわけじゃないですし。
0591デフォルトの名無しさん
2010/08/24(火) 15:50:17「かもしれません」とか「80程度です」とか曖昧な表現やめようよ。
本気で仕様を相手に伝えたいならだけど。
0592デフォルトの名無しさん
2010/08/24(火) 15:55:135,7,3,0,2265,8575,9,3,,,,,,,3,6,2,086,4,,4,,6,,1,,363,
この文はこちらと関連しています。こちらは抜粋していますが実際にはもっと列も行もたくさんあります。
6個目のコンマの次の列だけに2をかけ、
16個目のコンマの次の列だけに3をかけるような感じです。
このような作業をする列が80ほどあります(作業をしない列もあります)。また、作業をする列には必ず数値が入り、空はありません。
ちなみにこちらは先生からの課題です。
0593デフォルトの名無しさん
2010/08/24(火) 16:47:280594デフォルトの名無しさん
2010/08/24(火) 16:55:330595デフォルトの名無しさん
2010/08/24(火) 18:01:50http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10920.txt
最初の引数で定義ファイル、次の引数でcsvファイルを指定して実行。
定義ファイルは以下の書式で。
6*3
14*6
20*5.2
6*3を例に6が列番号、3が掛ける係数。列番号は0開始で。後は知らね。
0596デフォルトの名無しさん
2010/08/24(火) 19:44:39stlとboostは使っても構いません。
fstreamは使ってほしいです。 よろしくお願いします。
0597デフォルトの名無しさん
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;
}
}
0598デフォルトの名無しさん
2010/08/24(火) 20:26:33このプログラムはin.csvを読み込んでout.txtにそのまま出力するんですよね?
0599デフォルトの名無しさん
2010/08/24(火) 20:29:43ifs >> strしてもstrはただ単にstring型だけの意味だと思うのですが。
0600デフォルトの名無しさん
2010/08/24(火) 20:40:17その通り。こっちではエラーでません。VisualStudio2008だけど。
>>599
ifsから1行読み込んでstrに格納。
strは型じゃなく実体(インスタンス)です。
0601デフォルトの名無しさん
2010/08/24(火) 20:41:340602デフォルトの名無しさん
2010/08/24(火) 20:47:41どなたか教えてください。
0603デフォルトの名無しさん
2010/08/24(火) 21:09:16アプリケーションの種類がコンソールアプリケーション。
追加オプションで「空のプロジェクト」チェック、「プリコンパイル・・・」の方はチェック外す。
ソースコピペ。
0604デフォルトの名無しさん
2010/08/24(火) 21:19:37この文字を識別子で使用することはできませんとでました。
string strのところです。
0605デフォルトの名無しさん
2010/08/24(火) 21:23:170606デフォルトの名無しさん
2010/08/24(火) 21:29:330607デフォルトの名無しさん
2010/08/24(火) 21:32:340608デフォルトの名無しさん
2010/08/24(火) 21:36:37それか、597の方が打っていたものをコピペせずに手入力すれば大丈夫でしょうか?
0609デフォルトの名無しさん
2010/08/24(火) 21:41:150610デフォルトの名無しさん
2010/08/24(火) 21:41:58字下げは後で自分でやっても良いし。
0611デフォルトの名無しさん
2010/08/24(火) 21:47:440612デフォルトの名無しさん
2010/08/24(火) 21:59:550613デフォルトの名無しさん
2010/08/24(火) 22:12:560614デフォルトの名無しさん
2010/08/24(火) 23:07:45http://codepad.org/SW07pvuS
これをコピペしてみてください。
0615デフォルトの名無しさん
2010/08/24(火) 23:08:51[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] その他の制限:二重ポインタの使用禁止
よろしくお願いします。
0616デフォルトの名無しさん
2010/08/24(火) 23:17:42>[5] その他の制限:二重ポインタの使用禁止
それは困りましたねえ。
0617デフォルトの名無しさん
2010/08/24(火) 23:32:09だろ
0618デフォルトの名無しさん
2010/08/25(水) 01:38:45http://codepad.org/9aiZMhx6
あとは削除機能だけですが、その仕様を考えあぐねております。デバッグコード入りですが、とりあえずあげておきます。つづきはまた今度。
二重ポインタはなくしたつもりですが、残っていたら教えてください。
>>617
たとえば、
struct node *root;
root = add_node(root, data);
って無駄っぽくないですか?
0619デフォルトの名無しさん
2010/08/25(水) 02:19:52ありがとうございました
0621デフォルトの名無しさん
2010/08/25(水) 10:19:47このプログラムを実行してもリンク先に書いてある通りにはならずkが1000までいって解が求められないのですがなぜでしょうか
環境は>>524と同じはずなのですが
0622デフォルトの名無しさん
2010/08/25(水) 12:01:19[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パターン作成すること。
0623デフォルトの名無しさん
2010/08/25(水) 12:22:4710 の素因数は 2 と 5 じゃないの?
0624デフォルトの名無しさん
2010/08/25(水) 12:23:58まずガウス-ザイデル法で考えますね。
収束しない a[10][10] と b[10] の内容を教えてください。
また、 a = E(単位行列), b = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) で実行するとどうなりますか?
なお、ガウスザイデル法は任意の連立方程式について収束するとはかぎりません。
0626622
2010/08/25(水) 12:43:51すみません
プログラムを実行したときに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 が続いてしまいます
0628デフォルトの名無しさん
2010/08/25(水) 13:07:15http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10924.c
0629デフォルトの名無しさん
2010/08/25(水) 13:51:05って何をしているのでしょうか?
s.weightの値をどうかするんだとは思いますがよく分かりません。
0630627
2010/08/25(水) 16:42:50了解しました。
0632デフォルトの名無しさん
2010/08/25(水) 18:57:36申し訳ないのですが、つけ忘れたことがありました。
getlineを使ったものでよろしくお願いします。
0633デフォルトの名無しさん
2010/08/25(水) 22:31:560634デフォルトの名無しさん
2010/08/26(木) 12:42:07http://codepad.org/CZugd6yO
0635デフォルトの名無しさん
2010/08/26(木) 13:54:47ありがとうございます。
削除の部分はどのようになっているのでしょうか?
0637デフォルトの名無しさん
2010/08/26(木) 18:44:370638デフォルトの名無しさん
2010/08/26(木) 18:50:41何が始まるんだ?
0639デフォルトの名無しさん
2010/08/26(木) 22:09:51バッチ来い
0640デフォルトの名無しさん
2010/08/26(木) 22:12:51http://codepad.org/ZyqFCqeU
やれることは今までと変わりません(削除はできません)が、内部のデータ構造が増分されています。
あとは 296 行目からの2分探索木削除関数を実装するだけとなりました。今のところはまだアイディア上のあてはないのですけど。
途中経過報告です。仕事で疲れすぎてしまいましたので、20行ほど書いてダウン。
http://codepad.org/jVzdB2L9
条件付(※)で削除機能を盛り込みました。※子ノードを二つもっている親ノードはまだ削除できません。
続きはまた明日にでも。しばし待たれよ。
0643デフォルトの名無しさん
2010/08/27(金) 21:52:510644デフォルトの名無しさん
2010/08/27(金) 21:57:48まねしたらいいじゃない。
0645デフォルトの名無しさん
2010/08/27(金) 22:09:520646デフォルトの名無しさん
2010/08/27(金) 22:15:27では、QZaw55cn4c がもたもたしている間に、さらっと正解を書き上げるのはいかが?
0647デフォルトの名無しさん
2010/08/27(金) 22:21:000648デフォルトの名無しさん
2010/08/27(金) 22:25:51C/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] 難しいそうです。無理しないほうがいいそうです。ただ出来たら
テストの点に無関係に単位をくれるそうです
0649デフォルトの名無しさん
2010/08/28(土) 00:40:50ありがとうございます。
0650デフォルトの名無しさん
2010/08/28(土) 11:52:12削除機能を実装しました。
http://codepad.org/Rjv70KxG
デバッグコードも含んでいます。もしもなにかおかしい動作が発見されたら、実行ファイルと同じところにできている "debug.out" ファイルを
>>1 にでも貼り付けて知らせてください。
問題がないようでしたら、デバッグコードを抜いて清書します。
0651デフォルトの名無しさん
2010/08/28(土) 12:11:34[3]環境
[3-3] 言語:C/C++どちらでも可
[4] 明日29日まで
問題文が長いので半分半分書き込みます
0652デフォルトの名無しさん
2010/08/28(土) 12:13:04_/*----------------------------------------------------------------------*/
// ●演習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);
}
0653デフォルトの名無しさん
2010/08/28(土) 12:13:520654デフォルトの名無しさん
2010/08/28(土) 12:14:53student_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++;
0655デフォルトの名無しさん
2010/08/28(土) 12:17:06else 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;
}
0656デフォルトの名無しさん
2010/08/28(土) 12:17:56_/*!!*/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);
}
0657デフォルトの名無しさん
2010/08/28(土) 12:29:26printf("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;
}
}
0658デフォルトの名無しさん
2010/08/28(土) 12:30:22} 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を再初期化
}
}
すごい長々とすいません。
長文の場合のサイトでも直接貼り付けちゃったのでそっちのが見やすいと思います
0659デフォルトの名無しさん
2010/08/28(土) 12:48:15やり直しー
0660デフォルトの名無しさん
2010/08/28(土) 15:50:44実行してみたのですが、こちらの環境だと
要素の追加からメニューに戻れないようです。
要素を追加する度にメニューに戻るかたちにすることは可能でしょうか…?
0661デフォルトの名無しさん
2010/08/28(土) 16:34:41はいよっと
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10927.txt
データを一行分入力し enter を押した後、CTRL-D を押すか、
思い当たる別の環境では CTRL-Z を押した後、enter を押すと終わると思います。
そのあたりがわかりやすいように表示を変えてみました。
あとバグ修正も行いました。
http://codepad.org/Kl44XK1L
以上で試してみてください。
http://codepad.org/mpK8wnZh
デバッグコードを取り除きました。
0664デフォルトの名無しさん
2010/08/28(土) 23:09:49数独の問題を作る、与えられた問題を解くコードを
まだ完成させていないのかね?駄目だね、君達は。
せいぜいオセロでも作ってなさい。
0665デフォルトの名無しさん
2010/08/29(日) 00:43:50宿題を投げるわけでも、投げられた宿題を解くわけでもない君に、何を求めればいいのですか?
0666デフォルトの名無しさん
2010/08/29(日) 02:52:080667デフォルトの名無しさん
2010/08/29(日) 09:54:10それはお前の釣りレベルが低い事を示しているw
もっと効果的にここの住人を釣れよw
0668デフォルトの名無しさん
2010/08/29(日) 12:37:36はよく釣れたようですね。
0669デフォルトの名無しさん
2010/08/29(日) 12:39:120670デフォルトの名無しさん
2010/08/29(日) 13:07:34いや、int main() 笑は、釣った方があとで釣られまくっていたようですよ。無駄な長文を連発していましたから。
0671デフォルトの名無しさん
2010/08/29(日) 13:38:49>>670
ISOの説明をされても理解できなくて悔しかったんですね、時代遅れのオッサンw
世の中はお前が知らない内にどんどん動いてますよ。
0672デフォルトの名無しさん
2010/08/29(日) 13:39:59でたーー、一番最後に省略可について理解していなかったおバカさんw
無理に釣れたとか言って、本当は事実関係を探りたかったんだろ?
他人の力を借りてw
お前らまともに英文も訳せない癖に、英数文字だらけのコードを
書くだけの無能な人間だと言うことが判明w
所詮、分かりきったコードを真似ることしか出来ない猿。
0673デフォルトの名無しさん
2010/08/29(日) 13:40:51( ´ー`)y─┛~~
0674ISOの英文が理解できないオッサンの負け惜しみ最後っ屁
2010/08/29(日) 13:42:23>>668
いや、int main() 笑は、
釣った方があとで釣られまくっていたようですよ。
無駄な長文を連発していましたから。
釣った方があとで釣られまくっていたようですよ。
無駄な長文を連発していましたから。
釣った方があとで釣られまくっていたようですよ。
無駄な長文を連発していましたから。
↑自分が説明文も理解できずに、逆に釣られたことに気づいていないバカw
0675こいつの釣りの構図は逆
2010/08/29(日) 13:43:27スレと関係ないんだけどさ、俺「釣り」とか「釣り師」っていうのは、
釣り師 ↓
. /| ←竿
○ / |
. (Vヽ/ |
<> |
゙'゙":"''"''':'';;':,':;.:.,.,__|_________
|
餌(疑似餌)→.§ >゚++< 〜
の組み合わせだと思ってたんだけど、
最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか
言ってるの多いよね。
これは、どっちかというと、
,〜〜〜〜〜〜 、
|\ ( 釣れたよ〜・・・)
| \ `〜〜〜v〜〜〜´
し \
゙'゙":"''"''':'';;':,':;.:.,., ヽ○ノ
~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ト>゚++<
ノ)
かと思うんだけど、どうよ?
0676こいつら暇になったから自作自演で無理やり盛り上げ様として失敗
2010/08/29(日) 13:44:51最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか
言ってるの多いよね。
これは、どっちかというと、
,〜〜〜〜〜〜 、
|\ ( 釣れたよ〜・・・)
| \ `〜〜〜v〜〜〜´
し \
゙'゙":"''"''':'';;':,':;.:.,., ヽ○ノ
~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ト>゚++<
ノ) < >>670 = >>669 = >>668
0677デフォルトの名無しさん
2010/08/29(日) 13:50:16・プログラムの開始を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も同様 ( ´,_ゝ`)プッ
0678デフォルトの名無しさん
2010/08/29(日) 13:52:385.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[]) { /* ... */ }
↑こんな初歩的な中学生レベルの英語も理解できないとか ( ´,_ゝ`)プッ
さすが低ランク大学のか専門学校程度の連中が言うことは違うぜ ( ´,_ゝ`)プッ
0679デフォルトの名無しさん
2010/08/29(日) 13:54:26/: : : \
/: : : : \
/: : : : : : \
: : : : : : : :.._ _ \
: : : : : : : ´⌒\,, ;、、、/⌒` l みなさんに
: : : : ::;;( ● )::::ノヽ::::::( ● );;::: | 残念なお知らせがあります
: : : : : : ´"''", "''"´ l
: : : : : : . . ( j )/ / このスレはもうダメです!
\: : : : : : :.`ー-‐'´`ー-‐'′ /
/ヽ: : : : : : : : : : : : : : : : : : : : イ\
: : : : : : : : : :.``ー- -‐'"´ \
: : : : . : : . : : . \
0680デフォルトの名無しさん
2010/08/29(日) 13:55:49独自の環境を使用している場合は「その限りではない」。ここまで親切に
説明してもらっておいて、釣られたとか、自分の無知を晒しておいて
未だに相手を攻撃する性格を見ると、どう考えてもド田舎の閉鎖的な思想を持った
連中がこのスレにいますね?w まさか、あんたが世の中心だと思ってないだろうな?
東京へ地方から来たばかりのおのぼりさん?まぁ世界基準は東京中心にも
動いてませんからw 日本の経済も、世界のある基準に基づいて動いてますからね。
特に円、株価。C言語なんかで世界を知った気にならないで下さいね、こちらは
プログラムに限らず世界の様々な標準、基準、規定を知っていますからw
0681デフォルトの名無しさん
2010/08/29(日) 14:02:43東京でも自分の地域限定ルールを言い出して、周りに理解されずに
孤立して干される奴とかいるしw
日本はまだ州といった独自の法律を持つ地方自治体は無いからね。
こういった規格に限らず、世の中には基本ルールがあるんだが
それを基に社会が動き、時にはトラブルがあればそれを基に処理されているんだが
自分が気に入った、そうだと思ったことをルールブックで否定されたことが
よっぽど気に入らなかったのか、昔からあるルールブックに対して批判的な意見をする
閉鎖的で自己中心的な人間を、昔からネットでも見かけますが、最近は本当に
ド田舎にもネット回線が普及したせいか、そういう人間が増えましたねw
自分は12年前に、都市部で生活、ネットを利用していたが、あの当時はまだまだ
日本国内でのネットの利用者は少なかったからトラブルも少なかったんですがね。
あっても、当事者で適当に処理していたんだが。最近は妙に時代遅れの頑固爺まで
しゃしゃり出てきて、自分の方が人生経験が長いから、その地域限定なのに
長老ぶってかだれそれ構わず上から目線で発言し、相手を威圧しますねw
ネットしか友達がいないの?w
0682デフォルトの名無しさん
2010/08/29(日) 14:05:46\ ,/ ヽ
 ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,/ ヽ
∧_∧ ∧∧ ,/ ヽ
( ´∀`) (゚Д゚,,),/ ヽ
( ) (| つ@ ヽ
| | | ___ 〜| | ←Cで int main() ヽ
(__)_) |――|. ∪∪ ヽ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ヽ
/⌒\/⌒\/⌒\/⌒\|彡~゚ ゜~ ~。゜ ~ ~ ~ ~~ ~ ~~ ~ ~~ ~~ ~~
⌒\/⌒\/⌒\/⌒\/⌒\彡 〜 〜〜 〜〜 〜〜 〜 〜
0683デフォルトの名無しさん
2010/08/29(日) 14:34:50良い人から辞めちゃうよね
んでもって、腹黒い人とか、他人を動とも思わない人とか、
図々しい人とか、・・・そんなのばかりがテコでも動かないぜって
感じで居座り続ける・・・
会社って、こうやってダメになっていくんだと思う
それはそのまんま居座り族・牛耳り族が社会をダメにしていくって
ことなんだ。。。
0684デフォルトの名無しさん
2010/08/29(日) 14:36:50|
|
|
/V\ ,J < Cで int main()
/◎;;;,;,,,,ヽ
_ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|) < int main(void)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
| Hit!
|
ぱくっ|
/V\
/◎;;;,;,,,,ヽ そんなエサで
_ ム::::(,,゚Д゚)::| 俺様が釣られると思ってんのか!!
ヽツ.(ノ:::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
0685デフォルトの名無しさん
2010/08/29(日) 14:38:36〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
>( c´_ゝ`) |
|
>( c´_ゝ`) J < Cでint main()笑
>( c´_ゝ`)
|
〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
| >( c´,_ゝ`) プッ
|
J >( c´,_ゝ`) プッ
>( c´,_ゝ`) プッ
0686デフォルトの名無しさん
2010/08/29(日) 14:41:25|\ ( 釣れたよ〜・・・)
| \ `〜〜〜v〜〜〜´
し \
゙'゙":"''"''':'';;':,':;.:.,., ヽ○ノ < Cでint main()
~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ト>゚++<
ノ)
0687デフォルトの名無しさん
2010/08/29(日) 14:47:49int main()
int main(void)
とどっちで書くかの話?処理する側からすればどっちも一緒。
0688↓自分が釣られた張本人だと気づかないバカ
2010/08/29(日) 14:49:50>>668
いや、int main() 笑は、
釣った方があとで釣られまくっていたようですよ。
釣った方があとで釣られまくっていたようですよ。
釣った方があとで釣られまくっていたようですよ。
釣った方があとで釣られまくっていたようですよ。
釣った方があとで釣られまくっていたようですよ。
無駄な長文を連発していましたから。
削除ルーチンに重大なバグが発見されました。以下に訂正します。
http://codepad.org/yN2ZXynA
0690デフォルトの名無しさん
2010/08/29(日) 15:14:37その続きがあるんですよ。省かないでください。
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 に準拠していることがわかります。
0691デフォルトの名無しさん
2010/08/29(日) 15:16:330692デフォルトの名無しさん
2010/08/29(日) 15:22:180693デフォルトの名無しさん
2010/08/29(日) 15:39:10夢や希望や名声までも つかもうとしている
その姿は きのうまでの何も知らない私
あなたに このレスが届くと信じていたぁ〜♪
変数と構造体が ふれ合うソース
過去からの標準化を 呼んでるスレ
あなたにとって私 ただの通りすがり
ちょっと強がってみただけの 地方人〜♪
0694デフォルトの名無しさん
2010/08/29(日) 15:40:570695デフォルトの名無しさん
2010/08/29(日) 15:56:360696デフォルトの名無しさん
2010/08/29(日) 16:19:45じゃあ、新しい情報をポインタだけでも示してください。
ね?よく釣れましたでしょう?
いまだに入れ食いのようですね。
0698デフォルトの名無しさん
2010/08/29(日) 17:48:36池沼は黙ってろよw
0699デフォルトの名無しさん
2010/08/29(日) 18:26:26コテつけてコードを投稿しない人に何をいわれても。
いちどやってごらんなさいよ。叩いてあげるから。
0700デフォルトの名無しさん
2010/08/29(日) 19:10:56入力が再現できないけどメモリリークが一件あった、デバッグ情報仕込んでおけばよかった
名前が数字のときおかしくなる、メモリに対して不正な書き込みなど
せっかくの二分木なのに線形探索で部分マッチ、部分マッチだとそうなるよな
追加終了が^Dだからテストの自動化が面倒
適当にテストした感想
ありがとうございます。
確かに、せっかくの二分木を検索時に線形リストに載せなおしているのは、そもそもなんのための二分木か、という面がありますね。
実装時の(こっちで決めた)仕様が欲張りだったんですね。
名前が数字のときおかしくなる、というのは、数字がひとつでもみつかったら、その先は電話番号だとしているからです。
名前に数字は入らないと仮定しましたが、やや強引でしたか。
もしお手すきでしたら、メモリーリークについては、次のコードで試していただけませんでしょうか。
http://codepad.org/SG6Plo9H
エラーが発生したとき、実行ファイルとおなじところにあるファイル debug.out を
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
にでも張っていただけるとありがたいです。
期限までまだ間がありますので、テストしていただけると幸いです。
よろしくお願いいたします。
0702デフォルトの名無しさん
2010/08/30(月) 14:23:240703デフォルトの名無しさん
2010/08/30(月) 19:15:070704デフォルトの名無しさん
2010/08/30(月) 20:11:31好成績になれるお ^ω^
だから早く俺に、優秀な数独のコードを教えろお ^ω^
バグを修正しました。
・削除コマンドで、予期しない値が入力されたり入力そのものがなかった場合にメモリーリークや異常終了を起こしていたのを修正。
仕様を変更しました。
・追加コマンドで、一件登録するごとに、コマンドプロンプトに戻るように変更。>>660 >>700 でこの仕様の方が自然である、という意見だとおもわれたので反映しました。
デバッグバージョン(不具合報告に使用してください。debug.out を張ってください。):http://codepad.org/qnUQyT64
清書バージョン:http://codepad.org/qRvj5zbI
>>700
貴重な報告ありがとうございました。ひきつづき、メモリへの不正な書き込みを調査いたします。
#strlen(NULL) が環境によってはコアダンプを引き起こすとは知りませんでした。
0706デフォルトの名無しさん
2010/08/30(月) 20:26:31ゲロ吐く処理系の方が多くね?
0707デフォルトの名無しさん
2010/08/30(月) 20:45:15ポインタをインクリメントしながら'\0'を探すのですから、コア吐いて当然といえばそうなんですね。気がつきませんでした。
0708デフォルトの名無しさん
2010/08/30(月) 21:58:370709デフォルトの名無しさん
2010/08/30(月) 22:03:01fclose(NULL)は?
printf(NULL)は?
0710デフォルトの名無しさん
2010/08/30(月) 22:03:060711デフォルトの名無しさん
2010/08/30(月) 22:04:56free(NULL) だけおk
0712デフォルトの名無しさん
2010/08/30(月) 22:07:03それぞれが意味を成すか疑問だが、free(NULL);は実行されたようだが
その他は不正な処理で落ちたw
0713デフォルトの名無しさん
2010/08/30(月) 22:36:22if ((fp = fopen()) != NULL) {
...
}
fclose(fp);
などと書いてしまうとアウト。
printf(NULL) はさすがにおもいつきまへん。
0714デフォルトの名無しさん
2010/08/30(月) 22:39:59sprintf(NULL, hoge, huga)
0715デフォルトの名無しさん
2010/08/30(月) 23:04:08夏休みも終わりだが、今年は皆真面目に自分でやるのかな。
0716デフォルトの名無しさん
2010/08/30(月) 23:05:18毎年、乙^^
0717デフォルトの名無しさん
2010/08/30(月) 23:06:12忙しくなるのはこの一週間だろうな
0718デフォルトの名無しさん
2010/08/30(月) 23:36:57うん、意味不明で>>712のレスになってないから、それw
0719デフォルトの名無しさん
2010/08/31(火) 00:08:58確保できたかチェックして無くても安全にしたとか?
理由になってないな^^
複数ファイル扱ってる時に、開いてるかどうかを
いちいちチェックしなくて良くなるから
NULLはスルーしてくれるとありがたいな^^
printfにNULL渡すなんてバグとしか思えない。
0720デフォルトの名無しさん
2010/08/31(火) 02:54:43ただし、初期化を正しく行っていない場合は落ちる。
0721デフォルトの名無しさん
2010/08/31(火) 03:42:590722デフォルトの名無しさん
2010/08/31(火) 06:27:460723デフォルトの名無しさん
2010/08/31(火) 07:29:00正しい初期化とは?
0724デフォルトの名無しさん
2010/08/31(火) 07:31:39それより NULL や ぬるぽ が何なのか、理解した方が良い。
0725デフォルトの名無しさん
2010/08/31(火) 07:35:17printf(NULL) はともかく、
free(NULL) や fclose(NULL) がどうなるかによって、書き方がかわるのでは?
だからこれらがどうなるかは知っておいたほうがよいのでは?
0726デフォルトの名無しさん
2010/08/31(火) 11:48:160727デフォルトの名無しさん
2010/08/31(火) 14:33:28そんなことに依存するようなコードを書いて良いわけがない。そういうものに依存するようなコードを書くなよ
0728デフォルトの名無しさん
2010/08/31(火) 17:10:440729デフォルトの名無しさん
2010/08/31(火) 17:14:59エロイ人の言うことは、謙虚に聞き流せ
0730デフォルトの名無しさん
2010/08/31(火) 17:20:320731デフォルトの名無しさん
2010/08/31(火) 17:40:440732デフォルトの名無しさん
2010/08/31(火) 18:10:16想像で物を言う奴は他所でやれお ^ω^
0733デフォルトの名無しさん
2010/08/31(火) 18:47:15釣りならもっと面白く。>>670 がお手本になる。
0734デフォルトの名無しさん
2010/08/31(火) 19:04:15早く数独のコードを俺に分かりやすく書けお^^
0735デフォルトの名無しさん
2010/08/31(火) 20:18:25ttp://codepad.org/EU13f1AW
・二分探索木初めて書いたので解釈が間違っているかもしれない。
・英語が色々恥ずかしいのは自覚している。
・二重ポインタの使用禁止、これchar **argvも駄目なのか。
・codepadはタブ8なので見にくい。書いてる環境はタブ4。
・削除の解釈は適当。
・無保証
0736デフォルトの名無しさん
2010/08/31(火) 20:24:48それは残念ですね
0737デフォルトの名無しさん
2010/08/31(火) 20:33:020738デフォルトの名無しさん
2010/08/31(火) 20:47:19とりあえず、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
で終わってしまいます。
0740735
2010/08/31(火) 21:17:22結果的にはおk? オチなくなりました?
0741デフォルトの名無しさん
2010/08/31(火) 21:18:12読みました。
プログラムの終了時には領域はfree() していませんが、この書き方でノードの消去を書くとすれば、どういう書き方になるのか興味があります。
0742デフォルトの名無しさん
2010/08/31(火) 21:19:19しない主義なんです><
数年前までする主義でしたが、アホらしくなって止めました。
0743741
2010/08/31(火) 21:20:07意地悪にも、自前の malloc(), free() をリンクしていたのです。strdup() を見落としていました。
strdup を実装して確かめてみたところ問題はありませんでした。
それにしてもきれいですね。
0744デフォルトの名無しさん
2010/08/31(火) 21:21:40それもありですが、興味があるのは、もしこの流儀で書くとすればどんな形になるのか、ですね。
0745デフォルトの名無しさん
2010/08/31(火) 21:32:33> 自前の malloc(), free() をリンクしていたのです。
すさまじい!
>>744
たぶん一度リストに真っ直ぐに並べる必要があるかも。
再帰で都合よくは行かない予感。
それか>>741さんのようにもっと根本からケアするか。
0747745
2010/08/31(火) 21:56:52if (n->left) delete_node_all(n->left);
delete_node(n);
if (n->right) delete_node_all(n->right);
}
↑こういう風に書いて消しながら再帰できればスカッとするんですが、
単純にたどりながら削除はできないような気が。
削除して、繋ぎなおしながらやっても怖い。
再帰を使ってrealloc上等の配列かリストかに回収して、
その一覧をつかって片っ端から消していくのが無難そう。
などと言いつつ二分岐の辿り方に色々あって、深さ優先? なんとか優先?
まったく詳しくはないのですが、それによっては消しながら再帰できるかも。
実は、dのyで検索して繋ぎなおしながら消すのをしてるんですが、
!tree->rootまでこれを繰り返すと、安全に最後まで消せるはずです。
いちいち中身見ながら検索するので相当ウザイですが。
0748747
2010/08/31(火) 21:59:47delete_node(disconnect_node(t0, search_node(t0, t0->root)));
みたいなのを!tree->rootになるまで繰り返すと。
0749746
2010/08/31(火) 22:11:10if (n->left) delete_node_all(n->left);
if (n->right) delete_node_all(n->right);
delete_node(n);
の順になるとおもいますが、問題は data615 を共用しているのと、細かいことですが empty が鬼門かも。
0750デフォルトの名無しさん
2010/08/31(火) 22:29:50多分、ツリーごとに一本ごと全削除処理する場合は、
最後のツリーの時に一緒に織り込んでやっちゃうとか。
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した、固有の領域のはず。
> の順になるとおもいますが、
再帰が苦手なんでどうも懐疑的です…。イケそうですか?
0751デフォルトの名無しさん
2010/08/31(火) 22:38:44>strdupの元でしかなく、削除には無関係かと。
そうですね、create_data615 で構造体も各メンバも複製してますね。なるほど。
0752デフォルトの名無しさん
2010/09/01(水) 00:34:110753デフォルトの名無しさん
2010/09/01(水) 00:54:43[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]明日まで
よろしくお願いします。
0754デフォルトの名無しさん
2010/09/01(水) 00:59:480755デフォルトの名無しさん
2010/09/01(水) 02:01:24すでに9月1日
0756デフォルトの名無しさん
2010/09/01(水) 02:11:550757デフォルトの名無しさん
2010/09/01(水) 02:42:400758デフォルトの名無しさん
2010/09/01(水) 03:51:310759デフォルトの名無しさん
2010/09/01(水) 05:06:20[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
0760デフォルトの名無しさん
2010/09/01(水) 06:43:23これは例の荒らしの書き込みです、皆さんスルーの方向で
0761デフォルトの名無しさん
2010/09/01(水) 12:39:09釣りならもっと面白く。
>>670 に釣られたもの
>>671 >>672 >>674-678 >>680-686 >>688 >>691 >>693-695
0762デフォルトの名無しさん
2010/09/01(水) 13:23:18のコード本気で自分じゃ書けないと思う奴は
回答者の資格無しじゃね
0763デフォルトの名無しさん
2010/09/01(水) 13:31:35>int bann[9]9]; ←
0764デフォルトの名無しさん
2010/09/01(水) 13:36:56てかもう既にCコンパイラになったつもりの可哀想な人が居る
スレはここですか?
0765デフォルトの名無しさん
2010/09/01(水) 13:37:172chもレベル落ちまくりだな
0766デフォルトの名無しさん
2010/09/01(水) 13:41:220767デフォルトの名無しさん
2010/09/01(水) 13:45:31レベルの低いひとだけが残った
ということか
俺も含めて
0768デフォルトの名無しさん
2010/09/01(水) 13:56:56だが>>723は釣りだけじゃないだろ
Cの書式がある種の定義書となり得ることを
示す例示とか
0769デフォルトの名無しさん
2010/09/01(水) 13:58:59じゃなくて
>>753ね
ごめんちゃい
0770デフォルトの名無しさん
2010/09/01(水) 14:05:240771デフォルトの名無しさん
2010/09/01(水) 15:33:54の解答コードを生成するCコードって作れる?
(手打ちは幾ら何でも面倒)
0772デフォルトの名無しさん
2010/09/01(水) 16:11:470773デフォルトの名無しさん
2010/09/01(水) 16:15:470774デフォルトの名無しさん
2010/09/01(水) 17:07:200775デフォルトの名無しさん
2010/09/01(水) 17:28:230776デフォルトの名無しさん
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;
0777デフォルトの名無しさん
2010/09/01(水) 17:31:59C++コンパイラはあるけどお^^
0778デフォルトの名無しさん
2010/09/01(水) 17:34:470779デフォルトの名無しさん
2010/09/01(水) 17:43:43自意識過剰な奴は自分が求められていると勘違いするナルシストだから困るお^^
0780デフォルトの名無しさん
2010/09/01(水) 17:50:450781デフォルトの名無しさん
2010/09/01(水) 18:06:320782デフォルトの名無しさん
2010/09/01(水) 18:13:410783デフォルトの名無しさん
2010/09/01(水) 18:17:48ttp://codepad.org/gKx33HwZ
・途中のコード(>>759 10928.txt)には触れていません
・二分探索木を使用
・既に出現した文字であればカウントを加算、そうでなければ木に追加
・追加する過程で勝手にソートされてる
0784デフォルトの名無しさん
2010/09/01(水) 20:57:52やってくれない人には頼んでないだろ?w
自分が頼まれたと思っている辺り、自意識過剰ですなw
0785デフォルトの名無しさん
2010/09/01(水) 20:59:04俺のも含めてに3つくらい答えが上がってたと思う
0786デフォルトの名無しさん
2010/09/01(水) 21:00:58LispとかPrologの方が解き易い?
0787デフォルトの名無しさん
2010/09/01(水) 21:16:46本人乙。同じ言葉の繰り返しとか見苦しいぞ。間違ってるし。
>>785
そうそう、ネットにも落ちてるしな。
ちなみに>>776は俺様がpublic domainのものの一部を貼った。
>>786
より素直に書けそうだよね。
0788デフォルトの名無しさん
2010/09/01(水) 21:17:180789デフォルトの名無しさん
2010/09/01(水) 21:18:33明らかに同一人物、何がしたいのか知らんが暇なんだな。
0790デフォルトの名無しさん
2010/09/01(水) 21:19:21やってくれる人に任意で頼んでいるお^^
0791759
2010/09/01(水) 21:24:11助かりました、ありがとうございます!
参考にさせて頂きました
粗末なお礼ですみません
0792デフォルトの名無しさん
2010/09/01(水) 21:54:51年収1千万円程度の俺が貧乏だと知ってのことかお?^^
0793デフォルトの名無しさん
2010/09/02(木) 00:05:27どうか私の為に数独のコードを書いて教えてくれお^^
0794デフォルトの名無しさん
2010/09/02(木) 00:30:35ほらよhttp://norvig.com/sudoku.html
0795デフォルトの名無しさん
2010/09/02(木) 00:32:290796デフォルトの名無しさん
2010/09/02(木) 00:41:410797デフォルトの名無しさん
2010/09/02(木) 00:45:000798デフォルトの名無しさん
2010/09/02(木) 01:01:44アルゴリズムにもよるが、典型的な列挙法
(漏れなく列挙する方針で埋まった時点で矛盾が無ければ出力。
途中で矛盾が発覚した時点で枝狩り)
では状態の複製という操作が不可欠というか禁止するとコード
は煩雑になり、よほど巧く書かない限り改良性に乏しいもの
になりがち。メモリ管理を手動でやることもまた同じ。
となるとガベージコレクタの存在を仮定できる言語がこの種の
問題には適しているんじゃないかと。あと構造化例外処理も
あるのとないのではだいぶ違う。setjmp longjmpでも出来なくも
無いがやはり機械的ルーチン的でありながらも煩雑。
C/C++に向いているとは多分言えない。
そこで代替言語ということになるが
C言語とかけ離れすぎた書式や文法の言語もヤだろうから答えは
殆ど決まってくるんじゃね?
0799デフォルトの名無しさん
2010/09/02(木) 01:42:36どーせお前を叩いてない>>792から>>798までは自演だろ?
もう間違い指摘すら面倒だぜ。
いくらでも落ちてるんだから探せよ能無し。
じゃあな!
0800デフォルトの名無しさん
2010/09/02(木) 01:58:31>能無し。
バカの一つ覚えを偉そうに上から目線で言う割には
お前が一番 能無し だとバレているからw
口先ばっかり。無能の証拠w
0801798
2010/09/02(木) 02:17:52自演を指摘するほど住人意識が強いのなら、
トリップ付けるのがマナー
ま、自演を指摘されたくないのならトリップ
付けろという板もあるかも知れないが
IDも出ない板だし回答者はどーせ少数だから
トリップ付けられると目立ってかえって
ウザがられるだろうし
今回の場合、文体やリズムみて自演に見える
人のほうが珍しいんじゃね?
0802デフォルトの名無しさん
2010/09/02(木) 02:55:30お前はまだ根に持っているのかよw さすがに陰険だな。
お前、そうやって孤立したタイプだろ?引きこもりの臭いがぷんぷんすんぜ?
0803デフォルトの名無しさん
2010/09/02(木) 15:01:58噛み付く奴は気持ち悪いお^^ このスレもID制にして欲しいお^^
と言うことで、早くおいらに分かる数独のコードを書いてくれお^^
9x9の全パターンと、与えられた問題を解くプログラムを頼むお^^^
0804デフォルトの名無しさん
2010/09/02(木) 15:02:550805デフォルトの名無しさん
2010/09/02(木) 16:20:580806デフォルトの名無しさん
2010/09/02(木) 16:22:46差し出すかお?そのコードが9x9の全パターンの出力が出来て、与えた問題を
解くコードなのか聞いているのにお? ^ω^
0807798
2010/09/02(木) 16:42:48C言語だとそうとうメンドイと思うんでおすすめ
しないが.
0808デフォルトの名無しさん
2010/09/02(木) 16:59:470809デフォルトの名無しさん
2010/09/02(木) 17:03:15t;;; :::::::::: : :::::::::: {;;;;::::::::::::: ;;;;| ,,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
我がソースコードに一行のエラー無し!
0810デフォルトの名無しさん
2010/09/02(木) 17:40:320811デフォルトの名無しさん
2010/09/02(木) 17:58:29#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;
}
// テストはしていません
0812デフォルトの名無しさん
2010/09/02(木) 18:00:00ってなんかおかしいよね(´・ω・`)
0813デフォルトの名無しさん
2010/09/02(木) 18:02:26それは整数と言えば良いことだがw
0814デフォルトの名無しさん
2010/09/02(木) 18:04:25ワロス
0815デフォルトの名無しさん
2010/09/02(木) 18:05:56そういう奴に限って、自分の言葉足らずを相手から指摘されて、誤解されて
理解されないことにファビョってキレる ( ´,_ゝ`)プッ
0816デフォルトの名無しさん
2010/09/02(木) 18:09:27たとえ1桁でも細けぇこたぁ〜と言うなら、お前がそういうことに対して、例えば
以上や超、以下と未満を軽視するような人間だと思われるだけ。
言葉の揚げ足を取ったつもりが、自分のいい加減さを露呈しただけに過ぎない。
おかしいと思うなら思えば?お前は他人の事をおかしく思っているだろうけど
他人から見ればお前の方がおかしいと思っている人は多いから。
例えば、こんなスレで主観で揚げ足を取っている引きこもりw
0817デフォルトの名無しさん
2010/09/02(木) 18:14:56ttp://codepad.org/OPCtafM5
・基本的に書きかけ
・CじゃなくてC++
・判明してる数字で、縦横および枠内の可能性を減らす
・可能性の減りを見て、有効なものを拾う
・可能性が二個か三個のとき、その並び方に注目して他を減らす
・カンタンな問題だけ解ける
・>>467は難しすぎて解けない
0818デフォルトの名無しさん
2010/09/02(木) 18:17:39表現そのものに対する意見と、それ自身が持つ意味とは別だが
小数点以下という表現は普通に使われている。これだから
ド田舎の地方人は・・・
0819デフォルトの名無しさん
2010/09/02(木) 18:19:15間取りは日本地図にしか見えない
0820817
2010/09/02(木) 18:20:45ttp://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);
0821デフォルトの名無しさん
2010/09/02(木) 18:23:13では何と表現しているんでしょうか?地方限定で?w
0822デフォルトの名無しさん
2010/09/02(木) 18:25:55> else printf(pi[n + 1]);
それだと後半しか出ないw
else printf((pi[n + 1] = 0, pi));
0823デフォルトの名無しさん
2010/09/02(木) 18:28:11特に痴呆特有の文化なんて、中央では受け付けられませんよ。
国に帰って子供でも指導してろ、カッペ
0824デフォルトの名無しさん
2010/09/02(木) 19:03:56みなさんごめんなさい、もう終わりにします
0825デフォルトの名無しさん
2010/09/02(木) 19:06:50帰ってきた途端やる気が無くなる現象を何と呼べばいい?
0826デフォルトの名無しさん
2010/09/02(木) 19:19:110827デフォルトの名無しさん
2010/09/02(木) 19:34:430828デフォルトの名無しさん
2010/09/02(木) 23:12:020829デフォルトの名無しさん
2010/09/03(金) 15:07:38だから早く俺の指定した課題、吸う毒のコードを書けお^^
0830デフォルトの名無しさん
2010/09/03(金) 23:03:04死ぬ日に近づいて生きられる時間が失われているお?^^
いつまでも生きていられないから、早く頼むお^^
0831デフォルトの名無しさん
2010/09/04(土) 01:55:12何度も確認してまだかとレスをするよりは少ないリソースで出来上がると思う
0832デフォルトの名無しさん
2010/09/04(土) 02:30:34誰も数独のCコードをまともに作らない理由は?
1)難しい
2)くだらない
3)Cじゃいやだ
4)その他(時間がない)
0833デフォルトの名無しさん
2010/09/04(土) 02:38:31数毒を自分の頭で解いてみて、アホらしい
と感じるようになれなければ書けない
0834デフォルトの名無しさん
2010/09/04(土) 02:50:26解くだけでいいのなら、いつぞやのスレでも回答したけど、総当りで解ける。
総当りするとどんだけ膨大な時間かかるか分かってんのか!?とか鼻息荒い人もいたけど、
そんなことないっしょ、と思い回答し、やはり大した時間はかからずに解けたよ。
0835デフォルトの名無しさん
2010/09/04(土) 03:22:520836デフォルトの名無しさん
2010/09/04(土) 03:37:32そりゃできるっしょw
数毒の解答をすべて列挙しデータベース化
しろだろ
0837デフォルトの名無しさん
2010/09/04(土) 03:44:12が、コードを巧く書く練習題材としては中々優秀じゃないかと
アルゴリズムの工夫以外にもデータ構造の工夫、書式の工夫
とか色々と訓練になる部分はある(こういうのは実際に
書いてみなければ得られない。他人のを読んで理解する
だけじゃダメ)
但し処女コードでもあるまいし行為自体は全く無意味。
たとえは極端に悪いがソープに通いつめるようなもの。
貴重な人生の一部分をこういうくだらないことに捧げて
悦に入りたいアホバカタコは繰り返し書いてみるのが良いのでは
ないかと。
0838デフォルトの名無しさん
2010/09/04(土) 04:07:59Hの練習とCコーディングは似たりてかw
案外と言えてるかもな
なわけねぇだろw
0839デフォルトの名無しさん
2010/09/04(土) 04:10:14どこで人生を踏み外したか、とんと検討がつかぬ。
何でも、就職難の時代に成人を向かえ、必死に
職探しをしていたことは記憶している。
0840デフォルトの名無しさん
2010/09/04(土) 04:12:220841デフォルトの名無しさん
2010/09/04(土) 04:39:06それは解答プログラムよりも難しいのかね?
0842デフォルトの名無しさん
2010/09/04(土) 04:39:30と考えるのも一つの考えだが
職などを必死で探すような奴は絶対に
信用されないということもまた真実
(つ「職」何故耳へんになってる?)
あと
数毒のコード例で優秀なの見っけなのでURL紹介
JavaScriptだけどC移植はJavaよりか容易
ttp://www.kawa.net/works/js/game/ncross.html
0843デフォルトの名無しさん
2010/09/04(土) 04:52:380844デフォルトの名無しさん
2010/09/04(土) 07:18:160845デフォルトの名無しさん
2010/09/04(土) 07:21:45米欄がSPAMで埋め尽くされててワロス
0846デフォルトの名無しさん
2010/09/04(土) 13:40:29ttp://www.tokumaru.org/pazzle/sudoku.htm
同じくJSによるもの
.NET Frameworkについてるjscコンパイラで
コンソール対応にしてからCに移植ってのが楽そう
0847デフォルトの名無しさん
2010/09/04(土) 19:16:250848デフォルトの名無しさん
2010/09/04(土) 19:23:230849デフォルトの名無しさん
2010/09/04(土) 19:25:23( ^ω^) 吸う毒の全パターンを出力するコードを頼むお?^^
0850デフォルトの名無しさん
2010/09/04(土) 19:42:31http://www.google.com/codesearch?q=Sudoku+lang:c
全パターン
http://doorgod.org/sudoku/
その他参考になるサイト
http://gugurekasu.com/
0851デフォルトの名無しさん
2010/09/04(土) 19:46:26( ^ω^) ・・・、参ったお^^ スパコンで出力してもきつそうだお?^^
0852デフォルトの名無しさん
2010/09/04(土) 21:40:56オセロの必勝法の方が良くね?
0853デフォルトの名無しさん
2010/09/04(土) 22:26:55そして相手が置く場所がなくなるようにする。そう、挟めないように。
0854デフォルトの名無しさん
2010/09/05(日) 00:01:45後から数少ない正解者に逆転されることがある。
0855デフォルトの名無しさん
2010/09/05(日) 00:45:390856デフォルトの名無しさん
2010/09/05(日) 01:05:000857デフォルトの名無しさん
2010/09/05(日) 01:27:27か
この先相手がミスらない限り絶対勝てない
か
この先ミスっても絶対勝てる
か
この先相手がミスっても絶対勝てない
の4状態のいずれか
完全解析できた場合、先手か後手のどちらかは必ず
(A)の状態に持ち込めるが、ミスらないように判定
するアルゴリズムは到底無理。相手の手によって
変えなければならないから。
0858デフォルトの名無しさん
2010/09/05(日) 01:38:18あと引き分けを忘れるな
0859デフォルトの名無しさん
2010/09/05(日) 01:57:380860デフォルトの名無しさん
2010/09/05(日) 02:13:24>解析結果を記録しとけば
絶望的に膨大
0861デフォルトの名無しさん
2010/09/05(日) 03:42:03そうだっけ?
2テラくらいあれば鏡像とか全無視しても余裕じゃね?
0862デフォルトの名無しさん
2010/09/05(日) 11:49:153^64≒10^31 だからまだ足りない。
0863デフォルトの名無しさん
2010/09/05(日) 11:51:00最初の4石は埋まってる訳だが
0864デフォルトの名無しさん
2010/09/05(日) 12:27:441048576ビット=1Mビット
1073741824ビット=1Gビット
1.099512x10^12ビット=1Tビット
1.124900x10^15ビット=1Pビット
1.152921x10^18ビット=1024Pビット
10^30ビットは何Tバイト必要?
0865デフォルトの名無しさん
2010/09/05(日) 13:00:35俺もそう考えたけど
実際には存在しない盤面が相当数あるから指数部がもっと小さくなる
0866デフォルトの名無しさん
2010/09/05(日) 13:07:00[2] 8Queen問題を一般のn(>=1)に拡張する。
それぞれのnに対し
同一視をしない場合のパターン数
鏡映のみを同一視した場合のパターン数、
回転のみを同一視した場合のパターン数、
鏡映回転を同一視した場合のパターン数
を項目とする表にして出力するプログラム
列挙的に生成し内部に二分木を用いた簡易データベースで重複チェック
(対称同一視も含む)を行う方法で
結果はメモリの許す限りで出来るだけ大きなnに対して行うこと
ファイルは使用してはならない。
コードと結果を提出
[3] Linux,Gcc,C言語を想定(他のOS,C++言語でも可)
[4] 9/16まで
[5]処理速度よりも、結果の正しさとコードの「明晰」さを重視しします。
適当に書いて動かして他の人と結果が一致したといった程度では
十分に評価されません。速度をできるだけ落とさないで、コードの
清書作業は必ず行ってください。
0867デフォルトの名無しさん
2010/09/05(日) 13:26:18最初の4石が埋まってる時点で
鏡像とか全無視しても
単に3^60よりも範囲は随分狭くなる
0868デフォルトの名無しさん
2010/09/05(日) 13:40:08確かにそれはあるが、さてどのくらい限られてくるかを見積もる方法はないものか?
0869デフォルトの名無しさん
2010/09/05(日) 13:42:580870デフォルトの名無しさん
2010/09/05(日) 13:47:47鏡映パターンは存在しないのでは?
>>867
3^64 = 3433683820292512484657849089281
2^4*3^60 = 678258532403459256228710931216
これは随分と言っていいのか・・・
もちろん>>865を考慮するともっと減るけど
0871デフォルトの名無しさん
2010/09/05(日) 14:11:20お前あほやな
0872デフォルトの名無しさん
2010/09/05(日) 14:14:450873デフォルトの名無しさん
2010/09/05(日) 16:45:460874デフォルトの名無しさん
2010/09/05(日) 23:32:460875デフォルトの名無しさん
2010/09/06(月) 01:01:1110年前。
0876デフォルトの名無しさん
2010/09/06(月) 01:37:510877デフォルトの名無しさん
2010/09/06(月) 09:01:570878デフォルトの名無しさん
2010/09/06(月) 09:05:440879デフォルトの名無しさん
2010/09/06(月) 09:16:40自分で笑ったw
すまん、本当にチェスの話してるのかと思ってた。
0880デフォルトの名無しさん
2010/09/06(月) 09:42:500881デフォルトの名無しさん
2010/09/06(月) 15:17:350882デフォルトの名無しさん
2010/09/06(月) 15:19:590883デフォルトの名無しさん
2010/09/06(月) 15:23:23ハローワークの求人が更新されるのは火曜日
いくら無職だからって一週間休みなしじゃ疲れるんだよ
0884デフォルトの名無しさん
2010/09/06(月) 16:17:57なんでこのスレにいるの?これで稼げる仕事を探しているの?
0885デフォルトの名無しさん
2010/09/06(月) 16:44:17↑
全国に1000万人は居るだろ?
0886デフォルトの名無しさん
2010/09/06(月) 18:24:400887デフォルトの名無しさん
2010/09/06(月) 18:28:520888デフォルトの名無しさん
2010/09/06(月) 20:10:140889デフォルトの名無しさん
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 ヽ、 ``ー- 、 _ _ ... ' /
! ヽ、 ヽ ,.  ̄ 、 /
0890デフォルトの名無しさん
2010/09/07(火) 03:58:09童貞問題は、NPだろうか?
0891デフォルトの名無しさん
2010/09/07(火) 04:23:270892デフォルトの名無しさん
2010/09/12(日) 08:37:36[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) 解らない。
0893デフォルトの名無しさん
2010/09/12(日) 09:24:09for(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;
}
0894デフォルトの名無しさん
2010/09/12(日) 09:28:10速い回答ありがとうございます!
参考に学習したいと思います。
0895デフォルトの名無しさん
2010/09/12(日) 20:43:45箱を作って、1〜9まで入れるところまではできたのですが、どうしても
好きなところに配置することが出来ません
12時頃からやっているのですが、未だ出来ません
出来れば、自力で解きたかったのですが、他の宿題もあるので、あきらめます
誰か、解説お願いします
http://wannabees.hp.infoseek.co.jp/cgi-bin/upload/src/wu0979.txt
0896デフォルトの名無しさん
2010/09/12(日) 21:31:06魔法陣って何だよ。
最終的にどうなったら正解なのかわからん。
0897デフォルトの名無しさん
2010/09/12(日) 21:36:270898デフォルトの名無しさん
2010/09/12(日) 21:50:403×3とかの空欄に数字を入れて、縦・横・斜めの合計がどれも同じになるやつ。
0899デフォルトの名無しさん
2010/09/12(日) 21:53:280900895
2010/09/12(日) 22:07:02>>898
さんの言うとおりです。説明不足でした
http://uploader.sakura.ne.jp/src/up16156.jpg
それと897は俺じゃありません
0901デフォルトの名無しさん
2010/09/12(日) 22:07:140902デフォルトの名無しさん
2010/09/12(日) 22:07:370903デフォルトの名無しさん
2010/09/12(日) 22:08:170904デフォルトの名無しさん
2010/09/12(日) 22:15:11偶数次数では奇数の場合と違って一般的に使える
生成手順が見つかってないからな
数独の問題解答なんてそれに比べればずっと楽
数独の解答の全体の列挙は知らんが
0905デフォルトの名無しさん
2010/09/12(日) 22:17:46偶数でも一通りは簡単に出来るだろ
列挙はしらんけど
0906デフォルトの名無しさん
2010/09/12(日) 22:19:191~N^2で構成されたN^2個の自然数がNxNマスの中に一つずつ配置
されており、縦横どの和も同じN(N^2+1)/2になるような配置の
全体を求める問題
0907デフォルトの名無しさん
2010/09/12(日) 22:22:430908デフォルトの名無しさん
2010/09/12(日) 22:29:29>next_x = cur_x++;
>next_y = cur_y--;
0909デフォルトの名無しさん
2010/09/12(日) 22:32:18えっと、すいませんどう言う事ですか
その2つが間違ってるということですか?
0910デフォルトの名無しさん
2010/09/12(日) 22:34:36その順番通りに数字を入れていけば良い訳だろ?
まさか、入れた数字の合計を計算して、すべて一致するものを
全パターンから探そうとしてないか?w
例えそうでも数独より時間は掛からないけどなw
0911デフォルトの名無しさん
2010/09/12(日) 22:42:46あの空欄に回答を入れるのが課題です
それで、あの中身が分からなくて困っているのです
その数字が分からないのです
0912デフォルトの名無しさん
2010/09/12(日) 22:51:44その2つが間違ってるんだよ
それだとcur_xとnext_x、cur_yとnext_yが同じになってしまう
next_x = ++cur_x;
next_y = --cur_y;
にすれば全部のマスが埋まるようになる
0913デフォルトの名無しさん
2010/09/12(日) 23:14:05ありがとうございます
ただ、あと少しなんすよ
数字がズレちゃって
http://www1.axfc.net/uploader/Sc/so/152716
0914デフォルトの名無しさん
2010/09/12(日) 23:24:38{
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; /*変更*/
}
0915デフォルトの名無しさん
2010/09/12(日) 23:31:08exeあげんなw
0916デフォルトの名無しさん
2010/09/12(日) 23:34:25すいません
417
852
396
この状態です
0917デフォルトの名無しさん
2010/09/12(日) 23:37:21答えとしては>>914の方がいいけど
0918デフォルトの名無しさん
2010/09/12(日) 23:44:07>>917
すいません、オートリロードで自動で既読になってて
見逃してました
http://www.dotup.org/uploda/www.dotup.org1143538.png
みなさんありがとうございました
もう一つの課題も、あと30分ほどで終わりそうです
これで、何とか単位落とさずにすみそうです
本当にありがとうございました
0919デフォルトの名無しさん
2010/09/14(火) 14:21:45[2] 問題文(含コード&リンク):三角形の各辺の値を入力し、それぞれの内角を表示するプログラムを作成せよ
[3] 環境
[3.1] OS:Windows (Cygwin使用)
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 2010年09月17日 まで
[5] その他の制限: とくに無いです。
上記の問題のプログラムを作成していただきたいです。
どうかよろしくお願いします。
0920デフォルトの名無しさん
2010/09/14(火) 14:48:11#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;
}
0921デフォルトの名無しさん
2010/09/15(水) 00:03:52[2] 問題文(含コード&リンク):
[3] 環境:n個のデータを入力して、最大値と最小値を求めるプログラムを作りなさい。ただし、入力データは配列に格納して処理すること。
[3.1] OS: linux
[3.2] コンパイラ:gcc 3.4
[3.3] 言語: C
[4] 期限: [無期限]
[5] その他の制限:関数を使用して配列を渡す
ポインタを使って配列を渡すとこまでは分かったのですがそれ以降の使い方が分かりません・・
よろしくお願いします。
0922デフォルトの名無しさん
2010/09/15(水) 00:08:05過去ログ嫁
で終わっちゃう
0924デフォルトの名無しさん
2010/09/15(水) 00:24:11素早い解答ありがとうございます!
自分でここまで作ってみたのですが、最小値がかなり変な数字になります(-858993460)
どこが間違ってるのでしょうか?
http://codepad.org/bK1xfNJD
0925デフォルトの名無しさん
2010/09/15(水) 00:24:45>>924は>>923宛です
0926デフォルトの名無しさん
2010/09/15(水) 00:29:21数値は入力した?
0927デフォルトの名無しさん
2010/09/15(水) 00:37:12数値を入力して動かしてみたのですが、最大値は正常に表示されます。
ですが、最小値がいつも同じ値(-858993460)になります・・・
0928デフォルトの名無しさん
2010/09/15(水) 00:42:56http://www1.axfc.net/uploader/Img/so/94447
0929デフォルトの名無しさん
2010/09/15(水) 00:43:57せっかくつくった input() を呼び出していないのではないでしょうか。
0930デフォルトの名無しさん
2010/09/15(水) 00:44:06input() が呼ばれてないように見えるのは俺だけか?
0931デフォルトの名無しさん
2010/09/15(水) 00:49:55コード上げる際に綺麗に直してたら入れ忘れてました・・orz
こっちが最新版です
http://codepad.org/11ge54jV
最大値は正常に動いてる分謎すぎます・・
0932デフォルトの名無しさん
2010/09/15(水) 00:51:020933デフォルトの名無しさん
2010/09/15(水) 00:55:170934デフォルトの名無しさん
2010/09/15(水) 00:57:35input() のなかで手に入れた size を main() になんらかの方法でもどして、
get_max() や get_min() に渡してやらないといけないのでは?
今は N = 101 が get_max()/get_min() にわたっています。
0935デフォルトの名無しさん
2010/09/15(水) 01:10:08void 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);にする
0936デフォルトの名無しさん
2010/09/15(水) 01:26:03おおおおお!できました!ありがとうございます!
一応完成版上げときました。
http://codepad.org/DBcRuavR
0937デフォルトの名無しさん
2010/09/15(水) 02:00:410938デフォルトの名無しさん
2010/09/15(水) 22:33:36sizeにはデータ件数が入るから、0から回さないと不味くね?
0939デフォルトの名無しさん
2010/09/15(水) 22:41:330940デフォルトの名無しさん
2010/09/15(水) 22:51:20うまくいかないテストケースも書いてもらえるとありがたい
0941デフォルトの名無しさん
2010/09/15(水) 23:00:15#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;
}
0942デフォルトの名無しさん
2010/09/15(水) 23:54:5911行目と28行目の for(i=0;i<size;i++) だぞ
0943デフォルトの名無しさん
2010/09/15(水) 23:58:59それなら、行番号も書かなきゃ
0944デフォルトの名無しさん
2010/09/16(木) 00:04:33念のため言っとくが48行目はマッチしないからな
0945デフォルトの名無しさん
2010/09/16(木) 00:05:51書くなら、誤解されないように書いた方がいいよねw
0946デフォルトの名無しさん
2010/09/16(木) 00:09:130947デフォルトの名無しさん
2010/09/16(木) 00:10:32どこを直したらいいかを書くときに
誤解を受けないような書き方をした方がいいよねw
0948デフォルトの名無しさん
2010/09/16(木) 07:06:060949デフォルトの名無しさん
2010/09/16(木) 10:17:570950デフォルトの名無しさん
2010/09/16(木) 10:22:440951デフォルトの名無しさん
2010/09/16(木) 13:21:040952デフォルトの名無しさん
2010/09/16(木) 13:58:35>>938も素直に自分の勘違いをみとめてりゃよかったのになw
0953デフォルトの名無しさん
2010/09/16(木) 14:33:130954デフォルトの名無しさん
2010/09/16(木) 14:45:470955デフォルトの名無しさん
2010/09/16(木) 17:05:05[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)で作ること
0956デフォルトの名無しさん
2010/09/16(木) 17:20:00{
int i;
for(i = 0; str[i]; i++) if(str[i] == c) return i;
return -1;
}
0958デフォルトの名無しさん
2010/09/16(木) 17:23:36int 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;
}
0959デフォルトの名無しさん
2010/09/16(木) 17:24:57int str_char(const char str[], int c) {
int index;
for (index = 0; str[index] != '\0'; index++) {
if (str[index] == c) return index;
}
return -1;
}
0961デフォルトの名無しさん
2010/09/16(木) 17:26:31[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)で作ること
連続ですみませんが、よろしくお願いします。
0962デフォルトの名無しさん
2010/09/16(木) 17:28:18ttp://codepad.org/QPK8jHFF
一番左は1文字目だろ
0963デフォルトの名無しさん
2010/09/16(木) 17:31:04// 指定した文字がいくつあるか表示し、 指定した文字がなかった場合は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;
}
0964デフォルトの名無しさん
2010/09/16(木) 17:43:44963さん、助かります。
0965デフォルトの名無しさん
2010/09/16(木) 17:52:54[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つ目です。
よろしくお願いします。
0966963
2010/09/16(木) 17:56:22char *p;
↓
const char *p;
0967デフォルトの名無しさん
2010/09/16(木) 18:04:07void put_string(const char str[])
{
printf("%s", str);
}
printf(str);
だと間違い。
0968デフォルトの名無しさん
2010/09/16(木) 18:04:350969デフォルトの名無しさん
2010/09/16(木) 18:06:220970デフォルトの名無しさん
2010/09/16(木) 18:07:33了解です。
>>967
ありがとうございます。
0971デフォルトの名無しさん
2010/09/16(木) 18:11:19[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つ目です。
よろしくお願いします。
0972971
2010/09/16(木) 18:12:34関数名はput_rstringでお願いします。
0973デフォルトの名無しさん
2010/09/16(木) 18:14:05こうしないとUINT_MAXを超えたときの挙動が変わっちまうだろ?
void put_string(const char str[])
{
unsigned i = 0;
while (str[i])
printf("%c", str[i++]);
}
0974デフォルトの名無しさん
2010/09/16(木) 18:16:55int put_rstring(const char str[]) {
unsigned i = 0, tail = strlen(str) - 1;
while (str[tail - i])
putchar(str[tail - i++]);
}
0975974
2010/09/16(木) 18:22:14// 変数一個減らしてみた。けど、ちょっと流れは不自然かも。
int put_rstring(const char str[]) {
unsigned i = strlen(str);
while (i)
putchar(str[--i]);
}
0976デフォルトの名無しさん
2010/09/16(木) 18:23:37ttp://codepad.org/wzRCs1az
0977デフォルトの名無しさん
2010/09/16(木) 18:24:30void put_rstring(const char str[])
{
unsigned i = 0;
while(str[i]) i++;
while(i--) putchar(str[i]);
}
0978デフォルトの名無しさん
2010/09/16(木) 18:26:14ダメ
>>976
ダメ
0979デフォルトの名無しさん
2010/09/16(木) 18:29:53どれならいいの?
0980デフォルトの名無しさん
2010/09/16(木) 18:35:250981デフォルトの名無しさん
2010/09/16(木) 18:36:360982デフォルトの名無しさん
2010/09/16(木) 18:37:14終了条件をよく考えましょう
>>978
どこから表示してるのかよく考えましょう
0983デフォルトの名無しさん
2010/09/16(木) 18:38:150984974
2010/09/16(木) 18:39:27unsigned i = 0, tail = strlen(str) - 1;
while (str[tail - i])
あー。こういうのは長さがゼロのときマイナス行っちゃうからダメなのか。
unsigned int で4294967295。
こちらの環境ではうまくいってるのは偶然か。
0985デフォルトの名無しさん
2010/09/16(木) 18:41:520986デフォルトの名無しさん
2010/09/16(木) 18:42:47>>976 は CBA と表示されてるだろ?
何が言いたいのかわからん。
0987デフォルトの名無しさん
2010/09/16(木) 18:43:58先頭の一文字前に行くの?
今の段階では strlen("") - 1のとき、
str + 4294967295を見ると思ってるけど、そうはならないのかな。
0988デフォルトの名無しさん
2010/09/16(木) 18:48:04[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]);
}
任意の数を入力させない場合はできたのですが、任意の数を読み込ませる形がわかりません・・・お願いします
0989デフォルトの名無しさん
2010/09/16(木) 18:51:26> while (str[i++]);
これが終了するときのiの値をよく考えてみましょう
>>987
char str[] = "abcdef";
put_rstring(str + 3);
って試してみましょう
0990デフォルトの名無しさん
2010/09/16(木) 18:55:32ttp://codepad.org/Wkq3DaE6
0991デフォルトの名無しさん
2010/09/16(木) 19:00:40unsigned 分かってなかった…。
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]
0992デフォルトの名無しさん
2010/09/16(木) 19:01:07問題が有り得ないな、逆なら判るけど
0993デフォルトの名無しさん
2010/09/16(木) 19:02:270994デフォルトの名無しさん
2010/09/16(木) 19:08:19>>976 は正しい様に思えるよ
putchar( str[--i] ); が putchar(str[i--]); なら間違いだけど
0995デフォルトの名無しさん
2010/09/16(木) 19:11:52なんで>>990で何も言わずに修正したのか理解できていません
while(str[i++]);
このループが終了したとき、str[i]は文字列終端の一文字後ろ指します
そして
putchar(stt[--i]);
の最初は、そこから一つ前、すなわち文字列の終端である'\0'になります
0996デフォルトの名無しさん
2010/09/16(木) 19:16:160997デフォルトの名無しさん
2010/09/16(木) 19:18:30http://hibari.2ch.net/test/read.cgi/tech/1284632294/
0998デフォルトの名無しさん
2010/09/16(木) 19:19:050999デフォルトの名無しさん
2010/09/16(木) 19:19:551000デフォルトの名無しさん
2010/09/16(木) 19:19:57よくやった!乙!
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。