1 名前:デフォルトの名無しさん [2008/03/30(日) 01:50:26 ] エスケープシーケンスやWin32APIなどの環境依存なものでもOK。 ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.50【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1204124447/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
968 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 19:01:21 ] vectorの配列を作ろうと思い vector<vector<string> > vecStrDim; vector<string> vecStr; string strTest = "test"; vecStr.push_back(strTest); vecStrDim[0].push_back(vecStr); とやってみました。コンパイルは通るのですが This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. とでて実行してもデバッグエラーになります vecStrDim[0].push_back(vecStr);が悪いのはわかるのですが、方法が思いつきません どうすればデバッグエラーを対処できるのでしょうか?
969 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 19:06:06 ] >>968 ×vecStrDim[0].push_back(vecStr); ○vecStrDim.push_back(vecStr);
970 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 19:10:40 ] >>969 あわわ……とんでもなく馬鹿なことしてすみません 解決しました
971 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 19:14:36 ] そのコードがコンパイルが通ることが不思議だ…
972 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 19:29:14 ] シングルバイト限定なら、current_cをintか何かにして、charで表現できないデカい値にしとけばいい。
973 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 20:44:51 ] class内で、static付けたものは、配列にしたときコピーは作られないんですよね? すべて同じ物を参照するんですよね
974 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:27:08 ] まあ配列にしなくても1つしか実体が存在しないようになるけどな
975 名前:デフォルトの名無しさん [2008/04/24(木) 00:49:34 ] #include <stdio.h> void main(void) { int a; pirntf("何か入力してください\n\n"); scanf("%d",&a); while(1){ printf("ぐははははははは!!\n\a"); } } この程度しか俺は中なので書けません。プログラマーさん お願いします。
976 名前:デフォルトの名無しさん [2008/04/24(木) 00:50:21 ] ↑MISSりました #include<stdio.h> void main(void) { int a,b,c; printf("数字を入力してください\n"); scanf("%d",&a); printf("数字をまた入力してください\n"); rewind(stdin); scanf("%d",&b); printf("数字をまたまた入力してください\n"); scanf("%d",&c); if(a == b == c) printf("等しいです,\n"); else printf("等しくないです,\n"); } これでa==b==cだったら"等しい"と表示させるように組んでるのに 1、1、1以外の数字は入力してもは全部"等しくないです"になるのは なんででしょうか?
977 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:52:43 ] >>976 a == b == c は、(a == b) == c と解釈される。つまり、使い方が間違っている。 その場合、恐らくa == b && b == c でいいだろう。
978 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:57:13 ] 980あたり、次スレたのむぜ
979 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:59:27 ] >>977 おおwなるほど! ありがとうございました^^
980 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 01:11:37 ] >>990 にパス
981 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 01:14:03 ] >>976 移動前のスレのコメントにもありましたが、 「君が参考にしてるものは信用しないほうがいい」 です。void main(...) はまずい。
982 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 01:17:45 ] void main は g++ でエラーになるしな。 gcc だと警告ですむけど。
983 名前:981 mailto:sage [2008/04/24(木) 01:34:22 ] rewind() も、あるのかわからない.....。stdin に対して rewind() ?
984 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 03:35:46 ] 1〜100までの数字でひとつだけない数字があるのでそれを探すという問題なのですが ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6318.cpp でひとつひとつ探す方法はあるのですが 他の方法で、まず 1〜50までの個数と51〜100までの個数を数えて 1〜50が49個 51〜100が50個で1〜50にあるとして 次は1〜25、26〜50とどんどん減らして 26〜38と39〜50の割り切れないときは13と12にしたりなどして 最後2つの数字にし 48が1個 49が0個で49がない数字とするプログラムを作りたいのですが どなたか例みたいなものを書いていただけないでしょうか?
985 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 03:41:23 ] 数えながら2つのファイル(小さい,大きい)に書き出していけばいいんじゃねの?
986 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 03:42:37 ] どこにあるのかわからないなら、ひとつひとつしらべるのが最善
987 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 03:48:07 ] 問題でこのような方法で作りなさいとあるので作りたいんですがダメでしょうか? #include<stdio.h> #define N 100 int main(void){ int min , max , mid; int count1, count2; int data, i; FILE *fp ここまでの指定はあるのですが、今自力でやってみてるんですが どう二つに分けそれ以降どのように区切っていけばいいのかよくわからないんです
988 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 04:42:58 ] 物凄い無駄な処理だなw 再帰呼び出しを使うのが良いよ
989 名前:988 mailto:sage [2008/04/24(木) 04:46:09 ] ああ、ごめん。数字は順番に並んでるわけじゃないのか
990 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 04:54:26 ] 諦めて全部足して5050から引け
991 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 05:18:22 ] #include <vector> //trueならmidより上、falseなら下 bool hilow(int min, int mid, int max, std::vector<int> src, std::vector<int> dst) { dst.clear(); std::vector<int> hi, low; //中間数超と以下でhi, lowに分ける for(size_t c=min; c <= max; c++) { if(src[c] <= mid) low.push_back(src[c]); else hi.push_back(src[c]); } //個数が規定値か調べて多い方を返す if(hi.size() == max - mid ) { dst.swap(hi); return ture; } dst.swap(low); return false; } 続く
992 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 05:33:54 ] 続き void main() { std::vector<int> num; //ファイルからnumに一度全部読み込む //ここは自分で書けるでしょ? int min, mid, max; min = 1; max = 100; do { (max - min + 1) % 2 ? mid = (max - min + 1) / 2 + 1 : mid = (max - min + 1) / 2; if( hilow(min, mid, max, num, num) ) min = mid + 1; else max = mid; } while(max - min > 2); //完了 }
993 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 05:36:05 ] あー色々間違ってたw bool hilow(int min, int mid, int max, std::vector<int>& src, std::vector<int>& dst) dst.clear(); は無し f(hi.size() == max - mid ) { dst.swap(low); return false; } dst.swap(hi); return true; }
994 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 05:37:10 ] 試してないけどこんな感じで良いと思うよ。 中間の出し方は微妙に間違ってるかもしれんので、自分で検証してね。
995 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 05:56:21 ] exeを逆アセンブルしてソースコードに組み込む定番のやり方教えて下さい
996 名前:デフォルトの名無しさん [2008/04/24(木) 06:00:08 ] ソースコードでよくみかける10Lや1Lってなんのことなんでしょうか? 「1Lとは」などで検索したのですが見つかりません。 環境はC++、BCCです。どなたか回答頂ければ幸いです。
997 名前:デフォルトの名無しさん [2008/04/24(木) 06:09:58 ] >>996 整数のあとにつくLはlong intであることを表す。 10はintの10。10Lはlong intの10。
998 名前:デフォルトの名無しさん [2008/04/24(木) 06:31:33 ] >>997 ありがとうございます! long intをキーワードに検索したら大体わかってきました。 long intを代入するときはLをつけるという解釈であってますか?
999 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 06:39:42 ] 違うよ。整数リテラルそのものにも型があるの。 1 は int型 '1' は char型 1.0 は double型 1L は long型
1000 名前:デフォルトの名無しさん [2008/04/24(木) 06:49:16 ] 重ねてありがとうございます! 詳しい説明でよくわかりました(多分)。 単なる1でも勝手にintにされてるんですね。
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。