【初心者歓迎】C/C++室 Ver.44【環境依存OK】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2007/11/03(土) 00:20:13ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.43【環境依存OK】
http://pc11.2ch.net/test/read.cgi/tech/1190860744/l50
【アップローダー】(質問が長い時はココ使うと便利)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
0951デフォルトの名無しさん
2007/12/06(木) 13:57:19ここで質問する==調べものをする
だからなw
0952デフォルトの名無しさん
2007/12/06(木) 13:58:29どこで詰まってるのかよくわからんが、代数的に解かなくても
>m 番の石を最初に取り除く.直前に除いた石から時計回りに石をたどって k 個目を取り除く作業を,残り 1個になるまで繰り返す
この手順通りのことを実際にやるようなプログラムを作ればいいんでない?
0953デフォルトの名無しさん
2007/12/06(木) 14:29:050954デフォルトの名無しさん
2007/12/06(木) 14:31:34long
0955デフォルトの名無しさん
2007/12/06(木) 14:31:380L とか 4095L とか
0956デフォルトの名無しさん
2007/12/06(木) 14:34:04継子立てでいけると思うけど、どうダメだった?
0957デフォルトの名無しさん
2007/12/06(木) 21:50:36課題もなんとか終わりました。質問に対して答えてくれた方々、本当にどうもありがとうございました。
0958デフォルトの名無しさん
2007/12/06(木) 23:35:17配列のサイズってどこに格納されているんでしょうか?
gcc -S でソースを眺めてみたところ特にサイズらしきデータが見当たらず、
sizeofした結果は即値で見つけやすかったんですが。
関係あるかどうかinfo scopeでは配列はサイズは表示されるのですが、
型と要素数では表示されないんですね。
スレ違いなら誘導よろ。
0959デフォルトの名無しさん
2007/12/06(木) 23:49:39配列のサイズって格納されてるの? 俺はできるだけ
vector とか使って size わかるようにして使うようにしてるけど。
0960デフォルトの名無しさん
2007/12/06(木) 23:50:37配列サイズメモリには残っていない
コンパイル中にだけ残っている
サイズ知りたければvector
0961デフォルトの名無しさん
2007/12/06(木) 23:51:100962デフォルトの名無しさん
2007/12/06(木) 23:59:07ただし、newで作った配列は、どこかにサイズ情報を持ってる。返されるアドレスの直前とか。
そうでないと、delete[]で正しく開放できないからね。
0963デフォルトの名無しさん
2007/12/07(金) 00:06:26スタック上の固定長配列はオフセットに化けてメモリ上には展開されないって感じでしょうか。
>>962
そういえば、delete[]はサイズ意識しますもんね。
今度newした配列見てみることにします。
0964デフォルトの名無しさん
2007/12/07(金) 00:58:340965デフォルトの名無しさん
2007/12/07(金) 08:50:47すみません、ご指摘ありがとうございました。
0966282
2007/12/07(金) 20:55:28#include <iostream>
#include <fstream>
#include <sstream>
using namespace std ;
int main(){
stringstream ss;
FILE *fp ;
for ( int t = 0 ; t < 100 ; t++ ){
ss << "data" << t ;
cout << ss.str() <<endl;
if ((fp = fopen(ss.str().c_str(), "r" )) == NULL )
return 0 ;
ss.str("");}}
上記の部分で、ファイルはresult0〜result99まで存在しているにもかかわらず
result46でプログラムが終了します。
ifの判定ミス?だとは思うのですが、どうしてそうなるのかまったくわかりません。
コンパイラはborland C++です
0967デフォルトの名無しさん
2007/12/07(金) 21:05:440968デフォルトの名無しさん
2007/12/07(金) 21:11:57知っている方がおられれば教えてください
10進数で11とかだと16進数でbになると思うのですが
4桁で000bと出力するにはどうすればよろしいでしょうか?
よろしくお願いします。
0969デフォルトの名無しさん
2007/12/07(金) 21:13:37ageたり、282とか間違ってるし答えも単純だし、終わってるな俺 orz
0970デフォルトの名無しさん
2007/12/07(金) 21:14:540971デフォルトの名無しさん
2007/12/07(金) 21:20:01すいません、ありがとうございます。
04の0が抜けてました。
ほんとうにありがとうございます。
0972デフォルトの名無しさん
2007/12/07(金) 22:50:12多重継承時に処理のし忘れを防止するというのはわかるが
それだけのためにラッパーを作るのはどうかなという気がしないわけでもないのですが…
0973デフォルトの名無しさん
2007/12/07(金) 23:04:14意味や意図がわかってれば
public な仮想関数は2つの役目を担っているので
public な非仮想関数と private な仮想関数に分けましょう
ってことを意識すれば public な仮想関数は気持ちわるい
そうやって1つのエンティティに1つの役目を負わすことを意識して
シンプルで扱いやすい設計ができた経験があれば
0974デフォルトの名無しさん
2007/12/08(土) 02:25:51気持ち悪いと思うならやめた方がいいと思う。
そもそもある設計手法が効果的に働くためには一定の条件が必要で、
>>972のプログラムではNVI(Non Virtual Interface)が効果的に働かない部類のものかもしれない。
将来的に不具合が出てきたら変えればいい。
パターンは大事だけど、経験も大事。
0975デフォルトの名無しさん
2007/12/08(土) 07:26:29デルファイのようにGUIでプログラムできるC++はありますか ボーランドC++以外のやつ有りますか?
0976デフォルトの名無しさん
2007/12/08(土) 08:05:46・WideStudio
0977デフォルトの名無しさん
2007/12/08(土) 08:18:40サンクス
0978デフォルトの名無しさん
2007/12/08(土) 08:28:10なんか初めの二つは、SP2とドットネットのインストールが必須な上に作業中の動作が重いんだ
古いパソコンでもDelphi6のように動くC++が使いたいとおもった
0979デフォルトの名無しさん
2007/12/08(土) 08:33:03なんかこれでも難しいんだ・・・
0980デフォルトの名無しさん
2007/12/08(土) 09:06:440981デフォルトの名無しさん
2007/12/08(土) 09:07:280982デフォルトの名無しさん
2007/12/08(土) 10:04:450983デフォルトの名無しさん
2007/12/08(土) 10:07:57釣りか?
一番なんてものは主観だ
全て使ってみて自分で選べ
0984デフォルトの名無しさん
2007/12/08(土) 10:55:08Win32API の方が良いといって使ってたりする。
0985デフォルトの名無しさん
2007/12/08(土) 11:14:23C++Builder6
0986デフォルトの名無しさん
2007/12/08(土) 11:26:150987デフォルトの名無しさん
2007/12/08(土) 11:39:080988デフォルトの名無しさん
2007/12/08(土) 11:41:42A[n][n]の配列を宣言するにはどうしたらいいですか?
0989デフォルトの名無しさん
2007/12/08(土) 11:45:19scanf("%d",&n);
int A[n][n];
0990デフォルトの名無しさん
2007/12/08(土) 11:46:20それじゃできないです
0991デフォルトの名無しさん
2007/12/08(土) 11:47:56A=new int*[N];
for(n=0;n<N;n++)A[n]=new int[N];
0992デフォルトの名無しさん
2007/12/08(土) 11:51:49for(int n=0;n<10;n++)A[n].resize(10);
0994989
2007/12/08(土) 11:53:33#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int A[n][n];
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
A[i][j] = i * 10 + j;
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
printf("A[%d][%d]=%d\n", i, j, A[i][j]);
return 0;
}
$ cc -std=c99 a.c
$ ./a
3
A[0][0]=0
A[0][1]=1
A[0][2]=2
A[1][0]=10
A[1][1]=11
A[1][2]=12
A[2][0]=20
A[2][1]=21
A[2][2]=22
0995デフォルトの名無しさん
2007/12/08(土) 11:54:320996デフォルトの名無しさん
2007/12/08(土) 12:07:32> vector< vector<int> > A(10);
> for(int n=0;n<10;n++)A[n].resize(10);
10 ってなんだ?
cin>>n;
vector<vector<int> > A(n,vector<int>(n));
かな。
0997デフォルトの名無しさん
2007/12/08(土) 12:08:28定数値が必要っていわれます
0998デフォルトの名無しさん
2007/12/08(土) 12:10:120999デフォルトの名無しさん
2007/12/08(土) 12:10:22自分の環境も書かずに質問するからそうなる。
1000デフォルトの名無しさん
2007/12/08(土) 12:25:0910011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。