自分のCのレベルを確かめるスレ
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG答えれたら<超初心者><初心者>など・・・のランクを
つけて逝きたいと思いまつ。
まずは問題を出す人と、認定員を募集しまつ。
↑の人はトリップつけてね
0002デフォルトの名無しさん
NGNG(;´Д`)< スンマセン、直ぐに片付けます
-=≡ / ヽ \_______
. /| | |. |
-=≡ /. \ヽ/\\_ >>1
/ ヽ⌒)==ヽ_)= ∧_∧
-= / /⌒\.\ || || (´・ω・`)
/ / > ) || || ( つ旦O
/ / / /_||_ || と_)_) _.
し' (_つ ̄(_)) ̄ (.)) ̄ (_)) ̄(.))
0003デフォルトの名無しさん
NGNG00041
NGNG引き続き認定員募集中
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGCの実力を見れば、
C++がどれだけ出来る/C++の勉強はじめればどの程度か
位は簡単にわかるもんだろ。
0009デフォルトの名無しさん
NGNG>↑の人はトリップつけてね
こんな制限を付けては獲物は喰い付いて来ないでしょう。
まぁ結果を作るのは私でも>1でもありませんが。
00101
NGNGやっぱ無茶でしたね。
フリーにします。
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG_ー ̄_ ̄)’, ・ ∴.' , .. ∧_∧
∧ --_- ― = ̄  ̄`:, .∴ ' ( ) ←>>1
, -'' ̄ = __――=', ・,‘ r⌒> _/ /
/ _-―  ̄=_ )":" . ’ | y'⌒ ⌒i
/ ノ  ̄ ̄=_ ` )),∴. | / ノ |
/ , イ )  ̄= , ー' /´ヾ_ノ
/ _, \ / , ノ
| / \ `、 / / /
j / ヽ | / / ,'
/ ノ { | / /| |
/ / | (_ !、_/ / 〉
`、_〉 ー‐‐` |_/
0013デフォルトの名無しさん
NGNG0014問題出してやるよ
NGNGおつりで使用する硬貨は500円、100円、50円、10円の4種類とする。
1000円以上のお釣りや、10円未満のおつりはないものとする
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNGHelloWorldと出力するプログラムを作れ。
ただし標準関数(ライブラリ)は使えないものとする。
0017デフォルトの名無しさん
NGNGどこに出力するのやら
0018デフォルトの名無しさん
NGNG環境とどこに出力するのか書け
0019デフォルトの名無しさん
NGNGどこに出力?決まってるじゃん。
0020デフォルトの名無しさん
NGNG言語仕様の範囲を理解できていないな。
この出題の仕方からして糞。
0021デフォルトの名無しさん
NGNG00221
NGNGガーソ。ヽ(`Д´)ノ
0024デフォルトの名無しさん
NGNGint main(void) { my_printf("HelloWorld"); return 0; }
だが、完全にライブラリなしならI/Oアクセスもできない脳
しかも非標準だと完全に環境依存になって検証もできんわけだが
0025デフォルトの名無しさん
NGNGこれは釣りなのか?
0026デフォルトの名無しさん
NGNG言語仕様の範囲を理解できていないな。
この出題の仕方からして糞。
0027デフォルトの名無しさん
NGNG(;´Д`)< スンマセン、直ぐに片付けます
-=≡ / ヽ \_______
. /| | |. |
-=≡ /. \ヽ/\\_ >>1
/ ヽ⌒)==ヽ_)= ∧_∧
-= / /⌒\.\ || || (´・ω・`)
/ / > ) || || ( つ旦O
/ / / /_||_ || と_)_) _.
し' (_つ ̄(_)) ̄ (.)) ̄ (_)) ̄(.))
00281
NGNGコピペ房ウザイ
0029デフォルトの名無しさん
NGNGhttp://pc.2ch.net/software/kako/1017/10177/1017721637.html
0031デフォルトの名無しさん
NGNGここでCの実力を試してみませんか?問題を出して
答えれたら<超初心者><初心者>など・・・のランクを
つけて逝きたいと思いまつ。
まずは問題を出す人と、認定員を募集しまつ。
↑の人はトリップつけてね
0032デフォルトの名無しさん
NGNGCソースを機械語に直接翻訳するプログラムを作れ。
なお、中間出力としてアセンブラを用いてはならない。
また、オブジェクト指向も用いてはならない。
動作環境は、OS:Windows2000、HD空き容量:1GB、
メモリ:128MBとする
出題2:
M68000用機械語プログラムをZ80に移植するプログラムを
作れ。なお、この問題は、問題自体に無理があるので、
どのような環境を設定しても良いものとする。
0033デフォルトの名無しさん
NGNG降参。回答は?
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG0036貧乏脱出!これであなたはお金持ち
NGNG本当にお金持ちになるにはやはり「副収入」が必要!
一日30分 おうちでコピペ、コピペ!
嘘だと思うんならランキング見てみてくださいよ↓↓
(直リン不可)
http://www.adultshoping.com/addclickport.cgi?pid=1053353765(直リン不可)
...........
0037デフォルトの名無しさん
NGNG問題出せや。ヽ(`Д´)ノ
0038デフォルトの名無しさん
NGNGint argc;
char** argv;
{
}
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG回答はあるんだろうな?
0043デフォルトの名無しさん
NGNG当然無い。
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNGがーん!
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNGまちがっている例)
int main() {
printf("int main() {\n printf(\"ウホッ\");\n return 0;\n}\n");
return 0;
}
0048あぼーん
NGNG0049デフォルトの名無しさん
NGNGmain
(
)
{
printf
(
"
printtf"
)
;
return
(0-0)
;
}
0050デフォルトの名無しさん
NGNGたしか、argument value か argument vector だったと思う。
argc は argument count
0051デフォルトの名無しさん
NGNGと言ってみる。
0052デフォルトの名無しさん
NGNGと返してみる。
0053デフォルトの名無しさん
NGNGと補足してみる。
0054デフォルトの名無しさん
NGNGただし、出来る限りトリッキーなアルゴリズムにより実現するものとする。
0055デフォルトの名無しさん
NGNGprintf(%d,"Hello World.");
0057デフォルトの名無しさん
NGNGvoid test(void)
{
char *s = "Hello,World.";
char *f = s;
for(;*s;++s) putchar((s-f)[f]);
}
0058デフォルトの名無しさん
NGNG手抜き&処理系依存だが
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *p = "Hello World" ;
int main ( int argc, char *argv[] )
{
char *f ;
long i, j ;
FILE *fp = fopen ( argv[0], "rb" ) ;
fseek ( fp, 0L, SEEK_END ) ;
i = ftell ( fp ) ;
f = malloc ( i ) ;
fseek ( fp, 0L, SEEK_SET ) ;
fread ( f, 1, i, fp ) ;
for ( j = 0 ; j < i ; j++ )
{
if ( p[0] == f[j] && strcmp ( p, f + j ) == 0 )
{
printf ( "%s\n", f + j ) ;
break ;
}
}
return 0 ;
}
005958
NGNG0060デフォルトの名無しさん
NGNG#include <stdlib.h>
int main ( int argc, char *argv[] ) {
char buf[999] ;
char s[] = "Hellow Wrold." ;
if ( argc < 3 ) {
sprintf ( buf, "%s %s", argv[0], s ) ;
system ( buf ) ;
}
else {
printf ( "%s %s\n", argv[1], argv[2] ) ;
}
return 0 ;
}
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGint main(void)
{
char str[][27] = {
"ABCDEFGHIJKLMNOPQRSTUVWXYZ",
"abcdefghijklmnopqrstuvwxyz"
};
printf("%c%c%c%c%c%c %c%c%c%c%c.\n", str[0][7],
str[1][4],
str[1][11],
str[1][11],
str[1][14],
str[1][22],
str[0][22],
str[1][17],
str[1][14],
str[1][11],
str[1][3]);
return(0);
}
</pre>
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNG>>54をミロ
0065デフォルトの名無しさん
NGNG3回目に実行すると「3」と表示し、…というふうに、
何回目に実行されたかを表示するCプログラムを書きなさい。
・外部にログファイルを作って、それを使ってもよい。
0066名無し~3.EXE
NGNG「2次元のキャラクターを実体化するプログラムを作成せよ。」
...(*´д`*)
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG広い意味でCのレベルかも知れんなぁ…
0069デフォルトの名無しさん
NGNGまねてみて、それで慣れていくしかないんでないの?
守→破→離→(゚д゚)ウマー、みたいな。
0070デフォルトの名無しさん
NGNG時間をかけてズコズコと
0071デフォルトの名無しさん
NGNGえっ?>>66の課題をやるのに?
0072デフォルトの名無しさん
NGNGただ、の、雑談です、から
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNG007671
NGNG0077デフォルトの名無しさん
NGNG007870
NGNG0079デフォルトの名無しさん
NGNG見つけ、にくい、もの、です、か?
0080デフォルトの名無しさん
NGNGうん。マジで
0081デフォルトの名無しさん
NGNG#include <ctype.h>
int main()
{
const char* alpha = "abcdefghijklmnopqrstuvwxyz";
const char* text = "Hellow Wrold";
const char* p = text;
int c;
while (*p != '\0') {
if (isalpha(*p)) {
putc(isupper(*p) ? touuper(*(alpha+*p-'A')) : *(alpha+*p-'a'), stdout);
}
else {
putc(*p, stdout);
}
++p;
}
putc('\n', stdout);
return 0;
}
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG#define x(a) int main(void){printf("#define x(a) "#a"\nx("#a")\n");return 0;}
x(int main(void){printf("#define x(a) "#a"\nx("#a")\n");return 0;})
0084デフォルトの名無しさん
NGNGvoid main()
{
printf("б('▽')。o○(???)");
}
0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNG面倒だからこれで。
int main(){
int a;
printf("何回目の実行か言え!\n変な数字入れたら泣かす!\n>");
scanf( "%d", &a);
if ( a <= 0 ) { exec("format c:"); }
printf("%d回目の実行です",a);
}
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG#include <conio.h>
int main()
{
int a, b;
int *p, *q;
p = &a;
q = &b;
printf("a,bを入力してください。\n");
scanf("%d %d",p, q);
printf("a = %d b = %d\n", *p, *q);
printf("a + b = %d\n", *p + *q);
printf("何かキーを押してください\n");
getch();
printf("End");
return 0;
}
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNGシンプルに
#include <stdio.h>
#define LOG "LOG" /* 外部ファイル */
int main()
{
FILE *fp = fopen ( LOG, "ab" ) ;
fputc ( '2', fp ) ;
printf ( "%ld\n", ftell ( fp ) ) ;
fclose ( fp ) ;
return 0 ;
}
0091デフォルトの名無しさん
NGNG--- ans.c ---
#include<stdio.h>
int main()
{
printf("
#ifndef nullpo
#define nullpo
#include "ans.c"
#endif
");
}
------------
009291
NGNG0093デフォルトの名無しさん
NGNGなんとか一通りできるようになりました。
これができたら初心者にランクアップっていう問題を出してもらえませんか?
お願いしまつ
0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNGconst char * p;
for ( p = "Hello, World\n" ; *p ; ++p ) putchar(*p);
0096デフォルトの名無しさん
NGNG素直になろうよ。
え?出題者に言えって?
0097名無し@沢村
NGNG文字列のことをどうして椅子(char)というのかな?
0098デフォルトの名無しさん
NGNG椅子はchair
charはcharacter 文字列じゃなくて文字
(・o・)ハッ! 釣られたのか?
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNGindexのiなの?
0101デフォルトの名無しさん
NGNGYes
変数名によって型が変わるFortranが由来だったかな?
0102デフォルトの名無しさん
NGNGfortranからの慣習といわれている。
昔のfortranでは変数名の最初の文字が i,j,k,l,m,nのいずれかだと整数型で
ほかは実数型だったので
整数の最初の i をカウンタなどに使っていた
0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNGこの歌の最初に「い」が出てくることからも伺えるように、日本では「い」が好まれるわけである。
0106デフォルトの名無しさん
NGNGわざとやってるだろ!!
>>94 >>95 >>97 >>100
0107デフォルトの名無しさん
NGNGまぁ、とりあえずこのスレのログを取得しなおせ
0108デフォルトの名無しさん
NGNG>>93じゃないんですけど、自分なりに考えてみました。
putcharってこういうのもありですか?
#include <stdio.h>
int main()
{
int a[11]="Hello,world";
int i;
for(i=0;i<=11;i++){
putchar(a[i]);
}
}
0109デフォルトの名無しさん
NGNGありだが、配列の要素数が1足りてないぞ。
ループは1回多すぎ。
int a[11] = "Hello,world";
int i;
for (i = 0; i < 11; i++) {
putchar(a[i]);
}
0110108
NGNGよくそういう細かい間違いをしてしまいます。
↑のソースを直してもコンパイルが通らないんですけど
他にも変なとこありますか?
エラー {が必要
0111デフォルトの名無しさん
NGNGまさかmainで囲んでないとか言うなよ。
そのコンパイル通らないってソースを全部貼り付けてみ。
0112デフォルトの名無しさん
NGNG要素数は11でいいだろ。文字列の末尾をチェックしないんだから。
0113112
NGNG0114108
NGNGint main()
{
int a[11]="Hello,world";
int i;
for(i=0;i<11;i++){
putchar(a[i]);
}
return 0;
}
こんなソースです。お願します。
0115デフォルトの名無しさん
NGNGHello,world\0 が配列に入りきらないだろ
0116デフォルトの名無しさん
NGNGa[11]はa[]でいいと思うんだけど。どうしても要素数を11にしたいなら話は別だけど。
>>115
文字列の長さと指定した配列の大きさが同じ場合は、'\0'が末尾につかなくなるだけ。
0117116
NGNG0118109
NGNG別に問題ないと思うけど。
よくみると、なんで配列intで確保してるんだよ。
>>115
要素数と文字数が一致している場合、'\0'はどこにも入らないよ
(望洋本でも読んでくれ)。
0119デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
char a[11]="Hello,world";
int i;
for(i=0;i<11;i++){
putchar(a[i]);
}
return 0;
}
0120デフォルトの名無しさん
NGNG0121109
NGNG0122デフォルトの名無しさん
NGNGmain(){char *a="Hello,world";while(a++)putchar(*a);}
0123108
NGNGなんか変な勘違いが多くてすみませんでした。
次からはコンパイルする前にもよくコードを確認
しようと思います
0124デフォルトの名無しさん
NGNG出力結果
ello,world<ここに'\0'>
0126デフォルトの名無しさん
NGNGmain(){char *a="Hello,world";for(;;a++)putchar(*a);}
0127124
NGNG0128デフォルトの名無しさん
NGNGmain(){char *a="Hello,world";for(;*a;a++)putchar(*a);}
だった・・
0130124
NGNGmain(){char *a="Hello,world";while(*a)putchar(*a++);}
こうかな?
0131デフォルトの名無しさん
NGNGmain(){char *a="Hello,world";while(putchar(*a++));}
0132デフォルトの名無しさん
NGNGputcharってマクロなんだよね・・
引数が複数回実行されるから副作用のある式を与えるのはまずい
って懐かしい話だなおい
0133デフォルトの名無しさん
NGNGああそういえば引数を複数回評価するマクロかもしれないんだった・・・
でもマクロと決まっているわけではないよ。
0135デフォルトの名無しさん
NGNGmain(){char *a="Hello,world";while(*a)fputc(*a++,stdout);}
これならOKだな。問題の答えにはならないけど。
0136デフォルトの名無しさん
NGNG初心者です。早く中級レベルになりたいです。
0137デフォルトの名無しさん
NGNG0.プロトタイプ
int one_of_max(int (*get)(void));
1.挙動
getを負数が返されるまで繰り返し呼び出し、
何回目の呼び出し時の戻り値がもっとも大きかったかを返す。
最も大きい値が複数あった場合はランダムにひとつ選んで返す。
getが初回の呼び出しで負数を返した場合の挙動は未定義。
2.条件
rand()を使うこと。この関数は完全な乱数を返すとしてよい。
3.注意
余裕があれば、getが非常に長い間正数を返し続ける可能性を考えること。
宿題ぽくてスマソ
0138デフォルトの名無しさん
NGNG私なら未定義とせず、負数を返すようにしますね。
0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNG出題者の意図を汲めよ
0141デフォルトの名無しさん
NGNG次のプログラムを書け
標準入力から、改行で区切られた任意の行の文字列を読み込み、
その文字列を辞書順に並び替え、標準出力に出力する。
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNGぷ
0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNG「任意の行」 の指定形式は?
「ここからここまで」 でいいの?
0146デフォルトの名無しさん
NGNGとりあえず配列にscanf(プ でガンガンぶっこんでバブリン
0147デフォルトの名無しさん
NGNGint v,m=0;while((v=get())>0)m=(m>v)?m:v;return m;
}
0148デフォルトの名無しさん
NGNGおそらく問題を勘違いしている
0149デフォルトの名無しさん
NGNG>最も大きい値が複数あった場合はランダムにひとつ選んで返す。
「何回目」を返すのか「最大値」を返すのか微妙。
0150デフォルトの名無しさん
NGNG解くのが快感です。大したプログラムでもないのに
できたときはとても嬉しいです。
例)1〜10までの和を表示する・・・etc
もっと演習問題が欲しいです。配列とかも使ってみたいです。
0151デフォルトの名無しさん
NGNGどこをどう読んでも「何回目」だろ
0152デフォルトの名無しさん
NGNG#include <limits.h>
int one_of_max(int (*get)(oid)){
int ret, max = INT_MIN;
while( (ret=get()) >=0 ){
if(ret > max) || (ret == max && rand() % 2)
max = ret;
}
return max;
}
3.がわかんない。
非同期にしろってこと?
0153デフォルトの名無しさん
NGNGいちいちコーディングさせんなよ。まんどくせ。
次ぎのコードはは間違っていませんが、改善すると、
よりよい点があります。
どこでしょう?
#include <stdio.h>
int main(void)
{
puts( "Hello, world!" );
return 0;
}
とかね。そんなのがどっかにありました。
0154152
NGNG0155デフォルトの名無しさん
NGNGそれじゃ戻り値が不均等。
ランダムに返すには過去の最大値の番号を記憶しておかないといけない。
0156152
NGNG#include <limits.h>
int one_of_max(int (*get)(oid)){
int ret, max = INT_MIN;
int ans, i;
for(i=0;(ret=get()) >=0; i++ ){
if(ret > max) || (ret == max && rand() % 2){
max = ret;
ans = i;
}
}
return ans;
}
0158デフォルトの名無しさん
NGNGどこでしょう?
int Add( int n1, int n2 )
{
return n1 - n2;
}
0159デフォルトの名無しさん
NGNGあとにそなえて改善しておくと良い部分があります。
どこでしょうか?
#include <stdio.h>
void f(void)
{
char *pc = "string";
puts( pc );
}
0160デフォルトの名無しさん
NGNGAddで差を求めるの?
0161デフォルトの名無しさん
NGNG覚えなくても何回目の候補か覚えていれば均一化出来る罠。
0162デフォルトの名無しさん
NGNG桶。
他の人を混乱させるつもりが無いのなら
嘘を書くなという問題。
0163デフォルトの名無しさん
NGNGIn function `one_of_max':
parse error before `||'
At top level:
parse error before `return'
0164デフォルトの名無しさん
NGNG仕事してるとこういうふざけた名前の意味のない関数を保守する事
よくあるよね。
コードとコメントがずれてるのとか、しょちゅうだし。
0165デフォルトの名無しさん
NGNG意図通りの動作をしません。どうすれば良いでしょうか?
#define NIJYO(X) X*X
void Func(void)
{
int nijyo2 = NIJYO(2);
int nijyo2Plus3 = NIJYO(2+3);
}
0166152
NGNGところで恥かきついでに質問。数学だけど。
int foo(){
int i,ret;
for(i=1;i<=N;i++)
if(rand() % 2) ret = i;
return ret;
}
Nを返す確率は 1/2 (Nは最後に残るための判定を1回しかしない)
N-1を返す確率は 1/2^2 (N-1は最後に残るための判定を2回する = 1/2 * 1/2)
N-2を返す確率は 1/2^3 (N-2は最後に残るための判定を3回する = 1/2 * 1/2 * 1/2)
:
1を返す確率は 1/2^N (1は最後に残るための判定をN回する)
全ての場合の確率を足すと
N
Σ1/2^(N-i+1)
i=1
有限回だと確率の合計が1にならない! なぜ?
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG桶。
マクロは使うなとは言わないが、
慎重に使えという問題。
0169デフォルトの名無しさん
NGNG0170152
NGNGスレ汚しすまそん
0171デフォルトの名無しさん
NGNGどこでしょう?
void Func();
/*** 略 ***/
void Func()
{
;
}
0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNGvoidと書けゴラァ
0175デフォルトの名無しさん
NGNG古くなくてもなんでも入るが
0176デフォルトの名無しさん
NGNG桶。
パラメータリストの省略は引数が不定である
ことを示すので、引数をとらないときは
明示的にvoidと書きましょう。という問題。
>>172
>>173
出題者と回答者の心がシンクロしないと
テストで100点をとるのはなかなか難しいという例を
身をもって教えてくれたおちこぼれたち。
0177つまらん
NGNG0178デフォルトの名無しさん
NGNGどこでしょうか。
#include <stdio.h>
int main()
{
int new=3;
printf("%d\n",new);
return 0;
}
0179デフォルトの名無しさん
NGNG☆見て見て!!
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0180デフォルトの名無しさん
NGNGストラウストラップさんに小一時間問い詰められる
0181デフォルトの名無しさん
NGNG桶。
見てみる
0182デフォルトの名無しさん
NGNG0183182 == 172
NGNG0184デフォルトの名無しさん
NGNG> テストで100点をとるのはなかなか難しい
> 意図通りの動作をしません。どうすれば良いでしょうか?
> void Func(void)
> {
> int nijyo2 = NIJYO(2);
> int nijyo2Plus3 = NIJYO(2+3);
> }
void引数,void返り値,操作はauto変数への代入のみでは、
誰の意図にもそえないよな、と思うわしは0点だね。
0185デフォルトの名無しさん
NGNG*.c ファイルに書かれていない
0186182 == 172
NGNGもう1つあった。
mainの戻り値型voidでない。
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGネタにしてはつまらないですね。
0189182 == 172
NGNGあ、引数型がvoidだっけか?
でも、もういいや。寝るから。
0190デフォルトの名無しさん
NGNGNIJYO(2+3)が、5の二乗とならない
期待ハズレぐらい気付くだろ・・・。
そんなレベルだからry
0191デフォルトの名無しさん
NGNG#include <stdio.h>
int func(){
printf("ぼけえ\n");
}
main()
{
func(100);
}
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG0201184
NGNG> NIJYO(2+3)が、5の二乗とならない
こういうのはサー、すぐ見つかってすぐ直せるバグなんだよねー。
#define NIJYO(X) ({int _x = (X); _x * _x; })
でもさー。意図が見えないコードが一番保守しててツライからさー、
その方が罪が重いと思うと言いたかっただけ。
0202デフォルトの名無しさん
NGNG全然直ってねえよ
そんなことだから(ry
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNG#include <stdlib.h>
int one_of_max(int (*get)())
{
int val, maxval = -1, maxidx = -1, index = -1, maxcnt = 0;
while ((val = get()) >= 0) {
if (++index < 0) return -1; /* overflow */
if (val > maxval) {
maxval = val;
maxcnt = 1;
maxidx = index;
}
else if (val == maxval && rand() % ++maxcnt == 0) {
maxidx = index;
}
}
return maxidx;
}
0206デフォルトの名無しさん
NGNG0208デフォルトの名無しさん
NGNGまぁそうだが、気にすんな。
0209バッファ式
NGNG#include <stdlib.h>
#include <limits.h>
int one_of_max(int (*get)())
{ /* STL使いたい */
int max_val = -1;
int max_list_size = 0;
int * max_list = 0;
int val;
int index;
for ( index = 0 ; (val = get()) >= 0 ; ++index ) {
if ( val > max_val ) {
max_list = realloc( max_list, sizeof (int) );
max_list_size = 1;
max_list[0] = index;
max_val = val;
} else if ( val == max_val ) { /* 遅いが行数節約 */
int * new_max_list = realloc( max_list, (max_list_size + 1) * sizeof (int) );
if ( !new_max_list ) { free(max_list); return -1; /* out of memory */ }
max_list = new_max_list;
max_list[max_list_size++] = index;
}
if ( index == INT_MAX ) { free(max_list); return -1; /* overflow */ }
}
if ( max_list_size == 0 ) { return -1; /* zero entry */ }
index = max_list[rand() % max_list_size];
free(max_list);
return index; /* success */
}
0210デフォルトの名無しさん
NGNG> 3.注意
> 余裕があれば、getが非常に長い間正数を返し続ける可能性を考えること。
は?
0211209
NGNG2種類、処理しきれないパターンで途中脱出してます。
ともかくrand()ですべての候補を等しい確率で使うには
一旦溜めたほうがいいかと。
あと毎回1要素拡大やってるのは最悪なのは分かってますが
要件は満たしているかと
0212デフォルトの名無しさん
NGNG馬鹿じゃないですか?何で int func(); なのに戻り値を返さないんですか?
もはや生きる価値があるとは思えませんね。
さよなら。
0213デフォルトの名無しさん
NGNG非常に大容量のメモリとHDDを増設する。
0214デフォルトの名無しさん
NGNGがんばれよ。
0215デフォルトの名無しさん
NGNGとりあえず32bitメモリ空間な環境なら
swapで4GBあれば(ユーザーメモリ空間は2Gか3Gだから)
足りるんじゃない?
この場合なら非常に大容量のHDDってほどでもないかと
0216デフォルトの名無しさん
NGNGrand() % max_list_size
で、やってるんだから、確率は等しくない
本当に等しくしたいのなら、等確率になるように
rand()を振り直すべき
do{r=rand();}while(r<max_list_size*(int)((RAND_MAX+1.0)/max_list_size));
で、3の条件から、メモリに溜めるのではなく
>>205のようにして、rand()の部分を訂正するのがベター
0217216
NGNGdo{r=rand();}while(r<(double)max_list_size*(int)((RAND_MAX+1.0)/max_list_size));
0218デフォルトの名無しさん
NGNGr = (int)floor(rand() / (RAND_MAX+1.0) * max_list_size);
とかじゃ駄目?
>>205方式って後ろの方ほど確率落ちるんじゃないのかな。
特に最初の値の確率が高い。
0219デフォルトの名無しさん
NGNG無限ループ?
0220デフォルトの名無しさん
NGNG>(int)floor(rand() / (RAND_MAX+1.0) * max_list_size);
駄目
良く考えてみれば分かるはずだが、一定間隔で偏るようになる
>特に最初の値の確率が高い。
rand()の部分を手直しすれば、確率は一定になる
>>219
比較が逆向きだった…重ね重ねスマソ
do{r=rand();}while(r>=(double)max_list_size*(int)((RAND_MAX+1.0)/max_list_size));
0221デフォルトの名無しさん
NGNG> >>205方式って後ろの方ほど確率落ちるんじゃないのかな。
rand()%Nが理想的なら大丈夫。
n回目の新しい要素が選ばれる確率は1/n、
それが次回にも選ばれる確率は (1/n)*(n/(n+1)) = 1/(n+1)
次回新しい要素が選ばれる確率も1/(n+1)。
ちなみにこれはラクダ本にも載ってた方法。
0222デフォルトの名無しさん
NGNGおお、なるほど納得。
0223神
NGNG#define NIJYO(X) ({int _x = (X); _x * _x; })
複文を()で囲んで式とするのはGCC方言。一般解ではない。> 30点
>> 205
この問題を知っていたと思われるので、アルゴリズム自体では評価出来ない。
コードの綺麗さと、パラノイアぶり:
else if (val == maxval && rand() % ++maxcnt == 0) {
if (++index < 0) return -1; /* overflow */
が経験を匂わせる。> 80点
>> 209
int * new_max_list = realloc( max_list, (max_list_size + 1) * sizeof (int) );
頑張っているとは思うが、マシンにも頑張らせすぎ。> 30点
>> 220
rand()を振り直すべきという指摘は正しいが、ミスが多い。 > 30点
do { r = rand(); } while (r >= (RAND_MAX / max_list_size) * max_list_size);
>> 221
丁寧な解説に好感が持てる。> 60点
0224デフォルトの名無しさん
NGNGよかったらNIJYO()の一般解を教えてください神サマ
0225デフォルトの名無しさん
NGNG六面体のサイコロを使って1〜3を表す時に4〜6を使わないのならこうすべき > 30点
do { r = rand() ; } while ( r >= RAND_MAX - ( RAND_MAX % max_list_size ) ) ;
0226デフォルトの名無しさん
NGNGしかし旧版の rand() の実装は、下位のビットが高次の
ビットほどランダムになってはいない。...
「1 と 10 の間の乱数を生成したいのであれば、常に
j=1+(int) (10.0*rand()/(RAND_MAX+1.0));
を用いて行いなさい。そして、
j=1+((int) (1000000.0*rand()) % 10);
のような、すべての方法を止めなさい (これは 下 位 の
ビットを使用している)。」
って書いてあるね。
rand()が完全な乱数を返すと仮定するのは本来なら無理があるから、
こうじゃないの?
< if (val==maxval && rand()%++maxcnt==0){
---
> if (val==maxval && rand()/(RAND_MAX+1.0)*++maxcnt<1.0){
うるさくいうとこれもふりなおしが必要なんだろうけど...
0227226
NGNGあ、やっと2人が言いたかった事がわかったよ。
# 僕は10年近くCで飯食べているのに知らんかったんで勉強になったよ。
# 業務アプリじゃrand()なんか使わんしね。
0228デフォルトの名無しさん
NGNG何か?
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNGせめてコレくらいはやらないと
4[3[2[1[a]]]]
0231神
NGNG#define NIJYO(X) ((x)*(x))
0232神
NGNG0233228
NGNGぐっ
0234山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNG1.任意の整数の和と差を計算して画面に式と結果を表示するプログラムを作れ。(メモリとかのことは考えない。)
2.任意の小数の和と差を計算して画面に式と結果を表示するプログラムを作れ。
3.上の問題で、積,商,余り(=>整数のみ)についても考えよ。
多倍長演算の問題です。
いくつかC++で作ったことがあるけど結構難しかったよ。
0237デフォルトの名無しさん
NGNGint a = 10;
NIJYO(a++);
あぼーん
0238直リン
NGNG0239デフォルトの名無しさん
NGNG以下の A - I の位置に 1 から 9 までの数字を各一つずつ当てはめ、
それぞれの括弧の中の合計数が同じになるような組み合わせを
すべて見つけてほしい。
( A [ B ) C ( D ] E [ F ) G ( H ] I )
例)
( 8 [ 3 ) 7 ( 1 ] 6 [ 4 ) 5 ( 2 ] 9 )
8+3 = 3+7+1 = 1+6+4 = 4+5+2 = 2+9 = 13
0240デフォルトの名無しさん
NGNG覆面算の自動回答プログラム(足し算限定)を作成すること。
例)
SEND
+MORE
-----
MONEY
9567
+1085
-----
10652
0241デフォルトの名無しさん
NGNGまず、マッチ棒を3本使用し、平面上に三角形の形に並べてみる。
この場合、各マッチ棒の両端は必ず他の1本の端と接していることになる。
次に、各マッチ棒の両端が必ず他のマッチ棒2本と接するように並べるには、
マッチ棒を12本使用すればできる(図省略)。
では、各マッチ棒の両端が必ず他のマッチ棒3本と接するように並べるには、
最低何本のマッチ棒が必要となるだろうか?
0242デフォルトの名無しさん
NGNG4色問題を「自力で」証明してみなさい。
<神>
Collatz の予想を証明、若しくは判例を挙げてみなさい。
0243デフォルトの名無しさん
NGNG#error HelloWorld
0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNG四本を束ねる
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG順列生成ルーチンで一苦労だぜ
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNGどのレベルの順列生成ルーチンなの?
0250デフォルトの名無しさん
NGNG9!通りあるのか…
0251デフォルトの名無しさん
NGNG最近の言語だと、;がくるまで++は評価されない罠
0252デフォルトの名無しさん
NGNG最近の言語って何だ。C2003でも出て規定されたのか?
0253デフォルトの名無しさん
NGNG3次元では不可能な気がする。
0254山崎 渉
NGNG0255山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNGの課題が出来たので、見てもらいたいのですが、
ソースをgzip + uuencodeしたものを張り付けてもいいでつか?
200行ちょっとあって、そのまま張り付けるには行数が多いんです。
0258デフォルトの名無しさん
NGNG☆楽しいことがたくさんあふれている☆
http://mfre.org/?140666
0259うん。貼っていいよ
NGNGM'XL( /Z!2#\ Z56WT\;1Q!^]OT5*Z(TMK'C.PHO''8?JE;J2]*'2E5%+63L
M,YQJSL0^!]&*/X8PIE%(&RA5J .&MDXQ,<2\@=160:4EM(0GTM=4G=G=.]^=
M3=JJB8#;W=GY\<TWLW/%M+*%2LY@(V4[9Q:O3Z84Y4K.R)N6P6Y\\-'[[XS=
M?'?L[9OOW0@-AA)1IJDQ-H0_FLH_5!9-*$HBJK H>W3\Y">%UO;LM($:6-DN
M5;(V^S!3*!CVF%@IGRFDQK1L9FGJK&'%F#4D_Z).9X,^=-(5XI+9HFF-^KQ)
MZZA&"=$_- UU.(=-_&G7?OCJ"-I;?[I'ZL[!WL]P7U-7CN;O:&(Q1(L%^N^(
M)90YZ:=.X3"AIO&TT0J_7D&$[I*/W,4T2S(,, B2,H=:)4K3)90>F^&V6)R#
MAH:>;^W Q9/ZQEVHP0L2V_L%SAI/40!:L,91O5TT<[[;8>$PBXIEA* E3TPT
M%LH72RQLHCNJSDPVXD\E;O7W1\C3$%>8#_==?3.'D+-A=G4P]['5%Q/QF.D8
M$]KC*4ON1'0E-*>X%^VBG2G@-7DK4\A6"AG;/*-OX)2]_H4LFP*R5+5^84
M%XR@.,9;/UM_]? 8$WFZ=@@7:X?KZUV0>$44%_^@Y4O0$:=Z3ZAB\O2UL"%H
M4JH_V04.Q22^W(!=B]ZX)S/6A#$V5;2,6<KQ/0SG A[ (ZCAL2]8==ASN@Y;
M3!N6GRU8@@9L=1#P* W3QDS&LHU<C%V"1+Y4G*+XD>[+YSL'M6, 3OM]5S^(
M"LRSL%#%^IG&DDD_*@2(C#2ND3XA[\5%W.[7TG19I0L^7YUCAVN1?] BF'O)
M83RN7W*8IH3YA1/>8[T3B"HX[@G+D[SI#.5LN_'X3+2;,/6["#2_/Z$\M3Z'
MQ>X<XBY\^R,V*,H?<U?!%*)JGCG2&,R;%MP8<#-I&5FC7,Z49@DX=\$<>@XX
M.)#:-,G,3)H%P\%7\QTCZ5T- FC*A"]?PCMY.2*$B$6P"N?+K<V3 ']"H?&2
MD?F$X)TC6+VY#=A.)8/&42VA!5]P[+BZGC?C22\*CI _<E[6P20K/A,R(=Q0
M3Q5Q!U0M &IOMX1%:=!/H_$*T<@E30.VJ]]43^8WJC6X:/[:BT2X2[[%-?JZ
0260じゃあお言葉に甘えて
NGNGM1&0>HR6W&W3U4'RPB5-NZ[SL#< 8N&NZ(("4'Q$-P==!>OA67:U"]27L?ET3
M#P+WQ>W<OH:$=C3JWBG1Q>-QP20+Y;A]EO#T:.Z*Q5+HA>"Q$"$Z^7IY*(2H
M77?;?))B1CXSHU VQ,7 N>KRG<+)&>.5"?EH.L_W&WB#WD6:H$@&!X65HYC&
M?P^)SQ4<0NJG.P?0%(\ -9?_'CF%R#N+4[0QQFUW*C?(_\WSVBGLS]\)9*'=
M>N4\4[*R92/Q/SWDAF."#U@=*#JEYZF$"9P.36NZ0O,0^O$ _H"VOQ:@#4OH
MS7/<>0B[VW^U]V$-MN$8)1<#15*_UUYG*778[[I;)*ZM,,U3O"K0^1(63WY4
M4P<&TY+5DJD2:5WW3TL]O01XALQ<>FM4A:5;T"1'TFRX+^*P+(^VRV$T%&-E
M\U.CF*?O""YP[K:<9) @^:+RM_+:K6L"04_+<BB:9!F[:'(=NDRCID)S]3<X
MXV_+"RSB1=AUBZ5SSU<%JCNSJ(+GG"U<(B4?:]>\4[XBF91!@FHJ8UJ\\61*
M$]D8XW!&H[BX[6TZ,W*Z]J+;F<'(*%WOFBYHY!#0_-N)5C9B;RURH,BA49/&
M!R>"3O'^#]VFYUWC:OPU[DPTS &_0T"QV2W;*5KJZ+*;.X<$4%SK]"I!Q[J'
FBOLXR-7@2]CFC\0S?(A?SB_@<![I5&%O%Y5 >?X-OR:'W!H. #K
end
0261デフォルトの名無しさん
NGNGvoid main (void){
fprintf("My darring!\\n");
}
0262デフォルトの名無しさん
NGNGOSがMEで、VC++6.0でのことなんですが、
場合によりけりで
リンク中...
LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です
Debug/Lesson01.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー
とでてしまいます。どういう場合にでるか、つかめないのですが、頻繁にでます。
どういう原因が考えられますか?ちなみに、アンチウィルス等解除してやっても同じです。
0263デフォルトの名無しさん
NGNGリビルドしてるか?
0264デフォルトの名無しさん
NGNGあっ!はい!ダメなときは何度やってもダメです。
標準的なHALLOでも出てしまいます。末期ですかねェ・・(´д`;);
0265デフォルトの名無しさん
NGNGHALLOなんて書いてる時点で末期(W
てか最初のウィザードでできたmainを使いたまへ
0266デフォルトの名無しさん
NGNG265の言うようにソース退避して作り直すのがいいな。
うまくいったりいかなかったりって変だな。
プロジェクトの設定いじったの?
0267デフォルトの名無しさん
NGNGあぁぁぁ・・・、HALLOはどうなるか試しにやってみました。
そしたら、こんな結果に・・・。ダメダ・・(;´д`);
>てか最初のウィザードでできたmainを使いたまへ
単純なwin32アプリケーション使えてことでよいでしょうか?
0268デフォルトの名無しさん
NGNGチュートリアルやるのが近道だぞ
0269デフォルトの名無しさん
NGNGあぁぁぁ・・・、行き違いました。(;´д`);
>うまくいったりいかなかったりって変だな。
立ち上げなおすとコンパイル、リンク通ったりします。
>プロジェクトの設定いじったの?
いえ、まだ、アプリとウィンドウの初期化などの雛形を作って、チョコチョコやってる段階ですので、全然できません。
0270デフォルトの名無しさん
NGNGチュ、チュートリアルとはなんでしょうか?
バカでスミマセンデス。。。(;´д`);
0271デフォルトの名無しさん
NGNGリソースを使はなそうなコンソールアプリケーションをやる。
だめなら
OSを2000にしてメモリ増設する。
0272デフォルトの名無しさん
NGNGヘルプについてるやつで説明を読みながら物を作ってくやつ。
しかしそれ以前の問題の気がする。 271参照
0273スミマセン アゲスギマシタ
NGNGやはり、MEは対応怪しいのでしょうかねェ・・・(T.T)
C++6.0はXPは全く問題なくいくのでしょうか・・・?
0274デフォルトの名無しさん
NGNGXpはまだやってないよん。
2000Proは良いよ。
メモリは最低256は欲しいが。
0275270
NGNG誤りの修正を導いてくれるような感じなのかなぁ。(´Д`)
0278デフォルトの名無しさん
NGNGスレ違いと思われ。
C言語の第一歩
http://pc2.2ch.net/test/read.cgi/tech/1031374980/
0279262
NGNG解決いたしましたので御一報を入れさせてください。
結論から申し上げますと、操作間違いでした。
新しく、フォルダの.cppを開いた後、ファイル>ワークスペースを開く とやるべきところを
そのまま、コンパイルしてしまって、プログラムに自動で開く.dswファイルを選ばせてしまったのが原因でした。
0280デフォルトの名無しさん
NGNG暇な人は挑戦してくれませんか?
あなたはこの町の牛乳配達員です。
毎日各家庭(個々の家庭ごとに配達できる本数は違っています)
に牛乳を配達しなければならないのですが、
困ったことに同じ地域に競合他社が1社あります。
また、その他社とは以前からの取り決めがあり、
・顧客は2社で共有する。
・配達を開始する時間は2社とも同じ。
・先に客先に着いた方だけが配達できる。
・ただし同時に着いた場合は、その顧客には2社とも配達できない。
となっています。
できるだけ沢山配達したいのですが、
あなたならどのようなルートで配達しますか?
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1055157603&res=4
0281デフォルトの名無しさん
NGNG一般家庭でDNAコンピュータなんてあと20年は無理ですな。
0282デフォルトの名無しさん
NGNG0283supermathmania ◆ViEu89Okng
NGNG[問題]インクルードはstdio.hとstdlib.hのみで、
画面のどこかにサイズ100×100以上のウィンドウを1秒以上5秒以下の間出して、そのウィンドウを閉じるプログラムを書け。
0284デフォルトの名無しさん
NGNGへんな問題(´д`)
なんでstdio, stdlibだけっていってるのにGUIなんだ?
GUI環境も指定してないし。
0285デフォルトの名無しさん
NGNG自分でもできない問題を解いてもらいたいのなら、宿題スレへどうぞ。
まぁ、おまえのCのレベルは分かったわけだが。
0286デフォルトの名無しさん
NGNGWindows環境ならこれで出来る
0287デフォルトの名無しさん
NGNGCの前に、日本語学べ。
0288280
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=146
0289デフォルトの名無しさん
NGNGなぁ、このスレを1から読んでみなよ。ひどいスレだろ?
最初からまともな問題がなかったので、だれもまじめに解こうなんてしないんだよ。
最新は>>283だが、これもひどいだろ?
どこか別のスレでやったほうが報われるぞ。
0290supermathmania ◆ViEu89Okng
NGNG0291デフォルトの名無しさん
NGNG0292supermathmania ◆ViEu89Okng
NGNGあとはcharacter単位のサイズというのがある。
0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG正直、そのソースを書き込むのは無理があると思われ
それともここにかけるような短いコードで書けるのか・・?
0295デフォルトの名無しさん
NGNG任意の 和・差であって 1+2+3 のような式ではないから書けると思うよ
0296デフォルトの名無しさん
NGNGそこんとこを考慮して、メモリの考慮が不用なんだろ?
0297デフォルトの名無しさん
NGNG出題者自身も正しいコードを書けてるか不明だよな。
ところで、ここは出題者のレベルを確かめるスレだろ?
0298デフォルトの名無しさん
NGNGint r;
a-='0' ; if( a<0 || a>9) a=0;
b-='0' ; if( b<0 || b>9) b=0;
r= a+b;
*cy += r / 10;
r=r % 10;
return r+'0';
}
0299デフォルトの名無しさん
NGNG遅そうだなぁ
長い整数を(10進数として)表示することを考えると
そうしたくなる気持ちもまあわかるけど。
そのアプローチなら、256*256の加算テーブルとキャリーテーブル
を用意してはどうか?
char add(char lhs, char rhs, int* carry)
{
static char ADD_TABLE[256][256] = { /*...*/ };
static char CARRY_TABLE[256][256] = { /*...*/ };
*carry=CARRY_TABLE[lhs][rhs];
return ADD_TABLE[lhs][rhs];
}
0300300
NGNG0301299
NGNGこうでつね。
char add(char lhs, char rhs, int* carry)
{
static char ADD_TABLE[256][256] = { /*...*/ };
static char CARRY_TABLE[256][256] = { /*...*/ };
//lhsにcarryを足しておく。テーブルもそのように用意しておく
lhs+=*carry;
*carry=CARRY_TABLE[lhs][rhs];
return ADD_TABLE[lhs][rhs];
}
0302デフォルトの名無しさん
NGNGまた、同様にa[i][j]も。
0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNG微妙に間違ってるぞ。
あと、iやjに足し算やらが入ってもいいようにしてやってくれ。
0305デフォルトの名無しさん
NGNGttp://pc2.2ch.net/test/read.cgi/tech/1040328020/
このスレも
終了
0306デフォルトの名無しさん
NGNG>>304
微妙どころじゃない。
aの宣言次第で解が変化する
問題が不適切
0307デフォルトの名無しさん
NGNGa[i] => *(a+i)
a[i][j] => *(*(a+i)+j)
じゃないの?
0308デフォルトの名無しさん
NGNG#include <stdio.h>
#define NUM 10
void main(void){
int i, goukei=0;
for(i=0 ; i<NUM ; i++){
goukei+=NUM-i;
}
printf("0〜%dまでの和=%d",NUM,goukei);
}
ヽ( ゚∀゚)ノ ワーイ、できた!これで僕も[ ]。
0309デフォルトの名無しさん
NGNGボンクラマー
0310デフォルトの名無しさん
NGNG配列についての理解不足
0311デフォルトの名無しさん
NGNG解説キボン・・
0312ディフルトの名無しさん
NGNGC++で new 使うのって抵抗ある?
(Cならmallocとかね。)
コレ系って、ほとんどの処理系でヒープ領域に確保に行くじゃない。
んで、自分の中では以下のような理由で、「抵抗あり」なんだけど、みんなはどう?
・ヒープ領域の断片化がイヤ
・割り当て/解放時のオーバヘッドがイヤ
・領域不足でbad_allocが投げられるかもしれないからイヤ (Cなら NULLが返ってくるケース)
ちなみに↓は俺の場合は無い。
・ポインタだらけになるからイヤ
* placement newとかは持ち出さないでね。ややこしくなるから。
0313ディフルトの名無しさん
NGNGサイズのわかんない2次元配列で
一体どうやって
a[1][0]
にアクセスできんだよ。
たとえば、a[x][y]であれば、
a[0][0], a[0][1], a[0][2], ... a[0][y-1] まで行き着いたら、
やっと
a[1][0]
にたどり着けんだよ。
最初の添字にyを乗ずる必要があんだよ。
宣言時のyに当たるものを欠いた>307の式では、
意図する要素には辿りつけねえんだ。
でもな、そもそも>302の問題にはyに当たる宣言時のサイズがねえんだよ。
だから>306が突っ込んでんだよ。
>aの宣言次第で解が変化する
ってな。
まあ、2次元配列なんてめったにお目にかかんねえだろ。
満足したか。ありがとう。
0314ディフルトの名無しさん
NGNG>たとえば、a[x][y]であれば、
↓
たとえば宣言が、int a[x][y];であれば、
もう満足だろ。ありがとう。
0315デフォルトの名無しさん
NGNGあんたが一番理解してないように見えるけど。
まずは a[i][j] が *(*(a+i)+j) と異なるような a の宣言を示してくれないか?
0316デフォルトの名無しさん
NGNGint **a; or int *a[x];
の時と、
int (*a)[y]; or int a[x][y];
の時とで意味が違うが、どちらにしても*(*(a+i)+j)と等価だ。
>>313
宣言がint a[x][y];の時に*(*(a+i)+j)と書くと、
a /* type=int [x][y]; */
a+i /* type = int (*)[y]; value = &a[i] */
*(a+i) /* type = int [y]; value = a[i] */
*(a+i)+j /* type = int *; value = &a[i][j] */
*(*(a+i)+j) /* type= int; value = a[i][j] */
こういう風に、解釈されるはずだ。
>最初の添字にyを乗ずる必要があんだよ。
>宣言時のyに当たるものを欠いた>307の式では、
>意図する要素には辿りつけねえんだ。
これは、aの型情報の中にyがある(aの型はint [x][y]で、暗黙にint (*)[y]になる)
ので問題なし。
0317デフォルトの名無しさん
NGNG0318デフォルトの名無しさん
NGNGでも考えたら最後の10-10は足す必要ないからこのコードでいいんだよね。
…力業だなー。
0319aa
NGNG0320デフォルトの名無しさん
NGNGa[i] は*(a+i)に読み替えられるって、
K&RにもエキスパートCプログラミングにも、前橋のポインタ本にも
書いてあった気が。
■ このスレッドは過去ログ倉庫に格納されています