C言語なら俺に聞け(入門編)Part 67
レス数が1000を超えています。これ以上書き込みはできません。
★前スレ
C言語なら俺に聞け(入門編)Part 66
http://pc12.2ch.net/test/read.cgi/tech/1276339012/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★初心者、初級者の方は他の質問スレのほうが良いかもしれません。
例えば
【初心者歓迎】C/C++室 Ver.73【環境依存OK】
http://pc12.2ch.net/test/read.cgi/tech/1274395127/
とか
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 137代目
http://pc12.2ch.net/test/read.cgi/tech/1276810079/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
# サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
0002名無しさん@そうだ選挙に行こう
2010/07/10(土) 20:02:04乙
0003名無しさん@そうだ選挙に行こう
2010/07/10(土) 21:30:250004名無しさん@そうだ選挙に行こう
2010/07/10(土) 22:21:590005名無しさん@そうだ選挙に行こう
2010/07/10(土) 22:31:34コンパイラとしてはインクルードファイルの名前をcとc++で変えるはない。
0006名無しさん@そうだ選挙に行こう
2010/07/10(土) 22:32:090007名無しさん@そうだ選挙に行こう
2010/07/10(土) 22:48:03わけろ。
ヘッダにロジック書くなボケが。
0008名無しさん@そうだ選挙に行こう
2010/07/10(土) 23:06:370009名無しさん@そうだ選挙に行こう
2010/07/11(日) 00:15:140010名無しさん@そうだ選挙に行こう
2010/07/11(日) 15:12:100011名無しさん@そうだ選挙に行こう
2010/07/11(日) 15:46:30http://www.itmedia.co.jp/news/articles/1007/07/news065.html
0012名無しさん@そうだ選挙に行こう
2010/07/11(日) 16:37:29それはもう、いろんな場合で。
データ構造を意識するときには特に。
0013名無しさん@そうだ選挙に行こう
2010/07/11(日) 17:46:370014名無しさん@そうだ選挙に行こう
2010/07/11(日) 18:21:48main()すら知らないレベルなんかね
0015名無しさん@そうだ選挙に行こう
2010/07/11(日) 18:44:110016名無しさん@そうだ選挙に行こう
2010/07/11(日) 18:46:00みんな心を穏やかにしなさい
0017名無しさん@そうだ選挙に行こう
2010/07/11(日) 18:55:540018名無しさん@そうだ選挙に行こう
2010/07/11(日) 19:39:040019名無しさん@そうだ選挙に行こう
2010/07/11(日) 20:29:350020名無しさん@そうだ選挙に行こう
2010/07/11(日) 20:30:460021名無しさん@そうだ選挙に行こう
2010/07/11(日) 21:42:590022名無しさん@そうだ選挙に行こう
2010/07/11(日) 21:45:040023名無しさん@そうだ選挙に行こう
2010/07/11(日) 22:04:110024名無しさん@そうだ選挙に行こう
2010/07/11(日) 22:14:240025名無しさん@そうだ選挙に行こう
2010/07/11(日) 22:17:060026デフォルトの名無しさん
2010/07/12(月) 15:01:24includeじゃ駄目だったんですか?
0027デフォルトの名無しさん
2010/07/12(月) 15:11:550028デフォルトの名無しさん
2010/07/12(月) 18:44:19まず K&R2 を買うこと。これでわからなければ、もっとやさしい本をさがすこと。
いずれにしても K&R2 は無駄にはならない。
0029デフォルトの名無しさん
2010/07/12(月) 18:46:57http://pc12.2ch.net/test/read.cgi/tech/1276810079/718
0030デフォルトの名無しさん
2010/07/12(月) 19:09:11関数は配列を返せない仕様なので、ポインタかポインタのポインタで
返すという局面は良くある
0031デフォルトの名無しさん
2010/07/12(月) 20:11:070032デフォルトの名無しさん
2010/07/12(月) 20:12:29こんなの理解出来そうにない、、
0033デフォルトの名無しさん
2010/07/12(月) 20:32:32関係ないよ。
0034デフォルトの名無しさん
2010/07/12(月) 22:48:500035デフォルトの名無しさん
2010/07/12(月) 22:56:340036デフォルトの名無しさん
2010/07/12(月) 23:00:35慣れだよ慣れ
もっと複雑な宣言を書くこともいくらだってある
0037デフォルトの名無しさん
2010/07/12(月) 23:10:130038デフォルトの名無しさん
2010/07/12(月) 23:21:29いや何を参考にすればいいのか分かりません
0039デフォルトの名無しさん
2010/07/12(月) 23:26:030040デフォルトの名無しさん
2010/07/12(月) 23:31:090041デフォルトの名無しさん
2010/07/12(月) 23:33:02(゚∀゚)アヒャ?
0042デフォルトの名無しさん
2010/07/13(火) 00:33:39プロセス間通信
ファイルを介する
ネット経由
元のEXEの出力を利用者が手動で入力
好きなの選べ
0043デフォルトの名無しさん
2010/07/13(火) 01:06:49OSも言語も明らかだろ・・・お前の目は節穴かよ。
0044デフォルトの名無しさん
2010/07/13(火) 03:43:28そのための機構が標準入出力。
0045デフォルトの名無しさん
2010/07/13(火) 07:12:59でもコンパイラぐらいは書いて頂かんとなぉ
個人的にはpopenイチオシ。
0046デフォルトの名無しさん
2010/07/13(火) 13:44:06よろしければ教えていただきたいです。
�@キーボードから1つの実数値xを入力し、絶対値を表示するプログラムを作りなさい
�Aキーボードからテストの得点m(0以上100以下)を入力し
(1) m<60 の場合は「不合格」
(2) 60≦m<80 の場合は「普通」
(3) 80≦m の場合は「優秀」
と表示するプログラムを作りなさい。
0047デフォルトの名無しさん
2010/07/13(火) 13:51:380048デフォルトの名無しさん
2010/07/13(火) 14:00:23int main() {
double x;
scanf("%lf", &x);
printf("%f\n", fabs(x));
}
int main() {
int m;
scanf("%d", &m);
printf("%s\n", m < 60 ? "不合格" : m < 80 ? "普通" : "優秀");
}
0049デフォルトの名無しさん
2010/07/13(火) 14:00:52ありがとうございます。
宿題スレなるものがあったんですね。
今は理解よりも提出を優先したいのでそちらに書き込みました。
>>46はスルーでお願いします。
0050デフォルトの名無しさん
2010/07/13(火) 14:27:03ありがとうございます!
�Aはそのプログラムでおkでした。
�@はエラー出たので、("%f\n", fabs(x));→、("%d\n", abs(x));にしたところ正しい結果になりました。
0051デフォルトの名無しさん
2010/07/13(火) 14:49:41CじゃなくてC++でやってない?
fabs使うなら、#inlucde <math.h>追加で
0052デフォルトの名無しさん
2010/07/13(火) 14:50:580053デフォルトの名無しさん
2010/07/13(火) 23:46:100054デフォルトの名無しさん
2010/07/14(水) 22:25:250055デフォルトの名無しさん
2010/07/14(水) 22:35:04split_stringの中では,splits[0]〜splits[3]を普通に参照できるのですが,split_stringの外に出ると"Segmentation fault"になってしまいます。。。
mallocってヒープ内に領域が取られて,関数の外に出てからも生き続けるんじゃなかったっけ・・・状態です。
誰かお助けを〜〜〜orz
-----
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LENGTH 0x80
int split_string(char** splits, char* str, const char* delim)
{
int i, len;
int size;
char* cp;
char** words;
words = (char**)malloc(sizeof(char*) * MAX_LENGTH);
cp = (char*)malloc(sizeof(char) * (strlen(str) + 1));
strcpy(cp, str);
for(len=0; len<MAX_LENGTH; len++) {
if((words[len] = (char*)strtok(cp, delim)) == NULL) break;
cp = NULL;
}
005655 続きです。
2010/07/14(水) 22:35:51for(i=0; i<len; i++) {
size = sizeof(char) * (strlen(words[i]) + 1);
splits[i] = (char*)malloc(size);
memcpy(splits[i], words[i], size);
}
free(words);
return len;
}
int main(int argc, char** argv)
{
int i, length;
char* line = "1\t2\t3\t4";
char** splits;
length = split_string(splits, line, "\t");
for(i=0;i<length;i++)
{
printf("%s\n", splits[i]);
}
}
0057デフォルトの名無しさん
2010/07/14(水) 22:55:53length = split_string(&splits, line, "\t");
こうしないとsplitsに値が入らないんじゃね。
0058デフォルトの名無しさん
2010/07/14(水) 23:46:390059デフォルトの名無しさん
2010/07/15(木) 01:22:31typedef struct {
unsigned short Type;
unsigned long Size;
unsigned short Reserved1;
unsigned short Reserved2;
unsigned long Offset;
} BMPFILEHEADER;
これを
printf("%d",sizeof(BMPFILEHEADER));
でサイズ調べると16と出るのはなんで?
006055の松井です
2010/07/15(木) 01:23:53ありがとうございました。&splitsを引数(char*** splits)にするようにsplit_stringを変更したら
無事動きました。
いまは、どうやってchar** splits隷下のオブジェクトをmainが終わる前にfreeすれば
よいかわからないです><
誰かお助けを〜〜〜orz
0061デフォルトの名無しさん
2010/07/15(木) 01:34:54バイト境界がintのサイズに調整されるから
unsigned short Type; //2byte
//パディング2nyte
unsigned long Size; //4byte
unsigned short Reserved1; //2byte
unsigned short Reserved2; //2byte
unsigned long Offset; //4byte
006255の松井です
2010/07/15(木) 01:41:43えーーーっ、それほんとですか? それコンパイラのバグですよ どこのコンパイラですか?
いくつを期待しているの?
さて、BMPFILEHEADERが16で良いんでしょうか、イクナイならコンパイラに期待値なるように汁と
命令する。
ま、構造体の各要素のalignmentを調べればPaddingが...
alignment,paddingってなんだっけ、忘れたorz
でプリンしないようにする命令も忘れたorzorz
0063デフォルトの名無しさん
2010/07/15(木) 01:45:34環境依存な話なんだけどね、アライメントというのがある。
CPUによっては丁度いい位置にデータがあるとアクセスが早くなる(または
丁度いい位置に無いとエラーになる)ため、構造体のメンバの位置を調整
する事がある。
http://www7b.biglobe.ne.jp/robe/cpphtml/html03/cpp03014.html
unsigned short Type; // 2バイト
// 計2バイトだけど次がunsigned longなので切り上げて4バイト
unsigned long Size; // 4バイト
// 計4バイト
unsigned short Reserved1; // 2バイト
unsigned short Reserved2; // 2バイト
// 計4バイト
unsigned long Offset; // 4バイト
// 計4バイト
合計16バイト。
>>62
(゚∀゚) ?
0064デフォルトの名無しさん
2010/07/15(木) 01:47:09深いところから逆順にループさせて解放する
要素数はlengthで返してるみたいだからmain()の最後で以下を実行
for (i = length; i > 0; i--) {
free(splits[i - 1]);
splits[i - 1] = NULL;
}
free(splits);
splits = NULL;
006655の松井です
2010/07/15(木) 22:04:27ありがとうございます。
ところで、なぜ逆順に解放しなければいけないんですか?
あと、splits[i - 1] = NULL;は必要なんですか?
いまのところ、
void free_splits( char*** splits, int length )
{
int i;
if( length =< 0 || length > MAX_LENGTH || *splits == NULL ) {
return;
}
for (i = length; i > 0; i--)
{
free( (*splits)[i - 1] );
}
free(*splits);
*splits = NULL;
}
にしてます。
0067デフォルトの名無しさん
2010/07/15(木) 22:30:24俺が見たところ、別に逆順に処理する必要はない
一般的には、リストを開放する場合など、逆順にしなければならないことが多い
splits[i -1] = NULL は、万が一にも二重フリーしないように
フリーしたときにNULLを入れておくスタイルだな。稀によく見る
バグの多い人は、そうしておくといいかもしれん。俺はやらないけど
0068デフォルトの名無しさん
2010/07/16(金) 11:50:14>別に逆順に処理する必要はない
動作が同じならそれで良いと言うならそう。
それ以上のことを考えると、逆順には意味がある。
>一般的には、リストを開放する場合など、逆順にしなければならないことが多い
これはデタラメ。
0069デフォルトの名無しさん
2010/07/18(日) 14:21:19自分は他言語をやっているのですが、例えばMySQLなどを学習していても基本的にはPHP、Perl、Java位しか連携のテーマが出てきません
CやC++でもMySQLや PostgreSQLのようなフリー版のDBに接続できるのでしょうか?
くだらない質問ですみません
0070デフォルトの名無しさん
2010/07/18(日) 17:43:560071デフォルトの名無しさん
2010/07/18(日) 17:54:100072デフォルトの名無しさん
2010/07/18(日) 18:14:15そりゃできるよ
他の言語と同じく、DB用ライブラリ(Cの場合は大概そのDBについてる)で接続すればいい
0073デフォルトの名無しさん
2010/07/18(日) 19:13:54オライリー本の前の段階でいいC言語の参考書って何がありますでしょうか?
Amazonや書店などで調べているのですが、どうもCはどれから始めるのがいいのか分かりにくくて
0074デフォルトの名無しさん
2010/07/18(日) 20:20:28やさしいCとか明解でいいんじゃないかな
0075デフォルトの名無しさん
2010/07/18(日) 23:24:19char *name="あいうえお";
while(name!='\0'){
printf("%c",name);
name++;
}
}
ぽいんたがどうなってるか調べてて
今プログラムを実行したら
windowsのブート音がピーピーなって
応答なしになりました。なぜこのようなことになったのでしょうか?
0076デフォルトの名無しさん
2010/07/18(日) 23:26:19*name!='\0' じゃないから
0077デフォルトの名無しさん
2010/07/19(月) 00:16:07ハッシュ法には、オープンアドレス法を使用すること。
お願いします。
0078デフォルトの名無しさん
2010/07/19(月) 00:25:15http://kimama2index.info/algorithm/hash_openAddress.html
ここの解説がわかりやすいから読むといいよ。
オープンアドレス法は埋まってくると加速度的に効率が悪くなる様が
手に取るようにわかるから楽しいよな。
0079デフォルトの名無しさん
2010/07/19(月) 00:30:42応答なしになった理由→>76
ピーピー鳴った理由→nameはポインタだから、その値を文字と見做すことに無理がある。
008075
2010/07/19(月) 02:38:06char *name="あいうえお";
while(*name!='\0'){
printf("%c",*name);
name++;
}
}
こうしてちゃんと文字列が表示されるようになったのですけど
name++を*name++にしても結果は同じです。
この2つは同じものと考えていいのですか?
0081デフォルトの名無しさん
2010/07/19(月) 02:46:160082デフォルトの名無しさん
2010/07/19(月) 02:51:37全然違う。
name++ は、ポインタ name の値をインクリメント(1つ増加)してから、インクリメント直前のポインタ値を返す。
*name++ は、ポインタ name の値をインクリメント(1つ増加)してから、インクリメント直前のポインタ値が指すアドレスの内容を返す。
今回たまたま同じ動作になっているのは、その返された値を何にも使用していないため。
0083デフォルトの名無しさん
2010/07/19(月) 17:00:14int main(void)の中にstructといれる場合と、外に入れる場合ありますが
どう違うんですか?細かすぎて死にそうです。
0084デフォルトの名無しさん
2010/07/19(月) 17:07:55{
0085デフォルトの名無しさん
2010/07/19(月) 17:10:570086デフォルトの名無しさん
2010/07/19(月) 17:16:27>>83
ttp://codepad.org/7aw4JQAd
要するにこういうこと?
俺が勘違いしてるのかもしれないけど…
0087デフォルトの名無しさん
2010/07/19(月) 17:18:07struct ってのは関数なんですか?
全く意味がわかりません。
structを関数のように
struct()とかもう意味不明です。
0088デフォルトの名無しさん
2010/07/19(月) 17:20:20関数じゃないよ 構造体を宣言するために必要なだけだよ
struct()はおれから見ても意味不明だが
実際にコード見なきゃわからんな
0089デフォルトの名無しさん
2010/07/19(月) 17:21:460090デフォルトの名無しさん
2010/07/19(月) 17:35:240091デフォルトの名無しさん
2010/07/19(月) 17:37:26しばらくCやってなかったからtypedef struct 〜のやりかたを忘れてしまったんだ
すまない
0092デフォルトの名無しさん
2010/07/19(月) 17:40:530093デフォルトの名無しさん
2010/07/19(月) 17:43:450094デフォルトの名無しさん
2010/07/19(月) 17:44:250095デフォルトの名無しさん
2010/07/19(月) 18:05:16は?ここはC言語のスレだろうが。
C++に移動しろよ。
0096デフォルトの名無しさん
2010/07/19(月) 18:44:40構造体型と構造体型変数はどう違うの?
struct A{}Bってのが基本形だっけ?
0097デフォルトの名無しさん
2010/07/19(月) 21:13:37> 構造体型と構造体型変数はどう違うの?
int型とint型変数の区別が付けば分かりそうなもんだけど。
0098デフォルトの名無しさん
2010/07/19(月) 21:42:420099デフォルトの名無しさん
2010/07/19(月) 21:50:570100デフォルトの名無しさん
2010/07/19(月) 21:54:040101デフォルトの名無しさん
2010/07/19(月) 22:00:04お前殴っていい?腹立って仕方ないわ。
0102デフォルトの名無しさん
2010/07/19(月) 22:04:18モニタでも殴ってろよw
0103デフォルトの名無しさん
2010/07/19(月) 22:12:27低脳らしく、すぐ暴力にはしるんだな
さすが低脳基地外の鑑
0104デフォルトの名無しさん
2010/07/19(月) 22:24:12ちょっとむかついただけだろうが・・・
何これ?急にこのスレ加曾利出した。
意味わかんね。
0105デフォルトの名無しさん
2010/07/19(月) 22:25:37名言が生まれたな
0106デフォルトの名無しさん
2010/07/19(月) 22:28:56お前殴っていい?腹立って仕方ないわ。
0107デフォルトの名無しさん
2010/07/19(月) 22:41:030108デフォルトの名無しさん
2010/07/19(月) 23:09:06http://www.kumei.ne.jp/c_lang/
http://d.hatena.ne.jp/studiokingyo/
http://homepage3.nifty.com/mmgames/c_guide/
この3つは超有名なサイトであり、勉強するのに最適であるとの結果が出ている。
0109デフォルトの名無しさん
2010/07/19(月) 23:11:07例えば sizeof(int) のオペランドは型であって変数ではない
0110デフォルトの名無しさん
2010/07/19(月) 23:31:47この基本が理解できればポインタごときで躓くことはなくなる
0111デフォルトの名無しさん
2010/07/19(月) 23:33:09最初のハードルあげようとするのはアホ。
0112デフォルトの名無しさん
2010/07/19(月) 23:34:00それとも全部「〜が〜のときは実行して」みたいみたいな感じがいいんでしょうか?
0113デフォルトの名無しさん
2010/07/19(月) 23:49:160115デフォルトの名無しさん
2010/07/20(火) 00:32:220116デフォルトの名無しさん
2010/07/20(火) 00:41:37char c = 'aaaa';
なんで四文字まで入るんですか?
0117デフォルトの名無しさん
2010/07/20(火) 00:42:22入ってないですよ
0118デフォルトの名無しさん
2010/07/20(火) 00:43:02なら入るんじゃね。
0119デフォルトの名無しさん
2010/07/20(火) 00:49:530120デフォルトの名無しさん
2010/07/20(火) 00:51:530121デフォルトの名無しさん
2010/07/20(火) 00:56:00(#^ω^)ビキビキ
0122デフォルトの名無しさん
2010/07/20(火) 01:07:44末尾の空文字(\0)の分も含めるから不適切
というか[4]の中の4は不要
0123デフォルトの名無しさん
2010/07/20(火) 01:08:41ピッタリの時は特別だよ
0124デフォルトの名無しさん
2010/07/20(火) 01:09:08ttp://www.bohyoh.com/
ここも入れてやってよw
0125デフォルトの名無しさん
2010/07/20(火) 01:16:27#include <stdio.h>
int main(void) {
char c[] = "aaaa";
printf("%d",sizeof(c));
return 0;
}
0126デフォルトの名無しさん
2010/07/20(火) 01:17:00関数の作り方くらいまではある程度軽くよんで、あとは自分でなんか工夫しながら
やっていったほうがいい。そうすりゃ、構造体とかポインタとか「あー、こういう場面でつかうんだ」みたいにすんなりわかる。
理屈じゃないんだよね。単純にExcelのボタンを押すとどうなるかってのを文章で書くのとそう変わらない。
で、K&Rだか面白いとなれば、本当に深いところまで理解できてくる。
0127デフォルトの名無しさん
2010/07/20(火) 01:17:430128デフォルトの名無しさん
2010/07/20(火) 01:30:25でっていう
ピッタリのときは特別なんだよ
0129デフォルトの名無しさん
2010/07/20(火) 01:55:24とりあえずmakeは出来るんだけど、gccだとこの警告は出ない。
SunCCのマニュアルを読む限り、/usr/includeを読み込むはずで、
stdio.hに宣言はきちんと書いてあって、一体何が問題なのかわかる人います??
0130デフォルトの名無しさん
2010/07/20(火) 01:57:12c[]をc[4]に変えてみるといいよ。
0131デフォルトの名無しさん
2010/07/20(火) 02:05:17#ifdefによって関数宣言がスキップされてるんだろう
cc -E 等で調べてみては
0132デフォルトの名無しさん
2010/07/20(火) 02:13:210133デフォルトの名無しさん
2010/07/20(火) 02:29:08座標P(x,y) → 任意の点(x,y)
任意の点Pが、「三角形ABCの中か?、外か?」を判断する関数 → 関数F(P, A,B,C)
core2専用(SSE3前提)として、考えうる限りのもっとも高速に動作する関数Fのコード例をお願いします。
(インラインアセンブラはintel書式でもgcc書式でもどちらでも結構です)
0134デフォルトの名無しさん
2010/07/20(火) 02:33:37ありがとう! -Eオプションすごい。とりあえず出力したものを見てみたら、
/usr/include/stdio.h
じゃなくて
/usr/local/sunstudio12.1/prod/include/cc/stdio.h
を見てることが発覚&sunstudioのstdio.hにはfilenoなんて宣言されてなかった。
0135デフォルトの名無しさん
2010/07/20(火) 07:22:43このスレじゃ無理じゃね。つーか、くれくれは宿題スレへ。
0136デフォルトの名無しさん
2010/07/20(火) 09:46:22アセンブラ知らね
typedef struct
{
double x, y;
}pos_t;
int is_inside(pos_t P, pos_t A, pos_t B, pos_t C)
{
double alpha, beta, div;
pos_t AB, AC, AP;
AB.x=B.x-A.x;
AB.y=B.y-A.y;
AC.x=C.x-A.x;
AC.y=C.y-A.y;
AP.x=P.x-A.x;
AP.y=P.y-A.y;
div=1.0/(AC.y*AB.x-AC.x*AB.y);
alpha=(AC.y*AP.x-AC.x*AP.y)/div;
beta=(-AB.y*AP.x+AB.x*AP.y)/div;
if(0.0<alpha && alpha<1.0 && 0.0<beta && beta<(1.0-alpha)) return 1;
return 0;
}
0137デフォルトの名無しさん
2010/07/20(火) 09:50:23訂正
alpha=(AC.y*AP.x-AC.x*AP.y)/div;
beta=(-AB.y*AP.x+AB.x*AP.y)/div;
↓
alpha=(AC.y*AP.x-AC.x*AP.y)*div;
beta=(-AB.y*AP.x+AB.x*AP.y)*div;
0138デフォルトの名無しさん
2010/07/20(火) 10:37:18>アセンブラ知らね
すいませんが、答えなくて結構です。
0139デフォルトの名無しさん
2010/07/20(火) 10:42:53C言語スレだべ
コンパイラの最適化に任せる程度でよかろ
Intel コンパイラを使うと最適化は結構すごいらしいじゃないか
gcc はダメぽだが
0140デフォルトの名無しさん
2010/07/20(火) 12:23:46値渡しにするなら引数を使って計算したほうが早いかもしれない
調べてないけど
0141デフォルトの名無しさん
2010/07/20(火) 12:28:290142デフォルトの名無しさん
2010/07/20(火) 12:30:160143デフォルトの名無しさん
2010/07/20(火) 12:31:510144デフォルトの名無しさん
2010/07/20(火) 13:53:410145デフォルトの名無しさん
2010/07/20(火) 14:00:100146デフォルトの名無しさん
2010/07/20(火) 14:12:420147デフォルトの名無しさん
2010/07/20(火) 14:24:100148デフォルトの名無しさん
2010/07/20(火) 19:02:22スレッドが停止してくれないんですけど、誰か分かりますか?
作成したExeをそのまま実行すると停止してるように見えるのに・・・
0149デフォルトの名無しさん
2010/07/20(火) 23:32:10どうも読み方や意味が分からないから関数名がおぼえれないんだ。。。
0150デフォルトの名無しさん
2010/07/21(水) 00:10:53機能別索引な関数マニュアル(こういうことやりたいけど、似たようなの無いかね?) と
アルファベット順の関数マニュアル(あの関数の引数 どうだったっけか?)
それぞれあると嬉しい
標準関数の話なら ある程度命名の法則性があったり、なかったり
長くならないように短縮してたりするからなぁ…
0151デフォルトの名無しさん
2010/07/21(水) 00:12:490152デフォルトの名無しさん
2010/07/21(水) 00:21:25メジャーな書き方あれば・・・
0153デフォルトの名無しさん
2010/07/21(水) 00:52:57歩くリファレンスと呼ばれたいね
0154デフォルトの名無しさん
2010/07/21(水) 00:55:080155デフォルトの名無しさん
2010/07/21(水) 00:58:27ってかどこに書いてあるの?
0156デフォルトの名無しさん
2010/07/21(水) 01:38:140157デフォルトの名無しさん
2010/07/21(水) 01:53:030158デフォルトの名無しさん
2010/07/21(水) 01:54:100159デフォルトの名無しさん
2010/07/21(水) 02:06:440160デフォルトの名無しさん
2010/07/21(水) 05:45:06定積分でよければシンプソン方が簡単に見つかると思うけど。
いずれにしても、数学的な知識なしで書ける訳ではないよ。
0161デフォルトの名無しさん
2010/07/21(水) 12:50:35とにかく簡単なのは区分求積法だな、シンプソン法のがいいけど
でも今のCPUだと大概は区間細かくしまくっても余裕だから
あまり恩恵が無いが
0162デフォルトの名無しさん
2010/07/21(水) 17:58:080163デフォルトの名無しさん
2010/07/21(水) 18:20:19つまんねえって
0164デフォルトの名無しさん
2010/07/21(水) 18:21:140165デフォルトの名無しさん
2010/07/22(木) 19:52:000166デフォルトの名無しさん
2010/07/22(木) 19:53:19実質的にはコマンドのcat
0167デフォルトの名無しさん
2010/07/22(木) 20:17:45これって調べたらラテン語じゃね?
どこで知ったんだよ
これを知ってるやつはほとんどいないだろうな
0168デフォルトの名無しさん
2010/07/22(木) 21:51:540169デフォルトの名無しさん
2010/07/22(木) 22:25:52いや、知ってる奴は多いと思うぞ。
UNIXのコマンドの中で、catは印象に残る変な名前best4に入るから、ちょっとしたトリビアになってる。
UNIXを触らない専門学校卒とか文系卒には馴染みがないのかもしれんが。
0170デフォルトの名無しさん
2010/07/22(木) 22:27:550171デフォルトの名無しさん
2010/07/22(木) 22:30:440172デフォルトの名無しさん
2010/07/22(木) 22:42:35おまえが触っているのは Linux ってオチはなしだぜ
0173デフォルトの名無しさん
2010/07/23(金) 00:21:500174デフォルトの名無しさん
2010/07/23(金) 02:54:42catは猫
0175デフォルトの名無しさん
2010/07/23(金) 10:48:05ですよねー
0176デフォルトの名無しさん
2010/07/23(金) 11:46:27技術書に限らずその英文に普通に使われいます。
unix で cat を man すれば catenate だと書いてあるし、
strcat の gcc や MS のヘルプ(英文)にも catenate と書いてある。
こんなの高校程度の英語だろ。あ、夏休みか。。。。
0177デフォルトの名無しさん
2010/07/23(金) 12:47:470178デフォルトの名無しさん
2010/07/23(金) 13:19:21ちゃんと読めてるのか?
そもそもシノニムなんだから、機能の解説としてconcatenate が使われていても意味ないぞ。
由来に catenate だと書いてあるだろ。
0179デフォルトの名無しさん
2010/07/23(金) 13:46:14ネイティブの気持ちはわからんけど、なぜコマンドをconcatにしなかったと思うらしいね
conに付く意味が大きいからかな
パっと見、どの言語も連結に関する関数名は、ほぼconcat…だしね
0180デフォルトの名無しさん
2010/07/23(金) 13:47:39>strcat の gcc や MS のヘルプ(英文)にも catenate と書いてある。
どのunixの話?
gcc や MSのヘルプってどのバージョン?
catenate が使われている man page ってどこにあるのよ?
0181デフォルトの名無しさん
2010/07/23(金) 15:20:110182デフォルトの名無しさん
2010/07/23(金) 16:22:55cat も strcat も concatenate を略した物だとMSのヘルプに明記されている
この話題はもう終了でいいよ
0183デフォルトの名無しさん
2010/07/23(金) 16:30:06辞書に載ってないは言いすぎだろ…
catenateさんに謝れ
0184デフォルトの名無しさん
2010/07/23(金) 16:32:04そろそろ中学生用の辞書は卒業したらどう?
0185デフォルトの名無しさん
2010/07/23(金) 16:46:14グロ注意
0186デフォルトの名無しさん
2010/07/23(金) 16:56:220187TreeBoa
2010/07/23(金) 19:40:45こんなくそ言語まだやってんの? メモリ管理のめんどくせえくそ言語wwwwwwwwwwwwwwwwwwwwwwww
ばかすぎてかわいそうだよwwwwwww
きみたちどうせあれだろwwww C言語やったらC#とかやんだろばかだからwwwwwww
Objective-Cやれよな?wwwwwばかだから御前等本当かわいそうwwwww
必死に「メモリ解放!! エッサエッセ!!メモリ解放!!エッサ free!! free!ビュンビュン!」
とかわめいてればいいんだよwwwwwwwくそどもが
御前等 Perlじゃなくて PHPとかやってるあたまの悪そうな奴だからな ホ ン ト ゴ ミ wwwwwww
0188デフォルトの名無しさん
2010/07/23(金) 20:05:47京都大霊長類研究所はどうなるんだろう
0189デフォルトの名無しさん
2010/07/23(金) 20:12:500190デフォルトの名無しさん
2010/07/23(金) 20:15:220191デフォルトの名無しさん
2010/07/23(金) 20:38:25基本的に怪しいと思ったら全殺しだよ。
0192デフォルトの名無しさん
2010/07/23(金) 22:21:11PerlPerlPerlPerlPerlPerlPerlPerl
PerlPerlPerlPerlPerlPerlPerlPerlPerl
PerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerl
PerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerl
PerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerl
PerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerl
PerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerl
0193デフォルトの名無しさん
2010/07/23(金) 22:30:28こんなの独学だろ頭湧いてんのか?wwwマジ受ける御前等のゴミさ加減には
塩加減もほどほどにしろよな目糞鼻くそ
てめえらが borland C++コンパイラとかcygwinでコンパイルしてる姿みると本当笑っちまうぜww
catとかくだらねえ話題ほざいてるし御前等レベル惹く杉んだよカスがよww
てめえら一生クソコード書いてんだろww勉強に必死そうだしww クハハハハハハハwwwwまじ雑魚過ぎだわ
こいつらバカだからステップ数競ってんだろwww perlじゃ一瞬で糞みてえなコードかけんだよ雑魚ww
Cで深い部分やるとかいってるけどさ てめえらの脳味噌できるの?バイナリとかほざいてるけど君たちwww
別にそこまで凄いことやらないのに何CPUとかわめいてんの?wwwばかだろほんと
いたいたいたいちあちあちあいたいちあちあたいたすぎるよ君たちwwwwwwwwwwwwwwwwwwwwwwwww
バカはポインタでつんでんだろwwあほが
とりあえずこんなゴミスレ立てるんじゃねえよwww すげーストレスたまってんだよばかがしね
Perl=大魔導師
C=コジキ
ですねwwwwwwwwwwwwwwwwwwwwwwwww
0194デフォルトの名無しさん
2010/07/23(金) 22:52:420195デフォルトの名無しさん
2010/07/23(金) 23:51:56宿題スレにもこういうのが沸いていているんですが、煽ると結構楽しいので、‥‥‥まあゆっくりしていってください。
0196名無し
2010/07/24(土) 16:08:03ボクはC言語でpspのゲームがつくりたいです
どうやったらつくれますかおしえてください
コンパイラって言うのを入れないと駄目なんですがどうやっているれるんですか?
C言語ではなにができますか!?詳しく教えてください!
太鼓の達人みたいなゲーム創りたいです!
0197名無し
2010/07/24(土) 16:15:05どうやったらなれますか!?C言語やる意味があるとおもてるバカな天才にもおききしたいです!
何でC言語をやっているんですか?!詳しく教えてください!!!!!!!!!!!!!!!!!!!!!!!!
御願いします! バカになる努力とかしてますか?
アイちゃんってなんですか?脳味噌たりてますか?!
Perlはクソだとオモッテルんですか?! 頭兵器ですか? Cやれば仕事があると勘違いしてるんですか?!
頭の弱いゴミドモ教えてくださいwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0198名無し
2010/07/24(土) 16:18:34宗教なんですか?
C言語もそうだとおもいませんか?perlもそうですよ
バカみたいに 孫サン!孫サン!ソフトバンクとかわめいてるゴミはしんだほうがいいとおもいますね☆
ホリポリマンセー 孫サンマンセー と拝んでるばかどもはしねばいいともいますよ♪
ホリポリってperlやってたみたいですが逮捕されちゃいましたね^^;wwwwwwwwwwwwwww
wwwwwwwwwwwww
まじうけますねwwwwwwwwwww クソドモが影響うけて起業しちゃって最高ですよwwwwww
wwwwwwwwwwww
wwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwww かばんもちとかやってるやつどうなったんでしょうねwwwwwwwwww
ばかすぎてオナラが10000発でですたすけてくださいwwwwwwwww
0199デフォルトの名無しさん
2010/07/24(土) 16:18:52つまんねえって
0200名無し
2010/07/24(土) 16:20:30どういうのだったらおもしろいいですか?具体的にこたえてくださいごみwww
クソスクリプト書いてるてめえにいわたくねえよごみwwww
なあ?www答えてみろよごみがおいおいいおいwwwww
クソガリクソチビがわめいてんじゃねえよこらwwwww
なあ?www 180センチ以下はホリポリってんだよかすwwwwwwチビはしんどけってなあ?wwwwwwww
0201デフォルトの名無しさん
2010/07/24(土) 16:26:510202名無し
2010/07/24(土) 16:29:05おもしろさ評価してるゴミがつれたつれたwwwwおもしろさ評価してるゴミがつれたつれたwwww
おもしろさ評価してるゴミがつれたつれたwwwwおもしろさ評価してるゴミがつれたつれたwwww
おもしろさ評価してるゴミがつれたつれたwwwwおもしろさ評価してるゴミがつれたつれたwwww
おもしろさ評価してるゴミがつれたつれたwwwwおもしろさ評価してるゴミがつれたつれたwwww
おもしろさ評価してるゴミがつれたつれたwwwwおもしろさ評価してるゴミがつれたつれたwwww
おもしろさ評価してるゴミがつれたつれたwwwwおもしろさ評価してるゴミがつれたつれたwwww
おもしろさ評価してるゴミがつれたつれたwwwwおもしろさ評価してるゴミがつれたつれたwwww
おもしろさ評価してるゴミがつれたつれたwwwwおもしろさ評価してるゴミがつれたつれたwwww
おもしろさ評価してるゴミがつれたつれたwwwwおもしろさ評価してるゴミがつれたつれたwwww
おもしろさ評価してるゴミがつれたつれたwwwwおもしろさ評価してるゴミがつれたつれたwwww
0203名無し
2010/07/24(土) 16:30:19おもしろさもとめてないですよ^^;クソガリチビちゃん
俺よりゴミなくせしてでしゃばってんじゃえねえよカス^^;
0204デフォルトの名無しさん
2010/07/24(土) 16:31:440205デフォルトの名無しさん
2010/07/24(土) 16:33:12ゴミがゴミに必死にレスつけてどうする
落ち着け
0206デフォルトの名無しさん
2010/07/24(土) 16:35:320207デフォルトの名無しさん
2010/07/24(土) 16:36:380208デフォルトの名無しさん
2010/07/24(土) 16:38:090209デフォルトの名無しさん
2010/07/24(土) 16:48:11HN「緑蛇」
0210デフォルトの名無しさん
2010/07/24(土) 17:26:010211デフォルトの名無しさん
2010/07/24(土) 19:49:35おもえ力抜きすぎwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
もっと本気出せよwwwwwwwwwwww
もしかしてヘボイの???????????wwwwwwwww
だったらVIPで1人ですれたてて練習してこいks
マジks過ぎて2chが廃れるからやるならミィやグレエでやれks
もしかしてマイアカウント荒らしたくないゆとり君か?
それならニコ生でも荒らしてこいks
0212デフォルトの名無しさん
2010/07/25(日) 08:26:44ワロスワロスwwwwwwwwwww馬鹿ども必死wwwwwwwwwwwwww
0213デフォルトの名無しさん
2010/07/25(日) 11:45:280214デフォルトの名無しさん
2010/07/25(日) 19:14:230215デフォルトの名無しさん
2010/07/25(日) 20:35:26http://pc12.2ch.net/test/read.cgi/tech/1276128624/
ここにもいる
0216デフォルトの名無しさん
2010/07/25(日) 21:47:07ライブラリというのは、プログラムの最初に、#include<ipps.h>というのを入れとけば、マニュアルで指定された関数名を入力して、値を渡すだけで結果を返してくれるものなのでしょうか?
(ippライブラリのマニュアルにippsWTHaarFwd と ippsWTHaarInv は、ipps.h ファイルで宣言される。と書かれていました。)
ライブラリの使い方がサッパリ分かりません。
0217デフォルトの名無しさん
2010/07/25(日) 21:51:48インテルのライブラリなら、代理店から購入しているでしょうから代理店にお問い合わせください。
0218デフォルトの名無しさん
2010/07/25(日) 21:54:31includeできる状態だったら関数名を入力するだけで使える
ググって出てきたのを適当にはっとくからここからは自分で調べてみ
それでもわからんかったら、わからん部分を具体的に訊きんシャイ
http://www.geocities.jp/ky_webid/c/008.html
http://www.geocities.jp/ky_webid/c/020.html
0219デフォルトの名無しさん
2010/07/25(日) 22:15:46まさかと思うけど、ippのことを何も知らずに書いているほど間が抜けているわけじゃないよね?
>>216
マジに、検索もできないくらいノウハウがないなら代理店でセミナー受けた方がいいんでない?
0220デフォルトの名無しさん
2010/07/25(日) 22:45:59自力で脱出不能の誤解に陥ってるのに気づけるし
0221216
2010/07/25(日) 23:21:37期間も短いので、セミナーを受けることは難しいので、ここでお教えいただければと思ったのですが・・・
218さんが貼って下さったリンクの内容は理解できましたが、219さんの表現からすると、やはり、#include<ipps.h>と関数名打ちこんで値を渡すだけでは動作しないのでしょうか?
どのようにすれば動作するのか教えていただけないでしょうか。
不躾な質問ですが、どうかお願いいたします。
0222デフォルトの名無しさん
2010/07/25(日) 23:24:030223デフォルトの名無しさん
2010/07/25(日) 23:32:300224216
2010/07/25(日) 23:43:52それは今回勉強してて分かりました。
つまり#include<ipps.h>と関数名打ちこんで値を渡すだけで動作するのでしょうか?
0225デフォルトの名無しさん
2010/07/25(日) 23:50:000226デフォルトの名無しさん
2010/07/26(月) 03:51:180227デフォルトの名無しさん
2010/07/26(月) 09:30:410228ccc ◆Wg.sDXhXMM
2010/07/26(月) 09:54:56前スレで質問したものですが、
やっぱここで気の済むまでやり取りしないとスッキリしないです。
行き詰ったらまた質問させてください
0229デフォルトの名無しさん
2010/07/26(月) 12:35:120230デフォルトの名無しさん
2010/07/26(月) 13:23:030231デフォルトの名無しさん
2010/07/26(月) 16:08:24ばかそうだなwwww
そもそもプログラミングに自信が無いゴミが参加するとうざいんだよね^^;
インターン先のゴミ馬鹿社員とかも相当頭おかしいんだろうねwwwwwwwwwwwwww
0232デフォルトの名無しさん
2010/07/26(月) 16:39:33「だけ」では動作しない。
ヘッダには宣言が書いてある。だから(狭義の)コンパイルは通る。
しかし、呼ぶ関数の実体はWinなら.dllとかに入ってる。.libをリンカに渡さないとリンクが通らない。
サンプル提供されてるから、そこから設定をコピればいい。
て、cでのプログラミングの基本なんだけど
この辺をしらない人間に「IPP使ってプログラム作れ」って言う奴がそもそもおかしい。
0233デフォルトの名無しさん
2010/07/26(月) 18:34:500234デフォルトの名無しさん
2010/07/26(月) 22:35:46組み込み系でC90がまだ幅を利かせているため知りたいです。
ちなみに
”組み込み開発者におくるMISRA-C 組込みプログラミングの高信頼性ガイド”(日本規格協会)
の巻末のc90の未定義動作のリストの中には載っていませんでした。
(2) 例えば charが8ビット intが16ビットの系で
unsigned char a = 0xff;
unsigned int b ;
b=a<<8;
を実行したら
”aはint型に汎整数拡張して0x00ffになる。→左8ビットシフトで
0xff00になりたいところだが、符号付のint型なのでオーバーフローしてしまい、
未定義動作になる。”でいいのでしょうか?
この場合、b=((unsigned int)a)<<8; とするのがいいのでしょうか。
0235デフォルトの名無しさん
2010/07/26(月) 23:35:05世間知らずの馬鹿がここにいるとは。。。。
この世も終わったものだなwwwwwwwww
ってかこいつ絶対「自分は天才」って感じのナルシだなwwwwwww
つうかプログラム知らないくせに語るなってwwww
お前の知ったかはここまでだ、
知恵袋にいって、いまからの小学校への入り方聞いてこい
0236PHP=クソ(笑)
2010/07/26(月) 23:51:04オマエガネwwwwwwwwwwwwwwwwww
君にはyahooの珍言ブクロがよくお似合いだよwwwwwww
wwwwwwwww
wwwwwwwwwwwww
wwwwwwwww
珍言の宝庫が お に あ いwwwwwwwwwwwwwwwww(笑)wwwwwwwwwwwwwwwwwwwwww
プログラムしらねえとか本と受けるね君wwwwwwwwwwwwwwwwwwwwww
おめえはクソだろwwww はてなで修行つんできた ナリ上がりのバカ?www
そんな低レベルじゃねえんよ雑魚がww
てめえが語るなよハナクソ
なんかすげえ必死にレスつけてる御前がバカみたいだよwwいっぺんしねよクソガリww
こら?ww頭でも体格でも俺に叶わねえゴミがちょずいてんじゃねえぞ?ww
ペアコンとかわめいてそうなゴミみたいだねきみwww かわいそうだよwww
きみゴミゴミしいねw googleのケツおってるバカは◯なのインターン生かな?ww(大笑)(大笑)
(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)
(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)
(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)
爆笑wwwwwwwwwwwwww強烈君本当ばかすぎwwwwwwwww
0237PHP=クソ(笑)
2010/07/26(月) 23:52:41ゴミゴミしい君の美味しい餌レスをまってますよ^w^b
0238デフォルトの名無しさん
2010/07/26(月) 23:52:49typedef struct _tagDATA{
char name[32];
int age;
struct _tagDATA *nextdata;
}DATA;
int main(){
DATA a = {"平野",28,},//DATA型は構造体_tagDATAと同じだから、
b = {"昆野",35,},//char部に名前 ageに年齢
c = {"田村",18,};
DATA *lpdata; //DATA型のポインタlpdataを宣言
a.nextdata = &b;
b.nextdata = &c;
c.nextdata = NULL;
for(lpdata = &a; lpdata; lpdata = lpdata->nextdata)//
printf("%s(%d才)\n",lpdata->name,lpdata->age);
while(!kbhit()){}
return 0;
}
0239デフォルトの名無しさん
2010/07/26(月) 23:55:12条件式・次処理式はどう変動しているんですか?
0240デフォルトの名無しさん
2010/07/26(月) 23:58:230241デフォルトの名無しさん
2010/07/26(月) 23:59:20lpdata = &a; // リストの先頭から開始
lpdata; // NULLだったら終了
lpdata = lpdata->nextdata // 次のDATAへ
)
これだけだよ
a.nextdata = &b;
b.nextdata = &c;
c.nextdata = NULL;
ここでnextdataに次の構造体を代入してるからだろ
0242デフォルトの名無しさん
2010/07/27(火) 00:00:130243デフォルトの名無しさん
2010/07/27(火) 00:02:02b.nextdata = &c;
c.nextdata = NULL;
の部分を見て、
a.nextdataが直でNULLを指してるのかと勘違いしてました
0244デフォルトの名無しさん
2010/07/27(火) 00:07:55e1が負の値じゃないから未定義じゃないんじゃないの
0245PHP=クソ(笑)
2010/07/27(火) 00:12:03こんなバカみたいな事やってどうするの?・・・
くだらねえwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
自分で問題つくって自分で解決してる 自問自答プログラムつくるばかおおいねwwwwwwww
0246デフォルトの名無しさん
2010/07/27(火) 00:34:57連続投稿の規制で遅れたけど>>241さんありがとうございました!
0247デフォルトの名無しさん
2010/07/27(火) 01:32:20244さん返答ありがとうございます。
確かに(2)ではe1が負ではありませんが、
0xff00になって、int型の最大値(この場合は+32767)を超えてしまうのは
やはりやばいのではと思って質問に加えました。
ちなみにintが32ビットであるvc++2008で
unsigned char a = 0xff;
unsigned int b ;
b=a<<24;
をやってみたら。 特にエラーも出さず、b=4278190080(=0xff000000)
になりました。
0248デフォルトの名無しさん
2010/07/27(火) 03:51:53○×.exe の 0xたぶん16進 (abcde.dll) で
ハンドルされていない例外が発生しました:
0x---------: 場所 0x-------- を読み込み中にアクセス違反が発生しました。
って出て困るんですけど、これの原因ってなんですか?
0249デフォルトの名無しさん
2010/07/27(火) 03:54:170250デフォルトの名無しさん
2010/07/27(火) 03:55:05>0x---------: 場所 0x-------- を読み込み中にアクセス違反が発生しました。
日本語読めるならわかるだろ
0251デフォルトの名無しさん
2010/07/27(火) 04:12:290252デフォルトの名無しさん
2010/07/27(火) 04:20:25別にポインタじゃなくても起こるよ
用意したメモリの範囲外にアクセスしようとすればね
0253デフォルトの名無しさん
2010/07/27(火) 04:21:380255デフォルトの名無しさん
2010/07/27(火) 10:10:41int main(){
int i=0;
char *u[10]={"や","ら","な","い","か","?"};
char *k[10]={""," "," "," "," "," "};
while(u[i])
{
printf("%s%s\n",k[i],u[i++]);
}
return 0;
}
エラーが出ます教えてください
0256デフォルトの名無しさん
2010/07/27(火) 10:13:25かいとうありがごうざいました
0257デフォルトの名無しさん
2010/07/27(火) 10:15:35関数printf()内に副作用完了点が2つあるので1つにしなければ動作は未定義になる
#include <stdio.h>
int main(void)
{
int i = 0;
char *u[10]={"や","ら","な","い","か","?"};
char *k[10]={""," "," "," "," "," "};
while (u[i]) {
printf("%s%s\n",k[i], u[i]);
i++;
}
return 0;
}
0258デフォルトの名無しさん
2010/07/27(火) 10:16:45副作用完了点は1つしかないが、関数内の引数の評価の順序は定められて
いないので、i と i++ のどちらが先に評価されるかわからない
従って i++ を外に出さなければならない
0259デフォルトの名無しさん
2010/07/27(火) 10:17:09よくわからないんですが ボタンとかテキストボックスはどうやってひょうじするのでしょうかおしえてください
0260デフォルトの名無しさん
2010/07/27(火) 10:17:54i++ を外に出せ
0261デフォルトの名無しさん
2010/07/27(火) 10:22:11そしてロックマンZERO作れとか言われてるんですが
perlでC言語をやりたいんですがどうやればいいんですか
perlをコンパイルってやるんですが
#1/us/bin/prel
print "hello;
ってメモ帳にかいて gcc a.cってやってるんですが ./a.exeってやって
エラーがでて実行できませんおしえてください
本みてやってるんですがなかなかできませn
0262デフォルトの名無しさん
2010/07/27(火) 10:23:27君才能あるね これじゃハテナである意味ナンバーワンでしょ
0263デフォルトの名無しさん
2010/07/27(火) 10:24:09とかいって釣られてくれるバカはまだレスくれませんか??????・・・
お返事まってます!!☆
0264デフォルトの名無しさん
2010/07/27(火) 10:24:48少しでもまともな判断力が残っているなら願い下げだ
0265デフォルトの名無しさん
2010/07/27(火) 10:27:49それたまたま動いているだけだから
0266デフォルトの名無しさん
2010/07/27(火) 10:33:02どうやってつくればいいんでしょうか?
秋葉原とかで部品をかってロックマンとかデジモン作ってみたいのですが・・・
0267デフォルトの名無しさん
2010/07/27(火) 10:37:410268デフォルトの名無しさん
2010/07/27(火) 11:20:420269デフォルトの名無しさん
2010/07/27(火) 12:21:37とりあえず、今のお前はここに池
http://pc12.2ch.net/test/read.cgi/tech/1274998754/l50
ここはまだ優しい住人が多い。
たぶん同じ答えが返ってくるかもしれんがな。
次に入門書だ。極限まで簡単そうなのを買え。
金がなければ入門サイトでも図書館でもいいけどな。
そこでお前は分からない単語と出会う。
ノイマン型とかオブジェクト指向とかイクセス表現とかな。
だがここでヘタに調べるとドツボにハマる。
向こうは意味不明な言葉を意味不明な言葉で説明してくる。
だから最初はできるだけ分かったふりしてスルーしろ。
本当はものすごく大事な事なんだが、お前のCPUが爆発するからな。
大体第一章はこんなんばっかだから軽く読み流す程度でおk
0270デフォルトの名無しさん
2010/07/27(火) 12:36:42#include <windows.h>
#include <tchar.h>
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmdLine, int showCmd)
{
MessageBox( NULL, _T("押してw"), _T("ボタンだよ"), MB_OK );
return 0;
}
0271デフォルトの名無しさん
2010/07/27(火) 12:37:26これも大抵の本は第一章くらいで解説してるんだが、予備知識として今説明しとく。
まず、全てのプログラミング言語はただ文字を打っただけじゃ動かない。
じゃあどうやったら動くのかというと、
コンパイラって言うのに入れて機械語にしてからやっと動く。
最近は便利になったから、このコンパイラをもっと簡単に、
より分かりやすくしたソフトがタダでダウソできる。
これがIDE(統合開発環境)ってやつ。
昔はどうしてたかわからんが、今は
IDEにソースを打ち込む→ボタン一発
これでコンパイルできる。コンパイルってのもわかんないかもしれないが
要は書いたソースをプログラムにして実行してるって事。
ここまでたどりついたら、後は地道に本を読んでソースを実行しての繰り返し。
0272デフォルトの名無しさん
2010/07/27(火) 12:52:37> 要は書いたソースをプログラムにして実行してるって事。
IDE とはつまり、こういうだらずの製造装置
俺はぜひ IDE ぬきの環境も使うことを薦める
0273デフォルトの名無しさん
2010/07/27(火) 12:53:330274デフォルトの名無しさん
2010/07/27(火) 15:37:190275デフォルトの名無しさん
2010/07/27(火) 17:26:00のリスト構造で入力した順番に表示するにはどうすればいいんでしょうか
0276デフォルトの名無しさん
2010/07/27(火) 17:35:56「新しいデータを先頭に入れて(*1)」「先頭から表示する(*2)」から入力の逆順表示になる。
+1か*2を逆にすればいい。
*2の逆を速くやるために「双方向リスト」というデータ構造もある。
0277デフォルトの名無しさん
2010/07/27(火) 17:42:23{
if (p->next)
show_list(p->next);
puts(p->name);
}
0278デフォルトの名無しさん
2010/07/27(火) 19:16:00例のインターン
0279デフォルトの名無しさん
2010/07/27(火) 19:24:44参考になるサイトとかないですかね?
関数再帰させたときの仕組みを知りたかったりしてます。
0280デフォルトの名無しさん
2010/07/27(火) 19:48:15vi 279.s
0281デフォルトの名無しさん
2010/07/27(火) 20:00:18「関数呼び出し スタック」で検索すれば沢山ヒットする。
0282デフォルトの名無しさん
2010/07/27(火) 20:45:56これを同じnameが入力されたらscoreを更新したいのですが
同じnameが2つ出てきてしまいます。
A 100 B 200 のときに
A 70 と入力したら
A 70 B 200 となるようにしたいです
今のものだと
A 100 A 70 B 200 となってしまいます
関数struct slist *addに手を加えて直したいのですが・・・
よろしくお願いします
0283デフォルトの名無しさん
2010/07/27(火) 20:50:47search って関数作って既にあれば
score を書き換えるようにする
0284デフォルトの名無しさん
2010/07/28(水) 02:38:45int i, j, oxn[3][3];
char ox[3][3];
for(i=0; i<3; i++){
for(j=0; j<3; j++){
ox[i][j]='oxn[i][j]';
}
}
このプログラムで
test.c:9:13: warning: character constant too long for its type
test.c: In function `main':
test.c:9: warning: overflow in implicit constant conversion
このようなエラーが出ます。どのようにすれば解消できるか教えていただけないでしょうか?
よろしくお願いします
0285デフォルトの名無しさん
2010/07/28(水) 02:46:12ox[i][j]=oxn[i][j];
キャストしないと通らないかもしれないけど
0286デフォルトの名無しさん
2010/07/28(水) 02:53:49うまく通ってくれました
ありがとうございました
0287デフォルトの名無しさん
2010/07/28(水) 13:31:38今の時代なら、両方から攻めるのがいいぞ。
IDEでさくっと作った後、IDEを捨てて作り直させる。
一度ゴールを見た状態からの方が脳に地図を作りやすい。
0288デフォルトの名無しさん
2010/07/28(水) 18:01:51フリーで C++ にいい IDE 環境はなんでしょうか。
0289デフォルトの名無しさん
2010/07/28(水) 18:41:500290デフォルトの名無しさん
2010/07/28(水) 20:42:41必死乙
できないやつほど嘘をついて必死になるって本当だったんだな
ってか、Yahooのブログとかいつの話してんの?
さすが知ったか訓は各が違うな〜
今までお前(カス)がプログラムのことを語ってないし、自分の地位を表してないのにww
夢の話はいいんだよ
>頭でも体格でも俺に(ry
確かにお前の馬鹿さやデブさ、臭さには叶わんわ〜
0291デフォルトの名無しさん
2010/07/29(木) 00:48:30データを一つの配列に読み込みたいのですが、どのようにすれば読み込めるのでしょうか?
fopenでできるとも思ったのですが、どのようにして一行目と二行目のA〜C列を読み込まないようにすればいいのかわかりません。
0292デフォルトの名無しさん
2010/07/29(木) 00:50:36csvの構造は知ってるよね?
0293デフォルトの名無しさん
2010/07/29(木) 01:06:38カンマで分割して
atoiで整数に変換すればいいんでないの。
セルが""で囲まれてる場合もあるけど。
0294デフォルトの名無しさん
2010/07/29(木) 07:19:48なんで小数点以下を捨ててしまったの?
>>291
分割方法はなんでもいいけど、数値変換にはatoiじゃなくatod、、、でもなく、strtodを使うとよいよ。
0295294
2010/07/29(木) 07:20:45atofの間違い。といっても、それは使わない。
0296デフォルトの名無しさん
2010/07/29(木) 17:37:140297デフォルトの名無しさん
2010/07/29(木) 18:14:140298デフォルトの名無しさん
2010/07/29(木) 20:55:19場合分けするの面倒だからとりあえず全部読んで
A〜C を使わないようにする
0299デフォルトの名無しさん
2010/07/30(金) 13:21:31--
char buf[2000];
enum {D, E, F, G, H, I, J, K, NofCols};
double val[NofCols];
while (fgets(buf, sizeof(buf), fp) != NULL) {
if (sscanf(buf, "%*[^,],%*[^,],%*[^,],%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf", & val[D], & val[E], & val[F], & val[G], & val[H], & val[I], & val[J], & val[K]) == NofCols) {
someProcess(val);
}
}
--
0300デフォルトの名無しさん
2010/07/31(土) 02:13:210301デフォルトの名無しさん
2010/07/31(土) 02:43:21http://www.asahi-net.or.jp/~qa8f-kik/chopin/Scherzo/fig1.GIF
0302デフォルトの名無しさん
2010/07/31(土) 03:05:08多いことが最近分かった。
malloc、freeよりnew、deleteの方が楽だし、文字の扱いも楽だ。。。
0303デフォルトの名無しさん
2010/07/31(土) 03:14:120304デフォルトの名無しさん
2010/07/31(土) 03:15:28これをフォルテッシモシモは難易度高いな
0305デフォルトの名無しさん
2010/07/31(土) 03:19:01書いて見たけど。
0306デフォルトの名無しさん
2010/07/31(土) 11:09:31http://pc12.2ch.net/test/read.cgi/tech/1279286575/721
0307デフォルトの名無しさん
2010/07/31(土) 12:37:590308デフォルトの名無しさん
2010/07/31(土) 16:01:55ffffffffはフォルティシモシモシモシモシモシモですか? w
0309デフォルトの名無しさん
2010/07/31(土) 16:03:320310デフォルトの名無しさん
2010/07/31(土) 16:35:260311デフォルトの名無しさん
2010/07/31(土) 18:22:280312デフォルトの名無しさん
2010/07/31(土) 20:13:270313デフォルトの名無しさん
2010/07/31(土) 21:14:56いつも人が皆無で俺専用のC言語スペースにまだ大学生くらいのやつが
いるじゃねえか! 早くどけや!とおもいつつ、他のスペースをうろうろして
時間をつぶすこと1時間あまり。
ようやく、どいた。レジに並んでいるそいつの持っている本をみると
「やさしいC」だった。
こいつもあんなに試行錯誤しながら、やさしいCを買うなんて意外と苦労してるのかもしれないなと
おもった。
0314デフォルトの名無しさん
2010/07/31(土) 21:33:260315デフォルトの名無しさん
2010/07/31(土) 21:37:06適当にパパっと選べばいい。
0316デフォルトの名無しさん
2010/07/31(土) 21:39:22少しでもいい本見つけたかったんだろうからなwww
でもなんでネットで調べてからいかないんだろうなとは思う。
0317デフォルトの名無しさん
2010/07/31(土) 21:40:310318デフォルトの名無しさん
2010/07/31(土) 22:06:20書店を覗くことのメリットを全否定してやがる
0319デフォルトの名無しさん
2010/07/31(土) 22:11:02フォルテシシシシシシシモだったごめん。
0320デフォルトの名無しさん
2010/07/31(土) 22:11:49少なくとも目的がはっきりしてるならネットで探したほうが効率がいい。
0321デフォルトの名無しさん
2010/07/31(土) 22:14:10思ったよりもめくりにくくてびっくりする本とかあるよね。
けどその本じゃなきゃだめだったりするから本屋のぞいたからといって改善はされないけど。
0322デフォルトの名無しさん
2010/07/31(土) 22:17:32残念な回答(´・ω・`)
単純にネットを批判してるオヤジのような印象を受けちゃうよ(´・ω・`)
0323デフォルトの名無しさん
2010/07/31(土) 22:19:210324デフォルトの名無しさん
2010/07/31(土) 22:21:33Cの参考書を探していたのだとしたら、「やさしいC」は限りなくベストに近い書籍だよ。
1時間で判断できたならセンスがある。確信なく買ったのなら運がある。
0325デフォルトの名無しさん
2010/07/31(土) 22:22:510326デフォルトの名無しさん
2010/07/31(土) 22:36:23本気でわからないのかも知れないなw
0327デフォルトの名無しさん
2010/07/31(土) 22:54:23なんせ暇だから。
今のところなんとか楽しい。
0328デフォルトの名無しさん
2010/07/31(土) 23:00:38Cに未来はない
0329デフォルトの名無しさん
2010/07/31(土) 23:03:25ひとつの言語でできることを体感すればいい。
0330デフォルトの名無しさん
2010/07/31(土) 23:04:540331デフォルトの名無しさん
2010/07/31(土) 23:05:080332デフォルトの名無しさん
2010/07/31(土) 23:08:210333デフォルトの名無しさん
2010/07/31(土) 23:09:54ポインタを理解できれば合格だよね。
0334デフォルトの名無しさん
2010/07/31(土) 23:23:30C++に未来なんてないよ。
0335デフォルトの名無しさん
2010/07/31(土) 23:26:030336デフォルトの名無しさん
2010/07/31(土) 23:28:070337デフォルトの名無しさん
2010/07/31(土) 23:29:080338デフォルトの名無しさん
2010/07/31(土) 23:31:18急げ!
0339デフォルトの名無しさん
2010/08/01(日) 00:07:1003402010年現在の状況に基づいた判断につき無保証
2010/08/01(日) 01:17:57↑
あくまでも遊びと割り切ってやること
(この間(90/満年齢)年以上置く:15歳だったら21歳まではプログラミングに
手を出さない。18歳だったら23歳まで。12歳だったら19歳迄 30歳だったら33歳まで)
/*-------------------------------------------------*/
PHP(決して深いりしないことを条件)
→
C(これも最初はさらっと)
←→(相当行ったり来たり)
Java(もしくはC#)
←→(時々行ったり来たり)
C++
こんな感じかな。
0341デフォルトの名無しさん
2010/08/01(日) 01:23:03要するにあなたはNEETと。それはよくわかった
0342デフォルトの名無しさん
2010/08/01(日) 01:30:16人類の言葉でおk
0343デフォルトの名無しさん
2010/08/01(日) 01:50:280344解読w
2010/08/01(日) 02:03:45体験しておこう(必須じゃないけど)
変数や関数の使い方の初歩を覚えよう(PHP)
→
やや高度な変数や関数の使い方、構造体の使い方を覚えよう
OSについても勉強しよう(C)
→
本格的に構文を覚えよう(Java)
→
時にはアクロバティックな必殺技も使う
「高度な」プログラミングテクニックを覚えよう(C++)
0345デフォルトの名無しさん
2010/08/01(日) 02:21:200346デフォルトの名無しさん
2010/08/01(日) 02:36:39さもなくばしね(or die)
こんな文が羅列されてるスクリプト
マクロや条件コンパイルの嵐で関連ファイルが数百を超えるようなソース
電車に飛び込みたくなる理由もわかるような気がするw
0347デフォルトの名無しさん
2010/08/01(日) 02:38:50Perl は 0 の扱いにつまづく
今でも初学者用として BASIC は偉大だと思う
0348デフォルトの名無しさん
2010/08/01(日) 02:41:09データとか振る舞いとかプログラムの「い」を覚えるには適当な言語じゃないかなw
0349デフォルトの名無しさん
2010/08/01(日) 02:43:38嫌らCと言われる所以と聞きました
0350デフォルトの名無しさん
2010/08/01(日) 03:33:44関連ファイルが数百を超えたからといってどうだというんです?
0351デフォルトの名無しさん
2010/08/01(日) 03:53:55明日迄に正常に動作することを保った上で
読み易く理解し易いように書き直してくれ
と言われて何人が電車に飛び込んだのだろ
うか...
0352デフォルトの名無しさん
2010/08/01(日) 09:42:04Javaでいうjcpadやエクリプスのように
エディタとコンパイラ?が一緒になっているようなフリーソフトはないでしょうか?
VisualC++ を使ってみるといいと聞いたんですが
C言語を書き込むと必ずデバックで引っかかってしまいます。
0353デフォルトの名無しさん
2010/08/01(日) 09:46:410354デフォルトの名無しさん
2010/08/01(日) 10:13:59生まれてきてよかったです
ありがとうございました
0355デフォルトの名無しさん
2010/08/01(日) 10:42:18分からないことがあったらまたおいで
0356デフォルトの名無しさん
2010/08/01(日) 10:52:590357デフォルトの名無しさん
2010/08/01(日) 12:51:59うん((o(´∀`)o))ワクワク
0358327
2010/08/01(日) 22:47:14for文の辺りからちょっと気になってたんですけど
この部分無駄じゃないの? とか、こうしたほうが簡単じゃないの?
って部分が時々あります。
自分なりに、本の記述でなにかメリットがあるのか考えるんですけど、
どう考えても無駄に思えるところもあって。理解がついていっていないのかと不安になります。
まだはじめたばかりなので読み進めるにしたがって理解が深まるとよいのですが・・・
たとえば、P.95のList5-8の網掛けの部分、
(配列vx[5]に代入された値を逆順にするって部分ですが)
for ( i = 0 ; i < 2 ; i++){
int temp = vx[i];
vx[i] = vx[4 - i];
vx[4 - i] = temp;
}
なんでこんなことするのか、私は↓のように書いたんですけど、
↓のほうがわかりやすいですよね。↑のほうがいい理由って何かありますか?
私がおかしいのかとか、バカだから理解できないのかなと少し不安です。
for(i=0; i<5; i++)
vx[i] = vx[4-i];
0359358
2010/08/01(日) 22:49:52やっぱバカですねwww
0360デフォルトの名無しさん
2010/08/01(日) 22:50:590361デフォルトの名無しさん
2010/08/01(日) 22:52:10どうもどうも
0362デフォルトの名無しさん
2010/08/01(日) 22:54:46vx[0]=vx[4]
vx[1]=vx[3]
vx[2]=vx[2]
vx[3]=vx[1] ← (ノ∀`)アチャー 上でvx[1]にvx[3]入れちゃったから入れ替わらない
結局下の方法だとvx[3]とvx[4]は入れ替わらないままになっちゃうんだよね(´・ω・`)
0363358
2010/08/01(日) 22:58:04今下の説明を読んで納得しました
お恥ずかしい(笑
0364デフォルトの名無しさん
2010/08/01(日) 23:00:59たくさん恥かこうぜw
0365358
2010/08/01(日) 23:04:12ありがと( ;∀;)
でもいまんとこよくわかった
0366358
2010/08/02(月) 07:32:170367デフォルトの名無しさん
2010/08/02(月) 11:07:08考え方として、逆順にすると言う目的に対して>358の前者のコードが
「配列の前半分の要素について、それぞれ対応する後ろ半分の要素と交換する」
という形で解決すべく書かれているということを抑えておくといいと思う。
要は、パズルの結果としてコードがあるのではなく、やりたいことを実現するためにコードがあると言うこと。
それが判っていれば、>358の後者では上に括弧書きした解決手段(アルゴリズム)を実現できていないことは自明だろう。
0368デフォルトの名無しさん
2010/08/02(月) 11:11:490369デフォルトの名無しさん
2010/08/02(月) 11:20:190370デフォルトの名無しさん
2010/08/02(月) 11:56:28そのアルゴリズムを実装することが目的のページだったってこと?
0371デフォルトの名無しさん
2010/08/02(月) 12:41:16というより、コンパイルして間違ってないか試してないってことだね、後後困りそうだ
0372デフォルトの名無しさん
2010/08/02(月) 13:07:00試してるよ。ぱっと見気がつかなかった。
0373デフォルトの名無しさん
2010/08/02(月) 14:29:46今どきのコンパイラだとありうる?
8ビットマイコンとかくらいでしかないよね?よく知らんけど
0374デフォルトの名無しさん
2010/08/02(月) 14:35:348ビットマイコンでも環境によっては起こり得ない。
0375デフォルトの名無しさん
2010/08/02(月) 14:35:54リターン値とローカル変数が同じスタックに取られてるいじょう、
性能に関係なくありえるんじゃないの?
0376デフォルトの名無しさん
2010/08/02(月) 14:51:320377デフォルトの名無しさん
2010/08/02(月) 15:01:38callで呼んでたけど、最近のcallはスタックに戻るアドレスを積まないのだろうか。
0378デフォルトの名無しさん
2010/08/02(月) 15:13:41普通のプロセッサでは、スタックに積まれる。
>>377
x86はスタックに積むしかない。
データスタックとコールスタックが別のアドレス空間にあって競合しないプロセッサもあれば、
レジスタセットに戻りアドレスを積んでしまうプロセッサもある。
0379デフォルトの名無しさん
2010/08/02(月) 15:20:460380デフォルトの名無しさん
2010/08/02(月) 16:17:582010からか知らんけど、VCだと破壊検出用のコードが埋め込まれる
他にも、スタック内コードの実行不可とか色々ある
0381デフォルトの名無しさん
2010/08/02(月) 20:42:46とにかく両者、似たような機構がある
ただ、あくまで保険であって完璧ではないって話じゃなかったかなあ?
0382デフォルトの名無しさん
2010/08/02(月) 21:22:42へんな数字と文字の羅列が結果のあとにでてきたんですけどなんで?
謎の羅列は↓
20539: calling fini: /lib/i686/libm.so.6 [0]
20539:
20539:
20539: calling fini: /lib/libgcc_s.so.1 [0]
20539:
20539:
20539: calling fini: /lib/i686/libc.so.6 [0]
20539:
0383デフォルトの名無しさん
2010/08/02(月) 21:58:44共有ライブラリでも呼び出してる?
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/dlopen.3.html
0384デフォルトの名無しさん
2010/08/02(月) 22:13:24ちょっと自分でたしかめてみます
0385デフォルトの名無しさん
2010/08/03(火) 00:45:41は4を出力しますが、この4は32bitOSだから4なんでしょうか?
0386デフォルトの名無しさん
2010/08/03(火) 01:10:400387デフォルトの名無しさん
2010/08/03(火) 01:40:39んじゃあ、おまえ、64bitOSだと、int型が8にでもなるというのか!
0388デフォルトの名無しさん
2010/08/03(火) 01:42:450389デフォルトの名無しさん
2010/08/03(火) 07:39:550390デフォルトの名無しさん
2010/08/03(火) 08:46:59B,C型のメンバを持つ構造体2があって
2のB,C型のメンバを順番どおりに1のB,C型のメンバに入れたいのですがどうすれば良いでしょうか?
0391デフォルトの名無しさん
2010/08/03(火) 09:07:03そのままそれぞれ代入すればいい
0392デフォルトの名無しさん
2010/08/03(火) 11:20:20>sizeof(char *)が2になる32ビットOS
ねーよ
0393デフォルトの名無しさん
2010/08/03(火) 11:28:39あるんだな。これが。ww
0394デフォルトの名無しさん
2010/08/03(火) 11:30:450395デフォルトの名無しさん
2010/08/03(火) 11:36:090396デフォルトの名無しさん
2010/08/03(火) 11:43:25お前はバカか
0397デフォルトの名無しさん
2010/08/03(火) 12:28:10なるよ。
0398デフォルトの名無しさん
2010/08/03(火) 12:43:28char型 が1バイトで 1バイトが16bit で ポインタが32bit空間必要だったら
0399デフォルトの名無しさん
2010/08/03(火) 12:50:240400デフォルトの名無しさん
2010/08/03(火) 12:54:41上の「ならねーよ お前はバカか」って発言はとてつもなく間抜けだったって
胸にしまって生きて行ってね。
0401デフォルトの名無しさん
2010/08/03(火) 13:01:330402デフォルトの名無しさん
2010/08/03(火) 13:44:558bit/Byteの32bitアプリケーションだから4が返る
64bitOSが32bitアプリ動かした場合も、4が返るので違うということになる
64bitアプリなら8が返る
0403デフォルトの名無しさん
2010/08/03(火) 13:57:09例えば、Win32
0404デフォルトの名無しさん
2010/08/03(火) 15:45:10それマジで言ったん?ソースあんならすぐ出せ
0405デフォルトの名無しさん
2010/08/03(火) 18:41:470406デフォルトの名無しさん
2010/08/03(火) 19:41:110407デフォルトの名無しさん
2010/08/03(火) 19:44:19>>403 当たり前の事実なのでソースは不要。
0408デフォルトの名無しさん
2010/08/03(火) 20:15:25やってみたが4じゃねーか
嘘乙
0409デフォルトの名無しさん
2010/08/03(火) 20:16:42キミは経験値がまだ足りない。
0410デフォルトの名無しさん
2010/08/03(火) 20:27:110411デフォルトの名無しさん
2010/08/03(火) 20:29:11# ワードアクセスの場合にアドレス線を1本ずらすってのはハードでは普通に出てくるが
0412デフォルトの名無しさん
2010/08/03(火) 21:06:440413デフォルトの名無しさん
2010/08/03(火) 21:10:370414デフォルトの名無しさん
2010/08/03(火) 21:12:47机上でなく、実際の環境として。
0415デフォルトの名無しさん
2010/08/03(火) 21:13:280416デフォルトの名無しさん
2010/08/03(火) 21:14:29そんなことは今話していない。
0417デフォルトの名無しさん
2010/08/03(火) 21:14:43>>393と>>394は別人なので、それに言いがかり付けたいなら>>394に直接つけろ。
0418デフォルトの名無しさん
2010/08/03(火) 21:20:430419デフォルトの名無しさん
2010/08/03(火) 21:27:160420デフォルトの名無しさん
2010/08/04(水) 11:38:08ちょっと期待していたんだが
0421デフォルトの名無しさん
2010/08/04(水) 11:46:140422デフォルトの名無しさん
2010/08/04(水) 13:01:05どこが間違ってるか説明してみろ。
ツッコまれるのをビビって説明できないだろうけど。
0423デフォルトの名無しさん
2010/08/04(水) 13:03:120424デフォルトの名無しさん
2010/08/04(水) 13:09:21>どこが間違ってるか説明してみろ。
レスのタイミング
0425デフォルトの名無しさん
2010/08/04(水) 13:11:06なんのソースだ。>>394にソースがいるのか。
0426デフォルトの名無しさん
2010/08/04(水) 13:15:120427デフォルトの名無しさん
2010/08/04(水) 13:22:49その上で、そういう実装があるのかねという問題がある
その辺はよく知らん……
0428デフォルトの名無しさん
2010/08/04(水) 14:07:56バーカ
ちゃんと限定しろよ
0429デフォルトの名無しさん
2010/08/04(水) 14:13:19現時点では限定する必要は無い。引っ込んでろ。バカ。
0430デフォルトの名無しさん
2010/08/04(水) 14:15:190431デフォルトの名無しさん
2010/08/04(水) 14:16:02ならねーよバーカ
0432デフォルトの名無しさん
2010/08/04(水) 14:17:27「必要は無い」に対して「ならねー」ってなんだよ。引っ込んでろ。バカ。
0433デフォルトの名無しさん
2010/08/04(水) 14:17:350434デフォルトの名無しさん
2010/08/04(水) 14:23:16Win32で
>charが16bitでchar*が32bitだったらsizeof(char*)は2になるな。
こうなるOSの話だろがバーカ
0435デフォルトの名無しさん
2010/08/04(水) 14:34:19アンカーの打ち方憶えてから出直せ。クズ。
0436デフォルトの名無しさん
2010/08/04(水) 14:37:48反論できなくなったら話題そらしかよゴミ
0438デフォルトの名無しさん
2010/08/04(水) 14:55:10その辺はよく知らん、で論破かよバーカ
0439デフォルトの名無しさん
2010/08/04(水) 15:03:51特別だぞ。バカ。
>>389 (これがオレ、特定の環境が存在すると言っている)
sizeof(char *)が2になる32ビットOSもある: 例 Win32
sizeof(char *)が4になる16ビットOSもある: 例 Win16 ラージモード
>>394 (どこかの誰か。特定の環境が存在するとは言っていない)
> charが16bitでchar*が32bitだったらsizeof(char*)は2になるな。
規格上あり得る。ソースはC99の規格書。
これでわかったか? 干からびて死ね。
0440デフォルトの名無しさん
2010/08/04(水) 15:06:01ならねーつってんだろバーカ
0441デフォルトの名無しさん
2010/08/04(水) 15:06:30干からびて死ね。バカ。
0442デフォルトの名無しさん
2010/08/04(水) 15:08:44反論できないからって無理して悪口だけ書かなくていいから
0443デフォルトの名無しさん
2010/08/04(水) 15:09:17干からびて死ね。バカ。
0444デフォルトの名無しさん
2010/08/04(水) 15:10:30反論できないからって無理して悪口だけ書かなくていいから
0445デフォルトの名無しさん
2010/08/04(水) 15:10:50干からびて死ね。バカ。
0446デフォルトの名無しさん
2010/08/04(水) 15:11:38反論できないからって無理して悪口だけ書かなくていいから
0447デフォルトの名無しさん
2010/08/04(水) 15:12:53横からですまんが、その環境について詳しく書いてもらえるとありがたい。
小出しにし続ける方針なら何日後ぐらいに見ればいいかを教えてほしい。
0448デフォルトの名無しさん
2010/08/04(水) 15:13:330449デフォルトの名無しさん
2010/08/04(水) 15:14:21sizeofってコンパイラがその時点で計算するんだしOS関係無いんじゃ?
0450デフォルトの名無しさん
2010/08/04(水) 15:14:40環境ってよりはアプリの作り方のように思えてならないけど。
0451デフォルトの名無しさん
2010/08/04(水) 15:21:23小出しじゃなくてそのまま書いてるだろ。どれが分らないんだ?
0452デフォルトの名無しさん
2010/08/04(水) 15:23:17OSがサポートしているメモリモデルでなければ実行できないのだから、関係なくは無い。
0453デフォルトの名無しさん
2010/08/04(水) 15:27:27Win32は全てsizeof(char *)が2になるってことでよろしいか。
0454デフォルトの名無しさん
2010/08/04(水) 15:27:450455デフォルトの名無しさん
2010/08/04(水) 15:28:58これのことを言ってるのか
0456デフォルトの名無しさん
2010/08/04(水) 15:39:540457デフォルトの名無しさん
2010/08/04(水) 16:10:58getcwd() でカレントディレクトリを取得出来るのは判ったのですが
これは実行したプログラムの置かれている場所を取得する訳ではないようです
たとえば
[/tmp] $ /hoge/fuga/hage
の様に実行した場合
/tmp (カレントディレクトリ)ではなくて
/hoge/fuga の方を知りたいという意味です
argv[0] に /hoge/fuga/hage が入っていることまでは辿り着きましたが
ここから
/hoge/fuga
だけを抜き出す関数って標準で存在しますか?どんな名前の関数でしょうか?
0458デフォルトの名無しさん
2010/08/04(水) 16:19:33全てなんて限定詞はつけていないが。Win32でsizeof(char *)が2になる環境を知りたいのか?
NTVDM, WoW16
0459デフォルトの名無しさん
2010/08/04(水) 16:21:020460デフォルトの名無しさん
2010/08/04(水) 16:26:12strrchr
0461デフォルトの名無しさん
2010/08/04(水) 16:41:55できました
ありがとうございました
0462デフォルトの名無しさん
2010/08/04(水) 16:46:33NTVDM, WOW32を32ビットOSと言い張るのはかなり希少な珍獣
0463デフォルトの名無しさん
2010/08/04(水) 16:53:440464デフォルトの名無しさん
2010/08/04(水) 17:01:15ありがとう。最初にそれを書いてくれてれば何度も手を煩わせずにすんだんだけど、ごめんね。
0465デフォルトの名無しさん
2010/08/04(水) 17:04:480466デフォルトの名無しさん
2010/08/04(水) 17:59:410467デフォルトの名無しさん
2010/08/04(水) 18:34:210468デフォルトの名無しさん
2010/08/04(水) 18:36:57だろ。さん乙
0469デフォルトの名無しさん
2010/08/04(水) 18:53:44干からびて死ね。バカ。
0470デフォルトの名無しさん
2010/08/04(水) 19:06:53この上司、頃してもいいよね
0471デフォルトの名無しさん
2010/08/04(水) 19:09:35小文字で書くお前が悪いだろ・・・どう考えても・・・
0472デフォルトの名無しさん
2010/08/04(水) 19:13:02世界中どこ見たってC言語のCは大文字だよ。
c language で検索してみろ。
0473デフォルトの名無しさん
2010/08/04(水) 19:13:25ばーか
0474デフォルトの名無しさん
2010/08/04(水) 19:32:12その部下もコロちゃんがどうしたこうした
0475デフォルトの名無しさん
2010/08/04(水) 19:58:210476デフォルトの名無しさん
2010/08/04(水) 20:00:37実例プリーズと言っているだけで間違っているかどうかは問うていないよ
つまり規格に違反している製品でも構わんということだ
0477デフォルトの名無しさん
2010/08/04(水) 20:20:07反論できないからって無理して悪口だけ書かなくていいから
0478デフォルトの名無しさん
2010/08/04(水) 22:37:160479デフォルトの名無しさん
2010/08/04(水) 22:42:16干からびて死ね。バカ。
0480デフォルトの名無しさん
2010/08/04(水) 23:19:28||_(Д`; ) 「なに?このスレ・・・」
\⊂´ )
( ┳'
0481デフォルトの名無しさん
2010/08/04(水) 23:56:290482デフォルトの名無しさん
2010/08/05(木) 00:01:32これ他言語知ってる奴ならわかるはずだ、って質問を散見するよ。
0483デフォルトの名無しさん
2010/08/05(木) 00:10:310484デフォルトの名無しさん
2010/08/05(木) 00:11:29十分あり得るのだろうさ
0485デフォルトの名無しさん
2010/08/05(木) 00:57:03反論できないからって無理して悪口だけ書かなくていいから
0486デフォルトの名無しさん
2010/08/05(木) 01:09:51反論出来ねーのはテメーだ。
干からびて死ね。バカ。
0487デフォルトの名無しさん
2010/08/05(木) 01:14:59反論できないからって無理して悪口だけ書かなくていいから
0488デフォルトの名無しさん
2010/08/05(木) 01:16:31反論出来ねーのはテメーだ。
干からびて死ね。バカ。
0489デフォルトの名無しさん
2010/08/05(木) 01:20:11反論できないからって無理して悪口だけ書かなくていいから
0490デフォルトの名無しさん
2010/08/05(木) 01:28:340491デフォルトの名無しさん
2010/08/05(木) 01:34:100492デフォルトの名無しさん
2010/08/05(木) 01:35:050493デフォルトの名無しさん
2010/08/05(木) 01:37:07___ ‖ヾ ハ
/ ヽ ‖::::|l ‖:||.
/ 聞 え | ||:::::::|| ||:::||
| こ ? | |{:::::‖. . .||:::||
| え | _」ゝ/'--―- 、|{::ノ!
| な 何 | / __ `'〈
| い ? ! /´ /´ ● __ ヽ
ヽ / / ゝ....ノ /´● i
` ー―< { ゝ- ′ |
厶-― r l> |
∠ヽ ゝ-― `r-ト、_,) |
レ^ヾ ヽ>' ̄ LL/ 、 /
.l ヾ:ヽ ` 、_ \\ '
l ヾ:ヽ ト`ー-r-;;y‐T^
| ヾ `ニニ「〈〉フ /‖. j
0494デフォルトの名無しさん
2010/08/05(木) 01:38:400495デフォルトの名無しさん
2010/08/05(木) 01:42:21/ \
n / ⌒ ⌒ \
| | / (⌒) (⌒) \
i「|^|^ト、| __´___ | <君みたいな低脳と一緒にしないでくださいね
|: :: ! } \. `ー'´ /
ヽ ,イ
0496デフォルトの名無しさん
2010/08/05(木) 01:43:190497デフォルトの名無しさん
2010/08/05(木) 01:45:530498デフォルトの名無しさん
2010/08/05(木) 01:47:03,r´⌒ヽ,⌒ヽ,ヽ
(⌒)、 .人 λ\、 ._____
\. \ 、 ヽ./ ー ー\
|\ \ ヽ./ ( ●) ( ●)
| \ \ / (__人__) \ はいはい、どーもすみませんでした
|. \ | ` ⌒´ |
. |. |.\_ノ\ /
. |. | | \______/
. | ) .| . . ̄ ̄
. | | .|
| |.| .|
. | | .| .|
/ / / ヽ,
(__ノ ヽ、__つ
0499デフォルトの名無しさん
2010/08/05(木) 02:11:08そのアゴをなでなでしたいと常々思っている
0500デフォルトの名無しさん
2010/08/05(木) 18:16:39# グッドな泣き声にSっ気が…
0501デフォルトの名無しさん
2010/08/05(木) 20:25:20干からびて死ね。バカ。
0502デフォルトの名無しさん
2010/08/05(木) 21:43:59ねぇ、今日はどんな土方仕事したの?
0503デフォルトの名無しさん
2010/08/06(金) 00:54:06どの実例がほしい?
charが12ビットな環境でいい?
0504デフォルトの名無しさん
2010/08/06(金) 01:19:370505デフォルトの名無しさん
2010/08/06(金) 01:53:500506デフォルトの名無しさん
2010/08/06(金) 02:00:100507デフォルトの名無しさん
2010/08/06(金) 02:34:040508デフォルトの名無しさん
2010/08/06(金) 02:51:330509デフォルトの名無しさん
2010/08/06(金) 03:32:380510デフォルトの名無しさん
2010/08/06(金) 11:14:37で検索したら1バイト=16ビットの例が出てきた。
DSPか・・・ニッチだなぁ。
0511デフォルトの名無しさん
2010/08/06(金) 14:54:320512デフォルトの名無しさん
2010/08/06(金) 15:02:240513デフォルトの名無しさん
2010/08/06(金) 16:08:370514デフォルトの名無しさん
2010/08/06(金) 16:43:14#include <conio.h> //for getch
#define END 0x20 //スペースキー
int main (void)
{
int i = 0;
char keyboard = 0x00;
for(i=1; i<=200 i++){
printf("今 %d 番目だお (^ω^)\n", i);
}
while( keyboard != END ){
if( ( keyboard = getch( ) ) != 0xFFFFFFE0) {
switch( keyboard ) {
case 0x48: /*ここにスクロール処理 */ break: //矢印キー上
case 0x50: /*ここにスクロール処理 */ break: //矢印キー下
case END: printf("終了します。\n"); break;
default: printf("無効な操作だお (;^ω^)\n");
}
}
}
return 0;
}
これを実行すると1〜200までズラッと表示されると思うのですが、
このコマンドプロンプトウィンドウをキーボードの矢印キーを使って上下にスクロールさせたいです。
矢印キーを使ってのウィンドウスクロールってどうやればいいんでしょう…?
0515デフォルトの名無しさん
2010/08/06(金) 17:38:210516デフォルトの名無しさん
2010/08/06(金) 17:42:120517デフォルトの名無しさん
2010/08/06(金) 18:06:19その処理系に cprintf() という高速出力ルーチンがあって、
コンソールの行数が25行のとしたら、こんな感じ。
#include <stdio.h>
#include <conio.h> //for getch
#define END 0x20 //スペースキー
#define LINE_NUM 25 // 画面の行数
void disp(int pos)
{
int i;
for (i = 0; i < LINE_NUM; i++) {
cprintf("今 %d 番目だお (^ω^)\n", i + pos);
}
}
int main (void)
{
int i = 0;
char keyboard = 0x00;
int pos = 1;
----
つづく
0518デフォルトの名無しさん
2010/08/06(金) 18:07:18for(i=1; i<=200 i++){
cprintf("今 %d 番目だお (^ω^)\n", i);
}
while( keyboard != END ){
if( ( keyboard = getch( ) ) != 0xFFFFFFE0) {
switch( keyboard ) {
case 0x48: //矢印キー上
if (pos > 1)
pos--;
disp(pos);
break:
case 0x50: //矢印キー下
if (pos < 200 - LINE_NUM)
pos++;
disp(pos);
break:
case END: printf("終了します。\n"); break;
default: printf("無効な操作だお (;^ω^)\n");
}
}
}
eturn 0;
}
0519デフォルトの名無しさん
2010/08/06(金) 18:09:20これじゃちらつしてしかたないか。
カーソル位置を制御する関数で、描画のたびにカーソルを画面の
トップにもってこないといけないな。
0520デフォルトの名無しさん
2010/08/06(金) 19:16:050521デフォルトの名無しさん
2010/08/06(金) 19:18:130522デフォルトの名無しさん
2010/08/06(金) 19:19:130523デフォルトの名無しさん
2010/08/06(金) 19:42:360524デフォルトの名無しさん
2010/08/06(金) 20:33:070525デフォルトの名無しさん
2010/08/06(金) 22:29:55Rogueでggる
Cursesが見つかる
0526デフォルトの名無しさん
2010/08/06(金) 22:55:45200万以下の素数の合計を求めるプログラムなんですが、
結果が上手く合いません。
どこが間違っていますか?
#include<stdio.h>
int main(){
int a,n,sum=160;
for(n = 37;n <= 2000000;n = n + 2){
for(a = 3;a < n * 0.5;a = a + 2)
if((n % a) == 0)
break;
if(a > n * 0.5)
sum += n;
}
printf("%d\n",sum);
return 0;
}
0527デフォルトの名無しさん
2010/08/06(金) 23:05:04perlのBigIntつかえ
intの最大値は足し算の結果より小さいんだろ
0528デフォルトの名無しさん
2010/08/06(金) 23:11:23なるほど!
cで言えば、
long long intを使えば良いってことですね
ありがとうございました
0529デフォルトの名無しさん
2010/08/06(金) 23:50:19char は少なくとも 8bit あると規格で規定されてる
0530デフォルトの名無しさん
2010/08/07(土) 00:12:23それが8bitであるって規格されてたっけ?
0531デフォルトの名無しさん
2010/08/07(土) 00:25:02C99のbyteの定義:
addressable unit of data storage large enough to hold any member of
the basic character set of the execution environment
つまりbasic character setが全部表現できるサイズなら何でもおけ
0532デフォルトの名無しさん
2010/08/07(土) 00:27:410533デフォルトの名無しさん
2010/08/07(土) 00:34:54正規表現で……
・素数判定
・fizzbuzz
・整数の足し算
・〜の取り扱い
・半角カナの置換作業
・バブルソート
0534デフォルトの名無しさん
2010/08/07(土) 00:37:210535デフォルトの名無しさん
2010/08/07(土) 00:40:16正規表現を勉強したいので
じゃなくて
正規表現を勉強したので
だぞ?
0536デフォルトの名無しさん
2010/08/07(土) 00:53:520537デフォルトの名無しさん
2010/08/07(土) 17:15:02ってことは7bitでもいいってことかなー
0538デフォルトの名無しさん
2010/08/07(土) 18:00:42もちろん問題ない。
今は絶滅してるけど、過去にそういうのはあった。
むしろ4bitがあった。俺はそのときに泣いた。
もう涙は流さない。
0539デフォルトの名無しさん
2010/08/07(土) 18:10:54ネットでCHAR_BITは8以上って情報をよく見るけど、これは嘘なの?
0540デフォルトの名無しさん
2010/08/07(土) 18:21:42正しい
JISの「5.4.3.2.1 整数型の大きさ <limits.h>」
に規定があるが、CHAR_BITは最低でも8とされている
0541デフォルトの名無しさん
2010/08/07(土) 19:08:49コラッツ問題で
100万以下の数字のうち、項数がもっとも多くなる数字はどれか
という問題を解いています
そこで配列を300万個用意したいのですが、
エラーが起きて上手く実行されません。
どうすれば配列が確保できるようになるのでしょうか?
0542デフォルトの名無しさん
2010/08/07(土) 19:11:160543デフォルトの名無しさん
2010/08/07(土) 19:12:42mallocしか手はないですか?
0544デフォルトの名無しさん
2010/08/07(土) 19:17:230545デフォルトの名無しさん
2010/08/07(土) 19:23:310546デフォルトの名無しさん
2010/08/07(土) 19:27:27バグってるわな.
Program received signal SIGSEGV, Segmentation fault.
0x080484d1 in main () at x.c:14
14 if(set[m] != 0){
(gdb) p n
$1 = 4255
(gdb) p m
$2 = 3188644
(gdb)
0547デフォルトの名無しさん
2010/08/07(土) 19:42:39それ以前に
・intの最大値を確かめよ
・long long int を調べよ
・300万個の配列を考え直せ
・項数と整数を一組だけ保持して比較せよ
・割り算でのバグに注意せよ
0548デフォルトの名無しさん
2010/08/07(土) 19:55:120549デフォルトの名無しさん
2010/08/07(土) 21:22:08これらの関数は元はC言語で実装されたものですか?
0550デフォルトの名無しさん
2010/08/07(土) 21:22:32高々100万程度なので、
long long int型は使わなくてよくないですか?
じゃあ配列を使わないで作り直してみます!
0551デフォルトの名無しさん
2010/08/07(土) 21:55:03計算途中でこんな数値が出てくるみたい
56991483520
0552デフォルトの名無しさん
2010/08/07(土) 21:59:43配列使わずに作り直してたら確かにint型じゃ収まりきれませんね
生意気な事いってすいませんでした。
0553デフォルトの名無しさん
2010/08/07(土) 22:05:53本当に300万個ものデータを「オンメモリ」にしなきゃならんのか?
そこから考え直した方がいい
0554デフォルトの名無しさん
2010/08/07(土) 22:18:15nの項数は決まっているので、
それぞれを格納して足せば高速化が図れるのでは?
と考えたんですが、
配列使わなくても1秒ぐらいで出力できたんで
その必要はなかったですね
0555デフォルトの名無しさん
2010/08/07(土) 22:20:500556デフォルトの名無しさん
2010/08/07(土) 22:33:22馬鹿な事を考えてた って意味ですか?
0557アセンション
2010/08/07(土) 22:43:226はラテン語でセクサ(セックス)。Cもセックス。
あとさ、2チャンって「ハッキングから今晩のおかずまで」って標語あるじゃん。
あれってドッキングから今夜のおかずって意味だろ?
あとさ、無意識に存在する神レベルの連中からしたら、ソースコードはスパゲッティで十分なんだって知ってた?
構造化とかオブジェクト指向とか意識の俺らが読むのに都合よくしてるだけなんだってさ。
0558アセンション
2010/08/07(土) 22:47:04変態が好まないようなデザインにすれば万事解決なのに。
って言ったら、制服がかわいくないと学生が集まらないって言われた。
一見もっともらしいんだけど気になる。。。。
だって、変態と女子高生の美的センスが一致してるってことになるからな。
女子高生がかわいいと思うけど、変態が好まない制服を開発すれば万事解決するはず。
もっとも女子高生じゃないババアが制服着てもキモイだけだけどね。
0559デフォルトの名無しさん
2010/08/07(土) 22:51:18変態は女子高生の制服のみが対象じゃねえんだ。
変えたら鞍替えしてくるだけだ。
女子高生といえば、靴下が超定番なんだけど。
社会人みたいにストッキングや生足が定番に出来ないか。
膝下が丸出しの方が好きだ。
0560デフォルトの名無しさん
2010/08/07(土) 22:58:14私もためしてみましたが、ステップの途中でとてつもなく大きな数字があらわれてくる (>>551) みたいです。
int じゃたりない。
配列よりさきに、数字の大きさでつまずきました。
まず配列なしでつくってみようと思っていますが、さあどうしようか。java なら BigInt があるんですけれども。
0561>>541
2010/08/07(土) 23:04:06long long intでできますよー
http://codepad.org/TiVVAFYl
0562デフォルトの名無しさん
2010/08/07(土) 23:07:50max とか maxsu とかの初期化は?
0564デフォルトの名無しさん
2010/08/07(土) 23:11:33だめに決まってるだろ
なんで maxsu が 1000000 超えてるんだよ
0565>>541
2010/08/07(土) 23:15:59え
自分のPCでは837799を出力しましたが
そちらではだめでしたか?
この答えで正解だったので、
プログラムは間違えてないと思います。
0566デフォルトの名無しさん
2010/08/07(土) 23:32:44maxsuは別に初期化しなくてもいいが、maxは初期化しなければならない。
正しい答えが出たのは、偶然maxの数値が低かっただけ。
0567デフォルトの名無しさん
2010/08/07(土) 23:37:15C言語の熟練の方は、ライブラリ関数とシステムコールはどのように使い分けているのでしょうか?
自分の認識では、システムコールはOSの機能で、ライブラリ関数はあくまでソフトウェアだから
環境が変わればライブラリ関数は統一できてもシステムコールはそうはいかない、
と思うのですが間違ってますか?
私の手元にある参考書では、どっちもごちゃ混ぜに使っているので少し疑問に感じました。
具体的には、ファイルを管理するサンプルプログラムがありまして
基本的にはライブラリ関数を使ってるのですが、
ファイルかディレクトリかの判断をする箇所だけ、statというシステムコールを使っているのです。
これって、Linuxじゃない環境では動かなくなるんじゃないでしょうか?
あるいはライブラリ関数レベルでディレクトリ判断は不可能なんでしょうか。
0568デフォルトの名無しさん
2010/08/07(土) 23:38:24くだらねえことで留まるな
0570デフォルトの名無しさん
2010/08/07(土) 23:41:12少なくとも max は代入する前に参照してるだろ?
stack 変数はどんな値が入ってるか分からないので
max の初期値が 1000000 越えてたらまともに動かないだろ?
0571デフォルトの名無しさん
2010/08/08(日) 06:31:38熟練ではないが。
他のOSでも動作することを前提に設計でもしない限り、動かなくて当たり前。
動かしたい場合、Java辺りを選択するんじゃないでしょうか。
あと、ライブラリとは標準Cライブラリの事でしょうか?
WindowsにしろLinuxにしろ、標準Cライブラリだけでソフトを仕上げることは不可能です。
0572デフォルトの名無しさん
2010/08/08(日) 07:15:02の
%10.5fを定数化することはできますでしょうか?
#defineで定義してみたのですが
やはり普通の文字列としてしか認識してくれませんでした
0573デフォルトの名無しさん
2010/08/08(日) 07:36:480574デフォルトの名無しさん
2010/08/08(日) 07:48:10int main(int ac, char **av)
{
int i, j;
for(j = 12; --j > 8; )
for(i = 5; --i > 1; )
printf("%*.*f\n", j, i, 1.23456);
return 0;
}
0575デフォルトの名無しさん
2010/08/08(日) 07:48:56何をしたいのか書いた方がいいと思う。
0576デフォルトの名無しさん
2010/08/08(日) 08:15:17#define FIELD_WIDTH 10
#define PRECISION 5
として
printf("%*.*f ", FIELD_WIDTH, PRECISION, matrix[i][j]);
と書くにはどうすれば?という質問でした。
解決しました。ありがとうございました。
数値計算を行っておりまして、
一括でフィールド幅と精度を管理したいということでした
0577デフォルトの名無しさん
2010/08/08(日) 08:18:44本気で数値計算を考えてるなら注意しておく
そんなやり方では精度は確保できないぞ
0578デフォルトの名無しさん
2010/08/08(日) 08:33:04丸め誤差、桁落ち、積み残し、打ち切り誤差を考慮した
アルゴリズムが精度の確保につながると思うのですが、
大学のレポートで出力を一括で管理したいだけのレベルなのでこれで大丈夫です。
わざわざありがとうございます
0579デフォルトの名無しさん
2010/08/08(日) 08:43:420580デフォルトの名無しさん
2010/08/08(日) 11:35:58stdoutってFILE構造体何ですか?
0581デフォルトの名無しさん
2010/08/08(日) 12:00:020582デフォルトの名無しさん
2010/08/08(日) 12:18:020583デフォルトの名無しさん
2010/08/08(日) 16:03:19ご提案のアイディアを形にしてみました。
対象となる整数は 10億まで。私の環境ではこれが精一杯。
http://codepad.org/Ec8bEj52
0584デフォルトの名無しさん
2010/08/08(日) 19:45:10整数計算がしたいだけならperl入れてBigInt使った方がラクかもしれんね
600桁同士の掛け算も一瞬で終わる
0585デフォルトの名無しさん
2010/08/08(日) 20:13:41符号の有無じゃなくて
asciiだと128しか割り当てられていないと思うですが
0586デフォルトの名無しさん
2010/08/08(日) 20:24:150587585
2010/08/08(日) 20:34:34C言語のcharはjavaのbyteとかに近いわけだ
javaでもcharには数値を入れられたと思うけど、使い方的に
ちなみに、charとunsigned charは互換性があるのですか?
こんな事をしてみたいんですが
unsigned char c[] = "char";
strlen((char *)c);
0588デフォルトの名無しさん
2010/08/08(日) 21:56:07BYTE型として扱いたい型に符号の有無があるのがおかしいんだよ
C言語規格のあいまいさの1つ
0589デフォルトの名無しさん
2010/08/08(日) 22:34:14BYTE 型ってなに?
0590デフォルトの名無しさん
2010/08/08(日) 22:40:230591デフォルトの名無しさん
2010/08/09(月) 00:05:32Javaのbyte型は符号付きに固定されているが、そういうのがいいのか?
0592デフォルトの名無しさん
2010/08/09(月) 00:12:27そのキャストに耐えられないようだと前途多難
臭い汚い仕事が嫌いなら他言語へ逝け
0593デフォルトの名無しさん
2010/08/09(月) 00:41:11符号ありなしを固定したいだけなら
signed char もしくは unsigned char と書けばいいだけ
0594デフォルトの名無しさん
2010/08/09(月) 02:39:420595デフォルトの名無しさん
2010/08/09(月) 02:46:340596デフォルトの名無しさん
2010/08/09(月) 02:47:260597デフォルトの名無しさん
2010/08/09(月) 10:26:41char が上2者と同じか或いは違うかは環境次第。
0598デフォルトの名無しさん
2010/08/09(月) 15:22:370599デフォルトの名無しさん
2010/08/09(月) 15:23:160600デフォルトの名無しさん
2010/08/09(月) 21:13:11目的があって買ったんじゃないの?
それともワレザーですか?
0601デフォルトの名無しさん
2010/08/09(月) 21:18:260602デフォルトの名無しさん
2010/08/09(月) 21:20:09無料もしくは1400円ぐらいで入手できる
0603デフォルトの名無しさん
2010/08/09(月) 21:54:48http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10913.txt
0604デフォルトの名無しさん
2010/08/09(月) 22:01:130605デフォルトの名無しさん
2010/08/09(月) 22:03:40悪い予想の方が有力だね
0606デフォルトの名無しさん
2010/08/09(月) 23:14:19クラス使ってないし簡単やん
0607デフォルトの名無しさん
2010/08/09(月) 23:21:05cには可変長配列がない
0608デフォルトの名無しさん
2010/08/09(月) 23:49:470609デフォルトの名無しさん
2010/08/09(月) 23:55:25可変長配列?
配列の要素数に変数を使うってことならC99で対応済みだよ
0610デフォルトの名無しさん
2010/08/10(火) 00:04:02「ない」って時点でC土方には不適格
それを作るのがてめーらの仕事だろうが ぼけ
0611デフォルトの名無しさん
2010/08/10(火) 00:13:43いや、簡単に作れるだろ。何言ってんのよ。
0612デフォルトの名無しさん
2010/08/10(火) 00:14:290613デフォルトの名無しさん
2010/08/10(火) 00:17:26Exsactory!
Exsactory!
Exsactory!
Exsactory!
0614デフォルトの名無しさん
2010/08/10(火) 06:11:59int* i;
int *i;
の違いは何ですか?
0615デフォルトの名無しさん
2010/08/10(火) 06:42:38見た目が違うだけ
0616デフォルトの名無しさん
2010/08/10(火) 07:41:33int* i; 素人
int *i; 老人
0617デフォルトの名無しさん
2010/08/10(火) 09:10:340618デフォルトの名無しさん
2010/08/10(火) 09:35:45きちがいっていうか素人だよな。
こんなところでムダに個性をださなくていい。
0619デフォルトの名無しさん
2010/08/10(火) 09:41:44これは、
int *SomeClass::some_func(void);
これの方がいいんすかどうなんすか。
0620デフォルトの名無しさん
2010/08/10(火) 09:41:540621デフォルトの名無しさん
2010/08/10(火) 10:08:41int *i;
にして、関数は
int* SomeClass::some_func(void);
にするんじゃ一貫性がないんじゃないんですかどうなんすか
0622デフォルトの名無しさん
2010/08/10(火) 10:09:570623デフォルトの名無しさん
2010/08/10(火) 10:17:230624デフォルトの名無しさん
2010/08/10(火) 10:20:10そんな独自の工夫はいいから、普通に書いてほしい。
0625デフォルトの名無しさん
2010/08/10(火) 10:47:520626デフォルトの名無しさん
2010/08/10(火) 11:08:15俺は後者
0627デフォルトの名無しさん
2010/08/10(火) 11:08:510628デフォルトの名無しさん
2010/08/10(火) 11:10:270629デフォルトの名無しさん
2010/08/10(火) 11:13:37標準にはない
touchでできることをする関数はあるけど
OSによって違う
0630デフォルトの名無しさん
2010/08/10(火) 11:18:59了解。仕方ないからopenしてcloseしてutimeするわ。
0631デフォルトの名無しさん
2010/08/10(火) 11:37:54system("touch")じゃダメなん?
0632デフォルトの名無しさん
2010/08/10(火) 11:50:55ファイルがあるかの確認して無かったら作成するようにはなってるが
0633デフォルトの名無しさん
2010/08/10(火) 11:59:18http://www.linux.or.jp/JM/html/LDP_man-pages/man2/utime.2.html
このページが見つかったんだけど、廃止予定って書いてある。
utimesのほうを使えってことだろうか。
0634デフォルトの名無しさん
2010/08/10(火) 13:42:480635デフォルトの名無しさん
2010/08/10(火) 13:56:46マ
ジ ハ ,,ハ
デ (;゚◇゚)z
!?
0636デフォルトの名無しさん
2010/08/10(火) 17:51:26プログラミング言語Cは読みました。
0637デフォルトの名無しさん
2010/08/10(火) 17:55:590638636
2010/08/10(火) 17:59:45〃〃∩ _, ,_
⊂⌒( `Д´) < ヤダヤダ!
`ヽ_つ__つ
ジタバタ
0640デフォルトの名無しさん
2010/08/10(火) 18:07:030641デフォルトの名無しさん
2010/08/10(火) 18:07:180643デフォルトの名無しさん
2010/08/10(火) 18:15:450644デフォルトの名無しさん
2010/08/10(火) 18:18:320645デフォルトの名無しさん
2010/08/10(火) 18:18:36規格票
0646636
2010/08/10(火) 18:19:160647デフォルトの名無しさん
2010/08/10(火) 21:27:57難解な本を読むのが目的なら哲学書でも探せ
0648デフォルトの名無しさん
2010/08/10(火) 21:55:29ひとりよがりでカキまくってても限界そのものに気付くことができないし
他人の受け売りだけでは何も創造できない
0649デフォルトの名無しさん
2010/08/10(火) 21:57:070650デフォルトの名無しさん
2010/08/10(火) 22:40:45そうじゃないとアルゴリズムの凄さなんて感じることができないと思う
0651デフォルトの名無しさん
2010/08/10(火) 22:58:400652デフォルトの名無しさん
2010/08/10(火) 23:29:45決められた文字で入力されているかとか判断するというのは最近知りましたが、
1文字だけ入力を取得する場合も上記の方法でできますが、正式なやり方というのは
別の方法であったりするのでしょうか?
0653デフォルトの名無しさん
2010/08/11(水) 00:30:340654652
2010/08/11(水) 00:44:380655デフォルトの名無しさん
2010/08/11(水) 01:12:56ちなみに、このスレの範疇では「無理」だよ
OSやハードに特有の機能がどうしても必要
0656デフォルトの名無しさん
2010/08/11(水) 01:17:27できます。
0657デフォルトの名無しさん
2010/08/11(水) 01:33:51char c;
int handan = TRUE;
while((c = getchar()) != EOF)
{
if(c == '\0') break;
else if( c < '0' || c > '9') { handan = FALSE; break; }
}
////////////////////
int isKimeraretaMoji(char c);
char c;
int handan = TRUE;
while((c = getchar()) != EOF)
{
if(c == '\0') break;
else if( !isKimeraretaMoji(c) ) { handan = FALSE; break; }
}
0658デフォルトの名無しさん
2010/08/11(水) 05:29:580659デフォルトの名無しさん
2010/08/11(水) 06:50:28より効率のいい書き方とか保守性の高い書き方とかはあるけど
0660デフォルトの名無しさん
2010/08/11(水) 08:16:270661デフォルトの名無しさん
2010/08/11(水) 10:20:500662デフォルトの名無しさん
2010/08/11(水) 10:29:37B::C
http://pub.ne.jp/wakapon/?entry_id=832342
0663デフォルトの名無しさん
2010/08/11(水) 10:41:23ありがとう
本当にできるとは思わなかった
0664デフォルトの名無しさん
2010/08/11(水) 16:51:03ストリームの終端を知るにはサイズを調べるしかないんですか?
0665デフォルトの名無しさん
2010/08/11(水) 17:07:44全然違う。キミにそんな出鱈目を教えたテキストは今すぐ廃品回収に出せ。
どこかのサイトで読んだなら、これ以上の犠牲者が出ないうちにここで晒すべし。
0666デフォルトの名無しさん
2010/08/11(水) 17:17:170667デフォルトの名無しさん
2010/08/11(水) 17:20:00さすがに考えられない
0668デフォルトの名無しさん
2010/08/11(水) 17:21:48おそらく EOF と 0x1a を混同しているのだろう
それから「サイズ」とは何かを厳密に定義してみると自分の口から答えが聞けるはず
0669デフォルトの名無しさん
2010/08/11(水) 17:36:27「テキストモードだと^ZがEOFとして扱われる」だな。
0670デフォルトの名無しさん
2010/08/11(水) 18:23:160671>>541
2010/08/11(水) 19:43:29int main(void)
って、
int main()
とどう違いますか?
正しいのはどちらなんでしょうか?
0672デフォルトの名無しさん
2010/08/11(水) 20:04:130673デフォルトの名無しさん
2010/08/11(水) 20:27:09バイナリモードであろうと、テキストモードであろうと、EOF の使いかたは同じです。
0674デフォルトの名無しさん
2010/08/11(水) 20:37:05え?
0675デフォルトの名無しさん
2010/08/11(水) 21:01:24え?
0676デフォルトの名無しさん
2010/08/11(水) 21:02:13int main(int, char **)
0677デフォルトの名無しさん
2010/08/11(水) 21:12:27べつに引数なくてもいいだろ。
0678デフォルトの名無しさん
2010/08/11(水) 21:45:150679デフォルトの名無しさん
2010/08/12(木) 00:25:32C++では両者は同じ意味
Cでは両者は異なったモノとなる。
int main(void);
は戻り値の型がintで、引数をとらない関数mainの宣言
int main();
は戻り値の型がintで、引数の制限がない関数mainの宣言
Cの int main();と同様の関数をC++で宣言するとint main(...);となる。
0680デフォルトの名無しさん
2010/08/12(木) 00:40:21int main() と int main(); は違うだろ。
しかも main() をプロトタイプ宣言なんてほとんどしないだろ。
0681デフォルトの名無しさん
2010/08/12(木) 00:49:420682679
2010/08/12(木) 01:23:27舌足らずですまぬ。
int main()
だけじゃ完結してないから気持ち悪くて、補完しただけ。
int main() {}
でもよかったんだけどね。
それにmainだけじゃなく関数一般に通じるから、プロトタイプ宣言にした。
0683デフォルトの名無しさん
2010/08/12(木) 07:53:230684デフォルトの名無しさん
2010/08/12(木) 08:08:09言葉遣いが正しくないくらいで何がわかるんだ
0685デフォルトの名無しさん
2010/08/12(木) 08:18:140686デフォルトの名無しさん
2010/08/12(木) 09:07:06それがC99の関数定義では int func() と inf func(void) の意味は一緒ということになりました。
http://hibari.2ch.net/test/read.cgi/tech/1278759538/951
int main() と int main(void) は関数定義であるかぎり同じ。私も最初は驚きました。
0687デフォルトの名無しさん
2010/08/12(木) 11:45:01それがC99に対応している処理系はほとんど無いのです
gccですら部分対応なのでとても使えません
0688デフォルトの名無しさん
2010/08/12(木) 13:26:05・//コメント
・printf()の"%lf"
・ブロック先頭以外の変数宣言
この条件なら、対応している処理系が殆どだねw
0689デフォルトの名無しさん
2010/08/12(木) 13:28:55未来のレス番に誘導されても。
0690デフォルトの名無しさん
2010/08/12(木) 13:31:46すまんかった orz
0691デフォルトの名無しさん
2010/08/12(木) 13:40:01そんなの使うくらいなら素直にC++に行くと思うんだが。
0692688
2010/08/12(木) 13:58:28>688に書いた頑固親父曰く、HP-UXで使えないものは使わない。
どうやらHP-UXのC++はiso準拠度が低いらしいが、寧ろ私は「自分が理解できないものは使わない」のだと思う。
尤も、その周辺の部署では当たり前のようにc++を使っているので件の親父の所だけカオスと化している。
0693デフォルトの名無しさん
2010/08/12(木) 15:49:00↓
http://www.amazon.co.jp/C言語セルフラーニング基礎編・応用編/dp/475613596X/ref=sr_1_3?ie=UTF8&s=books&qid=1281595633&sr=1-3
0694デフォルトの名無しさん
2010/08/12(木) 15:51:220695デフォルトの名無しさん
2010/08/12(木) 15:52:35http://www.amazon.co.jp/dp/475613596X/
しかしたけーなこれwww
0696デフォルトの名無しさん
2010/08/12(木) 16:11:500697デフォルトの名無しさん
2010/08/12(木) 16:57:02技術書は落書きしてナンボなんだから、借り物じゃ駄目だ
0698デフォルトの名無しさん
2010/08/12(木) 16:59:51買う前に見たほうがいいじゃない
0699デフォルトの名無しさん
2010/08/12(木) 17:00:320700デフォルトの名無しさん
2010/08/12(木) 17:04:21[基礎編]
STEP1 プログラムを作ってみよう!!
STEP2 プログラムを洗練しよう!!
STEP3 入力スピードの分析をしよう!!
STEP4 入力データの分析をしよう!!
STEP5 応用課題に挑戦しよう!!
STEP6 C言語基礎のまとめ
Appendix サンプル
Appendix 用語辞書
[応用編]
STEP1 入力単語の分析をしよう!!
STEP2 データファイルを使用しよう!!
STEP3 プログラム開発に挑戦しよう!!
STEP4 C言語応用のまとめ
Appendix サンプル
0701デフォルトの名無しさん
2010/08/12(木) 17:25:430702デフォルトの名無しさん
2010/08/12(木) 17:33:25富士通のCコンパイラがその値段で手に入るのだと
0703デフォルトの名無しさん
2010/08/12(木) 17:34:280704デフォルトの名無しさん
2010/08/12(木) 17:37:21っていうか社内研修用の教材じゃねーのか
0705デフォルトの名無しさん
2010/08/12(木) 17:38:500706デフォルトの名無しさん
2010/08/12(木) 17:42:35買うやつがいるからこの値段なんだろうけど・・・
0707デフォルトの名無しさん
2010/08/12(木) 17:42:570708デフォルトの名無しさん
2010/08/12(木) 17:45:210709デフォルトの名無しさん
2010/08/12(木) 17:45:32いらねえw
VC10を超えられるとは思えない
0710デフォルトの名無しさん
2010/08/12(木) 17:49:47インテルコンパイラを買う
0711デフォルトの名無しさん
2010/08/12(木) 17:56:30http://www.amazon.co.jp/dp/4893690779/
0712デフォルトの名無しさん
2010/08/12(木) 17:59:06http://www.amazon.co.jp/dp/4839902003/
0713デフォルトの名無しさん
2010/08/12(木) 17:59:32あの棚一列あれば軽くAVセット買えただろうな
売れればの話だが
0714デフォルトの名無しさん
2010/08/12(木) 18:10:43VBはスレ違い・・・・ってなんだこりゃ
\9,976,886もするのに送料340円とるのかよ
0715デフォルトの名無しさん
2010/08/12(木) 18:13:05>基本コントロールで簡単に作る Visual Basic 6.0 プログラミング入門 [単行本]
>中古品2点¥ 9,976,886より
意味が全く分からない
0716デフォルトの名無しさん
2010/08/12(木) 18:43:200717デフォルトの名無しさん
2010/08/12(木) 20:22:36説明してくれないか。
¥ 9,976,886
+ ¥ 340(配送料)
¥ 10,974,574
+ ¥ 340(配送料)
0718デフォルトの名無しさん
2010/08/12(木) 20:25:07自動で最安の10%増しをつけてるとみた
0719デフォルトの名無しさん
2010/08/12(木) 20:28:40頭良いな
0720デフォルトの名無しさん
2010/08/13(金) 00:20:27まだ上がっていくぞwwwスカウターの故障かwww
0721デフォルトの名無しさん
2010/08/13(金) 00:37:57一方は現在の最安まで上げる。
一方は現在の最安に10%上乗せする。
¥ 12,072,031 + ¥ 340(配送料)
¥ 12,072,031 + ¥ 340(配送料)
0722デフォルトの名無しさん
2010/08/13(金) 00:52:46だれかCで回答してくれ
0723デフォルトの名無しさん
2010/08/13(金) 06:09:09int main(void)
{
const int iv = 790;
const int tv[] = { 9976886, 10974574, 12072031 };
const double r = 1.1;
double ir;
int n;
for( ir = 0.1; ir < 2.0; ir += 0.01 )
{
int bv = (int)( (double)iv * ir );
int v[] = { 0, (int)( (double)bv * r ), 0 };
for( n = 2; n < 300; ++n )
{
v[ 2 ] = (int)( (double)v[ 1 ] * r );
if( v[ 0 ] == tv[ 0 ] && v[ 1 ] == tv[ 1 ] && v[ 2 ] == tv[ 2 ] )
printf( "%.0lf%% \\%d %ddays\n", ir * 100, bv, n );
if( v [ 2 ] >= tv[ 2 ] )
break;
v[ 0 ] = v[ 1 ];
v[ 1 ] = v[ 2 ];
}
}
return 0;
}
0724デフォルトの名無しさん
2010/08/13(金) 07:15:12初値と日数の二つ未知数がある
0725デフォルトの名無しさん
2010/08/13(金) 08:25:0013% \102 123days
163% \1287 96days
197% \1556 94days
0726デフォルトの名無しさん
2010/08/13(金) 10:04:29かつプレミア価格がついていれば希少価値があるということで
最安値より少々高めの価格にしても売れるに違いない。
という考えに基づいていると仮定するならば、開始値は1287円……かな?
0727デフォルトの名無しさん
2010/08/13(金) 10:25:40関係者にとって都合の悪い情報とかが書かれてるとかそういう
んじゃねの?
0728デフォルトの名無しさん
2010/08/13(金) 10:32:134030円辺りでスパイラルがスタートしたとしても84日か。
実際には他の業者がいればスパイラルには落ち込まなかっただろうし、スパイラル前の日数は不明だね。
0729デフォルトの名無しさん
2010/08/13(金) 12:06:18int *array = {1, 2, 3, 4, 5};
配列の時はsizeof(array) / sizeof(array[0])で長さを求められますが、
ポインタの時はどうすれば長さを求められるんですか?
また、*arrayはarray[0]でアクセスできないのは何故ですか?
0730デフォルトの名無しさん
2010/08/13(金) 12:13:18静岡駅からコミケ会場に最も効率よくたどり着く陸路を求めるにはどうすればいいですか?
0731デフォルトの名無しさん
2010/08/13(金) 12:27:12方法は無いから諦めろ
だから最後の要素に終了を意味する奴を入れたりする
array[0]でアクセスはできる
だからお前がなにか別なとこ間違えてる
0732デフォルトの名無しさん
2010/08/13(金) 12:36:48感謝
0733デフォルトの名無しさん
2010/08/13(金) 12:42:06Googleトランジットで検索する。
但し徒歩とかタクシーとかは対象外なので別途検討必要
0734デフォルトの名無しさん
2010/08/13(金) 12:44:48すげーなこれ
0735デフォルトの名無しさん
2010/08/13(金) 13:06:140736デフォルトの名無しさん
2010/08/13(金) 14:13:17memset(test, 0, sizeof(test));
0でtestを初期化しているってことで、おk?
0737デフォルトの名無しさん
2010/08/13(金) 14:17:34test[0] 〜 test[1023] が 0 で初期化される。
0738デフォルトの名無しさん
2010/08/13(金) 14:45:39memset(test, 0, sizeof(test));
0でtestを初期化しているってことで、おk?
0739デフォルトの名無しさん
2010/08/13(金) 14:46:04testのアドレスからsizeof(test)バイト分が0クリアされるだけ
解釈翻訳系にtest[]を連続したアドレスに割り当てる義務は無い
(但しその処理系は非正統とされ仲間はずれにされるだろうけど)
0740デフォルトの名無しさん
2010/08/13(金) 14:48:170741デフォルトの名無しさん
2010/08/13(金) 14:48:43memset(test, 0, sizeof(test)/sizeof(test[0]));
0でtestを初期化しているってことで、おk?
0742デフォルトの名無しさん
2010/08/13(金) 15:06:35、 ヽ\ ヽ
. / , / ! ∨丁ヽ い | /二フ”
/ ! | ィ 「\ | ハ l | ,′ /
l ! | / /j/ '. ノ, =、!// /j/ ヽ/
l い/ ,, =x j/ ′ 〈j/ /ヽ
ト ._ \_〃 :.:.:.:.} /二フ”
l l { 下 ̄ .:.:.:.: -‐1 ∧ /
l l T ‐个 ._ ー' イ l| ニニ!
l/ /| l l//下二千ヽ_l い ─┘
' / .′ l,ノ\/// 小、|、\ヽ\ 「〉
?Ul / / \/ U` \ヽl i r_|
?Ul l i ! ト ヽ |
0744デフォルトの名無しさん
2010/08/13(金) 20:18:25¥ 14,607,157 + ¥ 340(配送料)ブックワールド懿「諠Qザンモン
¥ 16,067,872 + ¥ 340(配送料)ロネジェパン
0745デフォルトの名無しさん
2010/08/13(金) 20:48:350746デフォルトの名無しさん
2010/08/13(金) 21:14:46つまり、仮に関数内で、int array[] = {1, 2, 3, 4};
という配列を定義したとして、最後にreturn array;
と書いて、この関数の戻り値を配列arrayの値にすることは可能でしょうか?
0747デフォルトの名無しさん
2010/08/13(金) 21:17:500748デフォルトの名無しさん
2010/08/13(金) 21:20:38申し訳ありませんが、どうやれば関数で配列を返えせるのか教えていただけませんか?
0749デフォルトの名無しさん
2010/08/13(金) 21:28:150750デフォルトの名無しさん
2010/08/13(金) 21:30:44#include <stdio.h>
int *hoge(void){
static int array[] = { 1, 2, 3, 4, 0 };
return array;
}
int main(void){
int i, *a;
a = hoge();
for (i = 0; a[i]; i++)
printf("a[%d] = %d\n", i, a[i]);
return 0;
}
0751デフォルトの名無しさん
2010/08/13(金) 21:33:02配列を構造体で包んでしまう
0752デフォルトの名無しさん
2010/08/13(金) 21:35:04親切に教えていただきありがとうございます
とても助かりました!
0753デフォルトの名無しさん
2010/08/13(金) 22:26:41誤解が無いように補足しておくと、関数の戻り値に配列を指定することは「できない」。
配列を指すポインタ(>750)、構造体を返す(>751)ことはできる。
>750でも注意が必要で、戻り値に指定している配列の宣言にstaticがついていることに注意。
自動変数を指すポインタを戻り値にしてしまうと、関数を抜けたときに無効な領域を指す
ことになってしまう。
なお、スタック上でデータをやりとりするために、実引数に配列を指すポインタを渡して、
そこに値を設定するのも定跡。
0754デフォルトの名無しさん
2010/08/13(金) 22:52:51これ現実なんです。
0755デフォルトの名無しさん
2010/08/13(金) 22:55:48本など一切いらん
0756デフォルトの名無しさん
2010/08/13(金) 23:01:08俺にもそう考えていた時代がありました
0757デフォルトの名無しさん
2010/08/14(土) 14:30:490758デフォルトの名無しさん
2010/08/14(土) 22:43:480759デフォルトの名無しさん
2010/08/14(土) 22:45:49http://www.amazon.co.jp/dp/4839902003/
0760デフォルトの名無しさん
2010/08/14(土) 23:11:45¥ 21,386,338 + ¥ 340(配送料)中古品 - 良い 出品者: ロネジャパン
1.1^3=1.331倍/1日
0761652
2010/08/15(日) 00:15:17>>657
ご丁寧に長文のソースコードまでかいてくださり、ありがとうございました。
参考にさせていただき色々と思考してみようとおもいます。getchar()関数を使うのが
どうも普通のようですね。K&Rにも似たような例がありました。なんか胸がすっきりしました。
回答くださったほかのみなさんもありがとうございました。
0762デフォルトの名無しさん
2010/08/15(日) 02:09:15プレーンテキストでいい。
0763デフォルトの名無しさん
2010/08/15(日) 10:24:19これどっかのニュースサイトに載ってもおかしくないな最早。
それとも、こういうことってこの件以外にもいっぱいあんのかな。
0764デフォルトの名無しさん
2010/08/15(日) 12:03:19どこまでいくんだろうな
¥ 23,524,971
+ ¥ 340(配送料) 中古品 - 良い 出品者: ロネジャパン
¥ 21,386,338
+ ¥ 340(配送料) 中古品 - 可 出品者: ブックワールド☆ゲザンモン
0765デフォルトの名無しさん
2010/08/15(日) 12:09:14ULONG_MAX 4294967295
さてどっちか。
0766デフォルトの名無しさん
2010/08/15(日) 12:18:18int64 か uint64 だろう
0767デフォルトの名無しさん
2010/08/15(日) 13:41:380768デフォルトの名無しさん
2010/08/15(日) 21:42:28x_variableとメモリを結びつける関数
x_malloc(&v, 100); // v に 100byte のメモリを結びつける
メモリの結びつけを解く関数
x_free(&v);
x_variable に結びつけられたメモリの x バイト目に1バイト書き込む関数 | 読み込む関数
x_write(&v, &data);
x_read(&v, &data);
---------------
x_malloc用に任意の大きさのメモリ領域を用意する(初期設定)
x_init(1000); // x_malloc用にメモリ領域を1000byte用意する。
x_end(); // すべての終わり
---------------
x_initで初期化した最大値(1000byte)を越えた場合、
なんらかの方法で1000byte中の一部のデータをハードディスクに退避する。(領域確保)
また逆に、ハードディスクへ退避したデータに元々結びつけられていた x_variable に x_write or x_read した場合は、
退避していたデータを、ハードディスクからメモリに復帰させてアクセスする。
というライブラリを作りたいのですが、難しくて作れません。だれか作ってください。
それ以前に、これは技術的に可能でしょうか?
0769デフォルトの名無しさん
2010/08/15(日) 21:48:44ファイルマッピング
0770デフォルトの名無しさん
2010/08/15(日) 21:52:00クラスstaticなmapにthisポインタとデータをマッピングして代用してるんだけどあんましスマートじゃない気がする
0771デフォルトの名無しさん
2010/08/15(日) 22:21:42スレ違い
0772デフォルトの名無しさん
2010/08/15(日) 22:22:55マルチは嫌われる
0773デフォルトの名無しさん
2010/08/15(日) 23:34:37これはスパム
0774デフォルトの名無しさん
2010/08/16(月) 00:42:19各科目の合計と、全科目の総合点、入力件数を表示するプログラムを作っていて、引っかかっています。
下の通りに作ったのですが、どこをどう直せばいいか教えてください。
#include <stdio.h>
void main(void)
{
int str[100][3];
int i,j=0,cnt=0,sum=0,goukei=0;
printf("英語、国語、数学の順に点数を入力してください。\n");
for(i=0;i !=-1;i++){
for(j=0;j<3;j++){
scanf("%d",&str[i][j]);
if(str[i][j] == -1)
break;
cnt++;
sum += str[i][j];
}if(str[i][j] ==-1)
break;
}
for(j=0;j<3;j++){
for(i=0 ;i < 100;i++)
goukei = goukei+str[i][j];
printf("第%d科目の合計点は%d点です。\n",j+1,goukei);
}
printf("全科目の総合点は%d点です。\n",sum);
printf("入力件数は%dです。\n",cnt);
}
0775デフォルトの名無しさん
2010/08/16(月) 01:11:20もし全部の要素が埋まってないで下のgoukeiの処理を行ったらおかしくなるよね
案としては、
�@あらかじめstr配列は全て-1で初期化しておく
�A入力時に-1をいれた後、他の2教科の最後の配列に-1を入れる
そのあと下のfor文ではstrが-1まで足し続けるというふうにすればいいんじゃないかな
もうちょっとそのコードは美しくなれると思うけど、まぁいいでしょw
がんばってね。
0776デフォルトの名無しさん
2010/08/16(月) 01:48:500777デフォルトの名無しさん
2010/08/16(月) 03:31:37http://page18.auctions.yahoo.co.jp/jp/auction/w51145893
0778デフォルトの名無しさん
2010/08/16(月) 03:51:590779デフォルトの名無しさん
2010/08/16(月) 03:54:310780デフォルトの名無しさん
2010/08/16(月) 08:18:19ありがとうございます。
�Aからわからない(汗)
最初の教科の1番目に−1が入り、
ほかの教科は最後にー1が入るってこと?
for文がー1までたし続けるというと…
0781デフォルトの名無しさん
2010/08/16(月) 09:44:01要は-1を入力したら上のfor文は抜けるわけだよね。
その科目の時だけ-1は入力されてるけど、他の科目の最後の配列は
初期化してないから何が入ってるのかさえ分からない。
だから他の二科目の最後が分かるように-1を入れればいいんじゃないかといっている。
下のfor文では必ず100回ループしてるけど、データは100個入ってるわけ無いでしょ?
データの個数分ループしないといけないけだ。
だから上のfor文で必ず各科目の最後の配列が-1なら、
str配列に-1がでてくるまで足し続ければデータの個数分の合計が出せるわけだ。
簡単にいえば、初期化でstr配列全部に-1をぶっこんでおく。
下のfor文の2個目のfor文内でif(str[i][j] == -1) break;をする。
その下のprintf文のj+1をjにするでいいんじゃないか。
方法はいくらでもあるけどね。
0782デフォルトの名無しさん
2010/08/16(月) 09:46:12無駄な初期化は却って為に成らない。
0783デフォルトの名無しさん
2010/08/16(月) 09:47:08その記述は忘れてくれwww
0784デフォルトの名無しさん
2010/08/16(月) 09:48:36それだったら�Aの方法のほうが簡単だろwww
0785デフォルトの名無しさん
2010/08/16(月) 09:59:32あぁ、それでもいいね。いずれにしても、終端条件を意識していればいいよ。
0786デフォルトの名無しさん
2010/08/16(月) 13:06:53お勧めのテストツールを教えて。
0787デフォルトの名無しさん
2010/08/16(月) 14:46:450788デフォルトの名無しさん
2010/08/16(月) 14:53:48人力かー
人力以外でなんか無いかな
0789デフォルトの名無しさん
2010/08/16(月) 15:09:34int str[100][3];の下に
for(i=0;i<100;i++){
for(j=0;j<3;j++){
str[i][j] = -1;
}
}
を入れたんですが…
0790デフォルトの名無しさん
2010/08/16(月) 15:17:51文字列を入力し、長さが5文字以下の文字列10個を抽出した後、
抽出した文字列を出力するプログラムを作りなさい。
入力は、長さが5文字以下の文字列を10個抽出したところで終了し、
出力を行うようにしなさい。
文字列の入力はscanf関数を、文字列の長さはstrlen関数、文字列の複写はstrcpy関数を
使いなさい。
入力データ中に、15文字を越える文字列はないものとします。
という問題です。
0791790
2010/08/16(月) 15:19:08Boy Constant Girl Man Desk
Garden Go Notebook Fire
Woman Baby Lady Jpananese
Desk Good Heave
*出力例*
Boy
Girl
Man
Desk
Go
Fire
Woman
Baby
Lady
Desk
という感じにしたいのです
0792790
2010/08/16(月) 15:20:34char *data[10 + 1];
int i, j, k;
/* 入力処理 */
for( j = 0; j < 10; ){
for( i = 0; ; i++ ){
scanf( %d", &work[i] );
if( work[i] == '\n' || work[i] == '\t' || work[i] == ' ' )
break;
else
;
}
if( i == 0 && work[i] == '\n' || work[i] == '\t' || work[i] == ' ' )
continue;
else
work[i] = '\0';
if( k = strlen(work) <= 5 ){
strcpy( data[j], work );
j++;
}else
;
}
/* 出力処理 */
data[j] = NULL;
for( i = 0; data[i] != NULL; i++ )
printf( "%s\n", data[i] );
0793デフォルトの名無しさん
2010/08/16(月) 15:21:17初期化はマズイわw
抜けたすぐのif文でbreakするからなw
じゃあ-1抜けた後他の2科目に-1を入れる方法にすればいいw
0794790
2010/08/16(月) 15:22:02if( i == 0 && work[i] == '\n' || work[i] == '\t' || work[i] == ' ' )
この辺りがおかしいかなと思っているのですが、、、
よろしくお願いします
0795デフォルトの名無しさん
2010/08/16(月) 15:41:13いろいろ気持ち悪いw
0796デフォルトの名無しさん
2010/08/16(月) 15:49:52一文字ずつ入れるなら書式指定子%dってよりも%c使うべきだし、
%s使うべきだし・・・
%s使ったらstrlenより上までの処理はほぼいらない。
dataの一つの配列には5文字以下の文字が入るわけだからあらかじめ
その領域を確保して置かなければならない。
malloc使うか、あらかじめdata[10][6]として確保しておくか。
dataは10個って決まってるのだからわざわざ11個用意する必要はない。
strlenのkも不必要だろw
空のelse文も不必要だろw
ざっと見た感想は以上、がんばってね。
0797790
2010/08/16(月) 16:01:50>>796
レスありがとうございます
なんで%dをつかってたのか、、、、
指摘して頂いたところを再度確認してもう一度やりなおしてみます
本当にありがとうございました!
0798デフォルトの名無しさん
2010/08/16(月) 16:11:34だから初期化するのはやめようよ。
0799790
2010/08/16(月) 16:38:43#include <string.h>
int main()
{
char word[10][16];
int i;
for (i = 0; i < 10; i++){
do {
if (scanf("%s", word[i]) == EOF) {
fprintf(stderr, "%s\n", "十個集まらなかったよ……");
return 1;
}
} while(5 < strlen(word[i]));
}
puts("結果");
for (i = 0; i < 10; i++){
printf("%s\n", word[i]);
}
return 0;
}
という感じでやってみたのですが、うまくいきませんでした
0800デフォルトの名無しさん
2010/08/16(月) 16:47:37ホワイトスペース文字だから改行はスキップされる
fgets()とsscanf()を使って自分で解析しろ
0801デフォルトの名無しさん
2010/08/16(月) 16:48:53何度目のFAQかな
1000回はくだらないはず
0802デフォルトの名無しさん
2010/08/16(月) 16:51:43なんかめちゃくちゃになってるwww
前のほうが良かったと思うけど・・・
0803デフォルトの名無しさん
2010/08/16(月) 17:04:56なんか、よく分からないけど
0で初期化したら完成しました。
ありがとうございました。
0804デフォルトの名無しさん
2010/08/16(月) 17:05:540805デフォルトの名無しさん
2010/08/16(月) 17:07:33だから初期化はやめようよ。
それってもしかして、用意した配列の全要素を足しているままじゃないの?
そういう、自分がやるべきことを見失う結果になる恐れがあるから「初期化で済ませる」という考え方はよくないんだ。
0806デフォルトの名無しさん
2010/08/16(月) 17:08:09オレの予想だと、-1を入力した科目だけ1点足りないような気がするけどなー
きちんと処理してるんだろうか・・・
0807デフォルトの名無しさん
2010/08/16(月) 17:09:13マ板くさくなるが…
テストノウハウは色んな意味でみだりに出せないんだよ
0808デフォルトの名無しさん
2010/08/16(月) 17:33:27いちおう言っておくけど色々おかしいと思うよ
例えば国語入力時に-1が来たら英語だけ1件多くなってしまう
英語国語数学が常にセットで1件であるなら、終了判定は数学入力直後または英語入力直前でなければならない
逆に言えば途中で終了判定してはならない
さらにいうと点数を取り込む変数と終了文字を取り込む変数を一緒にする必要はない
点数と関係ない終了判定だけの場所で判定すれば今回のような混乱はそもそも起きない
他にもあるけど、とりあえず「疎」と「密」をもう少し考えてからコーディングするといい
0809デフォルトの名無しさん
2010/08/16(月) 17:36:10件数は1科目1件ってことならおかしくないじゃんw
背景が見えないなら与えられた条件で答えてやれよwww
別に全科目一緒の件数にしなければならないなんて書いてないしwww
0810デフォルトの名無しさん
2010/08/16(月) 17:45:07丸投げするなら宿題スレの方がよいと思うが。とりあえず素直にコーディングしてみた。
#include <stdio.h>
#include <string.h>
#define ELEMENT_NUM_OF(array) (sizeof(array) / sizeof((array)[0]))
int main(void)
{
char aBuf[16]; /* 一時格納用バッファ */
char aPickOut[10][6] = {""}; /* 抽出文字列 */
int cntPickOut = 0; /* 抽出文字列数カウンタ */
int i;
/* 文字列抽出 */
while (scanf("%10s", aBuf) != EOF) {
if (strlen(aBuf) < ELEMENT_NUM_OF(aPickOut[cntPickOut])) {
strcpy(aPickOut[cntPickOut], aBuf);
cntPickOut++;
if ( cntPickOut >= ELEMENT_NUM_OF(aPickOut)) {
break;
}
}
}
/* 抽出文字列表示 */
for (i = 0; i < ELEMENT_NUM_OF(aPickOut); i++) {
printf("%d: %s\n", i , aPickOut[i]);
}
return 0;
}
0811デフォルトの名無しさん
2010/08/16(月) 17:45:480812デフォルトの名無しさん
2010/08/16(月) 17:47:280813デフォルトの名無しさん
2010/08/16(月) 17:49:260814810
2010/08/16(月) 17:52:14誤)
while (scanf("%10s", aBuf) != EOF) {
正)
while (scanf("%15s", aBuf) != EOF) {
0815デフォルトの名無しさん
2010/08/16(月) 17:59:36> #include <stdio.h>
> #include <string.h>
>
> int main()
> {
> char word[10][16];
> int i;
> for (i = 0; i < 10; i++){
> do {
> if (scanf("%s", word[i]) == EOF) {
> fprintf(stderr, "%s\n", "十個集まらなかったよ……");
> return 1;
> }
> } while(5 < strlen(word[i]));
> }
> puts("結果");
> for (i = 0; i < 10; i++){
> printf("%s\n", word[i]);
> }
> return 0;
> }
>
> という感じでやってみたのですが、うまくいきませんでした
ちょw
俺これ書いてないですよ
0816デフォルトの名無しさん
2010/08/16(月) 18:10:47どっちにしろもう宿題やってもらえたんだから消えろよゴミ
0817デフォルトの名無しさん
2010/08/16(月) 18:17:03自分なんかに時間を割いていただいてありがとうございました
なんとかかみ砕いて理解してみます
0818デフォルトの名無しさん
2010/08/16(月) 18:53:55何このわけわからない感じは。
#include<stdio.h>
#include<string.h>
int main(void){
char work[15 + 1];
char data[10][6];
int i;
for( i=0; i<10; ){
scanf("%s", work);
if( strlen(work) < 6 ){
strcpy( data[i], work );
i++;
}
}
for( i=0; i<10; i++ )
printf("%s\n", data[i]);
return 0;
}
このレベルでいいでしょwww
0819デフォルトの名無しさん
2010/08/16(月) 20:52:190820デフォルトの名無しさん
2010/08/16(月) 21:01:400821デフォルトの名無しさん
2010/08/16(月) 21:12:55>へ?まともに動くだろww
>791のデータ食わせたら期待通りになるだろうけど、10個抽出できる前に入力が無くなると
まずいよ。
0822デフォルトの名無しさん
2010/08/16(月) 21:16:07そんな裏読み必要ないよwww
そんなこと言い始めたらデータチェックとかもっとしなきゃいけないことあるだろwww
レベルにあったコードを提示してるんだけどwww
元々の彼のコードに沿ってね。
0823デフォルトの名無しさん
2010/08/16(月) 21:17:29みんな志村後ろ後ろと言っているところで
1人だけ科学的にどうとかぶつぶつ言ってるようなキモさが漂うな
0824デフォルトの名無しさん
2010/08/16(月) 22:27:44相手のレベルとコードの安全性は何の関係もないのに
0825デフォルトの名無しさん
2010/08/16(月) 22:34:270826デフォルトの名無しさん
2010/08/16(月) 22:40:220827デフォルトの名無しさん
2010/08/16(月) 22:41:38求められるものも責任も全く違うだろwww
とりあえず彼の理解度に沿ったコードを提示したつもりなだけで
他にももっといい方法は色々あるだろうよ。
0828デフォルトの名無しさん
2010/08/16(月) 22:44:21・810は標準入力がつきるまで、単語を10個抽出。
・818は単語を10個抽出するまで、標準入力を読む。
818では単語10個抽出する前に、入力がつきてしまった場合の考慮漏れ。
惜しかったね。90点くらい挙げてもイイ。
0829デフォルトの名無しさん
2010/08/16(月) 22:48:060830デフォルトの名無しさん
2010/08/16(月) 22:49:14それはあらかじめ分かってることだ。
設定にない余計なことは一切してないもんね。
0831デフォルトの名無しさん
2010/08/16(月) 22:59:09これで「相手のレベル」とか言っちゃうんだからたまらんよなw
0832デフォルトの名無しさん
2010/08/16(月) 23:10:270833デフォルトの名無しさん
2010/08/16(月) 23:12:350834デフォルトの名無しさん
2010/08/16(月) 23:32:03L@"C:\"
どう書けばいいですか?
0835デフォルトの名無しさん
2010/08/17(火) 10:01:430836デフォルトの名無しさん
2010/08/17(火) 12:02:060837デフォルトの名無しさん
2010/08/17(火) 12:15:070838デフォルトの名無しさん
2010/08/17(火) 12:29:091. UNIX-Terminal & Emacs( or gedit etc) コマンドライン gcc
2. Windows コマンドプロンプト & 秀丸のようなテキストエディタ& Borland C++5.5
3.Windows CPad for BCC
4. Windows Visual C++ IDE
5. Eclipse(C/C++プラグイン付き)
6. NetBeans IDE
7. CodePad
0839デフォルトの名無しさん
2010/08/17(火) 12:31:060840デフォルトの名無しさん
2010/08/17(火) 12:37:14一番資料の多いもの
VCだね
0841デフォルトの名無しさん
2010/08/17(火) 12:41:220842デフォルトの名無しさん
2010/08/17(火) 12:43:140843デフォルトの名無しさん
2010/08/17(火) 12:50:29素直にIDEに頼っておけばいいよ
Linuxいろいろでやると多分、ぐぐってもでないぐらい基本的なことでつまづきまくるから
0844デフォルトの名無しさん
2010/08/17(火) 17:05:44> 4. Windows Visual C++ IDE
0845デフォルトの名無しさん
2010/08/17(火) 17:58:01そんなときのために俺たちがいるんだろ。
0846デフォルトの名無しさん
2010/08/17(火) 18:03:520847デフォルトの名無しさん
2010/08/17(火) 18:13:39プロのプログラマになりたければ基礎からみっちりやるべき。
そのためにはLinux+Vim+gcc以外はエセグラマ
0848デフォルトの名無しさん
2010/08/17(火) 18:22:200849デフォルトの名無しさん
2010/08/17(火) 18:36:56コイツ無能
0850デフォルトの名無しさん
2010/08/17(火) 18:42:54お前らは役に立たん
0851デフォルトの名無しさん
2010/08/17(火) 18:43:03要は狭い領域でタコツボ化したらどこやってても同じなんだよ
0852デフォルトの名無しさん
2010/08/17(火) 18:43:070853デフォルトの名無しさん
2010/08/17(火) 18:47:360854デフォルトの名無しさん
2010/08/17(火) 19:03:33WindowsならVC++Express一択
0855デフォルトの名無しさん
2010/08/17(火) 19:09:33Vim (笑)
gcc (笑)
0856デフォルトの名無しさん
2010/08/17(火) 19:30:10VCはありえない
動作がくそ重い上に余計なヘッダーをインクルードする
あれはC標準ではなくWindows標準環境である
Windowsでしか通用しないプログラマになりたいならそれでもいいが
オレとしては絶対にオススメできない
0857デフォルトの名無しさん
2010/08/17(火) 19:31:430858デフォルトの名無しさん
2010/08/17(火) 19:33:100859デフォルトの名無しさん
2010/08/17(火) 19:34:280860デフォルトの名無しさん
2010/08/17(火) 19:36:530861デフォルトの名無しさん
2010/08/17(火) 19:37:52Windowsだろうと、Linuxだろうと、Cは学べる。
その上で、Windowsであれば、VC++Expressが最適。
0862デフォルトの名無しさん
2010/08/17(火) 19:42:31俺ならcygwinとgccをオススメするね。
cygwin入れたら色々便利だし。
0863デフォルトの名無しさん
2010/08/17(火) 19:43:11理系はLinux系の知識も習得してプログラミング以外にも多くの周辺知識を得ている。
ここが使えるやつと使えないやつの差として出てくる。
そして使えないやつは最終的に技術から逃げて人売り経営者になって業界を悪くしていくんだ。
すべてはLinux+vim+gccから始めなかったことが現在のIT業界の惨状を招いていると言っても過言ではない
0864デフォルトの名無しさん
2010/08/17(火) 19:45:23後からプロジェクト名変えようとすると面倒くさいことになるし。
0865デフォルトの名無しさん
2010/08/17(火) 19:46:360866デフォルトの名無しさん
2010/08/17(火) 19:55:330867デフォルトの名無しさん
2010/08/17(火) 20:01:09コイツ無能
0868デフォルトの名無しさん
2010/08/17(火) 20:09:04なんでそこでvimなんだよ
0869デフォルトの名無しさん
2010/08/17(火) 20:10:010870デフォルトの名無しさん
2010/08/17(火) 20:19:11必要になったら覚えりゃいい。
0871デフォルトの名無しさん
2010/08/17(火) 20:24:33今問題文(>790)読み返してみたら
>入力は、長さが5文字以下の文字列を10個抽出したところで終了し、
>出力を行うようにしなさい。
ってあるから、確かに仕様は満たしてるって言えるね。
10個以下の場合は、使用範囲外ということにしてしまえる。
そっちが煽り口調だったもんで、こっちも言い過ぎたかも。
でも>810のコードが読めないヘボかと思ってしまったのだよ。
初学者相手には、よりベターなコードを示す方がよいと思っているけど。
0872デフォルトの名無しさん
2010/08/17(火) 20:26:170873デフォルトの名無しさん
2010/08/17(火) 20:40:00文系はWindowsの知識も習得してプログラミング以外にも多くの周辺知識を得ている。
ここが使えるやつと使えないやつの差として出てくる。
そして使えないやつは最終的に技術から逃げて人売り経営者になって業界を悪くしていくんだ。
すべてはWindows+VCから始めなかったことが現在のIT業界の惨状を招いていると言っても過言ではない
0874デフォルトの名無しさん
2010/08/17(火) 20:43:340875デフォルトの名無しさん
2010/08/17(火) 20:45:340876デフォルトの名無しさん
2010/08/17(火) 20:50:18Linuxから始めたやつはあらゆる開発環境を使いこなしていく。
0877デフォルトの名無しさん
2010/08/17(火) 20:54:06コイツ無能
0878デフォルトの名無しさん
2010/08/17(火) 21:01:200879デフォルトの名無しさん
2010/08/17(火) 21:05:10それはlinuxで勉強したからじゃなくて本人の資質だろ。
趣味でプログラムやってて、マイナーなlinuxを選択するってマニアックだろうし。
SolarisでCのシステムの保守をしてる部署の手伝いしたことがあるけど
そこの若い連中は、自発的にやってるわけじゃないから悲惨な状況だったし。
(Cとunixに関しても、windows中心にやってた俺よりぜんぜんだめ)
最初にVCを使ったからVCしか使えなくなるようなやつは、最初にlinux環境で
やらせてもlinuxしかできないやつになるだけだよ。
0880デフォルトの名無しさん
2010/08/17(火) 23:32:22> 最初にVCを使ったからVCしか使えなくなるようなやつは、最初にlinux環境で
> やらせてもlinuxしかできないやつになるだけだよ。
現実問題として、そうゆう奴が多いのはOSの系統に関わらずそうだよ
itron やってるやつが pthread になったとたんに使えなくなるとか
pthread 使ってた奴が Windows にスレッドアプリ書けないとか
Windows でスレッドアプリ書いてた奴が VxWorks じゃ何もできないとか
以下続く………
0881デフォルトの名無しさん
2010/08/18(水) 00:56:21たとえlinux+vi+gccだろうがWin+VSだろうがWin+MinGWだろうがetcetc
0882デフォルトの名無しさん
2010/08/18(水) 01:15:380883デフォルトの名無しさん
2010/08/18(水) 01:32:031. 君の行く道は果てしなく遠い だけど多分それが最も堅実な道、それでいいのさ♪
2. 君の行く道は果てしなく悪路♪
3. 君の行く道はやがて行き詰まる♪
4.君の行く道はやがて泥沼♪
5.君の行く道はやがて蛇婆に出会う♪
6.君の行く道は多分永遠(とわ)の迷路♪
7.君の行く道はすぐに挫折、だけど多分それが正解、君は幸せ♪
0884881
2010/08/18(水) 03:18:480885デフォルトの名無しさん
2010/08/18(水) 11:28:180886デフォルトの名無しさん
2010/08/18(水) 11:46:06コードになんて興味なんだよ。興味があるのは部下への説教だけ。
0887デフォルトの名無しさん
2010/08/18(水) 12:40:16この「すぐ」が泣くほどシビアに要求されるのがつらいとこ
0888デフォルトの名無しさん
2010/08/18(水) 13:25:390889デフォルトの名無しさん
2010/08/18(水) 13:26:49自分で決めます
0890デフォルトの名無しさん
2010/08/18(水) 13:55:09何でもいいよ。
for(�@, �A, �C){�B}
は、
�@→�Aが真だったら→�B→�C→�Aが真だったら→�B→�C→�Aが真だったら→�B→�C→…
を�Aが偽になるまで繰り返すだけ。
整数型である必要はないし、変数を使う必要もない。
0891デフォルトの名無しさん
2010/08/18(水) 17:30:380892デフォルトの名無しさん
2010/08/18(水) 17:33:130893デフォルトの名無しさん
2010/08/18(水) 18:44:29int a;
int b;
}
で、
struct hoge *hoge;
hoge = (struct hoge *)calloc(1000, sizeof(struct hoge))
ってやったら、1000要素の構造体配列内のaとbは全部0で初期化されたりする?
0894デフォルトの名無しさん
2010/08/18(水) 18:45:36yes
0895デフォルトの名無しさん
2010/08/18(水) 18:48:00ありがとう
0896デフォルトの名無しさん
2010/08/18(水) 21:06:070897デフォルトの名無しさん
2010/08/18(水) 21:20:05お里がw
0898デフォルトの名無しさん
2010/08/18(水) 23:56:33これってマジスカ?
0899デフォルトの名無しさん
2010/08/19(木) 00:12:4920億付近になったら報告たのむ
0900デフォルトの名無しさん
2010/08/19(木) 00:18:010901デフォルトの名無しさん
2010/08/19(木) 00:18:23ちなみにクレジットカードだと20京ドルでも正だったそうだぞ
0902デフォルトの名無しさん
2010/08/19(木) 00:22:090903デフォルトの名無しさん
2010/08/19(木) 00:24:21Cじゃないだろうからオーバーフローしない可能性が高い。
0904デフォルトの名無しさん
2010/08/19(木) 00:28:34分野での整数計算はlong longだろ
0905デフォルトの名無しさん
2010/08/19(木) 00:40:290906デフォルトの名無しさん
2010/08/19(木) 00:47:430907デフォルトの名無しさん
2010/08/19(木) 00:48:54Cで計算部分を書かせるわきゃない罠。今時どー考えても
update table auction set price=price+round(price/10) where
auctionid=$AuctionID
とかのSQLを投げさせてOracleとかのDBが実際の計算を行ってるってw
0908デフォルトの名無しさん
2010/08/19(木) 00:49:440909デフォルトの名無しさん
2010/08/19(木) 01:21:56amazonの出品者ってDBへのアクセスが許されてんのか?
0910デフォルトの名無しさん
2010/08/19(木) 01:40:41DB板やWebサイト板で聞いてみるとよい
0911デフォルトの名無しさん
2010/08/19(木) 01:46:20お前>>907? 他板で聞けと言う事は>>907は想像ってことか?
それなら「思う」とかわかるように書け。
0912デフォルトの名無しさん
2010/08/19(木) 01:49:390913デフォルトの名無しさん
2010/08/19(木) 02:01:43amazon自体が一種のDBなんだからサイトを開いた時点でアクセスした
も同然だろw。てか、アクセスってtermが曖昧
あとamazonのサイトがDBMSレスで作られているとしたら
中々神なサイトということは言える。
0914デフォルトの名無しさん
2010/08/19(木) 02:05:09なんて読解力が無いんだ。そんな事じゃ仕様書の読み間違いは日常茶飯事だろ。
0915デフォルトの名無しさん
2010/08/19(木) 02:21:060916デフォルトの名無しさん
2010/08/19(木) 03:49:300917デフォルトの名無しさん
2010/08/19(木) 04:32:490918デフォルトの名無しさん
2010/08/19(木) 23:41:110919デフォルトの名無しさん
2010/08/19(木) 23:44:400920デフォルトの名無しさん
2010/08/20(金) 00:04:36影響って?
0921デフォルトの名無しさん
2010/08/20(金) 01:02:38生成するバイナリーが変わる。
0922デフォルトの名無しさん
2010/08/20(金) 17:29:200923デフォルトの名無しさん
2010/08/20(金) 21:46:070924忍者Perl ◆M5ZWRnXOj6
2010/08/21(土) 15:26:03レベル低っ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0925デフォルトの名無しさん
2010/08/21(土) 16:00:32宿題は?
0926デフォルトの名無しさん
2010/08/21(土) 20:51:53アクセスが増えた所為なのかどうかは知らんが、一日数回更新されている悪寒。
最早、毎回千万以上増えているw
0927デフォルトの名無しさん
2010/08/22(日) 15:20:28どう直せばいいですか?
#include<stdio.h>
void main(void)
{
char input[101],output[101];
int i,j=0;
printf("文字列を入力してください。(100文字以内)\n");
scanf("%s",input);
for(i = 100;i <= 0;i--){
if(input[i] != '\0'){
output[j] = input[i];
j++;
}
}
for(j=0;j < '\0';j++){
printf("%c",output[j]);
}
}
0928デフォルトの名無しさん
2010/08/22(日) 15:29:17strlen()を使う
charポインタを使う
0929デフォルトの名無しさん
2010/08/22(日) 15:42:13*〜のやつだよね?
使い方イマイチよくわかんなくて…
0930デフォルトの名無しさん
2010/08/22(日) 15:44:56そもそもこれが・・・
まずは素直に昇順で書いて中で位置計算して味噌
0931デフォルトの名無しさん
2010/08/22(日) 15:46:53とかどう?
0932デフォルトの名無しさん
2010/08/22(日) 15:47:35正) strlen(input)
0933デフォルトの名無しさん
2010/08/22(日) 15:47:44swap関数かマクロ自作の例がどっかにあるだろう
0934デフォルトの名無しさん
2010/08/22(日) 15:57:32#include <stdio.h>
void rev_puts(const char* s)
{
if (*s == 0)
return;
rev_puts(s + 1);
putchar(*s);
}
main()
{
char input[101];
printf("文字列を入力してください。(100文字以内)\n");
scanf("%s",input);
rev_puts(input);
}
0935デフォルトの名無しさん
2010/08/22(日) 16:17:11これどうなってるの?
ポインタが/0まで進んて戻ってくるってこと?
0936デフォルトの名無しさん
2010/08/22(日) 16:21:41お前が再帰を全く理解できてないだけだよ
0937デフォルトの名無しさん
2010/08/22(日) 16:30:14一行ずつ追いかければかわるかと。
0938デフォルトの名無しさん
2010/08/22(日) 16:31:290939デフォルトの名無しさん
2010/08/22(日) 16:34:390940デフォルトの名無しさん
2010/08/22(日) 16:36:25オレも思ったw
0941デフォルトの名無しさん
2010/08/22(日) 16:56:22いまさらですが、宿題に条件があって…
1)文字列を配列に入力し、最後の文字から一文字ずつ取り出して表示する。
2)文字列をポインタの示す領域に入力し、最後の文字から一文字ずつ取り出して表示する。
です。
私はポインタ理解してないんで、1でやってたんですが、
うまくいかなくて…
0942デフォルトの名無しさん
2010/08/22(日) 17:05:34表示がoutputになってるけど、最初のやつに載せるならint lenを定義して
len = strlen(input);
for(i = 0;i < len;i++){
output[len - i - 1] = input[i];
}
output[len] = '\0';
でどうよ
0943デフォルトの名無しさん
2010/08/22(日) 17:08:39for(i = len - 1;i >= 0;i--){
output[j++] = input[i];
}
とか?
0944デフォルトの名無しさん
2010/08/22(日) 17:45:30#include <string.h>
char *reverse(char *b)
{
int i, len;
len = strlen(b);
for(i = 0; i < len / 2; i++){
b[i] ^= b[len - i - 1];
b[len - i - 1] ^= b[i];
b[i] ^= b[len - i - 1];
}
return b;
}
int main(int ac, char **av)
{
int len;
char buf[4096], str[256];
fprintf(stdout, "?: ");
fgets(buf, sizeof(buf), stdin);
sscanf(buf, "%s", str);
fprintf(stdout, "in: [%s]\n", str);
fprintf(stdout, "out: [%s]\n", reverse(str));
return 0;
}
0945デフォルトの名無しさん
2010/08/22(日) 17:51:24ありがとうございましたm(_ _)m
0946デフォルトの名無しさん
2010/08/22(日) 17:53:070947デフォルトの名無しさん
2010/08/22(日) 17:53:19#include <string.h>
void swap(char *p, char *q)
{
*p ^= *q;
*q ^= *p;
*p ^= *q;
}
char *reverse(char *b)
{
int i, len;
len = strlen(b);
for(i = 0; i < len / 2; i++) swap(&b[i], &b[len - i - 1]);
return b;
}
int main(int ac, char **av)
{
char buf[4096], str[256];
fprintf(stdout, "?: ");
fgets(buf, sizeof(buf), stdin);
sscanf(buf, "%s", str);
fprintf(stdout, "in: [%s]\n", str);
fprintf(stdout, "out: [%s]\n", reverse(str));
return 0;
}
0948デフォルトの名無しさん
2010/08/22(日) 18:03:140949デフォルトの名無しさん
2010/08/22(日) 19:05:53#include <string.h>
#define swap(pa, pb) ( *(pa) ^= *(pb), *(pb) ^= *(pa), *(pa) ^= *(pb) )
char *reverse(char *b)
{
int i, len;
len = strlen(b);
for(i = 0; i < len / 2; i++) swap(&b[i], &b[len - i - 1]);
return b;
}
int main(int ac, char **av)
{
char buf[4096], str[256];
fprintf(stdout, "?: ");
fgets(buf, sizeof(buf), stdin);
sscanf(buf, "%s", str);
fprintf(stdout, "in: [%s]\n", str);
fprintf(stdout, "out: [%s]\n", reverse(str));
return 0;
}
0950デフォルトの名無しさん
2010/08/22(日) 19:44:220951デフォルトの名無しさん
2010/08/22(日) 19:57:430952デフォルトの名無しさん
2010/08/22(日) 22:39:10>速度が違うくね?
今からそんな変な表現の癖が付いていると社会人になってから馬鹿にされるぞ。
つーか、この程度のコードでどこの速度を気にしているんだよ。気になるなら実測しろ。
>>950
Cで参照渡しってなんだよ。ポインタの値私と言いたいのか?
>>949
xor使うのはいいが、pa == pbのときに破綻するだけだから一次変数を設ける方がずっといい。
0953デフォルトの名無しさん
2010/08/22(日) 22:44:350954デフォルトの名無しさん
2010/08/22(日) 22:46:13なら試してみろよカス
0955デフォルトの名無しさん
2010/08/22(日) 22:52:420956デフォルトの名無しさん
2010/08/22(日) 22:54:51無駄が発生するから、同じ文字なら入れ替えないなんて
無駄なコードは入れなくて良いよ。
0957デフォルトの名無しさん
2010/08/22(日) 23:05:080958デフォルトの名無しさん
2010/08/22(日) 23:07:29b = 3 / 0011
a xor b = 0000 < a に代入
a = 0000
b = 0011
a xor b = 0011 < b に代入
a = 0000
b = 0011
a xor b = 0011 < a に代入
a = b で xor で入れ替えても問題ないじゃん?
0959デフォルトの名無しさん
2010/08/22(日) 23:07:43でFA?
0960デフォルトの名無しさん
2010/08/22(日) 23:08:270961デフォルトの名無しさん
2010/08/22(日) 23:09:00&a==&b のときにうまくいくことを
codepad で示してくださいな
0962デフォルトの名無しさん
2010/08/22(日) 23:10:230963デフォルトの名無しさん
2010/08/22(日) 23:11:52入れ替える必要が無いのに入れ替える操作をする方が無駄じゃないか
0964デフォルトの名無しさん
2010/08/22(日) 23:13:080965デフォルトの名無しさん
2010/08/22(日) 23:17:00突然どうした。おねむか?
0966デフォルトの名無しさん
2010/08/22(日) 23:17:44同じだった場合は入れ替えないなんて
if文を入れるのが無駄じゃないと思うならやれ。
大半が同じでなかった場合は完全に無駄だから。
0967デフォルトの名無しさん
2010/08/22(日) 23:24:21はやくなんの?
0968デフォルトの名無しさん
2010/08/22(日) 23:30:140969デフォルトの名無しさん
2010/08/22(日) 23:31:47よっておまえら全員無駄
0970デフォルトの名無しさん
2010/08/22(日) 23:39:15テンポラリの変数を使う交換もレジスタだけで済むだろ。
0971デフォルトの名無しさん
2010/08/22(日) 23:41:16xorの交換のほうが、無駄にそんなテクニック使うなって感じだよ。
0972デフォルトの名無しさん
2010/08/22(日) 23:43:150973デフォルトの名無しさん
2010/08/23(月) 01:45:40大抵、判るほど速くはならないよ。
0974デフォルトの名無しさん
2010/08/23(月) 01:58:33まともな最適化コンパイラを使う限りは
速くなる可能性は考えにくい
むしろ遅くなるケースがありえる
0975デフォルトの名無しさん
2010/08/23(月) 10:54:27#include <stdio.h>
#define swap((pa), (pb)) ( *(pa) ^= *(pb), *(pb) ^= *(pa), *(pa) ^= *(pb) )
int main(int ac, char **av)
{
int a = 3;
swap(&a, &a);
printf("a = %d\n", a);
return 0;
}
0976デフォルトの名無しさん
2010/08/23(月) 10:57:18どうした、
0977デフォルトの名無しさん
2010/08/23(月) 11:17:51マクロの定義が不適切
int main(int ac, char **av) の引数が不要
意味不明なコード
0978デフォルトの名無しさん
2010/08/23(月) 11:19:36何がしたいのかさっぱり。aを何か別の変数と入れ替えする訳でもなく
それ自身のxorを取ってどーすんの???
0979デフォルトの名無しさん
2010/08/23(月) 11:24:320 1 : 1
1 0 : 1
1 1 : 0 < ここがorとxorの違う点
2つの同じ値のxorは0になる罠。
その前に、そのコード自体の意味があるの?
aをswapに渡す意味が?
0980デフォルトの名無しさん
2010/08/23(月) 11:25:45何も分かっちゃいない
0981デフォルトの名無しさん
2010/08/23(月) 11:25:47のやつじゃないの?
mainの引数はフォーマットからのコピペとかだろうからいいだろw
codepadで見てみたら存在しない13行目で)がどーたらってでたんだけどなんぞ。
0982デフォルトの名無しさん
2010/08/23(月) 11:27:260になってもいいじゃん。またもどるんだから。
1 1 :0
1 0 :1
0 1: 1
0983デフォルトの名無しさん
2010/08/23(月) 11:27:28#include <stdio.h>
#define swap(pa, pb) if((pa) - (pb))( *(pa) ^= *(pb), *(pb) ^= *(pa), *(pa) ^= *(pb) )
int main(int ac, char **av)
{
int a = 3;
swap(&a, &a);
printf("a = %d\n", a);
return 0;
}
0984デフォルトの名無しさん
2010/08/23(月) 11:37:590985デフォルトの名無しさん
2010/08/23(月) 11:40:51何が言いたいか意味不明だよなw
swapとは言え内面的に見れば、それ自身のクソアッー!を求めたら0なのは当然だろw
それ以前に使い道を間違えているとしか言いようがない。
0986デフォルトの名無しさん
2010/08/23(月) 12:01:47>>985
0987デフォルトの名無しさん
2010/08/23(月) 12:04:240988デフォルトの名無しさん
2010/08/23(月) 12:06:15お前はバカか?それ自身のXORだぞ?
0989デフォルトの名無しさん
2010/08/23(月) 12:07:56オマエガナーw
むしろ分かっているからそれ自身のXORをして
何で入れ替え(swap)した気になっているんだと
疑問を呈しているんだが?
0990デフォルトの名無しさん
2010/08/23(月) 12:08:06それ自身の糞を求めたら0になるからってのは説明不足だろ
だったら両方同じ値でも破綻するみたいじゃないか
それ自身の糞を求めたら0になって同じ物を参照してるせいで両方0になっちゃうことも言っておかないと
0991デフォルトの名無しさん
2010/08/23(月) 12:09:43何も分かっていないのはお前。2つの変数の入れ替えなのに
それ自身を入れ替えるって、意味が分からんわ
>>958 には2つの変数を用いていることが前提で説明されているのに
何も分かっちゃいないのはお前の方
0992デフォルトの名無しさん
2010/08/23(月) 12:11:11> それ自身の糞を求めたら0になるからってのは説明不足だろ
日本語以前に何をしようとしているか分かってないお前は
得意気に揚げ足を取ったつもりなんだろうけど、それ自身のXORを取ることが
入れ替えにどう繋がるんでしょうか?
別に俺はswapのマクロを書いた本人じゃねーよ。
0になっちゃうぅ〜〜なっちゃうぅ〜だから何?入れ替えの意味が通じてないなら
日本語から学びなおせガキ
0993デフォルトの名無しさん
2010/08/23(月) 12:13:48意味が分からんわ。それ自身を入れ替えるようなコードが
>>949 で発生するんだろうか?
> swap(&b[i], &b[len - i - 1]);
>>953 は完全に揚げ足を取ったつもりなんだろうけど
コードの意味すら理解していないようだな。
まぁxorを用いたswapもどうかと思うが。
俺のswapのマクロはまた別のタイプだが、入れ替えようの
変数は別に用意するよ。
0994デフォルトの名無しさん
2010/08/23(月) 12:14:37>>958 で2つとも元の値に戻ることは実証済み。
0995デフォルトの名無しさん
2010/08/23(月) 12:17:21#define swap(a,b) do {typeof(a) tmp=a;a=b;b=tmp;} while(0)
ってするのがいい
0996デフォルトの名無しさん
2010/08/23(月) 12:19:04もはや日本語を理解できないどころではない、コードの意味が分からないガキだろ、こいつ。
屁理屈が的を射てない。
0997デフォルトの名無しさん
2010/08/23(月) 12:19:55>>>949 で発生するんだろうか?
だからね、>949の場合には大丈夫でもそれにswapなんて名前をつけちゃいけないのよ。
汎用だと思い込んだ(未来の自分を含む)誰かがノーチェックで利用するかもしれないんだから。
で、仮にswapをswapForReverseとして使うくらいなら、始めからxorに頼らないswapを用意すればいいだけ。
0998デフォルトの名無しさん
2010/08/23(月) 12:21:15元のコードの概要を理解していなかったとか、話にならん。
値が0になるかならないかについては、それ自身のXORの話だろ。
そんなの説明もあったし分かってんだよ。
言いたいことがそれなら、もう指摘は無用だよ。
大人しく入れ替え用の変数を用意してやった方が無難と言いたいなら
そう言えば良いだろ。長々と女々しい。
0999デフォルトの名無しさん
2010/08/23(月) 12:26:07ttp://www.bohyoh.com/CandCPP/FAQ/FAQ00008.html
1000デフォルトの名無しさん
2010/08/23(月) 12:26:5510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。