1 :
デフォルトの名無しさん :
2011/12/03(土) 07:56:06.20
2 :
デフォルトの名無しさん :2011/12/03(土) 08:42:54.22
すまない。1から22までの階乗を表示しろ という課題なのだ。通信講座で、正直理解しないでやってる事が多い。 超初歩的なミス等があると思うので探して欲しい。 ちなみに今自分が理解していないと痛感している部分は、 ループ変数を関数に渡す という作業だと思う。 なのでその辺をざっくり教えて頂けるとありがたい。 諸事情で通信講座先の先生には聞くことができないのだ。 頼れる人が居なくて困っている。 暇な人がいたら返答よろしく頼みたい #include<stdio.h> double dr; double ko = 0; double hu(double ji) { ko = ko + ji * dr; return ko; } void main() { double se; se = 22; for(se =0;se > 0; se--); { se = hu(se); printf("%d\n",hu); } }
>>2 とりあえず突っ込みたいのは
なんで型をdoubleにしてるのか
seに22を代入してるのにすぐ直後のfor文で0を代入してるのはなぜか
for文のあとに;つけてると駄目だとか
drはmain内で使わないのか
そもそも動かしてみたのか
パッと見で気がついたのはこれぐらいか
>>2 3を踏まえた上でさらに突っ込みたいのがもう一点
ループの中で関数huへのポインタをprintfで出力しているがそれは何の意味があるのか
俺がパッと見で気がついたのはこれぐらいか
>>2 お前の中の階乗ってのはどういう計算なんだ?
6 :
977 :2011/12/03(土) 11:09:35.87
>>2 なんで偉そうなの?
ググればいくらでも出てくるようなしょべえ課題じゃん
型がdoubleなのは22の階乗はintじゃオーバーフローするからだろ
無駄を省いてすっきりしたコードになってるな
こんなのろまなコードは使いものにならないね
>>14 そのres *= 10とかは全部res *= iでいいな。
2です みんな親切にありがとう! 高圧的な文章になってたみたいですみません 参考になります!
>>15 breakのないswitch書きたくなっただけだからさあ
i-- と言えばよかったのに
20 :
デフォルトの名無しさん :2011/12/03(土) 14:17:30.29
ここまでおれのじえん
>>14 のコードでres * =iにしたら、階乗じゃなくてiのi-1乗になるな
caseラベルと同じ値なのにか。
Wikiでここの住民が手分けして規格を翻訳したら何かに抵触します?
ここの住民w やりたきゃお前一人でやれよw
>>28 やはり著作権に抵触しますか。
自分はTOEIC600点程度ですが微力ながら貢献できるかなとは思ったのですが。
30 :
デフォルトの名無しさん :2011/12/03(土) 20:31:45.42
「公式な翻訳」と名乗らなければおk 規格を読んで理解した人が、 その理解に基づいて「私見を述べる」ことまで 誰かに許可を得る必要はない # JIS があるのを知らないウルトラ情弱か # 買えない乞食かはともかく
翻訳権というのがあるので単に翻訳しただけのものはNGだけどな。
P2Pでながせばおk
規格自体に著作件あるの?
>>30 JISって今、環境によって読めないから、それじゃね?
原因は分らんが俺も読めん
AdobeReaderは過去バージョンとかも試したのだが…
>>33 JIS は規格文に著作権があると言い張っているが、手続上は公文書のはずなので法的な根拠は希薄というのが結論。
最終的には裁判所で争ってみないとわからない。
が、たぶん明確に争われたことは無い。
これって JIS 側にとっても裁判にしちゃうのはリスクがあるから小規模に複製することまでは訴えないと思う。
もしも裁判の結果で明確に著作権が認められないことになっちゃうと今の体制も否定されることになるわけだから。
ISO は規格に著作権を認めることを要求してる。
法律が国際条約と衝突する場合は国際条約が優先するものだけど、
ISO は単なる民間組織なのでたぶん日本国内でどこまで言えるものなのかはよくわかんないな。
著作権とかめんどくせーな そのうち足し算にも権利があるとかいいはじめるぞあの糞ども すべてフリーにしろフリー&オープンが唯一絶対の答えなのだ
アホっぽいな。
著作権法 第十条 この法律にいう著作物を例示すると、おおむね次のとおりである。 (中略) 九 プログラムの著作物 3 第一項第九号に掲げる著作物に対するこの法律による保護は、 その著作物を作成するために用いるプログラム言語、規約及び解法に及ばない。 ざっと読んだ限りでは規格自体に著作権があるかどうかは明記されてないっぽい。 仮に規格自体に著作権が認められたとしても、保護されないだろうけど。
39 :
デフォルトの名無しさん :2011/12/04(日) 06:16:01.50
int v;
40 :
デフォルトの名無しさん :2011/12/04(日) 09:12:22.15
そういえば、プログラムに著作権があるかどうかもめていた時代があったものだな
総当たりでバイト列生成して公開し続けるシステムを作ったら権利を独り占め出来るんですか?
42 :
デフォルトの名無しさん :2011/12/04(日) 09:52:30.61
もじれつ[5]={なると、たにし、まんぽ、うんこ、ぬるぽ};
そのシステムに対する権利は発生しなくても 生成物であるあらゆるバイト列については権利が発生するのでは? 公然と知られた発明によって作られたデータに権利がないと仮にするのなら オープンソースのアプリで描いた絵にも著作権が無いということになる
権利が発生するとしたら、その生成物であるバイト列に価値があると認められた時
C言語の暗黙の型変換に関して 代入や関数の引数へ渡すときに起きると思いますが 比較演算子の比較ときも同様に起きるのでしょうか? また、swtich文のcaseに指定したときも起きるのでしょうか? 例) long a; short b; switch(a){ case b: /* bはlongに変換されてaと比較される? */ ・・・
>>47 おお、すみません失念してました 例を変えます
long a;
switch(a){
case 0x01: /* 0x01はlongに変換されてaと比較される? */
・・・
されません
自分で調べられましたので勝手ですが結果を書いておきます
引用元:JIS X3010
6.8.4.2 switch 文
制御式に対して整数拡張を行う。各case ラベルの定数式を制御式の拡張後の型に型変換する。型変換
した値が拡張した制御式の値と一致する場合,制御はその一致したcase ラベルの直後の文に移る。
>>48 の例でいうならやはりlongに変換されるようでした
その解釈なら double でもいけることになってしまう
54 :
デフォルトの名無しさん :2011/12/04(日) 15:32:32.35
c言語の復習で、ポインタを使って関数にアドレス送って値入れるっていうプログラムを作ったのですが セグメンテーションエラーになります。 どこが間違ってるのか分かりません。 回答お願いします。 #include <stdio.h> void kansu(double *ratio2); int main(void) { double *ratio; kansu(ratio); printf("%p\n", ratio); printf("%f\n", *ratio); return 0; } void kansu(double *ratio2) { *ratio2 = 3; printf("%p\n", ratio2); printf("%f\n", *ratio2); }
int main(void) { double ratio; kansu(&ratio);
> double *ratio; ポインタを初期化してない。 ていうかポインタだけ用意してて実体がない。
>>55-56 あ、できました。
確かにmainでポインタにする意味がないですね
もう少し勉強しますありがとうございます
昔、zdnetの記者が知ったかぶりでポインタの解説記事を書いて、間違いを読者に指摘されて赤っ恥かいたことがある。 何が言いたいかって、要するにポインタなんて理解してなくてもプログラムを作れるから問題ないってことさ。
全部グローバル変数にすれば、おk
実際さ、ポインタのない言語で void get2refs(int** a, int** b); みたいに参照を2つ受け取りたいときってどうすんの?Javaとかみたいに。 戻り値だと1個しか受け取れないし、グローバル変数使うとマルチスレッドで困るし。 わざわざ専用の構造体作るのかな?
ポインタ使わないでするにはどうしたらいいか?で、C言語の質問
>>60 それ以外にもなんかおっさんが暴れ狂ってるやつがあったように思う
>61 perlはreturn に値2つ記述できると思った。 あとは別スレ行ってね。
構造体を返すのが一番良さそうだ
文字列を入力して、その中のスペースの数を返すプログラムを書きたいのですが、 スペースをどうやって判定すればいいかわかりません。 if文では無理なのでしょうか?↓現状 #include <stdio.h> int countSpaces(char str[],int size){ int b=0; int i; for(i=0;i<size;i=i+1){ if(str[i]==''){ b=b+1; } } return b; } int main(void){ char a[100],c; int j; printf("英語の文字列を入力:"); for(j=0;j<99;j=j+1){ scanf("%c",&a[j]); if(a[j]=='\n'){ break; } } a[j]='\0'; printf("スペースの数は%sです。\n",countSpaces(&a[0],100)); return 0; }
スペースの数は%sです スペースの数は%sです スペースの数は%sです スペースの数は%sです スペースの数は%sです スペースの数は%sです スペースの数は%sです スペースの数は%sです
71 :
デフォルトの名無しさん :2011/12/04(日) 19:41:32.06
>>69 スペースをどこまでスペースとして判断するか(半角とか全角とかタブとか)である程度変わると思うが
文字コードで判定すればいいんじゃない?
おっと、ありがとうございます! %dですね。
>>69 if(str[i]==''){
if(str[i] == ' '){ でいいと思うが。
て言うか、なにで開発してるのよ。
Visual Studio だと
c:\documents and settings\xxxx\my documents\temp\test\test\main.cpp(6): error C2137: 空の文字定数
って言われるんだが。
74 :
デフォルトの名無しさん :2011/12/04(日) 20:47:22.78
スペースは見落としやすい(
>>73 が指摘してるみたいに
抜けてても気づきにくい)ので、自分なら、
if(str[i]=='\x20'){
ってするけどな。
isspace使おうぜ
isspacea()だと、タブとかも含まれるし、 scanf は改行も読んじゃうから、全部カウントされちゃうよ。
別にいいじゃないかそれで スペースは'\x20'に限るという仕様でもないんだろ?
この場合は、そう考えるのが正常なのか・・・
タブはともかく、改行をカウントしちゃうのはどうなのかなぁ? やっぱり単にスペースと言うと \x20 限定だと思うし。
0x20
ぽ0
ホワイトスペース
83 :
デフォルトの名無しさん :2011/12/04(日) 23:58:14.45
プリプロセッサで下記のような置換をしたいのですができますか? T(value) -> value, value, 任意の数のvalueに置換
#include <stdio.h> #define T(value) value, value main(){ printf("%d %d", T(123)); } たまにこんな感じのマクロ見かけると悪意しか感じないわ。
これが反日マスコミの編集による矮小化 176 :七つの海の名無しさん:2011/11/17(木) 21:57:56.45 ID:gClQt5ed 【重要】 ブータン国王の演説の報道は、重要な部分がことごとく反日マスコミにカットされて報道されています 「世界史において、かくも傑出し、重要性を持つ機関である日本国、(その)国会の中で、」 →★全部カット 「ブータン国民は、常に、日本に、強い、愛着の心を持ち、何十年もの間、偉大な日本の成功を →★全部カット 心情的に分かち合ってきました。」 「日本は、当時外国の領地(植民地)であったアジアに、自信とその進むべき道への自覚をもたらし 以降、日本のあとに続いて世界経済の最前線に躍り出た数多くの(アジアの)国々に希望を与えてきました」 →★全部カット 「日本は、過去においても、現代においても、世界のリーダーであり続けます」 「このグローバル化した世界において、日本は、技術と革新の力、勤勉さと責務、強固な伝統的な価値における模範 であり、これまで以上にリーダーにふさわしいのです。」 →★全部カット 「世界は、常に、日本のことを、大変な名誉と誇り、そして規律を重んじる国民、歴史に裏打ちされた誇り高き伝統を持つ国民、 不屈の精神、断固たる決意、そして秀でることに願望を持って、何事にも取り組む国民、知行合一、兄弟愛や友人、 ゆるぎない強さと気丈さを併せ持つ国民、であると認識してまいりました」 →★全部カット 「他の国であれば、国家を打ちのめし、国家を打ち砕き、無秩序、大混乱、そして悲嘆をもたらしたであろう事態に 日本国民の皆様は、最悪の状況下でさえ、静かな尊厳、自信、規律、ここの強さを以って、対処されました」 →★全部カット 他にもカットシーンがたくさんあるので、ブータン国王の演説 でyoutube検索してください
>>74 if(str[i]==0x20){
ってすることはよくあるなぁ
int b;
配列のインデックスに負の値を使う意味ってある? cに関してはググってもでてこない アドレスは配列の先頭の一つ前を指してる事は分かったのだが
int n;
(´・ω・`)
>>88 例えば-1を特別扱いしないために配列top+1のアドレス相対で使うことはないこともない。
int a[100], *p = a + 1; x = p[-1];
a[-1]のつもりがa[0xFFFFFFFF]にアクセスしてたあの青春の1ページ
ポインタが64bitの環境でか。 まぁそんな環境じゃぁポインタ使うほとんどのプログラムは動かないだろうw
CPUが8086とかのころ、わざと桁あふれさせてメモリ先頭領域にアクセスしたりしてたな。
してたね。
p[-a]; とはあまり書かないけど *(p-a); ならしばしば使うね というかアドレス計算でシコシコやる時は正だろうが負だろうが[]は使わない []を使うのは配列をそのまま要素の集合として扱うときだけ
>>91 納得出来ました
ソースは2つの配列があって、片方の配列の先頭をポインタの頭とした時、もう片方の配列の最後尾をそのポインタの[-1]で指してるような感じでした。
しかし紛らわしい使い方だ・・・
自前でアロケータ書く時とか、解放しようとするブロックのアドレスから 管理情報の位置を特定するために p[-sizeof(HEADER)] みたいな事する。
>>97 コンパイラが空気読まずに配列の間になんか挟んだら終わるな
苦しんで覚えるC言語のサイトから最新のコンパイラ「学習用C言語開発環境」をDLさせていただいたのですが、起動時に "tfb"が定義されていません と表示されます とりあえず hello waorld を実行してみたところちゃんと実行されました この tfb とは一体何で、どこから定義すればいいのでしょうか? お願いします ちなみにPCのソフトはwindows7です
>>100 です
このページでスクリプトエラーが発生しました、という文も一緒に表示されていたので、そちらで検索してみたところ、yahoo知恵袋で「閲覧の履歴を削除してみろ」とあったのでやってみましたが無駄でした
よろしくお願いします
>>100 です
すいません自己解決できてかもしれません
ですがまだ良く分からないままなので詳しい方がいらっしゃいましたらお願いします
自己解決できたと思われる内容を書いたほうがいいんじゃないかとも思うけど、スレ違いだしいいや
104 :
デフォルトの名無しさん :2011/12/05(月) 22:07:11.18
今日ものすごく大きな運子が出たんですが、 マンコドプロンプトでその形を表現する事は可能でしょうか
たやすいことよ
svgにチャレンジしてください。
>>88 >アドレスは配列の先頭の一つ前を指してる事は分かったのだが
何を見てわかった気になってるのか知らんけど、その動作は保証されないよ。
規格では確か、 int a[N]; int *p = a; に対して、配列の大きさ+1(p + 0 〜 p + N) 以外は未定義。 int *p = a + 1; なら、p - 1 〜 p + (N-1) になるのかな。
> 配列の大きさ+1(p + 0 〜 p + N) 以外は未定義。 p + Nの中を見ないならそう。 アドレス演算が有効な範囲だね。
話がC++の話になるけど STLのイテレータのend()は そのオブジェクトの最後の要素の 次のアドレスをしめしてるんだよな〜
そうでもない
>>110 それ、STLのコンテナのうち、極一部だけだから。
VBで ReDim A(N - 1) For I = 0 To N - 1 と書かなければならないのは苦痛だ
114 :
デフォルトの名無しさん :2011/12/06(火) 12:24:18.94
なんでC++やらSTLやらVBやら言い出すバカばかりなのか。
Nのままでいいよ。 どうしても要素が一つ余計なのがいやなら、baseを変更すればいい。
>>113 VBは元々1オリジンだからな
「1 To 個数」で自然な書き方になるようになってた
.NETになったときに0オリジンが基本になったんだっけ?
すみません。 可変長引数が使ってみたくて調べていたのですが、引数の個数を得るのはどうしても不可能な事なのですか?
1つ目の引数で個数を教えればいい。
終端通達用として末尾に NULL を積むという紳士協定を結ぶ (execl 等)
でもそれだと整数の0を渡したい場合にどうするんですか?
execl は "ポインタ" を可変個積む ことに特化してるので区別できてる
(指し示している先に格納されている値が 0)なポインタを積むことにするか
整数値他色々な型を積むことを許したいのなら
>>118 の個数(と型)を教える手段を用意する
(printf のフォーマット文字列が ソレに相当)
なるほど
C言語と直接関係ないことかもしれませんが、 自分はブラウザにGoogleChrome使っています。 で検索したページの文字をコピーして別の媒体にペーストしたい場合 GoogleChromeだと、文字を青くマークしてクリックで白欄にそのまま ドラッグできますよね? この操作は右クリックをすれば、Windowsのデフォルトのオプションから コピーを選べば同じ事はできますよね。この操作は一般的に文字列が存在 する場所だと共通でできる事ですよね? 何故Chromeはこの特殊な前記の操作ができるのでしょうか? こういう技術って何に依存しているんですか? Cで文字列の勉強をしています。関係があるかなと思って。
OSの機能なので気にしなくて結構です
>>124 クリックしてドラッグってGUI上でのデータ送信ですよね?
こういう機能って自作できるんですか?
できる
標準入力で文字を読み込みたくなくなったらそのモジュールは終了 するようなプログラムってどうしたらいいですか? int x[10000] int x while(1){ scanf("%d",x); a[i]=x; i++; }
>>126 IEはクリックしてドラッグできますか?
OLEの IDropTarget の面倒見るコードを書くって話?
>>129 プログラムを終了じゃなくて、読み込むのを終了したい。
>>127 >文字を読み込みたくなくなった
時の判定を追加して、breakするか、returnする
C言語がサポートしているbyte機構についてですが。 1byteあたり256パターンで、256^6がint型だと思うんですが。 何でintは24億程度しか表わせないんですか?256^6>24億では?
ほうじゃのう
>>133 普通は1byte=8bit、int=4byte=32bit
で、32bitで表現できる範囲は通常2の補数で-2147483648〜2147483647だ。
おk?
マイナスがある
どっから6が出てきたんだよ
処理系やOSによっては、1byte=6bitとか1byte=10bitとかあるから、そこだけ気をつけて。
>>138 そんなのが今時あるんだったら具体的に言ってみろよ。
よく知らんけどchar=16bitの環境とかは業界によっては未だに現役って聞いた
平仮名を打とうとしたらアンダー点線が出る理由は何でですか? これbyteと関係ありますか? 「abc」を打つ時はアンダー点線でない。 「あいう」を打つ時は点線が出る。
補数の意味が未だに分からない。 どういうこと?
ていうかCって補数表現使うって規格なの?
>>144 規格じゃない。1の補数というのもある。今時ないとは思うが。
>>143 ???
2進数の場合、「2が補数」じゃなくて、「2の補数」??
??
だから自分の環境での取りえる値は limits.h で確認するのだよ INT_MAX とかね
補数=その基での数え方なの? 2の7に対する補数は3ですか?
じゃあbit演算するときに(-1)を全ビット立ってるマスクとして考えるとかすると死ぬの?
そもそも値のビットパターンがそのまま一般的な数学で扱う2進数に対応する整数に一致する保証はない
154 :
デフォルトの名無しさん :2011/12/06(火) 19:59:07.97
>>153 −の数のビットパターン何てそもそも一般的な数学では定義されないもんね。
正数のビットパターンが一般的な数学で定義されてるかのような…
配列を宣言した状態のときって配列の要素は何ですか? 何も代入してないとき。 str[10]; str[0]?
>>155 定義されてるでしょ。
0 01 11 110・・・・・・
>>156 スタック上ならゴミ、静的な領域ならゼロ。
だと思う。
>>157 そもそも2進法を使ってないかも知れない。
Cの配列とJavaの配列じゃメモリに対する動作が違うというのですが どういうことでしょうか?
>>160 Cはガバっと確保される。
JAVAはモリモリっと確保される。
162 :
デフォルトの名無しさん :2011/12/06(火) 21:35:18.61
あのー時代遅れのおじさんに教えてください。 配列のシンボルに&付けたの配列のポインタになったのはいつからですか? uint8_t a[10];と宣言した時 &a a &a[0] は同じ意味ですか? 下2つはK&Rの頃からあったと思ったけど、一番上のはいつごろから使えるようになったんでしょ。 それとも方言なんでしょうか?
&aて、配列のアドレスが格納されてるメモリのアドレスだぞ?馬鹿?
ちなみに、 int $$$ = 0; っていけるの知ってた?
165 :
デフォルトの名無しさん :2011/12/06(火) 21:48:40.53
だよね。そうゆうコーディングで正常に動いてるんで疑問に思ったんだよ。 ちなみに&aをaや&a[0]に書き換えても正常に動くので悩んでるんだ。
すまんageてた。
変な場所に書き込んでんだろ。 運がよければ普通に動くよ。
169 :
忍法帖【Lv=7,xxxP】 :2011/12/06(火) 21:58:52.08
#include <stdio.h> int main(void) { int left; int right; left = 10; right = 3; printf("%d\n",left + right); printf("%d\n",left - right); printf("%d\n",left * right); printf("%d\n",left / right); printf("%d\n",left % right); return 0; } これが上手く認識されないのですが・・・
a と &a[0] が等価だってのはわかるよな?
中学時代、数学と並列してCとかjavaやってたら確実に頭良くなってただろうな。 パソコンの機能とか、高次元的なものを表面的にいじって遊んでただけだった。 20からC言語とか泣きたい。
みんな絶句してるよ
177 :
デフォルトの名無しさん :2011/12/06(火) 22:12:27.89
>>173 意味がよくわからないが
一瞬だけ起動して消えるってことなら
return 0;の手前にgetchar();を入れてくれ
コンパイルができないってことならコンパイラを入れてくれ
>>171 「内部コマンドまたは外部コマンド、操作可能なプログラムまたはパッチファイルとして認識されていません」と出る
179 :
デフォルトの名無しさん :2011/12/06(火) 22:15:40.25
>>179 ゴメンなさい。事故解決しました。題名にスペースが入っていたのが原因でした。ありがとうございました。
自己w
ソースファイルを実行、とか?
183 :
162 :2011/12/06(火) 22:30:50.34
>>172 ありがとう。同じなんだな。
いつからこうなったか疑問だ。
>>162 uint8_t a[10];
1)&a
2)a
3)&a[0]
1,2,3とも値は同じ。特に2,3は同じになって配列の先頭要素を指すポインタを生成する。
1と2,3で異なるのは型。
1の型は uint8_t (*)[10]
2,3の方は uint8_t *
あ
186 :
184 :2011/12/06(火) 22:38:46.14
>>184 とすると&a+1とするとa[1]を指すポインタではなく
a[10]を指すポインタ(実際にはあり得ないけど)になるのか。
>>157 2進法じゃなくて、ビットパターンについてまで定義してんの?数学で?
>>183 いつからか、が一番の疑問っぽいので。
使える、または結果的に同じ意味になるのはK&Rから
データ型が区別されるようになったのはANSIから
であってると思う。
嘘吐き朝鮮、中国人がやってる報道機関 朝鮮人犯罪があまり報道されない理由 韓国文化放送(MBC) 〒135-0091 東京都港区台場2-4-8 18F フジテレビジョン 、、 〒137-8088 東京都港区台場2-4-8 韓国聯合TVNEWS(YTN) 〒105-0000 東京都港区赤坂5-3-6 TBSテレビ 、 、、 .〒107-8006 東京都港区赤坂5-3-6 大韓毎日 、、、、、、、、、、、、 〒108-0075 東京都港区港南2-3-13 4F 東京新聞(中日新聞社東京本社) 〒108-8010 東京都港区港南2-3-13 京郷新聞 、、、、、、〒100-0004 東京都千代田区大手町1-7-2 産経新聞東京本社 〒100-8077 東京都千代田区大手町1-7-2 (サンケイスポーツ、夕刊フジ、日本工業新聞社) 朝鮮日報 、、、 〒100-0003 東京都千代田区一ツ橋1-1 4F 毎日新聞東京本社 〒100-8051 東京都千代田区一ツ橋1-1-1 韓国日報 、、、、 〒100-0004 東京都千代田区大手町1-7-1 8F 読売新聞東京本社 〒100-8055 東京都千代田区大手町1-7-1 東亜日報 、、、 〒104-0045 東京都中央区築地5-3-2 朝日新聞東京本社 〒104-8011 東京都中央区築地5-3-2(AFP、NYT) 韓国放送公社(KBS) 〒150-0041 東京都渋谷区神南2-2-1NHK東館710-C NHK放送センター、 〒150-8001 東京都渋谷区神南2-2-1
>>187 そういうこと。
>a[10]を指すポインタ(実際にはあり得ないけど)
実際にint (*)[10]みたいな型のポインタが出てくるのは
int a[5][10];
と宣言した時のa[0]の型がint (*)[10]になる。
>>175 中学時代に興味を持ったとしても、本を取ってから、その瞬間から
ずっと勉強をし続けるってのは不可能だよ。
中学生でCの深い所、例えばsystemみたいな関数?の意味分かる人いないでしょ。
printf,scanf,for,while,ifとか基本的な関数、演算子
しかしらない人がほとんど。
じゃんけんゲームなんて表面的な文法知識で作れるしw
systemとか使わんだろ
195 :
162 :2011/12/06(火) 23:25:12.24
>>193 そんなこと言っても、マになったらずっと勉強し続けることになるよ。
中学でC言語とか分かるの、開成とか灘の奴らなら可能かな。
小学生でBASICなら俺がやってた 英語なんてまだ各アルファベットの読み方を辛うじて知ってる程度だから if文のことを「アイエフ文」とか言ってたなw 勉強の出来不出来とかより、周りにその環境があるか否かがデカいと思われ
マ板でやれ。
int b;
小学生中学生でも基本情報取ってる子とかいるしね あのテストってセンター試験の国語より難しいだろうによくとれたもんだわ
楽器なんかだと小さい頃から始めないと伸びないと言われるけど、 プログラミングの場合はどうかな?
Rubyのコミッターに中学生がいるよね
int c;
206 :
デフォルトの名無しさん :2011/12/07(水) 15:09:52.15
#include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> void main() { srand(time(NULL)); int uranai; uranai=rand() %3; puts("あなたの運勢を占います(何かキーを押してね♪)"); getch(); if(uranai==0) puts("大吉です"); else if(uranai==1) puts("中吉です"); else puts("凶です"); }
え?
208 :
デフォルトの名無しさん :2011/12/07(水) 15:30:28.80
スレッドプログラムを書いたのですが、 プログラムがたま(十時間に一回くらい)にシグナル11で落ちます。 いろいろ調べてると、localtimeがスレッドセーフではないのに、 複数スレッドから呼ばれていたので、コイツが原因かな? と思って修正しました。 しかし他にもスレッドセーフではない関数があるかもしれません。 どうやってチェックするとよいのですか?
>>208 よく分からない関数は全てスレッドセーフじゃないと思えばおk
よくグローバル変数のerrnoを使ってエラー情報を調べるじゃないですか あれってマルチスレッドのこと何も考えてないように思えるんですけど マルチスレッドで使おうとしたらerrnoを使うあらゆる関数で排他処理しないと駄目ってことですか?
213 :
208 :2011/12/07(水) 16:10:32.06
>>209 ,210,211
感謝です。
>>210 のページを確認する限りは、system()、strtok()もスレッドセーフではないのですね。。。
>>211 、localtime_r()、strtok_r()と言う関数は知りませんでした。対応します。
ありがとうございます。
もう一点スレッド関係で、基本的なことを教えていただきたいのですが、
スレッド間での通信にstaticの構造体を利用しています。
スレッドAはその構造体に書き込む専用です。
スレッドBは読み込み専用です。
通信に使用している構造体は、ポインタの要素を含んでなく、すべて実体の領域です。
この場合は、排他をする必要がないと思っているのですが、
それは正しいでしょうか?
書き込んでる最中に読み込んだらどーなるのさ
>>212 スレッドセーフ版はマクロになってる。
>>213 使う側が途中の状態でも問題ないなら問題ない。
>>213 各メンバへの代入処理がアトミック(不可分 というキーワードで調べるといいかも)なものであり、かつ、
複数のメンバを変更する際に、途中の状態を読み取られてもよいのなら、排他制御はいらない。
朝日新聞は一時期300人のネット工作員をかかえ、工作していた。
捕まった編集者は49歳ですが、こんなカスでも1500万円の年収がもらえるんですよ。
>>866 14時以降に何が起きたんだ
>>866 Domain Information: [ドメイン情報]
a. [ドメイン名] ASAHI-NP.CO.JP
e. [そしきめい] かぶしきがいしゃ あさひしんぶんしゃ
f. [組織名] 株式会社 朝日新聞社
これが規制されたからじゃねw
−「朝日新聞社は、とある思想やパラダイムに日本の世論を誘導する見返りに、中国から大量の資金を貰っている。」−
これはおそらく週刊誌さえ書けない。
「失語症躁鬱ニートは氏ねよ」【ネット】朝日新聞社員(49)ネットで荒らし行為、会社ごとアクセス規制へ
こういう拡散的な行為を行ってるのも規制すりゃいいのにね。巻き添え食らったら面倒だけど。
同一書き込みは規制されてるはずじゃなかったか
初心者です。WindowsXPを使っています。コマンドプロンプトでのコンパイルの仕方が分かりません。誰か教えてください。
>>221 使用したいコンパイラの名前とバージョンは
テキストファイルにプログラムを書き込んで保存して、コマンドプロンプト・・・・・?
>>221 ソースコードを書いて
codepadに貼り付けるとできあがり
http://codepad.org/Pw02eeio 文字列を入力するとそこから数字を取り除くプログラムですがエラーがアレでアレです
例 : asdf12afd→asdfafd
(ついでに取り除いた後の文字数も表示させなければならないのですがまだ追加してない)
心が折れたのでヒントを・・・
では、教えてあげよう アルファベット<数字 アルファベット==アルファベット 数字==数字 となるような比較関数を用意すればクイックソートするだけで、なんと!答えが見つかるのだ!
227 :
226 :2011/12/07(水) 22:00:29.72
すいません嘘をつきました クイックソートではなくお好きな安定ソートをご利用ください
>>225 if文がおかしい。条件式が真の時、複数の文を実行したいなら{}で囲む。
C言語でマルチスレッドってどういうこと? 簡単な例で頼む。
>>228 クッ頭から抜けていた・・・
ありがとうございますまだ動くか分からんけど
>>227 比較関数を渡せる安定ソート関数を教えてください
>>229 提供されているスレッドライブラリを使う。pthreadとか。
>>233 比較関数を引数にとるバブルソート(or 挿入ソート)の実装してみるんだ
むしろ安定でないソートって何があったっけなー。ヒープソートとかか。
>>237 クイックソートとかシェルソートとかボゴソートとか
で、なんで安定である必要があんの?
取り除くだけなのに他の部分の順番が変わったら心が傷つくでしょ
>>229 つ pthread(posix-thread)
win なら win32api の thread 関係の api を叩くという手もある。
243 :
デフォルトの名無しさん :2011/12/07(水) 23:42:18.52
暗号をキーボードで入力すると解読して出力するプログラム作ってるんだけど、配列使うやり方からポインタのみにしたら動かなくなったんだけど、どう直せばいいですか? 現段階ではまだ解読ではなくただ出力するだけにしてある。 #include <stdio.h> void inp(char *ch); void oup(char *ch); int main() { char *ch; char **s; s=&ch; inp(*s); oup(*s); return 0; } void inp(char *ch) { printf("暗号を入力して下さい \n"); *ch=getchar(); } void oup(char *ch) { printf("%s",(*ch)); }
>>243 ポインタ変数を宣言しただけで領域が確保されてないからだろう。
char *ch = malloc(sizeof(char)*100);
とでもしておけばいい。
246 :
デフォルトの名無しさん :2011/12/07(水) 23:55:04.07
>>245 だめみたいだ。文字列の入力までは上手くいくんだが、入力後にEnter押すと強制終了するんだ。さっきからこればっかり。
エニグマをC言語で作る方法教えてください
Mainのreturn 0;の前にgetchar();を追加
251 :
デフォルトの名無しさん :2011/12/08(木) 00:12:49.77
>>248 main関数でやったらユーザ定義作った意味無いんだ。申し訳ないが、別の方法はないかな?
252 :
デフォルトの名無しさん :2011/12/08(木) 00:19:16.65
>>250 ありがたいけど、なんか怖くて開けないわ。
>>252 codepadと同じく、入力されたコードをコンパイル・実行して結果を返してくれるサイト。
>>243 でやりたい事はたぶん、入力された文字列に対して何らかの処理を行った後。結果を表示したいんですよね?
getcharは一文字入力だから必要な回数だけfor文で繰り返さないとだめですよ。
あと、ポインタ変数は宣言しただけでは使えません。他の変数を指すようにするか、mallocで確保して下さい。
あとmallocは実装にもよると思うけど、0で初期化されません。(たぶん)。必要に応じてmemsetで初期化して下さい。
その方向ならcallocを進めるべきだが。
>>243 ちょっと改良してみたfree()は自分でしてね
#include <stdio.h>
#include <stdlib.h>
void inp(char **ch);
void oup(char *ch);
int main()
{
char *ch;
inp(&ch);
oup(ch);
return 0;
}
void inp(char **ch)
{
int i,j;
char c;
printf("暗号を入力して下さい \n");
*ch = malloc(sizeof(char));
for(i=1,j=0;(c= getchar())!='\n' ;i++,j++){
*ch = realloc(*ch,sizeof(char)*i);
(*ch)[j] = c;
}
if(c == '\n')
(*ch)[j] = '\0';
}
void oup(char *ch)
{
printf("%s",ch);
}
>*ch = malloc(sizeof(char)); げ。
続きはないのか
平松邦夫/民主党 大阪市役所・自治労・大阪市労働組合・日教組・大阪市教育委員会・自民党・共産党・社民党・関西電力・住友グループ ・毎日放送・毎日新聞・関西経済連合・日本原子力発電株式会社 ・ 週刊文春・週刊新潮・NHK・朝日新聞・読売新聞 ・部落解放同盟・朝鮮総連・在日本大韓民国民団・日本遊技関連事業協会・全日本遊技事業協同組合連合会・日本弁護士連合会・生活保護受給者・反日左翼・9条の会・革マル派・中核派 VS 橋下徹/維新の会 大阪市民・みんなの党・国民新党・亀井静香・石原慎太郎・東国原英夫 様子見:公明
>>225 の続きです
内容は同じですが、今度はポインタではなく配列のみを使って関数を作れという問題でしたが・・・
int *del_digit2( char st1[], char st2[] )
{
int i,j;
for(i=0,j=0 ; i<100 ; i++,j++){
if(isalpha(st1[i])) st2[j]=st1[i];
else j--;
}
なんかうまくいきません
ご教授願います
>>259 ヘイ!ここは18歳未満お断りだぜ!って
ガキは宿題スレに行ってパパのミルクでも飲んできなHAHAHA
まぁ、いやらしい><
262 :
デフォルトの名無しさん :2011/12/08(木) 16:56:44.93
>>259 #include<stdio.h>
#include<ctype.h>
void del_digit2(char st1[], char st2[]){
int i = 0, j = 0;
while (st1[i]) {
if (isalpha(st1[i]))
st2[j++] = st1[i++];
else
i++;
}
}
int main(void){
char st1[100], st2[100];
printf("input string¥n");
scanf("%s", st1);
del_digit2(st1, st2);
printf("%s¥n", st2);
return 0;
}
263 :
デフォルトの名無しさん :2011/12/08(木) 21:33:25.51
「Perlで有名な小飼弾に暴言を吐いたキチガイw OSSコミュニティから物凄いパッシングw」
http://blog.livedoor.jp/dankogai/archives/51733482.html 北畠徹也氏が代表の「テラ・インターナショナル」がPerlを勝手に商標登録
>>この北畠って人は、ツイッターとかでも自殺するって言って話題になったり
よく分からないNPOか何かに募金をしてくれってメールを数万人規模のMLに流したり
それらは実はチョットした技術的ミスだって釈明してたりする人らしいね
Tetsuya_K 北畠徹也
@dankogai の家に電話したら、「小飼弾は死にました」らしい。ざまみろ。ざまみろ。というか、死んだ方が社会にとって幸せ。以上。# どうでもいいが、jcode.plなんて簡単につくれるじゃろ。あんなので調子に乗るアホもどうかしてるぜ。
Tetsuya_K 北畠徹也
I compared my @klout with @dankogai, how does your @klout compare? klout.com/user/dankogai/… @Tetsuya_K に比べたら全く大したことねーな。大口叩く愚か者が。
コメントの一覧
「みんなおもしろいおもしろいいってるけど北畠さん完全にかわいそうな精神病の患者ですよね」
「コメント欄が病的で怖い。人格が分裂してる?」
「本当に何がしたかったんだろう・・・」
「無事取り消されたそうで。本当によかった。」
264 :
デフォルトの名無しさん :2011/12/08(木) 22:37:10.84
http://codepad.org/ZUjxbf5r ASCIIいじってコードが二つ前のヤツを表示するんだけど、これを実行すると、どうもinpの段階で、入力はできてもアドレスがメインに渡ってないみたいなんだが、どうすれば、メインにしっかり渡るようになってプログラムが動くようになるのか教えてください。
>>264 void inp(char *s,int i)
{
char f[NUM];
printf("%2d: ",i+1);
gets(f);
strcpy(s, f);
}
でいいかな?
266 :
デフォルトの名無しさん :2011/12/08(木) 23:59:40.06
>>265 ありがとう。なんだか、void型のinp関数の中で配列宣言した所為でメインに戻ったときに**Sの中身が消えてるみたいなんだけど、strcpyだと大丈夫なんだっけ?
>>266 ポインタの基本がわかっていないんじゃない?
s = f;としたときにどこに何が代入されているのか
strcpy(s, f);としたときにどこに何がコピーされているか
わかってる?
これだけじゃなんだから、
s = f;
とすると、せっかくmainから渡してもらったバッファを指すポインタを、fをさすポインタで上書きし、
しかもそのまま破棄することになるよ。
268 :
デフォルトの名無しさん :2011/12/09(金) 00:44:32.31
>>267 そうだね。ポインタも分かってないのかもしれないけど、strcpyをあまり使ったことが無いからどんな動きをするのかイメージつかめてないわ。
できたら教えてもらいたい。
struct aho* aa; struct aho* bb; aaのアドレスを保持したいときって bb = aa; でいいのかね うまくいかないんだが
>>269 「aaが指している領域」を保持したいのならbb = aa;でよい。
「aaのアドレスを保持したい」のなら
struct aho* aa;
struct aho** bb;
bb = &aa;
>>268 エラー処理を省略すれば
strcpy(s, f);
は
while (*s++ = *f++)
;
に当たる。
s = f;
と比較すれば、やっていることの違いは判るよね?
>>270 malloc/ freeは同レベルで対になるようにコーディングするようにしている。
fopen, fcloseとかもそうだし、とにかくリソース取得解放が絡むようなものは、
対にしてコーディングしないと、簡単に破綻する。
OOPになるとオブジェクトのライフサイクルが延び、単純に取得解放が
対に書けなくなる場合が多い。そういう場合は仕方ないとも思うけど。
(1) コンパイラがソースコードの文字コードを正確に判別できるか、あるいは 特定の文字コードを正確に扱えるか (2) 生成されるバイナリに埋め込まれる文字列が何でエンコーディングされるか 何度も言うようにこの2つは別問題。 こんなプログラマ1年生が覚えるような区別が付かない人が威張ってるこのスレって何なのかな。
275 :
デフォルトの名無しさん :2011/12/09(金) 01:24:02.33
>>272 先頭のアドレスだけでなく、それ以外も代入してるってこと?
対消滅
>>272 strcpy ってエラー処理やってんの?
freeしなかったらメモリ使用量が増大していくだろ。なんども確保したとき。 解放が面倒なら std::string buf(1<<20, '\0'); と確保したら良い。
>>268 やりたいのは、こういう事?
http://codepad.org/Bm4ZQ4Fc 入力例:
1:#include <stdio.h>
2:int main()
3:{
4: int n,k;
5: scanf("%d", &n);
6: for (; n > 1; n--) {
7: for (k = n - 1; n % k; k--);
8: if (k == 1)
9: printf("Answer=%d¥n", n);
10: }
出力例:
1: !glajsbc:qrbgm,f<
2: glrk_gl&'
3: y
4: glrl*i9
5: qa_ld& #b *$l'9
6: dmp&9l</9l++'y
7: dmp&i;l+/9l#i9i++'9
8: gd&i;;/'
9: npglrd& ?lqucp;#bZl *l'9
10: {
281 :
デフォルトの名無しさん :2011/12/09(金) 02:08:50.02
>>280 まったく持ってこの通りだわ。やっぱりポインタが分かってないみたい。ユーザ定義でmalloc使うこととか、プロトタイプの所をダブルポインタにする必要あったこととか全く分からなかった。
>>273 ,
>>278 レスありがとうございます。
やっぱりmallocしたやつはfreeしといた方が無難でしょうかねぇ。
malloc/free論争は調べれば調べるほど分からなくなってきます・・・
最終的にはOSが面倒見てくれるんでしょうが、malloc/freeが対になってないと、なんとなく気持ち悪いです。
「OSが面倒見てくれる」というのも希望的観測に過ぎないんでしょうけど。
malloc/free論争もそうですけど、C言語ってもはや、宗教ですよね。
単発単一処理ですぐ終了するようなものはfreeしなくてよい freeが問題になるのはfirefoxのようなPC起動してシャットダウンするまで ずっと立ち上げるタイプのアプリとかデーモンね
ねーよ。 全部がお前基準だと思うなw
>>274 どこからの誤爆かは想像できるが、そんな当たり前のことは皆わかってて
Visual Studio で (2) がどうなるかの問題だろ。
少なくとも、こんな 2ch 1年生が覚えるようなレスするスレの区別が付かな
いお前が威張って言うことではない。
>>272 エラー処理する strcpy() なんて見たことないぞ。
>>274 ソースとバイナリの文字コードって違ってもいいんだ
じゃあputs("hogehoge");してファイル出力したのにメモ帳で開いたらfugafugaになってるみたいなことがあってもおかしくないってこと?
まぁそうだな。
じゃあ FILE * p = fopen("hoge.txt"); ってしたのに fuga.txtを開いても文句は言えないってことですか? こうなってくるとC言語ってもうろくな事できないじゃないですか まともな動作を期待することもできないひどい言語ですね
まぁ心配しなくてもお前ほどじゃない。
でもまあぶっちゃけリテラルなんて現場じゃ殆ど使わないよね 開発者向けのデバッグメッセージぐらいだろ
>>292 処理系定義だろうから、文句は処理系作成者に言えばいいだけ。
まあ、知恵遅れのクレーマーが使う言語でないのは確かだから、
お前はとっとと Java とか C# とかに行くべき。
Cはキチガイが作った言語だから仕方ないよ
Cもできないやつがよく言う言い訳乙。
ガイジン「ヒラガナ、カタカナ、カンジ…ニホンジンハキチガイデース!!」
299 :
デフォルトの名無しさん :2011/12/09(金) 10:50:08.26
int n;
>>298 日本人「複数形、過去形、過去分詞…英国人も…」
まあ、英語は女性名詞/中性名詞/男性名詞がないだけましか。
>290-292 のやりとりがあまりにも…
自園草
____ ┌──────────┐ //´ __,,>、 | ::::::::::| /::/ / ̄:::::::::::::::\ └┬────────┬┘ /::::l/::::::::::::::::::::::::::::::::l. | -‐-レノ ノ_ ::::| l:::::::::::/l/lノノ/_イ:::::l | イ゚テ .ピト` ::| l:::::::::/ rtテ、 .ィtq l::::::| | '" .,j '" ::| |::lヘ!j ´ ,j !;:::/ | r‐-, ::::| レリー 、 ,...., lノ/ |  ̄ :::::| `ヽ、lヽ 、  ̄ / ┤ ::::::├ヽ , -‐-、_r┴─'ー‐チト この人 土管です /| ::::::| ´`ヽ / ヽ ̄`ー-‐'´`''''⌒ヽ / | ::::::| \ _r‐、-、-、r, 、 ', | ::::::| ,. -‐ゝ/// 〉 〉 〉 〉 〉 ! ', | ::::::| / 人〈〈〈〈 ' ' ' /っ l l | ::::::|/ / ```´-ァ‐'''" / l \_| ::::::├ヘ l // / _ ィノ ┤ ::::::| `ーヽ、_ノ´l、______/lニ二」 _/| ::::::| |_ ( ( ) )_〕| l
>>290 wchar *h = L"hoge";
こういうののことだろ。
とりあえず例を示すにも リテラル文字列を非constポインタに入れんなカス
>290 それはメモ帳が認識できない文字コード使ってる状態じゃね?
s="6869212067757973",c=0;while(c<<=4,*s)if((c+=*s++-'0')>15)putchar(c),c=0;
,.r.:::;;;;:ュ、 fイ´__ __ヾ {:六;;;;:ハ:;;;:カ (_ ' _^_ヽリ なんだ AKBって整形した反日朝鮮人だったのかァ ,人 l⌒l、 ブームの捏造手法が寒流と同じだけはあるな / \,ゝヽr' \ / |:| ヽ l l /´堰@ l ! |___l ノ ,イ !__,}
311 :
デフォルトの名無しさん :2011/12/09(金) 18:29:27.77
int m;
まぁまて。さすがに、プログラム上最低限必要な文字は規格で規定されてる。 英数字と幾つかの記号。後、ヌル文字とか「コンピュータにしか見えない文字」も コンパイル時にコンピュータが実行文字列として記述する。 ただ、物理コードとソースコードと実行コードは全部エンコード違っていいというすごいルールだし それがOS上でどう解釈されるかもOS次第なので、実際のところ、 文字に関する完全な可搬性などというものはげんそうなのだ。
紙テープかなw
コンセントにさすやつかな
相変わらずJISのサイトがクソで規格票が見れない。画面が真っ白。 JIS規格は全部廃止にならないかな。
>>317 それは、プラグ。
コード直接指す奴はスピーカーコードぐらいしか知らない。
動力の電気製品はプラグついてなくて 自分でテキトーに繋いでくれってのが多いが
>>321 それをコンセントに直接刺すのか、勇気あるなぁ。
ローカルネットで音声通話アプリはwin32だけで作れるかな?
win32ってなんですか?
>>323 作ろうと思えば作れるだろうけど、C#のほうがだとうかと
Windows Mini
Win32APIの省略のつもりなんだろうか?
win32って32bit版windowsバイナリって事でしょ?
省略の仕方を間違える奴って多いよね。
なんかいつの間にかペゾルド本が本屋から消えてるな
プログラミングWindowsなら消えてから半年くらいすると再販されるってパターンを繰り返してる。 Win32APIを知るには最高級にいい本だけどあんまり売れるたぐいの本じゃないからだろな。 ましてアスキークソ出版だし。 これが翔泳社ならどんなマイナー本でも店頭から消えることはまずないんだが… 問題は翔泳社はクソ本自体が多いという点かw
これまたえらいいまさらな話を…
自分でトロン潰しに奔走しまくったくせに、 その口で、「日本人には遺伝子レベルで創造性が無い」 とか抜かしやがったんだっけ。 で、今も日本人や黒人を侮辱するCMを垂れ流しまくりと。 自らの出自に凄まじいコンプレックスでもあるんだろうか。
嘘吐き朝鮮、中国人がやってる報道機関 朝鮮人犯罪があまり報道されない理由 韓国文化放送(MBC) 〒135-0091 東京都港区台場2-4-8 18F フジテレビジョン 、、 〒137-8088 東京都港区台場2-4-8 韓国聯合TVNEWS(YTN) 〒105-0000 東京都港区赤坂5-3-6 TBSテレビ 、 、、 .〒107-8006 東京都港区赤坂5-3-6 大韓毎日 、、、、、、、、、、、、 〒108-0075 東京都港区港南2-3-13 4F 東京新聞(中日新聞社東京本社) 〒108-8010 東京都港区港南2-3-13 京郷新聞 、、、、、、〒100-0004 東京都千代田区大手町1-7-2 産経新聞東京本社 〒100-8077 東京都千代田区大手町1-7-2 (サンケイスポーツ、夕刊フジ、日本工業新聞社) 朝鮮日報 、、、 〒100-0003 東京都千代田区一ツ橋1-1 4F 毎日新聞東京本社 〒100-8051 東京都千代田区一ツ橋1-1-1 韓国日報 、、、、 〒100-0004 東京都千代田区大手町1-7-1 8F 読売新聞東京本社 〒100-8055 東京都千代田区大手町1-7-1 東亜日報 、、、 〒104-0045 東京都中央区築地5-3-2 朝日新聞東京本社 〒104-8011 東京都中央区築地5-3-2(AFP、NYT) 韓国放送公社(KBS) 〒150-0041 東京都渋谷区神南2-2-1NHK東館710-C NHK放送センター、 〒150-8001 東京都渋谷区神南2-2-1 内にも外にも無能なのは今の日本の政治は朝鮮が行っているから 帰化人だらけの野田内閣をみてみろよ
で、Cと何の関係があるんだ?
プログラムについて書くスキルが無いから、こういう事して誤魔化してる。
心配すんな。 プログラム談議で熱くなってた頃の方がずっとマシだった、って思える時代はすぐそこだ。
>>338 free() 信者を調伏するのはもう勘弁なんですけど
まあ、調伏されるべきなのはお前の方だから。
QZ=free()信者を知っての発言か?
あんな奴を仲間に入れないでくれ。
ネトウヨはどの板にもいるだろ
344 :
デフォルトの名無しさん :2011/12/10(土) 20:56:22.99
void main() ってなんでできないんだろう
>>344 短い答え: 規格嫁 旧規格 現規格
長い答え: 略w
しかし、「なんで〜はできないんだろう」という質問をするということは、「〜はできるべき」と
思ってるのか? ならなんで「〜はできるべき」だと思うんだ?
まずはそこから説明してくれw
348 :
デフォルトの名無しさん :2011/12/11(日) 00:11:40.09
ちょっと違うね できないという前提でなぜだと聞く二重質問だ 前提が間違っているだけに答えようがない
「UNIXプログラミング言語」に載ってたEchoの童話を思い出した。
"[UNIXプログラミング環境] Unix と Echo"で検索すればおk(多分…)
間違えた、「UNIXプログラミング環境」だった。
>>350 昔読んだので詳しくは覚えていない。
確か、Echo に完全な動作を求める若者が、最後は観念の渦に飲み込まれてしまう話。
えちょー! その本、買うだけ買って読んでないなw
俺よりC言語が得意なやついるの?
お前以外ほとんど。
得意≠上手 だが、好きなのは良い事だよ
int x; x = 2; printf("%d\n", (int)pow(10, x)); 実行結果 99 困ったよーー! どうして100にならずに99になってしまうのでしょうか???
powの結果がdoubleだろ? 100そのものをdoubleで表現できなくて結果が100に限りなく近い99.999????みたいなデータが返ってくるだろ? それをintにキャストすると小数点以下切り捨てられて99になるだろ? intにキャストする前に0.5を足せばいいだろ? いいだろ?
bccでもvcでも100になるんだが、どんな環境だと99になるんだろう
364 :
359 :2011/12/11(日) 10:51:38.90
キャストせずに出力すると100.000000になります。 キャストすると99になる謎…。 g++ でコンパイルしてるのがダメなのかな? windows7にmingwを導入してg++でコンパイル。
owとdmcは99になった
366 :
359 :2011/12/11(日) 11:04:09.15
intにキャストする前に0.5を足すとうまくいきました (ちゃんと100と出力されました) キャストせずにdoubleのままで表示すると100.000000なので わけがわかりません。
小数第7位で四捨五入してるんじゃね 表示桁数を20くらいに増やしてみるべき
Windows7(32bit) cygwin で g++ でやったが 100 だ
MinGWでも100だな。
>>366 ふざけたことしないでソースとコンパイラオプションとお前がやったことをすべてさらせよ、ボケ。
>>366 ちなみに、printfで10.0000とか出るのは当たり前なんだよ。表示の最下位桁で四捨五入するからな。
371 :
359 :2011/12/11(日) 11:14:11.99
>>359 のソースだけをコンパイルすると
#includ<stdio.h>
#include<math.h>
int main(void){
>>359 }
実行結果
100
元のいろいろ他のソースがあるファイルで余分な部分をコメントアウトしつつ
実行すると99。
なんでだーーーー。
gccのバージョンは何だよ。
373 :
デフォルトの名無しさん :2011/12/11(日) 11:15:58.01
>>371 お前人の話聞かないってよく言われるだろ
どれだけ言われても環境さらさずに引っ張るのって、荒らしじゃね?
376 :
359 :2011/12/11(日) 11:26:24.67
gcc のバージョンは4.5.2 関数aを定義してmain関数の中で使わない。 main関数の中は先に提示したソースだけ。 実行すると99。 関数aもコメントアウトして実行すると100。
だから、ソースを全部さらせと言っとろうが。 どこまでアホなんだ。
void makeAns(int *ans) { int i, j; int figure; int no[3]; int temp = 0; *ans = rand() % 1000; if (*ans / 100 > 0) figure = 3; else if (*ans / 10 > 0) figure = 2; else figure = 1; for (i = 0; i < figure; i++) no[i] = (*ans / (int)pow(10, figure - i - 1)) % 10; for (i = 0; i < figure; i++) for (i = 0; i < figure; i++) do { for (j = 0; j < i; j++) if (no[j] == no[i]) no[i] = rand() % 10; } while (j < i); for (i = 0; i < figure; i++) temp += no[i] * (int)pow(10, figure - i - 1); *ans = temp; }
379 :
359 :2011/12/11(日) 11:34:51.17
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
>>378 int main(void){
int x;
x = 2;
printf("%d\n", (int)pow(10, x));
return (0);
}
実行結果
99
で、コンパイルオプションは。 何回岩千だよ。
381 :
359 :2011/12/11(日) 11:39:44.69
g++ -o test test.cpp
ほんとか? -ffast-mathとかつけてねーのか? それなら99になったが。
確か、コンパイラじゃなくて実行環境の問題のはず。 100 になったのを、他の環境で動かしたら 99 になったことあるよ。 pow が実装されてる dll のバージョンの違いか何かだと思う。
windows7にmingwを導入。gccのバージョンは4.5.2。 g++ -o test test.cpp コンパイル実行。 余分な関数をコメントアウトして実行するとちゃんと100になる。 mainの中で使わないけど定義だけしてある余分な関数があると99。 その関数のpow()以外の部分を細かく出力しながら確かめてみたけど 特におかしいところはない。 ただ1点、(int)pow()となってる部分を出力すると99になるというバグがある。 doubleのまま出力するとちゃんと100.000000になる。 わけがわかんないよ!
385 :
383 :2011/12/11(日) 11:50:58.89
出くわしたのは5〜6年くらい前だから環境は覚えてないや。Windows ってことしか。 コンパイルした環境は Visual C++ 6.0。dll をやめてライブラリを静的にくっつけて解決した気がする。/Md → /MT だっけ…自身ないな
>>384 >ただ1点、(int)pow()となってる部分を出力すると99になるというバグがある。
>doubleのまま出力するとちゃんと100.000000になる。
int にキャストした時は
>>360 double のままの時は
>>370 と言うだけのことじゃないのか?
びっくりするくらいひどい関数だw
389 :
359 :2011/12/11(日) 12:01:45.76
>>386 #includ<stdio.h>
#include<math.h>
int main(void)
{
int x;
x = 2;
printf("%d\n", (int)pow(10, x));
return (0);
}
実行結果100。
余分な?関数(
>>378 )があると99。
390 :
359 :2011/12/11(日) 12:07:59.93
>>388 勉強はじめたばかりでテキストの自由課題にとりくんでいるのです。
0〜999の数を作成する(数当てゲームのための関数)。
ただし異なる桁が同一である数(たとえば55や919など)は除く。
>>390 MinGWを最新にしてみろ。
前のは知らんが最新なら再現しない。
>>385 今試したけど、/MT、/MD、/MLとそれぞれのデバッグ版でも全部10になるぞ
393 :
392 :2011/12/11(日) 12:17:51.97
×10 ○100
intを返すpow関数を自作すればいいだけだろ
>>390 関数みてやりたいことが理解できない奴なんていねーよwって言おうと思ったけど、
理解出来なさそうな奴がごろごろしてることを思い出した
397 :
359 :2011/12/11(日) 12:33:21.93
int power(int x, int n) { int i; int tmp = 1; for (i = 1; i <= n; i++) tmp *= x; return(tmp); } pow()を上記のpower()に置き換えたら大丈夫だった。 みなさんいろいろアドバイスをくれてありがとう。 後でmingwを最新のに入れ替えてみます。
399 :
デフォルトの名無しさん :2011/12/11(日) 12:36:36.67
学校でF言語を習ってた札幌啓北商業の野島は八犬伝と名のり いい年なのに 某ゲームサイトでアバターとセトと戯れるが華喃の少頭劣一族は そのサイトを出会い系と勘違いして怪盗仲間が相手と思われ、粘着質の嫌がらせはマイペを手離した今、現在も続いている。
>>386 0.5を足してから、int型に変換すれば確実だと思います。
よく窓関数で+0.5が登場するのと同じ原理で。
わかりやすいやつだなwww
ワロタ
The End乙
別に内容はどうでもいいんだが、Cスレなんでgcc使ってくださいよ
gccだとコンパイルできないけどg++だとコンパイルできたよ!というバッドノウハウだろうきっと。
つまりdoubleで1・10・100…十進区切り目を有理数で表現出来ないんだよ!
できるよ
CPUというより、IEEE754に従わない何かじゃないのかな。 まぁそんなものは存在しないとは思うけど。
int z;
IEEE754なら100は (1 + 2^-1 + 2^-4) * 2^6 で循環小数にならないように思うけど
fopenしてfgetsとかでファイルのデータを読んでもファイルの更新日時とかの情報が取り出せないんですが これはどこに格納されてるんですか fopenで見えるのはファイルのほんの部分にすぎず、俺はそれがファイルの全てだと誤解していたということなのか
>>414 きっと更新日時はファイルじゃないんだろう
>>414 つ stat()
つうか、ファイルシステムの基本的な概念を先に勉強したほうがいいような気がするけど。
騙しやがってちきしょう 重要な情報は見えないように隠してやがったんだな
>>414 ファイルの更新日時・サイズ等はファイルそのものには記録されていない。
環境(Windows/Linux/MS-DOS)等を示していただければあるいは取得方法を示せるかもしれない。
419 :
392 :2011/12/11(日) 19:44:19.71
>>414 なぜ取り出せると思った?
完全にOS依存だぜ
完全に依存って、stat系ならどの処理系でもあるでしょ。
>>420 WindowsとUNIX/Linux とではまったく違う。
>>413 問題はむしろpow(10,2)がどういう値を返してきているかなのかも。
精度がよくない実装があるとか...
自分の環境だと100になって、doubleに代入して内部表現を調べてみると確かに
1.1001*2^6 (指数は10進で書いたw)になっていたが。
>>418 あえてmacをださないのはそういうこと?
Macは高いからQには買えないんだお。 あれ?最近マシン新調したんだっけ?
>>424 持ってるかどうかの話に挿げ替えるお前はクソだよ。帰れ。
QZの自演じゃないなら、病院コース。
別にWindowsでもstat()使えるしな。
得られる情報に差はあるお ( ^ω^)
>>427 それは cygwin 等をかましている話なのでは? win32api に stat はない。
win32で言ったらlibcの標準なんて何もないわけだが。
ライブラリにあるんでしょ。 そもそも Win32API に fopen( ) なんてないんだし。
だから、fopen()があるんならstat()もあるだろボケ。
msvcrt を見れば _stat ってのがある Yo
>>432 お前馬鹿か?fopen() はC標準ライブラリに規定されているが stat() C標準ライブラリにあるとでも?
>>434 誰がそんなこと言ってんだよ。この文盲が。
WinAPIだとGetFileInformationByHandleか?
>>435 >>432 で「fopen()があるんならstat()もあるだろ」と書いている。
fopen() はC標準ライブラリにあるから、
>>432 は「stat() もC標準ライブラリにある」といっているのと同じ。
>>440 では 「fopen() があるなら stat() がある」あるいは「stat() があるなら fopen()がある」というのはどちらも正しいということかな?
そしてそれは本当?
あたしのために喧嘩はやめて
>>441 Wini32にfopen()がないのはわかって言ってんだよな?
話ずらすなよ。
>>443 同じく win32 に stat() もないことはわかってるんだろな?
話ずらすなよ。
>>443 Win32ってなんだよ、と突っ込んでほしいのか?
大変だ! win32 には printf() もないぞ!!
>>428 やっぱり haskell が素敵にみえるんですけどね。
>>422 仮数部の有効桁内に収まる整数は全て表現できるはずだから(以下のように最上位ビットでくくりだせばいい)、
おっしゃる通りpowでの計算が問題かもしれない。
2^n + 2^n-1 + 2^n-2 +・・・+ 2^2 + 2^1 + 2^0
= (1 + 2^-1 + 2^-2 +・・・+ 2^-n+2 + 2^-n+1 + 2^-n) * 2^n
100 = 0x64 = 0b1100100 = 1.1001*2^6
10 = 0xA = 0b1010 = 1.01*2^3
すべての32bit整数がdoubleで誤差なく表されるなんて常識。 doubleを返す関数が誤差を含むのも常識。 常識のないやつの質問は仕方ないが、回答する時は自分に常識があるか考えて からにしろ。
pow()は内部でlog()と乗算とexp()に分解されるから誤差が出ても仕方ないよ。 その誤差を管理できないなら、pow()を使わなければいいだけ。
C言語覚えること少なすぎワロタwwwwwwwww 幼稚園児向きだな。
命令数は少ないかもしれないが、使うとなると何年あっても足りん そういう意味では幼稚園児はオーバーでも幼少からやっておいたほうがいいかもね
C言語を扱うのに必要なのは結局計算機科学と数学の知識だね。 このふたつができないと、プログラマにはなれず、コーダ止まり。 特に最近は数学に強いプログラマが増えてるんで文系プログラマは職がなく死。
>>455 ゲームを作るのに計算幾何の知識って必要ですか?
そもそも計算幾何って何?
クイックソートみたいなアルゴリズムのこと?
>内田「経済学部です。(中略)
>とんちのきいたアルゴリズムを組んでいれば、
>なんとかしのげた時代じゃ、もうなくなっていたんです。
>2〜3年ぐらい経つと数学の得意なプログラマーがどんどん入ってきて、
>自分の得意分野じゃないところで戦わなきゃいけないという、
>非常に厳しい状況におちいったんです。
>それで「これからなんとかやっていくにはどうしたらいいですか・・・?」
>ということを上司に相談しましたら、
>「企画を考えるディレクターをやりなさい」と提案されて、
http://www.nintendo.co.jp/3ds/interview/creators/vol6/index.html ゲームを作るのにはプログラムが出来る必要すらない。
プログラミング組む時に、数学って必要なの? たとえばどんな時必要?
作りたいプログラムがない。 仕事でやってる人は課題与えられて良いよね。 何か作ろうって思ったら、ゲームくらいしかないんだよ。 企業に勤めているプログラマなら、ネットワーク関係のプログラム やサーバーを管理するプログラム作っているんでしょ? 何か疎外感感じるわー
>>459 テキストエディタ
エロ管理ソフト
2ch専ブラ
sns専ブラ(facebook/g+/mixi/etc..)
プログラミング言語
アドバイスしてやるから普段何に興味あるのか列挙してみろ
>>460 ゲーム
グラフィック
GUI
オーディオ
C言語においてシステムプログラミングって何?
どの言語においてもシステムプログラミングの意味は変わらないんじゃないの?
「主要な適用分野の一つ」でいいんじゃね。
ゲームなんて数学や計算機科学の海じゃないか 今時AIつんでないゲームなんて存在しないし
じゃあC++から使えるnsfの再生ライブラリ作ってくれよ dllをインポートして play_nsf() 関数呼び出しで即鳴らせるような
>>458 簡単な算数くらいは必要だが公式とかを丸暗記してる必要はない
どっちかっつーと算数レベルの式を組み合わせて公式を導く力の方が必要かな
468 :
デフォルトの名無しさん :2011/12/12(月) 22:48:28.58
>>465 ドラクエ4のことか?
それとも Mr.Do ?
こないだ女流王将に勝った将棋ソフトや
C++ の型推論でさえ Artificial Intelligence ではないぞ
予め決められた手順に沿うだけなのは知性じゃない、とか? 気持ちはわからなくもないが、じゃぁAIって何よ?と言いたくなる
ゲーム開発者のためのAI入門みたいは本もあるしな。 ただ「今のゲームがAIが使われてる、数学の海だ」みたいな言い方は大げさだろって気もする。
>>461 >ゲーム
さめがめやマインスィーパーのような暇つぶし目的でもハマりやすい物
ゲームはほとんど知らん。ごめん。
でも上記二つの作者には大金が転がり込んでる。
前者はフリーソフトの権利をハドソンが買い取った
後者は作者が自らMSに売り込んだらしい。
バンドルゲームは本数ロイヤリティ契約で莫大な金が入る
>グラフィック
自分の使ってるソフトのプラグインやツール
ブラシ、エフェクト、コンバーターなど
>GUI
既存のツールキットを使いましょう
>オーディオ
Flashの要らないradikoプレイヤー
もうすぐ一般公開されそうなGoogle Music専用プレイヤー
まぁしかし、高校でならったベクトルや行列、微積くらいはできるくらいの知識が必要だし やっぱり動的計画法とか最大流問題とかそのへんの最低限の計算機科学は知らんと大弱りだ。 文系プログラマはそれすらわかんねーとかいうのがいるからITドカタになっちゃうんじゃないかな。
微分使う場面なんてあるか?
必要になってもその場で調べりゃ済む話だな。 いつか使うかも知れない、なんてのをいちいち予習してたらキリが無いぞ。
その場で調べてわかるくらいの知識があればいいけど、 本当に数学の基礎がわかってない人間は Σや∫の意味から調べだしたりするからなぁ。 そんなレベルの人にエキスパートシステムとか とてもじゃないけど設計できないでしょ。
微分を使う場面? 積分を使うよりは多い印象
>>472 いい学校でて大手に入れないと、数学できてもドカタコース。
まAOJでは動的計画法とかは「高校生レベル」の問題として出題されてるからね。 会社入る頃には知ってて当たり前っつーか、手足のように使えて当然つーかw
>>460 画像処理と便利なソフト(例えばファイルリネームソフトとか)興味あります!
アドバイスください先輩!
#include <stdio.h> int main(int ac, char **av) { FILE *fp; fp = fopen("eicar.com", "wb"); fprintf(fp, "X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*"); fclose(fp); return 0; } なぜか実行するとエラーになります
数学が必要な場面は多々ある気がするが 作るプログラミングの分野によるだろ シミュレーション系のプログラム組むならそれに対する知識が必要だし ゲームを作るにしても色々あるしな その場その場で調べてもいいと思うが数学系の知識は調べて書くだけじゃ 応用できないしな・・・というか自分でプログラム組むなら知らないと設計できないしな 仕様書通りのプログラムを組むだけなら知らなくても問題ないと思うが
最近C言語で微分方程式を解けるオイラー法ってのを習ったんだけど こういうのをたくさん覚えていくべきなのかな?
>>483 そんなのは教科書みて瞬時に理解出来るレベルで充分
まるまる覚えるべきものでもない
>>484 じゃあどういうの覚えていくべきですか?
なにがしたいかによる
>>476 ゲームによる気がするけど、例えばどの辺?
アクションゲームだと加速度ベースで速度と位置出す積分ばっかだと思った。
とりあえず、始めろ。
C言語での画像処理を独学したいんだけどおすすめの本ある?
>>450 まあ結局
>>359 は
- pow(10,2)が99.9... みたいな値を返した。
- doubleできっちり100は表現できるので(しいて言えば10も2も)、誤差といえる。
- 誤差はpow()の内部アルゴリズム上仕方ないかもしれない。
- doubleからintへのキャストは切り捨て。
- printf("%f")は最下位桁を四捨五入。
あたり?
しかし個人的には
>>389 が本当にならその原因に一番興味があったのだがw
ウィルス作成を貼ってるお子ちゃまが居るな。
>>492 追試はしていないので可能性レベルだが、前者(>389)は定数演算と判断できるから最適化で整数定数に化けているのではないかと。
後者(>378)は定数に落とし込めないから実際にpow()を呼んでいるのだろう。
>>496 まったく違う。
そんな最適化はしない。
自分が見たことがあるのでは、べきが整数と判断したときはlogとかexpとか使わずに かけ算で計算するようになってた(と思う)。 これだったらpow(10,2)は正確な値が返ってきそうだが、果たして問題の奴は...?? まさかpow(10,x)の引数のxに微妙にゴミが乗ってたりしないよね?
なんでちょっと上のレスも見ないでレスするのだろうか。
C++ですが質問です。 gdbを使用してテストをしているのですが、例外を発生させられず困っています。 try { int *p = new int; } catch(...) { //☆ここにいれたい。 } どなたかご教授お願いしますm(_ _)m
スレタイくらい嫁よ。
すみません、別スレにて聞きます。
>>497 --
$ more foo.c
#include <stdio.h>
#include <math.h>
int main()
{
printf("%d\n", (int) pow(10, 2));
return 0;
}
$ gcc -O3 -S foo.c
$ grep -B17 ret foo.s
_main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $20, %esp
call ___main
movl $100, 4(%esp)
movl $LC0, (%esp)
call _printf
addl $20, %esp
xorl %eax, %eax
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
--
アセンブラを読めなくても、100と言う数値があるのとpow()を呼んでないこと位判るだろ。
>>504 あぁ、済まんね。癖で-O3にしてたよ。
--
$ gcc -S foo.c
$ more foo.s
.file "foo.c"
.def ___main; .scl 2; .type 32; .endef
.section .rdata,"dr"
LC0:
.ascii "%d\12\0"
.text
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $20, %esp
call ___main
movl $100, 4(%esp)
movl $LC0, (%esp)
call _printf
movl $0, %eax
addl $20, %esp
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
.def _printf; .scl 2; .type 32; .endef
ヴァージョンがどうのと言い出すといけないからこれも貼っておこう。 -- $ gcc --version gcc (GCC) 4.3.4 20090804 (release) 1 Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
ちゃんと元のやつが言うとおり、 int x = 2; pow(10, x); としてみろよ、カスの中のカス。
ヴァージョンとかwww バージョンかversionでいいだろJK
符号なし2バイト 0x23EF のデータを 符号なし1バイトでキャストして、符号なし1バイトの変数に設定した場合、変数にはどんなデータが設定されるのでしょうか?
オーバーフローする時点で不定。
>>510 うそこけ。
キャスト先が符号なし整数なら、その最大値を1こえる値を
加算または減算することをうんたらかんたらで
0xEFだろ。
符号ありでも処理系定義じゃなかったか?
514 :
デフォルトの名無しさん :2011/12/13(火) 23:11:28.66
515 :
デフォルトの名無しさん :2011/12/13(火) 23:38:17.52
>>509 あれ、こういう場合どうなんだっけ?
上位は切り捨て?
516 :
デフォルトの名無しさん :2011/12/14(水) 00:19:27.39
unsigned char型のaに、aー=100 って演算したとき、誤差がない場合に本来期待される値ってー100?それとも156?
コーディングルールに次のような書き方してね、 とあるのですが、みなさんならどう対処されますか? 五七五でお返事下さい。 hoge.h: #ifdef __BUILD_LIB__ #define Extern extern #else #define Extern #endif Extern int foobar(int a, int b);
156
呼べぬなら呼ばせてみようライブラリ
呼ばぬなら殺してしまえライブラリ
呼ばぬなら窓から捨てろライブラリ
>>515 この場合は切り捨て
H&Sによれば
>結果型が符号なし型であればその結果は、元の値に 2^n を法として合同な、
>結果型の一意の値である。ここで n は、結果型を表現するのに使用するビット数である。
なに?2進法が前提なのか?
ちょん
putc('a'); ←コイツかわいいよね
527 :
359 :2011/12/14(水) 17:49:03.62
>>492 >>389 は本当です。
main()の中でpow()を使うシンプルなプログラムでテストしたら100で問題無し。
自作の関数の中でpow()を使うとなぜか99。
その自作の関数をコメントアウトしてmein()の中でpow()を使うシンプルな
プログラムでテストしたら99。コメントアウトしてあるのにその部分の有無で
結果が変わるのはどうしてなのかがまったくわかりません。
>>527 既に指摘があるように、定数の場合はgccだとpow()を使わなくなる。
仮令一旦変数に代入していても、最適化オプションを指定していればやはりpow()を使わなくなる。
なので、これ以上議論を続けたいならコンパイラとバージョンとオプションとソースの完全なコピーを提示しろ。
だまれ、カスが。
シフト命令なんかでも定数畳み込みとかで予想外の結果が起こることがあるって話が Binary Hacks に載ってた。
再現確認するなら、which g++とかやって、aliasの情報ももらっといたほうがいいように思う
2C8H18+25O2→16CO2+18H2O
>>527 別に嘘をついてる、とか思ってないけどw
とりあえず
1. g++がどんなコードを生成しているか
2. pow()がどういう値を返しているかorどういう値に置き換わっているか
が分かるといいかなと思う。
1. に関して、100になるソースコードと99になるソースコードそれぞれに対して
g++に-Sを付けると.sというアセンブリが生成されるから、それをどっかに上げてもらえると。
g++だとpow(double,double)じゃなくて、pow(double,int)を呼ぶから結果が変わっても当たり前だけどな
なんでこうろくにレスも追えないやつばかりがレスするんだ? 元のやつは同じコードで結果が異なる(と思い込んでる)と言ってるわけだ。 レスしたいやつは元から全部読め。
>>535 まともな奴だったらdoubleで使え!で終わらせる所を、実装がどうの、で引っ張ってる時点で察してやってくれ。
在日の戦略にひっかかり、全ての間違いが始まった2009年 夏 |:::::::::::::;;;ノ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |::::::::::( 」 < 民主になればこの世はバラ色、政権交代! ノノノ ヽ_l \______________ ,,-┴―┴- 、 ∩_ /,|┌-[]─┐| \ ( ノ / ヽ| | 在 反 | '、/\ / / / `./| | 日 日 | |\ / \ ヽ| lゝ | | \__/ \ |  ̄ ̄ ̄ | | ┬ |それでも懲りない日本人、韓国民団総理支持率35%w早く目を醒まそう!
539 :
538 :2011/12/14(水) 21:18:19.87
忘れてた。ideone.com自体の実行結果は無視してね。
540 :
デフォルトの名無しさん :2011/12/14(水) 21:28:53.58
542 :
デフォルトの名無しさん :2011/12/14(水) 22:05:50.76
>>541 メインだけじゃなくてユーザ定義にも必要ってこと?
>>542 あーすまん、見間違い
task,oupの中で使われている
int n = sizeof(ch)/sizeof(*ch);
問題だね
mainの中では配列として扱えるけど
呼び出された関数側では配列としては扱えない
int a[N];
int*pa=a;
としたとき
paからNを取得する方法はないので
void task(char *ch)
ではなく
void task(char *ch, size_t len)
とかにしないとダメ
544 :
デフォルトの名無しさん :2011/12/14(水) 22:26:50.92
>>543 size_t lenの使い方がよくわからないんだけど,メイン関数の受け渡しのところはどう書けばいいの?
>>539 nが使えないのはその通りだが、*ch==0でbreakしてるから、直接エラーの原因ではない。
エラーの理由は、固定文字列を書き替えようとしていること。
546 :
デフォルトの名無しさん :2011/12/14(水) 22:50:59.89
549 :
デフォルトの名無しさん :2011/12/14(水) 23:00:04.64
>547 *s[]の中身を別の入れ物に代入して,それをいじるってことですか?
>>544 lenの部分は要素数だよ
char *s[]={"abc","dEf","GHI JK","lmnp"};
なら、"abc"と"dEF"と...で5になる
"abc"における終端の'\0'のように
char *s[]={"abc","dEf","GHI JK","lmnp",NULL};
として終端の目印を置けば必要ない
>>546 リテラルなんだから書き換えちゃダメ
すまん、俺のBathyScapheのレス取得がバグってるんだ。
149 名前:金持ち名無しさん、貧乏名無しさん :2011/12/14(水) 23:08:43.14 ここ30年で、 113社だった公益法人が25000社ってどういう事? 150 名前:金持ち名無しさん、貧乏名無しさん :2011/12/14(水) 23:17:28.25 公益法人をwikiで調べると、バブルで急増してからほとんど減ってない wwwワロタwww
554 :
デフォルトの名無しさん :2011/12/14(水) 23:36:28.39
【質問テンプレ】 [1] 授業単元:C言語 [2] 問題文(含コード&リンク):検索プログラム charのA[100][10]の二次元配列がアドレスが格納されているBの二次元配列の番地を 指すようにしたいのですが、アドレスの数字をAの配列に格納しなければなりません。 アドレスを指す数字はintなのですが、Aに格納するにはどうしたらよろしいですか?これを解決しないと進めないのでお願いします。 [3] 環境 [3.1] OS: (Windows/Linux/等々)windows [3.2] コンパイラ名とバージョン:制限なし [3.3] 言語: (C/C++/どちらでも可 のいずれか)C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 2011年12月15日まで [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) なし。
馬鹿には無理
自己紹介乙。
自演乙。
>>554 int a=0xaabbccdd;
A[m][n] = *(char*)a;
560 :
デフォルトの名無しさん :2011/12/15(木) 01:05:54.41
strtokを用いてコンマ内の文字を切り出したいのですがうまくいきません。 方法を教えていただけますか。 下のプログラムのようにputs(tp)で表示するのでなく、 切り出した文字を各々配列(a,b,c,d)に格納し、 printf("%s",d)みたいにしたいです。 char str[] = "ABCD,ef,1234,G"; char *tp; tp = strtok( str, " ." ); puts( tp ); while ( tp != NULL ) { tp = strtok( NULL," ." ); if ( tp != NULL ) puts( tp ); よろしくお願い致します。
561 :
デフォルトの名無しさん :2011/12/15(木) 01:20:55.70
小数点0.5以上なら1とつ上の整数、0.5未満ならその整数 1.34→1 3.57→4 −1.34→1 みたいなことをビット演算を使って行いたいのですがどのようにすればいいでしょうか?
>>556 #include <stdio.h>
#include <string.h>
int main(){
char str[] = "ABCD,ef,1234,G";
char *tp;
char s[4][20];
int i = 0;
tp = strtok(str, ",");
while (tp) {
sprintf(s[i++], "%s", tp);
tp = strtok(NULL, ",");
}
for (i = 0; i < 4; i++)
printf("%s¥n", s[i]);
return 0;
}
563 :
デフォルトの名無しさん :2011/12/15(木) 02:25:15.14
>>560 freeはご自分で
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char str[] = "ABCD,ef,1234,G";
char *temp = NULL;
char **tp = NULL;
int i,j = 0,num = 1;
for(i=0;i<strlen(str);i++)
if(*(str + i) == ',')
num++;
tp = malloc(sizeof(char**)*num);
temp = strtok(str, "," );
tp[j] = malloc(sizeof(char*)*strlen(temp)+1);
strcpy(tp[j],temp);
j++;
while ( temp != NULL ) {
if(j == num) break;
temp = strtok( NULL,"," );
tp[j] = malloc(sizeof(char*)*strlen(temp)+1);
strcpy(tp[j++],temp);
};
for(i = 0; i < j;i++)
printf("%s \n",tp[i]);
return 0;
}
何でみんなわざわざ別の配列用意すんの? char *a, *b, *c, *d; a = strtok(str, "," ); b = strtok(NULL, "," ); c = strtok(NULL, "," ); d = strtok(NULL, "," ); printf("%s\n", d); これで十分そうな気配がぷんぷんしてるが
>>561 ビット演算ではできない。
>>565 他
>560の、「配列に格納し」を満たしていないわけだが。
>>538 結局、pow()が実際に呼ばれてるかどうかと、pow()がきっちり100を返してこない
ということでそろそろ終了ですかねw
、と思ったら、この4番目が100になるのはもしかして浮動小数点レジスタの丸め問題?
もしそうなら新たな問題発生 ってもういいかw
だから常識もないやつが回答するなと言っとろうが。 お前が問題なんだよ。
571 :
561 :2011/12/15(木) 12:09:01.51
>>566 説明不足でした。整数型に格納する時
int x = (float)a/(float)b = 1.7
なら小数点以下にかかわらずx=1になってしまうのでそこで小数点以下四捨五入
を高速で行いたいです
正負に応じて±0.5を足してもいいのですがそれが最も高速なのかどうかと思って
>>571 環境による。
Cの範囲で解決するなら±0.5かroundf()とコンパイラオプションを試せ。
573 :
デフォルトの名無しさん :2011/12/15(木) 16:54:27.94
double a=1 b=11; と宣言しておいて、a/bをすると 0.090909 と表示されるわけだが、これって打ち切り誤差?それとも丸め誤差? ちなみに a=17 b=78 でa/bをすると0.217949だが、実際は021794871・・・ ってのも考慮に入れてください。
丸め誤差
>>573 誤差ってどういう意味でいってるのか分からないけど
%.30e で表示してみたら?
576 :
デフォルトの名無しさん :2011/12/15(木) 18:39:53.99
L2, L3キャッシュ効果わかるサンプルC、どこかに内科
>>573 普段から"%f"で出力しているんだろ。"%.20g"してみる癖をつけておくといいぞ。
>>568 やって見せてくれ。まさかとは思うが、値域が0〜±1に限定で±0.5だけが境界だと勘違いしていないだろうな。
>>571 そこがボトルネックなのか?
>>578 あ?お前はなんでできないと思うんだ?
>>566 を見てできないというならお前には無理だというだけだろ。
ぐだぐだいいわけしてないで早くコード貼れよ。貼れるもんならなw
ほんと、低脳だな。 浮動小数点演算がソフトじゃできないとでも思ってんのか?
ビット演算がどっかいってるぞw
お前、コンピュータの基礎も知らんのか。
すまん、自分でも質問の意味がよく分かってないんだがご助言を賜りたい。 ある値を測定し、その値を基にして様々な計算を行うプログラムがある。 そのプログラムが呼び出される度に値は更新されていくとして、 更新される1つ前の値をどっかに保存しておくことは可能なんだろうか?
可能。
更新される1つ前の値を保存する変数を宣言してそこに保存するんじゃダメなの?
587 :
デフォルトの名無しさん :2011/12/16(金) 11:48:46.67
floatとdouble、long doubleの形式を同一にするメリットって?
エスパーすると、プログラム終了時にファイルなどに保存した値を、次回実行時に読むんだろう。
>>587 メリットというか、floatしかHWを持ってないCPUではそうすることがあるくらいじゃないか。
590 :
587 :2011/12/16(金) 12:00:56.21
ちなみに、そういう同一の処理系があるのを前提として頼む。
>>589 結局どういうことだ?
メリットないってこと?
591 :
584 :2011/12/16(金) 12:02:53.77
要領を得ない質問で申し訳ない。
>>586 まさしくそれだ。変数宣言して保存っていうのをやりたいんだが、
1つ前の値をとってくる方法が恥ずかしながら分からん。
何をメリットとするかだ。 doubleがソフト演算になってしまうからってチマチマdouble→floatと書き換えなきゃ いけない手間が省けるのをメリットと考えるならそうだろう。 反対に、doubleの精度が出ないのはデメリットだ。
scanf関数で入力して変数にいれて、いれた文がif使ってif関数の条件に入れた文と一字一句同じなら〜を表示、間違っていればーを表示するのはどうすればいいですか?
594 :
587 :2011/12/16(金) 12:22:02.36
>>592 floatで演算をするときに一々doubleに置き換えられて、またfloatに置き換えるから、その手間が減るってこと?
あと、long doubleはどうなるの?
WindowsでCを書く場合はVC++というIDEが主流だと思いますが linuxでCを書く場合は何を使うものでしょうか?
edlin
>floatとdouble、long doubleの形式を同一にするメリットって? float実装、double、long double未実装ってだけだったりしてな。 実装してなきゃテストいらないからデバッグの手間が減る。
アホは黙ってろよ。
.∧,,_∧ < `Д´ > ・・・・・・
600 :
デフォルトの名無しさん :2011/12/16(金) 14:35:38.96
ホッケーゲームをつくりたいんだがコンピュータはどうやって動かしたらいい?
ラジコンの上に載せたらどうだ?
まずヒューマン型コンピューターを作ります。
ある円周上の一定間隔の点の座標を求めるプログラムなのですが ここの方から見てなにか変なところはないでしょうか。 #include <stdio.h> #include <math.h> #define PI 3.141592653589793238 int main() { int deg = 10; //初期角度 int len = 30; //半径 int defx = 50; //中心座標X int defy = 100; //中心座標Y int sp = 30; //角度間隔 int tmp = deg; while (deg <= 359+tmp+sp) { double rad = deg * PI / 180.000; double x =len * cos(rad) + defx; double y =len * sin(rad) + defy; printf ("%5.1f,%5.1f\n",x,y); deg = deg + sp; } return 0; }
>>601 仕様不明だからなんとも判らんけど、ループ回数が確定ならforか、while(カウンタ--)の方がいいかも。
相手の打ったホッケーのパックが来た。 どうする? 1.正面に打ち返す 2.右に打ち返す 3.左に打ち返す 4.空振りする COMMAND:■
ホッケーの煮付け
609 :
デフォルトの名無しさん :2011/12/16(金) 22:15:28.14
うん
うんじゃないが
すみません質問です。 VC++ 2008にて作成したexeで、ごくまれに(1ヶ月に1回程度)exeが エラーで落ちて下記のようなエラーダイアログが表示されます。 ▽▽▽ xxx.exe の 0x00412924 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x010e0000 に書き込み中にアクセス違反が発生しました。 △△△ エラーを確実に再現させる方法が見当たらないです。 原因はメモリアクセスエラーだと思われますが、 こんな場合は全ソースコードを紙に印刷して、ひたすら机上デバッグしか 方法はないのでしょうか? それとも、私の知らない方法や便利なツールがあるのでしょうか? ご存じのかたがいらっしゃれば、アドバイスをよろしくお願いします。
デバッガを使え。
614 :
611 :2011/12/17(土) 00:44:06.63
>>612 「VC++の標準のデバッガでステップ実行」のことでしょうか。
exeが月に1回程度しか落ちなくて、デバッガの
「コードが最適化されていないexe」では、デバッグ中に
落ちることはないかも知れません。
「ひたすら机上デバッグ」のほうが有効な気がします。
>>613 URLを教えていただきありがとうございます。
そのURLにて「Rational PurifyPlus」に類似したツールがあれば、
すみませんが、具体的にご教示いただけないでしょうか。
>>614 >「コードが最適化されていないexe」では、デバッグ中に
>落ちることはないかも知れません。
だったらそのまま使えばいいんじゃね?
>「ひたすら机上デバッグ」のほうが有効な気がします。
そう思うなら、そうすればいいんじゃね?
>>614 落ちた時にできるダンプファイルをデバッガで開けば原因がわかるんじゃないのか?普通
ダンプ何個か出して見るのがいいとおもうよ 仮想メモリの割り当てもプログラム毎に癖があるみたいで エラー持ちメモリつこてExcelだと毎回アプリエラー、123だと毎回保存ファイル破損とかあったし
>>614 使い方知ってるツールがあるならそれ使ってろよ
622 :
611 :2011/12/17(土) 09:00:41.00
とりあえず、exeが落ちたときのダンプファイルを見たいのですが、
ダンプファイルの出力先ディレクトリおよびファイルがわかりません。
>>615-620 レスありがとうございます。
>>616 >>618 初歩的なことを聞いて申し訳ないのですが、ダンプファイルはどこにあるのでしょうか。
「C:\WINDOWS\Minidump」直下には、なかったです。
exeが落ちたときに「デバッグする」を選択すると、アセンブリ言語が表示されましたが、
深追いせずに閉じてしまいました。
(exeのビルド、exeの実行共に WindowsXP Pro SP3 で行っています。)
>>617 本の紹介ありがとうございます。
>>619 assertは使ったことがないのですが、すべてのエラー箇所にてデバッグログを
出力するようにしています。
>>620 落ちるのが1ヶ月に1回程度なので、その方法で捕まえられるのも、
1ヶ月に1回程度のような気がします。
>>621 使い方を知っているのは「VC++のデバッガのステップ実行」ぐらいです。
623 :
611 :2011/12/17(土) 09:11:14.47
Releaseにてビルドしたexeでメモリアクセスエラーが発生して落ちたので、
現在、Debugにてビルドし直して、メモリアクセスエラーを再現させようとしています。
(Debugで落ちたら、ソースコードの箇所を特定できると思われますが、
多分Debugだとメモリアクセスエラーが起きない予感。)
>>615 Releaseモードにてexeを完成させないといけない宿命です
>>623 そのプログラムは本当にCなのか? C++だったりManagedC++だっとりC#だったりしないだろうな。
それはさて、ソースコードを追うのに印刷するってアナクロな発想が凄いな。
なんでPC上で追わないんだ?
バグの大半は注意深くソースを追えば大概見つかるもんだが。
それでも見つからず、Debugモードでは再現しないと言うなら、少しずつ余計な機能を削りながら再現するか確認していけばいい。
まぁ尤も、Debugモードで再現しないバグの大半はメモリの初期化に関するバグだろうけど。
625 :
611 :2011/12/17(土) 09:50:54.95
>>624 すみません、C++です。スレ違いだったのでしょうか…
>なんでPC上で追わないんだ?
ジジイだからモニタ見るの疲れるの
色々手段を教えていただきありがとうございます。
できる限りのことをして徹底的に虫探しをします。
>>623 >Releaseモードにてexeを完成させないといけない宿命です
なんで?
C言語でIEでgoogleの検索ページを開くプログラムを作れますか?
一番C言語をうまく使える人って誰?
誰?
2番じゃいけないんですか?
>>625 ここはCの入門編のスレ。
それはさて、モニタを見るのが疲れるのは歳の所為じゃなくてモニタの選択ミスだと思うぞ。
10ポイントで印刷した活字を追うより10ポイントで表示した文字を追う方が疲れない老眼の私が言うんだから間違いないw
姿勢と角度の問題もあるぞ。 紙だと下にやや水平にして読むからな。 画面は垂直。 ディスプレイの位置が高いと、目を見開くことになって疲れる。
>>633 >ディスプレイの位置が高いと、目を見開くことになって疲れる。
それ以上にドライアイの原因になるから要注意。
>>634 なんでそんなに頭固いの?
636 :
デフォルトの名無しさん :2011/12/17(土) 17:57:56.81
無作法を柔軟と思い込む手合いか。
>>635 デバッグ版のmsvcrtを配布するわけにいかないし
Releaseモード(/MD,/MT)でもデバッグ情報は含められるので (VC10だとそれがデフォ) そうしたら?
デバッグ情報がないとデバッグできないなんてのはただの甘えです。
Cランタイム使わずに組めばいんじゃね? それやると微妙にスレチかもだけど
>>636-637 ライブラリなんてオプションで何とでもなるでしょ?
そんな理由で、配布は Release でないといかんと思ってるなら、
単なる無知としか思えないよ。
642 :
デフォルトの名無しさん :2011/12/17(土) 20:10:20.31
思えないね
errno を自分で拡張したいのですが どういうやり方がcoolで一般的でしょうか
どういう拡張したいのさ?
そんなこと考えるんだからどうせろくな拡張じゃない。
>>644 ネットワークのラッパーライブラリを作ってるんだけど
ライブラリ内でエラーメッセージを表示したくないので
呼び出し元でstrerrorなどを使わせたいんすよ。
ところが、一部の関数(getaddrinfo()とか)は、errnoが定義されず
gai_strerrorだかで取得する方法ですよね。
なので、strerrorのラッパーでも作ろうと思ったんですが
errnoの使われてない領域とか、ユーザ用の予約領域なんかが
あるなら尻たいです。
勝手に尻ろ。
ぬるぽ
れすこじきおつ
【ウェブアプリケーションという不幸 】 現在、多くのプログラマ(素人)がウェブアプリケーションというものがベストな正しい方向だと勘違いしている。 ソフトウェアの作るにおいてそのアプリケーションに応じた状態遷移を実装するというのは基本中の基本である。 その点においてウエブブラウザというある状態遷移が実装されているアプリケーションの上に また別のアプリケーションを実装するのは論外である。 そこまでするなら普通にアプリケーションを実装してダウンロードして使ってもらえばいいのである。 ウェブアプリケーションとは虚構にしか他ならない。 ウェブアプリケーションを作ろうとしているあなた。 今すぐ普通のアプリケーションとし設計し始めてはいかがだろう。 そうすればきっと後悔しないですむ。 HTMLやHTTPを悪者にはしていない。 TCP/IPができあがり、その応用として、ファイルを送ったりするようになった。 ファイルの中身のテキストにデータ構造をもたせ、それはつまりツリー構造なわけだが その実装としてのハイパーテキスト、つまりHTMLという送る側と送られる側で決め事(プロトコル) をつくり、画像や音楽など表現の幅を広げることは当然の成り行きだっただろう。 そして、その送る側としてのHTMLファイルサーバ、つまりWebサーバ、送られる側としてのプロトコルの解釈・表示系としての ブラウザというアプリケーション。 ここまではいい。 だが、そこから先が素人の発想というか、いそがばまわれを忘れた者の愚かな発想。 つまりブラウザ上で、アプリケーションを動かすという発想なのである。 ブラウザというのは、おくられてきたステートレスな通信内容の一瞬の表示手段でしかない。 つまりアプリケーションのためのひとつのパーツなのである。 Windowsでいえば、コントロールのひとつ。(実際WebBrowserというコントロールがある。) JavaならWebClietnだ(これは、ブラウザではないが。)。 包含関係が逆なのである。 ブラウザ上にアプリケーションを作るのは愚かなブームである。
どこを縦読み?
オノレの中の嫉妬を長文にしてみますた。
>>641 まさかとはおもうけどDebug版のmsvcrtをスタティックリンクして配布すればいいだろってこと?
>>637 デバッグ版のmsvcrtを配布するわけにいかないし
>>641 ライブラリなんてオプションで何とでもなるでしょ?
>>653 Debug版のmsvcrtをスタティックリンクして配布すればいいだろってこと?
何を言ってるんだろう…
まさかとおもうけど /MT, /MD って、Debug モードでも指定できると言うことを知らないのか?
そもそも Release/Debug の構成って単なる、ビルドオプションのセットで、例えば基本 Release
だけど、特定のソースだけ最適化を無効するとかの構成をいくらでも作成できるんだよ。
fscanfで構造体配列にcsvファイルを読み込みたいんだけど教えろください><
fgetsとsscanfで
図書館でプログラミング作法でも借りて来い
ポインタ型の最大最小やビット数などは完全に環境依存? 32bitマシンで256bitのポインタとかアホな仕様にしても企画合致ですか?
7月の段階で民主党が2兆円の復興予算を組んだとき 自民党が要請した復興予算は累計17兆円 自民党の17兆が7月時点でに決定されていたのなら 今の日本はもう少し違って居た筈だ ちなみに関東大震災のときは復興予算として現在の価値にして150兆円以上を組んでいた。 この事実を知れば、予算の規模の小ささ、ましてや増税なんて奇知涯にも程があると思わざる負えない。
660 :
611 :2011/12/18(日) 12:27:52.13
しつこくてすみません。
>>611 の場所 『0x010e0000』 が何か意味のある特別なアドレスのように思えるのですが、
(googleにて検索するとたくさんヒットする)
何を意味するのかご存じの方が、いらっしゃれば教えて欲しいです。
それが不具合解決の糸口になるかも知れません。
よろしくお願いします。
>>660 確保してない領域踏んだか、開放した領域踏んだか、物理的な故障だろ
ソースもバイナリもマップも出さずにどうしろってんだよ
ヒットするならそこを見ればいいじゃん たぶんそれぞれにたいした関連性はない
Webアプリというジャンルのアプリができた理由? サポートが各段に楽になるだろ? OS上にアプリを置く段階で既に他のアプリとの 干渉との戦いという最大の問題点を含むわけで (連携という甘い幻想に皆ダマされた) 初心者はおろか、かなりのマニアでも挫折するんで アプリが使えない。そのクレーム解消の為に Webアプリが出現してきたわけだ。 アプリのインストールやサポートやバックアップや メンテ・アップデートも専門家やプログラムが鯖の 上で個別に行うという考え方。
javaだとjavacがコンパイラ、javaが実行機械として Cの場合、gccとかg++がコンパイラとしたら実行機械は何なんですか?
そんなのはない。 いわゆるネイティブってやつだ。
実行機械は実機
うちの大学の授業で教授が 「みなさん間違って覚えてますが、printfするのにstdio.hはいりません、いるのはfprintfです」 って言っててそうなのかーって思ったけど うちのコンパイラ(VC++2008EX)じゃ普通に弾かれる どういうことでしょうか
>>667 man 3 printfを教授に見せる
さらに、stdio.hを見せる、または、writeと間違えてませんか、と聞く。
やっぱり違いますよね 何かと勘違いしてしゃべってたのかな・・・
7.19.6.3 printf関数 形式 #include <stdio.h> int printf(const char * restrict format, ...); 機能 printf関数は、与えられた実引数の前にstdoutを実引数として付加したfprintf関数と等価とする。 これが言いたかったんだろう。まあ、printfにしろfprintfにしろstdio.h必要なのには変わりないけど。
>>671 printfするのにstdoutが必要だと、皆さんが間違って覚えている可能性は0でいいとおもう
>>672 putsならstdio.hは必要ないんですか
統合環境が勝手にincludeしてると思ってた。
puts()もprintf()もstdio.hは必要ないだろう。 推奨しないが。 要は、プロトタイプ宣言がなかった時代との互換性の為にエラーにしない仕様が問題なんで。 fprintf()についてはそれを使うだけなら必要ないが、なんらかのFILE *型の引き数が必要になるので 結果的に、stdio.hが必要になる。
>>664 敢えて言えばCPUだが、今時のCPUはCコンパイラが出すマシンコードをそのまま実行してる訳じゃ無いからなあ。
だからアホは黙ってろといっとろーが。
>>667 お前がC++としてコンパイルしてるだけだろ
何だよ「弾かれる」ってバカなの?
>>660 重要なのは0x00412924だよ。
MAPを作成してこのアドレスが含まれる関数を見つけて頑張れ。
なんだ、cppじゃダメってことか
printf は違うけど、引数と戻値が全部 int の関数ならヘッダは要らないな。
printfも、stdio.hが無くても使えるけど、「いらない」って言うと何か違うな。
教授も間違いではないんだが。たぶん
>>667 の聞き間違いなんだろうな。
667がニュアンス間違って受け取ったんだろう。
「省略できる」のと「書く必要が無い」は別だと思う。
アセンブラってコンピュータの機種によって違うんですか? 最低限どのパソコンもアセンブラとして共通点はあるんですか? 例えば僕のパソコンはNECのバリウスターだっけ?です。 あれ?
あれ?
ある程度の共通点を持ったパソコンはありますが、共通点を持っていないパソコンもあります。
>>687 アセンブラを組む時は、自分のパソコンのアセンブラを調べないといけないんですか?
>>688 知る必要があるけれど、Windowsが動作しているのなら、x86
>>689 >>690 ありがとうございます。
Windowsはx86のアセンブラによってアーキテクチャされてるのですか?
意味の良くわかってない言葉は使わないように
ドリームキャストはWindowsCEが使われていた。
Windowsってのはx86によって開発されたって理解でOKですか?
CPU、プロセッサ、マザーボードの違いって何? どれも"基板"っていう視覚的なイメージしかありません。 パソコンの蓋あけて、この板何?って聞かれたら、大概皆 この3パターンで答えます。
CPUに対する命令語を、人間が読みやすくするために置き換えたのがアセンブラ。 だからCPUごとにアセンブラは違う。 CPUが同じならアセンブラも同じだけど、 コンピュータはCPUだけで動いてるわけじゃない。
だからCPUが(ほぼ)同じであっても ファミコンとPCエンジンは同じプログラムは動かない。 CPU自体には命令が通じて動くけどな。
>>697 全然ちげーよ
知らないなら無理してレスすんな
そもそもスレチだし
集積回路が最も原始的なプログラムで、その上に + アセンブラ + C言語 + アプリケーション みたいな感じで上乗せされているという理解でOKでしょうか? 情報技術何ちゃらとかいう授業のレポート書かないといけないんですが。
* 死 ね *
レポート如きなら、継ぎはぎの知識をきくぐらいなら学校の図書館なりネットなりで情報集めて書いた方が早いと思うんだが
>>702 ま、専門書読んだら余計な知識が邪魔して面倒臭いんだけどねー・・
最初からネットで概論教えてくれたら楽だし。
また親切に教えろ厨か。
>>694 Windowsはx86系統のCPU向けに開発されている、かな
だからその系列でないCPU用のWindowsは現在はないよ
食用油、味の素、角砂糖、貝殻を混ぜて一晩おくと、猫が生まれます。 こんな事書いて提出する様な物だと思う。
>>705 なるほど面白い。
じゃぁIntelとマイクロソフトはお互い密接なパートナーみたいなもんなんですか?
708 :
611 :2011/12/19(月) 20:51:39.60
>>661 >>680 アドバイスしていただきありがとうございます。
MAPファイルの存在を初めて知りました。
>>680 ピンポイントでアドバイスしていただきありがとうございます。
>xxx.exe の 0x00412924 でハンドルされていない例外が発生しました
【MAPファイル】
Address Publics by Value Rva+Base Lib:Object
0001:000107f1 ?SetWorldViewRH@CSprite@D3DXCore@@UAGJPBUD3DXMATRIX@@0@Z 004117f1 f d3dx9:csprite.obj
0001:000108d3 ?SetWorldViewLH@CSprite@D3DXCore@@UAGJPBUD3DXMATRIX@@0@Z 004118d3 f d3dx9:csprite.obj
0001:000109af ?Begin@CSprite@D3DXCore@@UAGJK@Z 004119af f d3dx9:csprite.obj
0001:00011118 ?Draw@CSprite@D3DXCore@@UAGJPAUIDirect3DTexture9@@PBUtagRECT@@PBUD3DXVECTOR3@@2K@Z 00412118 f d3dx9:csprite.obj
⇒ 0001:0001161b ?Flush@CSprite@D3DXCore@@UAGJXZ 0041261b f d3dx9:csprite.obj
0001:000119df ??0CSprite@D3DXCore@@QAE@XZ 004129df f d3dx9:csprite.obj
0001:00011a53 ?Release@CSprite@D3DXCore@@UAGKXZ 00412a53 f d3dx9:csprite.obj
0001:00011a70 ??1CLine@D3DXCore@@QAE@XZ 00412a70 f d3dx9:cline.obj
0001:00011aef ?AddRef@CLine@D3DXCore@@UAGKXZ 00412aef f d3dx9:cline.obj
DirectX API「ID3DXSprite」の D3DXCore::CSprite::Flush()関数 で落ちているみたいです。
DirectX API自体に不具合がある可能性は低いと思いますので、DirectX APIの関数に渡している
アドレスに問題がないかを重点的に調べてみます。
ドライバの不具合の可能性も洗ってみると良いよ
710 :
611 :2011/12/19(月) 21:24:31.90
>>709 ありがとうございます
不具合の発生したグラフィックカードおよびドライバのメーカーが
マイナー過ぎて超信用できない
⇒ Matrox Parhelia 256MByte[PH/256A/8X]
検証はNVIDIA、ATI、IntelのGPUだけにしておけばよかった…
>>710 他のカードで試して発生しないなら、その可能性が高いので、
依頼主?と相談してみたら良いんじゃない?
7月の段階で民主党が2兆円の復興予算を組んだとき 自民党が要請した復興予算は累計17兆円 自民党の17兆が7月時点でに決定されていたのなら 今の日本はもう少し違って居た筈だ ちなみに関東大震災のときは復興予算として現在の価値にして150兆円以上を組んでいた。 この事実を知れば、予算の規模の小ささ、ましてや増税なんて奇知涯にも程があると思わざる負えない 帰化人だらけの民主党に復興なんて はなっから無理な話なんだよ
Matroxがマイナーって……
714 :
デフォルトの名無しさん :2011/12/19(月) 22:43:36.78
>>667 printf に stdio.h がいらないのと同じ理由で
fprintf にも stdio.h はいらない
stdio.h がいるのは fprintf に渡す stdout のほうだ
それすらも extern 宣言すれば stdio.h は不要に持って行ける
# そのキョージュっていくつなのかな
# K&R C のことが言いたげに聞こえるんだが、悪い意味で若そう
>>695 マザーボード以外の返事をした人がおかしい、または、この板何?と聞いたときに
どこからどう見てもCPU(それもスロットAのような)を指差していたかのどちらか。
>>710 Matroxがマイナーすぎて信用できない時代か;;
インターフェイスがAGPだから
>>715 マザーボードはCPUの一部であるというのは正しいかな?
コーヒーギフトはAGF的な何かを感じた
>>715 CPUとgoogle画像検索したら、基盤みたいないっぱい出てきたから
CPU=板じゃだめなのかな?
>>718 マザーボードにCPUがくっついてることもあるけど、マザーボードにCPUがささってるのが一般的。
んで、マザーボードにCPUがくっついている場合においても、その板全体を指してCPUということはない
>>720 ダメに決まってるだろ。
どんだけ頭おかしいんだ、お前。
昔からの流れでCPUは板じゃなくて石
>>699 どこが違うんだ? 合ってるじゃん。
指摘はできないけど何か言ってみたかったとか?
>>724 アセンブラはアセンブルすることでアセンブリを出力するものだってことじゃないかな。
> CPUに対する命令語を、人間が読みやすくするために置き換えたのがアセンブラ。 それはニーモニックと言う。 > CPUが同じならアセンブラも同じだけど、 同じCPUでも普通アセンブラは何種類もある。
>>721 なるほどww
メモリカードやグラフィックアクセラレータは何にあたるのですか?
そのまんまですか?
ニーモニックと呼ぶのはその場合の「命令語」の一部分だろ。
コンピュータ用語いくら何でも多過ぎるよね.. C言語スレなのに何でこんな詳しい人多いんだか
>>727 車のシャーシにエンジンがついてるといっても、車の下のほうをさして、エンジンということはないのはわかりました。
それでは同じくシャーシについているタイヤやハンドルはなんというのですか?
>> CPUが同じならアセンブラも同じだけど、 >同じCPUでも普通アセンブラは何種類もある。 同じモノが使えるって意味だろ。 わざと誤読して変な突っ込みするのはストローマンだぞ。
734 :
707 :2011/12/19(月) 23:59:49.02
MicrosoftはWindowsを作っていて、Intelは半導体を作っているんでしょ? お互いの製品でPCが出来ると思うんだが、何でお互いライバル関係にあるんですか?
ライバル関係になったことはあまり記憶にないが。 AMDとIntelはライバル、、、だったね。さみしいことだが。
大学生ですごいと思われるCプログラマーってどんなレベルですか?
>>734 この先の方針として
MS は DirectX と GPGPU で行きたい
Intel はあくまで CPU 主体のまま新命令の追加で行きたい
登大遊はすごいという印象をあたえたと思うよ
739 :
707 :2011/12/20(火) 00:08:30.01
>>735 そうなんですか?
僕の思い込みでしたか・・
てかスレ違いだろ
741 :
デフォルトの名無しさん :2011/12/20(火) 00:10:24.13
64bit PC は AMD の勝利で Intel の「互換機」が幅をきかせているだけ
>>738 ソフトイーサって凄いの?
そうそう思い付くもんじゃないの?
コンピュータ界の天才の層って実際どんなもんなん。
このスレ伸びるの早すぎ
ほとんどスレ違いだけどな。
>>742 もちろん似た発想のものはすでにあったし、似たようなことをする業務システムもあったね。
導入しやすいアプリと、中央サーバを提供したのはいいことだったと思うよ。
ただ、凄いかっていうとどうなんだろうね。ためしに作ってみるといいよ。
ネットワークの知識がある程度あれば、制限がたくさんあるけれど、似たようなものなら割とすぐできるでしょう。
コンパイラが作れる層は1段上だなと思う。
天才というと、技術的には大したことのないものをつかんだやつのことじゃね? TCP/IPとかHTTPとかFacebookとかtwitterとか。
あと、アップルの製品とか。
>>745 も何か開発したことあるのかw簡単に言うけどw
いいアイデアがひらめくかどうかはIQ関係ないと思うけどなー 私生活のちょっとした問題を解決しようと適当に作ったらそれが世界的にウケちゃったみたいな 高度なアルゴリズム思いつく奴は天才だと思う
>>736 とりあえず国際プログラミングコンテストで優勝しておけば間違いない
>>751 それってアルゴリズム思いつく力必要かな?
必要だろ。
朝日新聞は一時期300人のネット工作員をかかえ、反日工作していた。
捕まった編集者は49歳ですが、こんなカスでも1500万円の年収がもらえるんですよ。
>>866 14時以降に何が起きたんだ
>>866 Domain Information: [ドメイン情報]
a. [ドメイン名] ASAHI-NP.CO.JP
e. [そしきめい] かぶしきがいしゃ あさひしんぶんしゃ
f. [組織名] 株式会社 朝日新聞社
これが規制されたからじゃねw
−「朝日新聞社は、とある思想やパラダイムに日本の世論を誘導する見返りに、中国から大量の資金を貰っている。」−
これはおそらく週刊誌さえ書けない。
「失語症躁鬱ニートは氏ねよ」【ネット】朝日新聞社員(49)ネットで荒らし行為、会社ごとアクセス規制へ
>>753 "思いつく"ではなく"思い出す"能力じゃね?
違う。
>>731 インテルびょーき、ザイログびょーき、モトローラびょーき‥‥‥
gas よ、いつかインテル病気にしてほしい、いや、なんとかしてほしい。
で、 どこのコンテストよ 年度はいつよ 問題はなによ 解答はなによ 解答者はだれよ 思いついた(生み出した)過去にないアルゴリズムはなによ
>>729 コンピューターの構成要素を知らずにプログラムを
組むことなんてできないから。
特にC言語は低レベルプログラムにも多く使われるので、
ハードウェアにも精通している人が少なくない。
>>749 うん、TCPを模倣した通信をHTTP(S)で実装したよ。
トンネルみたいなもんだけど。
GNUのアセンブラ読みにくいよな。 俺の中のイメージとは逆だもんよ。 ← こう書きたいのに → こうなってるもんな。
GNUのアセンブリは第1オペランドが右側にあって、MS形式のアセンブリは第1オペランドが左側にあるんだっけ。 オペランドの順序は慣れればいいけど、個人的には、8(%ebp)みたいな書き方がすきじゃない。
>>766 普通はそれぞれAT&T式、Intel式というけども。
そしてGNUもデフォはAT&TだがIntelもサポートしている。
あとはこれらのどっちというより、アセンブラ毎の違いがいろいろとあり。
gas の Intel 書式サポートはオマケ程度のものだし、 あまり使われてないから未だにバグも少なくないって聞いたんだけど、 実際のところどうよ?
まぁあれだ、スレ違いだな。
国民に罵声を浴びせられ駅前交番に逃げ込むテレビアカヒの取材班 12/19正午 新橋駅前
http://blog-imgs-44.fc2.com/d/e/l/deliciousicecoffee/111219_124643_ed.jpg ,:' .l .::;',. :::;/..://:: /,':/ ', l、 .i ヽ
. ,' ..::| .::;',' :;:','フ'7フ''7/ ',.ト',_|, , ',.',
,' .::::::!'''l/!:;'/ /'゙ / '! ゙;:|:、.|、| 'l
. ,'. .:::::::{ l'.l/ 、_ _,. 'l/',|.';|
l :::::::::::';、ヾ  ̄ `‐-‐'/! ';. '
. ! :::::::::::/ `‐、 ゝ |'゙ |
| ::::::::/ \ 、_, _.,.,_ ノ::: ! 野田政権が早く終わりますように
|::::/. _rl`': 、_ ///;ト,゙;:::::./
.. `´ /\\ `i;┬:////゙l゙l ヾ/
,.:く::::::::`:、\ 〉l゙:l / !.|
. /:.:.:.:\:.:.:.:.`:、ソ/:.:| | | 19日の報道ステーション
/.:.:.:.:.:.:.:.:.:\:.:.:.:У:.:;l
http://livedoor.blogimg.jp/kingcurtis/imgs/e/d/ed2dbc66.jpg
http://codepad.org/EbTNS9hS キーボードから指定した名前のファイルから、整数二次元配列(ただし最大でも100x100 まで
のサイズの配列とする)を読み、キーボードから指定した列の要素を表示するプログラムです。ファイル
は以下に示すように最初に行数、列数が書いてあり、次に要素が並んでいます。指定したファイルがない場合
には、ファイル名を表示してエラー表示します。
・・・が、セグメンテーションエラーを吐き出しており理由が不明です
誰かご教授をば
>>767 768が回答してる通りなので、ついでにアドバイス。
コンパイル時に、ワーニングを指摘してくれるオプションを付けると、原因を見つけやすい。
例えばgccだったら、
gcc a.c -ansi -pedantic -Wall
↓結果
a.c:33: warning: ‘num’ is used uninitialized in this function
使ってるコンパイラ名と、ワーニングオプションで検索すれば判るはず。
>>773 X >768が回答してる通りなので、ついでにアドバイス。
O >772が回答してる通りなので、ついでにアドバイス。
× ワーニング ○ ウォーニング
俺の入門書にはワーニングと書いてある
まぁ、ソニーのワークマンと言うのと同じレベル。
無理やりだな
トマトじゃないよトメィトゥだよ
× アワード ○ アウォード
>>764 >うん、TCPを模倣した通信をHTTP(S)で実装したよ。
HTTP は、コマンド/レスポンスが基本だから、レスポンス返す側 (=サーバー) から
通信開始できない。
TCP は双方向にコネクション張れるはずだが、そこはどうしたの?
お前ら、プログラミング以外だとイキイキしてるなw
警告って言えよ
>>782 クライアントがあらかじめコネクションを張っておく
>>780 □V
○ <ポテイトゥ
>>782 サーバからの要求をいつでも送ることが出来るように、
クライアントからのHTTPリクエストに返事をせず、ずっと持っておくって書いた方がわかりやすいかな
まあ、結局は、トンネルと同じような感じ。
>サーバからの要求をいつでも送ることが出来るように、 こう言うの、初めて聞いた
HTTPじゃなくて単に80ポートを使ってるだけみたいだな
>>788 HTTP(S)であることのメリットもなくはないよ
そういう用途で80使うのはいかがなものか
そもそもTCPとHTTPでは比較対象が違いすぎてイミフ
Cometってやつか?
>>792 そうそう、それだ。
実装したときにはその言葉知らなかったけど、後から知って、ほかにも同じ発想する人がいたんだなと安心したことを覚えている。
たしかすべてのプロトコルをHTTPの上に載せるRFCがあったよな、いくつだっけか。
>>795 まじか。それ知ってればいくらか楽だっただろうなぁ。
死活監視とかしないといけないし割と面倒だったんよ。面白くはあったけど。
ということで、
>>782 はためしに作ってみるといいよ。
なんともいえない面白さがあるから。
まぁエイプリルフールネタのRFCだったけどな。
伝書鳩を使ったジョークRFCもあったな 通信時間 大 通信ロス 大 通信コスト 大
「あ」の音と「お」の音の区別は曖昧である。 そのため「こんとんじょのいこ」と口に出して喋ると、えなりかずきが(ry
だからウォークマンでもワークマンでも関係ないと? 吉幾三出てくんぞ。
warningは”ワーニング”か”ウォーニング”か?
ttp://m-ishikawa.com/blog/2008/12/14/401/ 結論
/)
///)
/,.=゙''"/
/ i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!!
/ / _,.-‐'~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノ il゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、 ,!,!| |r┬-| |
/ iトヾヽ_/ィ"\ `ー'´ /
こまけえこたあいいんだよって言うだけで実際はウォーニングが正解なんじゃないの?
正確さを言うなら発音記号でいいだろ、アホ。 もう終わりな。
アホとか言ってる奴が終わりなとか言われてもなあw
たとえば、mailとmainを、メール・メーンか、メイル・メインと表記を統一してるような人は 出版関係者以外じゃめったにいないと思うけど、そういうことは話題にならないで、 ことさらワーニングだけ取りざたされるのもどうかって感じがする。
だから終わりだと言ってるだろ。
つーか、理系ならJIS表記使えばいいだけだろ。 いつまでスレ違いやってんだよ。
ヲーニング
ワーニングとメール、メインはまた違う話題だな。
〃〃∩ _, ,_ ⊂⌒( `Д´) < ヤダヤダ! `ヽ_つ ⊂ノ ジタバタ _, ,_ 〃〃(`Д´ ∩ < ウォーニングジャナキャヤダヤダヤダ ⊂ ( ヽ∩ つ ジタバタ 〃〃∩ _, ,_ ⊂⌒( つД´) < ワーニングナンテヤダー `ヽ_ ノ ⊂ノ ジタバタ ∩ ⊂⌒( _, ,_) < ウォーニングガタダシィンダモン… `ヽ_つ ⊂ノ ヒック...ヒック... ∩ ⊂⌒( _, ,_) `ヽ_つ ⊂ノ zzz…
じゃあcharをキャラと読むならintをインテと読めよ
print を ぴーあーる あいえぬてぃー、 width を だぶりゅあい でぃーてぃーえいち console を しーおー えぬえすおー えるいー と覚えた小学校2年生。
いつものアホ?
>>813 スレ違いの発言やめろって言うやつに限って、すれ違いの話題やめないな。
まあ、本気でそう思ってるわけじゃなくて相手を言い負かす方便だからそんなもんだよな。
> ただ、今まで”ウォーニング”と発音するエンジニアには出会ったことがありませんが…。 すげー納得した
まぁ日本の理系大学は英語ないところが多いからな。
それより、false をなんと読むか知りたい
フォールスまたはフォルス。
フェイルスじゃないのか…(´・ω・`) フェイル・セーフ的な感じかと思ってたよ
フェイルはfail。 さすが、出会ったことないだけある。
(ずっとフェイルズだと思ってたなんていえない)
ファルスだろ
バルスだろ
ファルス派は割りといるな。もちろん間違いだけど。
辞書引いて発音記号見れば一発で分かるだろ
>>830 ワーニングが容認されるならファルスもあり。
マーニング娘。もあり。
お前らはどうしてこうプログラム以外だと(ry
>>816 俺は小4だが
プリント
ウィズズズ
コンソレ
だったな
ifがアイエフ、autoがアウト、gotoが後藤、locateがロカテだった
>>834 プログラムの話題は話題で玄人気取りの揚げ足取りが多いしw
全角ってバイナリ的、メモリ的に半角と一緒なの? AとAってどう違うんだろ?疑問で仕方ない。
勉強しろ。
ノートパッドで全角文字と半角文字を書いて 名前をつけて保存の文字コード別に保存して そのファイルをバイナリーエディタで読み込んでみろ。
>>839 バイナリーディタとかもってないんだが。
Notepadはバイナリー機能ある?
ねーよ。
JISの漢字と、Unicodeの漢字はどう違うの?Osではどっち使ってるん?
>>840 自分でchar配列の内容を数字で表示するプログラム書いて実行してみろ
>840 vectorにいくらでもあるのに検索もせず泣き言いってるような腐れ無能に理解は無理。
>843 , イ)ィ -─ ──- 、ミヽ ノ /,.-‐'"´ `ヾj ii / Λ ,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{ ノ/,/ミ三ニヲ´ ゙、ノi! {V /ミ三二,イ , /, ,\ Yソ レ'/三二彡イ .:ィこラ ;:こラ j{ V;;;::. ;ヲヾ!V ー '′ i ー ' ソ Vニミ( 入 、 r j ,′ ヾミ、`ゝ ` ー--‐'ゞニ<‐-イ ヽ ヽ -''ニニ‐ / `、 ⌒ ,/ >┻━┻'r‐'´ ヽ_ ヽ _ _ 」 ググレカス gugurecus ] (西暦一世紀前半〜没年不明)
逆襲のチャー
タムケンか!
VC++でバイナリファイルとして開いても見れる。 Windowsが32ビット版なら >edit /32 filename.txt でバイナリで開けれる。
ボイドゥwww
自分で適当に書いたソフトのソースコードを後で見直すと、もの凄く汚く感じます。実際、とても汚いです。 何回も実行するようなソフトではないのですが、出来れば綺麗に書きたいです。 どうすれば良質な、というか、綺麗なコードを書けるのでしょうか? 綺麗に書くコツとかあれば教えて下さい。
852 :
デフォルトの名無しさん :2011/12/21(水) 22:06:05.22
C言語で、サーバからデータを取得する際、 phpをつかったjavaのhttp通信(get)のようなことはできますか。 それとも直接、サーバにアクセスして取得するしかないのでしょうか。
854 :
デフォルトの名無しさん :2011/12/21(水) 22:32:55.37
>>853 どのようにおこなったらよいのでしょうか。
参考になるページなどございますでしょうか。
UnixはJISなの? それだけ教えてくれ。
858 :
852 :2011/12/21(水) 23:08:16.99
>>854 ありがとうございます。
また、xmlを解析することも可能でしょうか。
解散コールは1:55から
12.19 街頭演説、国民の怒りと危機管理への不安
http://www.youtube.com/watch?v=6PQf9GvXWB0 国民に罵声を浴びせられ駅前交番に避難するテレビアカヒの取材班 12/19正午 新橋駅前
http://blog-imgs-44.fc2.com/d/e/l/deliciousicecoffee/111219_124643_ed.jpg ,:' .l .::;',. :::;/..://:: /,':/ ', l、 .i ヽ
. ,' ..::| .::;',' :;:','フ'7フ''7/ ',.ト',_|, , ',.',
,' .::::::!'''l/!:;'/ /'゙ / '! ゙;:|:、.|、| 'l
. ,'. .:::::::{ l'.l/ 、_ _,. 'l/',|.';|
l :::::::::::';、ヾ  ̄ `‐-‐'/! ';. '
. ! :::::::::::/ `‐、 ゝ |'゙ |
| ::::::::/ \ 、_, _.,.,_ ノ::: ! 野田政権が早く終わりますように
|::::/. _rl`': 、_ ///;ト,゙;:::::./
.. `´ /\\ `i;┬:////゙l゙l ヾ/
,.:く::::::::`:、\ 〉l゙:l / !.|
. /:.:.:.:\:.:.:.:.`:、ソ/:.:| | | 19日の報道ステーション
/.:.:.:.:.:.:.:.:.:\:.:.:.:У:.:;l
http://livedoor.blogimg.jp/kingcurtis/imgs/e/d/ed2dbc66.jpg
>>858 xmlパーサーもあると思うけど、OSやコンパイラによって答えが変わるんじゃない?
>>858 もちろん解析できる。
ただ、自前でやるのはお勧めしない
>>851 とりあえずプログラミング作法とコードコンプリートを買う。
加えてリファクタリングも買ったほうがいい。 Cプログラミング診断室はWebだけでもいいかも
865 :
852 :2011/12/21(水) 23:59:11.31
>>862 物によって値が変わってしまうなら、
あまりやらないほうがいいみたいですね。
866 :
852 :2011/12/22(木) 00:02:13.81
867 :
851 :2011/12/22(木) 00:06:51.47
書籍のお金を惜しむなら図書館を利用すればいい 何かを得るには頭と手を動かすしか無い
ググったらpdfが出てきたので今から読んでみます。 書籍を教えてくれた人、どうもありがとうございました。
天才プログラマーと一緒にいると情けなくなるよね(´・ω・`)
複雑な関数ポインタをtypedefするなら、理解の補助としてまだわかるが、 typedef int* PINT; みたいな、基本型のポインタをtypedefしてるやつってどんな利点があるんだ? 個人的にはポインタであることを明確にするためにも"*"が見えたほうがいいと思うのだけど
>>855 JIS で規格化されてるんじゃなくて The Open Group の
Single Unix Specification ってヤツらしい。
SUS とでも略すか?
× ポインタ ○ ポインター
犬かよ。
× ポインタ ○ ポインヨ
JISコード(文字セット) ┃(文字コード) ┣ISO-2022-JP ┣EUC-JP ┗CP-932 UNICODE(文字セット) ┃(文字コード) ┣UTF-32 LE,BE ┣UTF-16 LE,BE ┗UTF-8 EBCDIC(文字セットかつ文字コード) ASCII(文字セットかつ文字コード) CP-437(文字セットかつ文字コード)
>>876 EBCDICも漢字の割り当てで色々無かったっけ?
8859とかも入れてやれよ。
EBCDIK って言うんだっけか? JISキーボードの入力できない文字はその名残りっていうね。
文字セットはフォント作る時に影響あるんかな。 JIS用とUnicode用でフォント違ったり?
881 :
852 :2011/12/22(木) 02:45:21.91
phpからデータを取得するのは、難しそうなので、 mySqlからデータを取得し、変数に蓄え 表示させることはできますでしょうか。
>>877 EBCDICに漢字は定義されていないと思ったが
せいぜいSO/SIに囲まれたIBM拡張が埋め込まれてる程度じゃね
>>865 うん?
>>866 libxmlとか。自前でやってもいいけど、それを想像するだけで気が滅入らないのならどうぞ。
>>867 そう、その本。
「リファクタリングしたいけど、壊れるのが怖いよね。テストも終わっちゃってるし。」というリーダーや
「リファクタリングしたらうまく動かなくなりました><」っていうかわいそうなプログラマに薦めてる。
けど、大抵はこの本読まずにネットで間違えた情報を得て終わってるようだ。(手順を踏まないから明らか)
価格はコードコンプリート以外は4000円ぐらいで収まってたような記憶があるよ。
それで得られるものを考えれば恐ろしく安い。
って、リファクタリングがすでに5000円だった。 まぁ、気にせずぽちってしまえばいいよ
カーニハン氏の著書The Practice of Programmingを読んでるんだが、第一章で UsersQueue{ int nitems,front,capacity; public int nusers(){...} と書いてある。nusers() とか nitems とか、余計に分かりにくくなっている気がしてならない。 まあ、単に俺の頭が悪いだけなんだろうけど・・・ 萎えそう・・・
>>885 users() とか items だと配列やコレクションっぽくね?
スレ違い。
nusers()とかnitemsとか、単語の区切りはどこだよ!って思ってしまうのです。 その前に書かれている for(i = 0; i < nelems; i++) elem[i] = i; というのも、nelemsって何だよ、とか、何故たった数文字、ent(s)を省略してelemとかにするんだ と思ってしまうのです。・・・スレ違いですよね。ごめんなさい。
昔からCの関数名(DOSコマンド名含む)は呪文だと(ry
public int number_of_users(){...} public int NumberOfUsers(){...}
Javaはお経みたいで生産性悪い
むしろ最近の流行は識別子がクソ長すぎるだろ。 識別子はクソ長くなってるのに、演算子はそのままだからバランスが悪くなって読みにくくなる。 c=a+b; IdentifyC=IdentifyA+IdentifyB; どっちが読みやすいよ?
スペースを空ければ済む話。 それより、動詞を使うあたり、はやはり出会ったことないだけあるな。
MOVE ZERO TO C ADD A TO C ADD B TO C
震災前 /::::::::::::::::::::::::::::::;;::ノ ヽ;::\ /::::::::;;;;;;;;;,,,;;...-‐''"~ ヽ:;::l |:::::::::::| 岡田 異音 |ミ| |:::::::/ ,,, ヽ,、 '|ミ| '|:::::::l '''"" ゙゙゙゙` |ミ| |:::::|. ,,r ‐、 ,, - 、 |/ ,/⌒| ノ ・ _), (. ・ `つ| | ( "''''" |"'''''" | ヽ,,. ヽ | | ^-^_,, -、 | | _,, --‐''~ ) | マニフェストもう守れない。どうしよう・・・・ 'ヽ ( ,r''''''‐-‐′ / 震災後 |:::::::::/ |ミ| |::::::::| ,,,,, ,,,,, |ミ| |彡|. '''"""'' ''"""'' |/ /⌒| -=・=‐, =・=- | | ( "''''" | "''''" | .ヽ,, ヽ .| キリッ | ^-^ | . | ‐-===- | 大震災が起こったのだからマニフェストの破綻も致し方ありません ,\. "'''''''" / 朝鮮民主党 解党
- ループ実行 FOR?TO?STEP?NEXT マワレ?カラ?カンカク?トジル
ヴァルニン
>>897 無理やり解釈すると、
長い識別子を否定する人だけあって、適当に考えた長い識別子の例がひどいね
ということだろう
>>819 からを読んで無理やり解釈した結果がそれか。
国語の勉強しながら100年ROMってろ。
言いたいこと違ったらしいよ
「はやはり出会ったことない」が解らん。 hayahari じゃなくて、wayahari と読むのかな? それでも後半が解らんが。
その程度も訂正しないとダメか。 さすがだな。
これなら文句無いってことかな c = a + b; VariableCIdentifier = VariableAIdentifier + VariableBIdentifier; どっちが読みやすいよ?
A British cargo vessel detained at Kotka harbour has been found to be carrying a shipment of American-made Patriot missiles.
Kotka港で拘束されたイギリス貨物船が、アメリカ製のパトリオットミサイルを積載していた事が分かった。
According to information received by YLE, the missile shipment originated in Germany and is destined for South Korea.
YLEが手にした情報によると、ミサイルの積荷はドイツを出発し、韓国を目的地としていた。
Onboard the ship are 69 of the missiles with their explosive warheads and propelling charges.
船には69発のミサイルと弾頭、発射薬が積載されていた。
http://www.yle.fi/uutiset/news/2011/12/missile_shipment_confirmed_aboard_detained_vessel_3120008.html
>>906 そういう読みやすさの話をしてるわけじゃないんだけど。。
全部一文字変数でプログラム作ってみればわかるんでない
初心者の俺の短いプログラムでも1文字でやるとこれ何の変数だ?ってなるからそういうことでしょ?
質問があります。このプログラムで出力される結果 #include <stdio.h> void main() { int line; int count; for(line = 0; line < 5; line++) { for(count = 0; count < 5; count++) { if(line >= count) { printf("@"); } else { printf(" "); } printf("\n"); } } 答えこうじゃないのですか? @ @ @ @ @ だれかくわしくお願いします
ちなみに 出力される結果はこうでした @ @@ @@@ @@@@ @@@@@
井include<stdio h> int main(void) { printf("hello world"); } コンパイルが通りません・・ 何が原因なのでしょうか?
>912 釣り針でかいな。
>>913 すいません・・・これで通りました・・
丼include<stdio h>
int main(void)
{
printf("hello world");
}
"."忘れてました。
さよけ。
917 :
デフォルトの名無しさん :2011/12/23(金) 00:51:39.48
C言語でmysqlからデータを取得して、 変数に格納し表示したいのですが、 どのようにしたらよいのでしょうか。
組み込みSQLでも使え
まず、服を脱ぎます。
C言語でgoogleのトップページヘアクセスするプログラム教えてください
921 :
デフォルトの名無しさん :2011/12/23(金) 01:50:43.68
>>918 mysqlにはデータをinsertすることはできるのですが、
mysqlからデータを取得して、1つひとつを
変数に格納するやり方がわかりません。
例
id number time
1 A 1210
2 B 1250
3 C 1300
これを変数(data[])に格納して、
printf("%s",data[2]);
みたいにして、結果:Bのように表示させたいです。
getchar(); だけの記述の時ってどういう意味があるのですか? ()の中に何も記述せず、c=getchar();みたいに 代入もしない時です。
>>923 Enter待ち。
まあ普通は使うべきではない。
>>925 なるほどぉ・・
かなり不思議な出力になったので、怖かったです・・
Q、ガソリン値下げ隊として活動していましたけど?
,..,,,,,,__
ノ~___∧__\
/ /⌒ ⌒ , ゞ \
/ /(●) (●) ヽ \
| / :::: (__人__) :::: i \
丶| ` ⌒´ | |
\ _/ |
,..,,,,,,__
ノ~___∧__\
/ /⌒ ⌒ , ゞ \
/ /(⌒) (⌒) ヽ \ そうでしたっけ?ウフフ
| /::::⌒(__人__)⌒::: i \
丶| トェェェイ | |
\ `ェェェ´ _/ |
http://www.youtube.com/watch?v=o4oBHdNo6Sk
PUSH ANY KEY
Shift押すぞ、コラ。
そこは勿論、Powerキーを押すべきかと。
名無しでいいよ:2011/08/15(月) 23:20:15.53 ID:2fed4jwtO FNS歌謡祭やHEY!×3の制作会社 株式会社CELL 東京都千代田区麹町2―2―4麹町YTビル 前バリ・REN4・野田らに政治献金した後藤組のフロント企業 メディアトゥエンテイワン 東京都千代田区麹町2―2―4麹町YTビル
プログラミングって、小技があったほうが難しい問題も解けたりするの? それとも思考力が全て?
総合力。
人脈が全て
>>930 雷電、聞いてくれ。あれは先週の木曜日の事だった。
>>934 そういったコミュ的な事が一番大事そうで
すげー鬱になるそれwww
C言語初心者でポインタに関する質問です。 以下のようなプログラムを書いています。 (1) char配列Aと、それより少し長いBがあります。 char *stringA = ... char stringB[sizeA + 1024]; (2) Bに対して、Aを加工した文字列を書き込みます。 someFunc(stringA, sizeA, stringB...) (3)このBのポインタをAに設定します。 stringA = stringB; (4)stringAの中身をファイルに書き出します。 wirteOut(stringA, sizeA+1024, filePath...); --- 以上の工程のなかで、どのタイミングでメモリ解放すればよいか悩んでいます。 具体的には、(3)のポイントで BをAに代入する前に、Aを解放するべきか BをAに代入したあとで、Bを解放するべきか そして、(4)のあとで Aを解放するべきか という点で悩んでおります。 もしよろしければ、それぞれでどのような効果があるのか。 また、上の考えが見当はずれであれば、どのようなコードが望ましいか を教えていただけないでしょうか。 よろしくお願いします。
>>932 >プログラミングって、小技があったほうが難しい問題も解けたりするの?
>それとも思考力が全て?
国語力の方がもっと必要。
このスレみてりゃ、わかるでしょ。
>(1) char配列Aと、それより少し長いBがあります。 まずchar配列Aがどこにあるんだよ
>>937 >C言語初心者でポインタに関する質問です。
>(2) Bに対して、Aを加工した文字列を書き込みます。
のあとで、A を解放。
>someFunc(stringA, sizeA, stringB...)
>(4)stringAの中身をファイルに書き出します。
のあとで、B を解放。(コードは固定配列みたいだから、本当に解放できるのか?は知らんが。)
要するに、「必要なくなったらなるべく早く解放する」と言うだけ。
あと、別に「(3)このBのポインタをAに設定します。 」なんてせずに、
{そのまま stringB の中身をファイルに書き出します。」だとまずいのか?
>>938 本読むとかは結構良いのかな?
スキルあげたいです。
スキルなんかあっても年齢が上がって人件費負担が増えてきたら切られて安い人件費の若者と入れ替えられるだけ 日本のIT企業なんかただの人身売買でピンはねして金儲けしているだけ
その通り
ルサンチマンは他所でやれ。
韓国政府がドイツから購入した弾道弾迎撃用パトリオットミサイルが、通関問題でフィンランドの港で足止めを食った。
フィンランド紙などは21日(現地時間)、「警察当局がヘルシンキ南部コトカ港に停泊した英国船籍
MSトールリバティー号に積まれたパトリオットミサイル69発をはじめ、ピクリン酸(picric acid)
など爆発物およそ100トン、プロペラ装置などを調べている」とし「この貨物は韓国と中国へ向かうものだった」と報じた。
この船は13日にドイツ・エムデン港を出発し、デンマークを経て、15日にフィンランド・コトカに入った。コトカはフィンランド首都
ヘルシンキから海岸線に沿って北東に120キロほど離れた港町。この船は韓国に寄って中国・上海に向かう予定だったと、海外メディアは伝えた。
船内にあったミサイルは、ドイツ政府から韓国国防部が購入した米国製の中古パトリオットミサイル。国防部の関係者は
「その間、ドイツに配置していたパトリオットミサイルの一部を輸入して、国内で使用してきた」と説明した。
海外メディアは、この船には中国・上海へ向かう爆竹用の爆発物質が一緒に積まれ、この爆薬がきちんと包装されていなかったため、
問題が発生した、と伝えた。
フィンランド国内法によると、自国に入港する船舶は国連危険物処理規定に基づき、爆薬を密閉されたコンテナに保管しなければならない。
しかし中国行きの爆薬がこの規定をきちんと守っていなかったため、フィンランド当局が船積み貨物に対する調査を行うことになったのだ。
またフィンランド当局は貨物の内容が爆竹とのみ記録されている点も問題視している。フィンランドのラサネン内相は現地テレビとのインタビューで、「合法的な武器貨物がフィンランド領海を経由するのは可能だが、ミサイルを爆竹と記録したのがおかしい」と述べた。
フィンランド税関のロナトマ報道官は「このため、武器が第3国に違法輸出されるのかどうか調べる必要がある」とし、関連当局に調査を要請した。
フィンランドでは武器が自国国境を通過する場合、法律に基づいて国防省の許可を受けなければならない。
http://japanese.joins.com/article/733/146733.html?servcode=400§code=400
>>939 char配列Aは別の関数で確保し、それを利用します。
言葉足らずで申し訳ありませんでした
>>940 なるほど。ありがとうございます。
> あと、別に「(3)このBのポインタをAに設定します。 」なんてせずに、
>{そのまま stringB の中身をファイルに書き出します。」だとまずいのか?
これも書き忘れましたが、加工を行う場合と行わない場合があり、
後のコードを共通化するために A -(加工)-> B -> A
と、Bを一時的な作業領域として作っています。
ちなみに、関数内でのみ利用する固定長配列の場合は
freeしなくてよいのでしたでしょうか?
>>946 >これも書き忘れましたが、加工を行う場合と行わない場合があり、
ああなるほど、ならいいんじゃない。
>ちなみに、関数内でのみ利用する固定長配列の場合は
>freeしなくてよいのでしたでしょうか?
malloc( ) した奴は free( ) する。
それ以外の領域は free( ) してはいけない。
あと、A は上位の関数で malloc( ) しているなら、free( ) も上位側で
やった方がいいと思う。
>>936 囲碁をやれ。ハッタリをかましたり、強硬手段とみせかけて実は守りをもくろんでいたり、一石八鳥の妙手を放ったり、素直にごめんなさいしたり、黙ってコミュ力をつけることができる
かもしれない。
毎回コンパイルと実行のコマンドをいちいち打つのが面倒臭いのですが どうしたらいいですか? コンパイル file.c 実行 file
bashに打ち込んでるコマンドを書いて実行
Qzって何か上からになってない?
>>951 でもbashというコマンドは打たないといけないんですか?
OSは何だ、使ってるコンパイラは何だ
>>949 >毎回コンパイルと実行のコマンドをいちいち打つのが面倒臭い
良い方法は、良い部下を持つこと。
>>957 visual c++
windows7
dynabook
google chrome
です。
>>959 VCだったらビルドのショートカットキーあるだろ…
>>960 ビルドとコンパイルの違いって何ですかね?
全然理解なく使ってるんですが...
気にしなくてOKですか?
動くからいいんですが。
ビルドは確かコンパイルとリンク両方実行することじゃなかったっけ
リンクって何?
プログラミングって金がかからないから本当に経済的。 PC一台あれば、学校の図書館でLANかりて、充電もできるからタダ。 PC買う金だけでいい。PCはバッテリー以外滅多に壊れないし。
リンカだっけ
>>963 自動車工場で例えると、
コンパイル=部品製造
リンク=自動車組立
震災前 /::::::::::::::::::::::::::::::;;::ノ ヽ;::\ /::::::::;;;;;;;;;,,,;;...-‐''"~ ヽ:;::l |:::::::::::| 岡田 異音 |ミ| |:::::::/ ,,, ヽ,、 '|ミ| '|:::::::l '''"" ゙゙゙゙` |ミ| |:::::|. ,,r ‐、 ,, - 、 |/ ,/⌒| ノ ・ _), (. ・ `つ| | ( "''''" |"'''''" | ヽ,,. ヽ | | ^-^_,, -、 | | _,, --‐''~ ) | マニフェストもう守れない。どうしよう・・・・ 'ヽ ( ,r''''''‐-‐′ / 震災後 |:::::::::/ |ミ| |::::::::| ,,,,, ,,,,, |ミ| |彡|. '''"""'' ''"""'' |/ /⌒| -=・=‐, =・=- | | ( "''''" | "''''" | .ヽ,, ヽ .| キリッ | ^-^ | . | ‐-===- | 大震災が起こったのだからマニフェストの破綻も致し方ありません ,\. "'''''''" / 朝鮮民主党 解党
>>966 じゃどっちも必要じゃね?
gcc test.c
はリンカもやってるの?
>>969 gccはコンパイルドライバ。なかでいろいろやるのがお仕事。
972 :
デフォルトの名無しさん :2011/12/23(金) 22:30:09.67
>>972 文字列みたいだから、strcpy()使えばいいんじゃない。
次スレ立てます
977 :
デフォルトの名無しさん :2011/12/24(土) 00:59:22.06
いえいえ
979 :
デフォルトの名無しさん :2011/12/24(土) 04:20:16.71
#include<stdio.h> int main(void){ char first, last; first = "kojima"; last = "yosio"; printf("姓=%s\n", first); printf("名=%s\n", last); return 0; } エラーが出ます どこがおかしいか教えてください><
>>979 答え char first*= "kojima", last* = "yosio";
>char first, last;
>first = "kojima";
>last = "yosio";
だと、char型のfirstとlastを宣言しているので
代入するにしてもfirst = 'a'みたいな感じでしか
できない。
あと、charのポインタがたでも初期化時以外では
>first = "kojima";
みたいなのは出来ないです。
2chでの不思議な現象 ◆アメリカが叩かれる◆ ( ´_ゝ`)フーン ◆中国が叩かれる◆ (´・∀・`)ヘー ◆飲酒を告白した大学生が晒される◆ いいぞ!もっとやれ! 退学に追い込め ◆朝鮮が叩かれる◆ <;丶`皿´><嫌韓厨うざい!! 右翼化傾向!! スレ違いニダ空気よめ!! <;丶`Д´><ネットウヨクうざい!! <;丶`Д´><同じ日本人として恥ずかしい!! <;丶`∀´><それっておまえらが嫌ってる韓国人と同じだなギャハ!!! <;丶`∀´><在日認定ですか? 認定厨乙! <;丶`∀´><右翼必死だな <;丶`∀´><2ちゃん脳乙! 朝鮮が嫌いなのは2ちゃんねらーだけだ!
在日は日本語読める香具師が多いからな
うめ
なぜ中国を巻き込みたがる? 中国政府、韓国のパトリオット問題に不快感
中国政府・外交部の劉為民報道官は23日の同部定例記者会見で、パトリオットミサイルについて言及、
中国との関係を否定するとともに不快感を示した。中国国際放送局が伝えた。
フィンランド警察当局がドイツから上海へと向かう途中だったイギリス船籍の貨物船を押収した際、船内に69発のパトリオットミサイルと
爆薬160トンなどが積まれていたことを発見したとの報道があったことを紹介。
劉報道官は「ドイツ国防省の報道官がすでに、ドイツから韓国に運ばれる貨物だと語った」とし、中国との関係性は見当たらないとコメントした。
また、「なぜいつも中国を問題に巻き込もうとしたがる人がいるのかわからない」語り、中国の関与が取りざたされたことに対して不快感を示した。
http://news.searchina.ne.jp/disp.cgi?y=2011&d=1224&f=politics_1224_003.shtml
め
り
く
り
と
り
酢
1000ならCが滅亡する
>>980 色々とひどいな。
再勉強しとけよ。復習だよ。
うめ
ます
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。