C言語なら俺に聞け(入門編)Part 67

このエントリーをはてなブックマークに追加
1名無しさん@そうだ選挙に行こう
C言語の*入門者*向け解説スレッドです。
★前スレ
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++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
2名無しさん@そうだ選挙に行こう:2010/07/10(土) 20:02:04
>>2
3名無しさん@そうだ選挙に行こう:2010/07/10(土) 21:30:25
cppとhを分ける必要がない場合は分けないべきですか?
4名無しさん@そうだ選挙に行こう:2010/07/10(土) 22:21:59
場違いのアホは出て行け
5名無しさん@そうだ選挙に行こう:2010/07/10(土) 22:31:34
>>3
コンパイラとしてはインクルードファイルの名前をcとc++で変えるはない。
6名無しさん@そうだ選挙に行こう:2010/07/10(土) 22:32:09
分からないなら回答しなくていいですよ
7名無しさん@そうだ選挙に行こう:2010/07/10(土) 22:48:03
>>3
わけろ。
ヘッダにロジック書くなボケが。
8名無しさん@そうだ選挙に行こう:2010/07/10(土) 23:06:37
クラスが恋しいね
9名無しさん@そうだ選挙に行こう:2010/07/11(日) 00:15:14
席替えは楽しかったよなw
10名無しさん@そうだ選挙に行こう:2010/07/11(日) 15:12:10
どういうときにポインタのポインタって使うの??
11名無しさん@そうだ選挙に行こう:2010/07/11(日) 15:46:30
「社内公用語を英語にするくらいならC言語にしてやる!!」――スク・エニ和田社長
http://www.itmedia.co.jp/news/articles/1007/07/news065.html
12名無しさん@そうだ選挙に行こう:2010/07/11(日) 16:37:29
>>10
それはもう、いろんな場合で。
データ構造を意識するときには特に。
13名無しさん@そうだ選挙に行こう:2010/07/11(日) 17:46:37
もっと詳しく教えてくれないと質問した意味ないんだけど・・・
14名無しさん@そうだ選挙に行こう:2010/07/11(日) 18:21:48
ていうか、main関数の第2引数でポインタのポインタ使ってるじゃん
main()すら知らないレベルなんかね
15名無しさん@そうだ選挙に行こう:2010/07/11(日) 18:44:11
入門スレだからしょうがないだろ
16名無しさん@そうだ選挙に行こう:2010/07/11(日) 18:46:00
だよな
みんな心を穏やかにしなさい
17名無しさん@そうだ選挙に行こう:2010/07/11(日) 18:55:54
>>14みたいなのってヤフー知恵遅れとかでよく見るね
18名無しさん@そうだ選挙に行こう:2010/07/11(日) 19:39:04
>>14って最低だな
19名無しさん@そうだ選挙に行こう:2010/07/11(日) 20:29:35
ポインタのポインタってポインタの配列でもあるってこと?
20名無しさん@そうだ選挙に行こう:2010/07/11(日) 20:30:46
微妙には違うが。同じような使い方は出来るだろ。
21名無しさん@そうだ選挙に行こう:2010/07/11(日) 21:42:59
僕も微妙な違いを通りすがり的に知りたい
22名無しさん@そうだ選挙に行こう:2010/07/11(日) 21:45:04
ポインタの指す先次第
23名無しさん@そうだ選挙に行こう:2010/07/11(日) 22:04:11
charってキチガイみたいに低能だな
24名無しさん@そうだ選挙に行こう:2010/07/11(日) 22:14:24
おすすめの書籍があればおしえてくれろ
25名無しさん@そうだ選挙に行こう:2010/07/11(日) 22:17:06
ロベール
26デフォルトの名無しさん:2010/07/12(月) 15:01:24
#includeの#は何故必要だったのでしょうか
includeじゃ駄目だったんですか?
27デフォルトの名無しさん:2010/07/12(月) 15:11:55
プリプロセッサ向けだから
28デフォルトの名無しさん:2010/07/12(月) 18:44:19
>>24
まず K&R2 を買うこと。これでわからなければ、もっとやさしい本をさがすこと。
いずれにしても K&R2 は無駄にはならない。
29デフォルトの名無しさん:2010/07/12(月) 18:46:57
30デフォルトの名無しさん:2010/07/12(月) 19:09:11
>>19
関数は配列を返せない仕様なので、ポインタかポインタのポインタで
返すという局面は良くある
31デフォルトの名無しさん:2010/07/12(月) 20:11:07
ポインタのマークって掛け算と何か関係あるの?
32デフォルトの名無しさん:2010/07/12(月) 20:12:29
int (*((*func(void))[]))(void)
こんなの理解出来そうにない、、
33デフォルトの名無しさん:2010/07/12(月) 20:32:32
>>31
関係ないよ。
34デフォルトの名無しさん:2010/07/12(月) 22:48:50
DLLではなくEXEファイルを外部プログラムとして実行した場合、どのようにデータのやり取りをすればよいのですか?回答よろしくお願いします
35デフォルトの名無しさん:2010/07/12(月) 22:56:34
OSにもよるし本人のやりやすいようにというか好きにしろというのが答えだ
36デフォルトの名無しさん:2010/07/12(月) 23:00:35
>>32
慣れだよ慣れ
もっと複雑な宣言を書くこともいくらだってある
37デフォルトの名無しさん:2010/07/12(月) 23:10:13
ブヒッ
38デフォルトの名無しさん:2010/07/12(月) 23:21:29
>>35
いや何を参考にすればいいのか分かりません
39デフォルトの名無しさん:2010/07/12(月) 23:26:03
OSや言語も言わずに答えを言えって?うぜえよおまえクソじゃね?
40デフォルトの名無しさん:2010/07/12(月) 23:31:09
解答あってたー!すげー(´・ω・`)w
41デフォルトの名無しさん:2010/07/12(月) 23:33:02
>>39
(゚∀゚)アヒャ?
42デフォルトの名無しさん:2010/07/13(火) 00:33:39
>>34
プロセス間通信
ファイルを介する
ネット経由
元のEXEの出力を利用者が手動で入力

好きなの選べ
43デフォルトの名無しさん:2010/07/13(火) 01:06:49
>>39
OSも言語も明らかだろ・・・お前の目は節穴かよ。
44デフォルトの名無しさん:2010/07/13(火) 03:43:28
>>34
そのための機構が標準入出力。
45デフォルトの名無しさん:2010/07/13(火) 07:12:59
>>43
でもコンパイラぐらいは書いて頂かんとなぉ

個人的にはpopenイチオシ。
46デフォルトの名無しさん:2010/07/13(火) 13:44:06
大学の課題でいくつかc言語の課題が出て、本当に簡単なのは何とか解いたのですが2つほど分からないものがあったので
よろしければ教えていただきたいです。
@キーボードから1つの実数値xを入力し、絶対値を表示するプログラムを作りなさい

Aキーボードからテストの得点m(0以上100以下)を入力し
(1) m<60 の場合は「不合格」
(2) 60≦m<80 の場合は「普通」
(3) 80≦m の場合は「優秀」
と表示するプログラムを作りなさい。
47デフォルトの名無しさん:2010/07/13(火) 13:51:38
宿題スレ行け
48デフォルトの名無しさん:2010/07/13(火) 14:00:23
>>46
int 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 ? "普通" : "優秀");
}
49デフォルトの名無しさん:2010/07/13(火) 14:00:52
>>47
ありがとうございます。
宿題スレなるものがあったんですね。
今は理解よりも提出を優先したいのでそちらに書き込みました。
>>46はスルーでお願いします。
50デフォルトの名無しさん:2010/07/13(火) 14:27:03
>>48
ありがとうございます!
Aはそのプログラムでおkでした。
@はエラー出たので、("%f\n", fabs(x));→、("%d\n", abs(x));にしたところ正しい結果になりました。
51デフォルトの名無しさん:2010/07/13(火) 14:49:41
>>50
CじゃなくてC++でやってない?
fabs使うなら、#inlucde <math.h>追加で
52デフォルトの名無しさん:2010/07/13(火) 14:50:58
#include <math.h> ね
53デフォルトの名無しさん:2010/07/13(火) 23:46:10
おまえアク禁な
54デフォルトの名無しさん:2010/07/14(水) 22:25:25
てす
55デフォルトの名無しさん:2010/07/14(水) 22:35:04
今,以下のソースのように,splitを実装しています。
split_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;
}
5655 続きです。:2010/07/14(水) 22:35:51
splits = (char**)malloc(sizeof(char*) * len);
for(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]);
}
}
57デフォルトの名無しさん:2010/07/14(水) 22:55:53
char** splits;
length = split_string(&splits, line, "\t");

こうしないとsplitsに値が入らないんじゃね。
58デフォルトの名無しさん:2010/07/14(水) 23:46:39
59デフォルトの名無しさん:2010/07/15(木) 01:22:31
bmp関連のプログラム作ってるんだけど

typedef struct {
unsigned short Type;
unsigned long Size;
unsigned short Reserved1;
unsigned short Reserved2;
unsigned long Offset;
} BMPFILEHEADER;

これを

printf("%d",sizeof(BMPFILEHEADER));

でサイズ調べると16と出るのはなんで?
6055の松井です:2010/07/15(木) 01:23:53
>>57
ありがとうございました。&splitsを引数(char*** splits)にするようにsplit_stringを変更したら
無事動きました。

いまは、どうやってchar** splits隷下のオブジェクトをmainが終わる前にfreeすれば
よいかわからないです><
誰かお助けを〜〜〜orz
61デフォルトの名無しさん:2010/07/15(木) 01:34:54
>>59
バイト境界がintのサイズに調整されるから

unsigned short Type;  //2byte
               //パディング2nyte
unsigned long Size;   //4byte
unsigned short Reserved1;  //2byte
unsigned short Reserved2;  //2byte
unsigned long Offset;  //4byte
6255の松井です:2010/07/15(木) 01:41:43
>>59
えーーーっ、それほんとですか? それコンパイラのバグですよ どこのコンパイラですか?
いくつを期待しているの?
さて、BMPFILEHEADERが16で良いんでしょうか、イクナイならコンパイラに期待値なるように汁と
命令する。
ま、構造体の各要素のalignmentを調べればPaddingが...
alignment,paddingってなんだっけ、忘れたorz
でプリンしないようにする命令も忘れたorzorz
63デフォルトの名無しさん:2010/07/15(木) 01:45:34
>>59
環境依存な話なんだけどね、アライメントというのがある。
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
(゚∀゚) ?
64デフォルトの名無しさん:2010/07/15(木) 01:47:09
>>60
深いところから逆順にループさせて解放する
要素数はlengthで返してるみたいだからmain()の最後で以下を実行

for (i = length; i > 0; i--) {
  free(splits[i - 1]);
  splits[i - 1] = NULL;
}
free(splits);
splits = NULL;
6559:2010/07/15(木) 02:02:38
>>61-63
ありがとう
おかげで解決しました
6655の松井です:2010/07/15(木) 22:04:27
>>64
ありがとうございます。
ところで、なぜ逆順に解放しなければいけないんですか?
あと、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;
}
にしてます。
67デフォルトの名無しさん:2010/07/15(木) 22:30:24
>>66
俺が見たところ、別に逆順に処理する必要はない
一般的には、リストを開放する場合など、逆順にしなければならないことが多い

splits[i -1] = NULL は、万が一にも二重フリーしないように
フリーしたときにNULLを入れておくスタイルだな。稀によく見る
バグの多い人は、そうしておくといいかもしれん。俺はやらないけど
68デフォルトの名無しさん:2010/07/16(金) 11:50:14
>>67
>別に逆順に処理する必要はない
動作が同じならそれで良いと言うならそう。
それ以上のことを考えると、逆順には意味がある。

>一般的には、リストを開放する場合など、逆順にしなければならないことが多い
これはデタラメ。
69デフォルトの名無しさん:2010/07/18(日) 14:21:19
C言語未修得者なのですが質問させてください
自分は他言語をやっているのですが、例えばMySQLなどを学習していても基本的にはPHP、Perl、Java位しか連携のテーマが出てきません
CやC++でもMySQLや PostgreSQLのようなフリー版のDBに接続できるのでしょうか?
くだらない質問ですみません
70デフォルトの名無しさん:2010/07/18(日) 17:43:56
SQLiteを使うなら、Cが楽でいいってばっちゃが言ってた
71デフォルトの名無しさん:2010/07/18(日) 17:54:10
コンピューターおばあちゃん
72デフォルトの名無しさん:2010/07/18(日) 18:14:15
>>69
そりゃできるよ
他の言語と同じく、DB用ライブラリ(Cの場合は大概そのDBについてる)で接続すればいい
73デフォルトの名無しさん:2010/07/18(日) 19:13:54
自分今までまず参考書を1・2冊学習した後にオライリー本を読破してって感じでプロラミング言語を学習してきたのですが、
オライリー本の前の段階でいいC言語の参考書って何がありますでしょうか?
Amazonや書店などで調べているのですが、どうもCはどれから始めるのがいいのか分かりにくくて
74デフォルトの名無しさん:2010/07/18(日) 20:20:28
>>73
やさしいCとか明解でいいんじゃないかな
75デフォルトの名無しさん:2010/07/18(日) 23:24:19
int main(){
char *name="あいうえお";

while(name!='\0'){
printf("%c",name);
name++;
}


}

ぽいんたがどうなってるか調べてて
今プログラムを実行したら
windowsのブート音がピーピーなって
応答なしになりました。なぜこのようなことになったのでしょうか?
76デフォルトの名無しさん:2010/07/18(日) 23:26:19
>>75
*name!='\0' じゃないから
77デフォルトの名無しさん:2010/07/19(月) 00:16:07
ハッシュ法をもちいて文字列を辞書に登録/削除/表示/検索するプログラムを作成せよ。
ハッシュ法には、オープンアドレス法を使用すること。

お願いします。
78デフォルトの名無しさん:2010/07/19(月) 00:25:15
>>77
http://kimama2index.info/algorithm/hash_openAddress.html
ここの解説がわかりやすいから読むといいよ。

オープンアドレス法は埋まってくると加速度的に効率が悪くなる様が
手に取るようにわかるから楽しいよな。
79デフォルトの名無しさん:2010/07/19(月) 00:30:42
>>75
応答なしになった理由→>76
ピーピー鳴った理由→nameはポインタだから、その値を文字と見做すことに無理がある。
8075:2010/07/19(月) 02:38:06
int main(){
char *name="あいうえお";

while(*name!='\0'){
printf("%c",*name);
name++;
}


}

こうしてちゃんと文字列が表示されるようになったのですけど
name++を*name++にしても結果は同じです。
この2つは同じものと考えていいのですか?
81デフォルトの名無しさん:2010/07/19(月) 02:46:16
後置インクリメントの方が優先順位高いから動いてるだけじゃね
82デフォルトの名無しさん:2010/07/19(月) 02:51:37
>>80
全然違う。

name++ は、ポインタ name の値をインクリメント(1つ増加)してから、インクリメント直前のポインタ値を返す。
*name++ は、ポインタ name の値をインクリメント(1つ増加)してから、インクリメント直前のポインタ値が指すアドレスの内容を返す。

今回たまたま同じ動作になっているのは、その返された値を何にも使用していないため。
83デフォルトの名無しさん:2010/07/19(月) 17:00:14
構造体の質問なんですが

int main(void)の中にstructといれる場合と、外に入れる場合ありますが
どう違うんですか?細かすぎて死にそうです。
84デフォルトの名無しさん:2010/07/19(月) 17:07:55
int main(void)
{
85デフォルトの名無しさん:2010/07/19(月) 17:10:57
    {
86デフォルトの名無しさん:2010/07/19(月) 17:16:27
すまん間違えて送信しちまった
>>83
ttp://codepad.org/7aw4JQAd
要するにこういうこと?
俺が勘違いしてるのかもしれないけど…
87デフォルトの名無しさん:2010/07/19(月) 17:18:07
>>86
struct ってのは関数なんですか?
全く意味がわかりません。
structを関数のように
struct()とかもう意味不明です。
88デフォルトの名無しさん:2010/07/19(月) 17:20:20
>>87
関数じゃないよ 構造体を宣言するために必要なだけだよ
struct()はおれから見ても意味不明だが
実際にコード見なきゃわからんな
89デフォルトの名無しさん:2010/07/19(月) 17:21:46
入門書くらい読んでから質問しろよ失礼だろ
90デフォルトの名無しさん:2010/07/19(月) 17:35:24
どうでもいいことだけど>>86のコードCじゃなくてC++だな
91デフォルトの名無しさん:2010/07/19(月) 17:37:26
>>90
しばらくCやってなかったからtypedef struct 〜のやりかたを忘れてしまったんだ
すまない
92デフォルトの名無しさん:2010/07/19(月) 17:40:53
あんた最低だな
93デフォルトの名無しさん:2010/07/19(月) 17:43:45
いえいえ
94デフォルトの名無しさん:2010/07/19(月) 17:44:25
そんなに褒めるなよ
95デフォルトの名無しさん:2010/07/19(月) 18:05:16
>>91
は?ここはC言語のスレだろうが。
C++に移動しろよ。
96デフォルトの名無しさん:2010/07/19(月) 18:44:40
構造体の仕組みがわからん

構造体型と構造体型変数はどう違うの?

struct A{}Bってのが基本形だっけ?
97デフォルトの名無しさん:2010/07/19(月) 21:13:37
>>96
> 構造体型と構造体型変数はどう違うの?

int型とint型変数の区別が付けば分かりそうなもんだけど。
98デフォルトの名無しさん:2010/07/19(月) 21:42:42
2時間30分以上まってのレスがこれでっせ
99デフォルトの名無しさん:2010/07/19(月) 21:50:57
答えとして過不足ないと思うが
100デフォルトの名無しさん:2010/07/19(月) 21:54:04
int型とint型変数の区別、どうつけるの?
101デフォルトの名無しさん:2010/07/19(月) 22:00:04
>>99
お前殴っていい?腹立って仕方ないわ。
102デフォルトの名無しさん:2010/07/19(月) 22:04:18
>>101
モニタでも殴ってろよw
103デフォルトの名無しさん:2010/07/19(月) 22:12:27
>>101
低脳らしく、すぐ暴力にはしるんだな
さすが低脳基地外の鑑
104デフォルトの名無しさん:2010/07/19(月) 22:24:12
>>103
ちょっとむかついただけだろうが・・・
何これ?急にこのスレ加曾利出した。
意味わかんね。
105デフォルトの名無しさん:2010/07/19(月) 22:25:37
「お前殴っていい?腹立って仕方ないわ。」
名言が生まれたな
106デフォルトの名無しさん:2010/07/19(月) 22:28:56
>>104
お前殴っていい?腹立って仕方ないわ。
107デフォルトの名無しさん:2010/07/19(月) 22:41:03
夏厨警報
108デフォルトの名無しさん:2010/07/19(月) 23:09:06
とりあえず、初心者はここみて勉強しろ。
http://www.kumei.ne.jp/c_lang/
http://d.hatena.ne.jp/studiokingyo/
http://homepage3.nifty.com/mmgames/c_guide/
この3つは超有名なサイトであり、勉強するのに最適であるとの結果が出ている。
109デフォルトの名無しさん:2010/07/19(月) 23:11:07
>>100
例えば sizeof(int) のオペランドは型であって変数ではない
110デフォルトの名無しさん:2010/07/19(月) 23:31:47
とりあえず何よりも真っ先にCPUとメモリの使い方、コンピューターの動作原理を覚えろ
この基本が理解できればポインタごときで躓くことはなくなる
111デフォルトの名無しさん:2010/07/19(月) 23:33:09
そんなんいいからプログラム書いて動かせ。
最初のハードルあげようとするのはアホ。
112デフォルトの名無しさん:2010/07/19(月) 23:34:00
forで条件付で繰り返し使うときにアルゴリズムは「〜〜」は何回繰り返す、だけで済ませていいんですか?
それとも全部「〜が〜のときは実行して」みたいみたいな感じがいいんでしょうか?
113デフォルトの名無しさん:2010/07/19(月) 23:49:16
いいよ
114112:2010/07/20(火) 00:30:04
>>113
えっとそれは一行目に対する「いいよ」なのか二行目に対する「いいよ」なのか……
115デフォルトの名無しさん:2010/07/20(火) 00:32:22
(・∀・)イイヨイイヨ-
116デフォルトの名無しさん:2010/07/20(火) 00:41:37
話は変わりますが、

char c = 'aaaa';

なんで四文字まで入るんですか?
117デフォルトの名無しさん:2010/07/20(火) 00:42:22
>>116
入ってないですよ
118デフォルトの名無しさん:2010/07/20(火) 00:43:02
int c = 'aaaa';
なら入るんじゃね。
119デフォルトの名無しさん:2010/07/20(火) 00:49:53
char* c = "aaaa";
120デフォルトの名無しさん:2010/07/20(火) 00:51:53
char c[4] = "aaaa";
121デフォルトの名無しさん:2010/07/20(火) 00:56:00
>>120
(#^ω^)ビキビキ
122デフォルトの名無しさん:2010/07/20(火) 01:07:44
>>120
末尾の空文字(\0)の分も含めるから不適切
というか[4]の中の4は不要
123デフォルトの名無しさん:2010/07/20(火) 01:08:41
>>122
ピッタリの時は特別だよ
124デフォルトの名無しさん:2010/07/20(火) 01:09:08
>>108
ttp://www.bohyoh.com/
ここも入れてやってよw
125デフォルトの名無しさん:2010/07/20(火) 01:16:27
>>123
#include <stdio.h>
int main(void) {
char c[] = "aaaa";
printf("%d",sizeof(c));
return 0;
}
126デフォルトの名無しさん:2010/07/20(火) 01:17:00
とりあえず文法やるってのはいいけど、文法全部やってから云々だと頓挫する

関数の作り方くらいまではある程度軽くよんで、あとは自分でなんか工夫しながら
やっていったほうがいい。そうすりゃ、構造体とかポインタとか「あー、こういう場面でつかうんだ」みたいにすんなりわかる。

理屈じゃないんだよね。単純にExcelのボタンを押すとどうなるかってのを文章で書くのとそう変わらない。

で、K&Rだか面白いとなれば、本当に深いところまで理解できてくる。
127デフォルトの名無しさん:2010/07/20(火) 01:17:43
文法だけやって進んでいくと、「構造体ってなんじゃらほい?」とか誰でもなる。
128デフォルトの名無しさん:2010/07/20(火) 01:30:25
>>125
でっていう
ピッタリのときは特別なんだよ
129デフォルトの名無しさん:2010/07/20(火) 01:55:24
Linux&Sun CCでfilenoを使うと、コンパイル時にfileno関数の宣言がないという警告がでる。

とりあえずmakeは出来るんだけど、gccだとこの警告は出ない。
SunCCのマニュアルを読む限り、/usr/includeを読み込むはずで、
stdio.hに宣言はきちんと書いてあって、一体何が問題なのかわかる人います??
130デフォルトの名無しさん:2010/07/20(火) 01:57:12
>>125
c[]をc[4]に変えてみるといいよ。
131デフォルトの名無しさん:2010/07/20(火) 02:05:17
>>129
#ifdefによって関数宣言がスキップされてるんだろう
cc -E 等で調べてみては
132デフォルトの名無しさん:2010/07/20(火) 02:13:21
char c[] = "aaaa";
133デフォルトの名無しさん:2010/07/20(火) 02:29:08
座標A(x,y)、座標B(x,y)、座標C(x,y) → 三角形(A,B,C)

座標P(x,y) → 任意の点(x,y)



任意の点Pが、「三角形ABCの中か?、外か?」を判断する関数 → 関数F(P, A,B,C)



core2専用(SSE3前提)として、考えうる限りのもっとも高速に動作する関数Fのコード例をお願いします。
(インラインアセンブラはintel書式でもgcc書式でもどちらでも結構です)
134デフォルトの名無しさん:2010/07/20(火) 02:33:37
>>131
ありがとう! -Eオプションすごい。とりあえず出力したものを見てみたら、
/usr/include/stdio.h
じゃなくて
/usr/local/sunstudio12.1/prod/include/cc/stdio.h
を見てることが発覚&sunstudioのstdio.hにはfilenoなんて宣言されてなかった。
135デフォルトの名無しさん:2010/07/20(火) 07:22:43
>>133
このスレじゃ無理じゃね。つーか、くれくれは宿題スレへ。
136デフォルトの名無しさん:2010/07/20(火) 09:46:22
>>133
アセンブラ知らね
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;
}
137デフォルトの名無しさん:2010/07/20(火) 09:50:23
>>136
訂正
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;
138デフォルトの名無しさん:2010/07/20(火) 10:37:18
>>136
>アセンブラ知らね

すいませんが、答えなくて結構です。
139デフォルトの名無しさん:2010/07/20(火) 10:42:53
>>138
C言語スレだべ
コンパイラの最適化に任せる程度でよかろ
Intel コンパイラを使うと最適化は結構すごいらしいじゃないか
gcc はダメぽだが
140デフォルトの名無しさん:2010/07/20(火) 12:23:46
>>136
値渡しにするなら引数を使って計算したほうが早いかもしれない
調べてないけど
141デフォルトの名無しさん:2010/07/20(火) 12:28:29
分からない&調べないなら回答しなくて結構です
142デフォルトの名無しさん:2010/07/20(火) 12:30:16
結構な事です
143デフォルトの名無しさん:2010/07/20(火) 12:31:51
てめぇが調べろよwww
144デフォルトの名無しさん:2010/07/20(火) 13:53:41
無意味な発言で荒らすのはやめて下さい
145デフォルトの名無しさん:2010/07/20(火) 14:00:10
そうだそうだ!
146デフォルトの名無しさん:2010/07/20(火) 14:12:42
そうかそうかw
147デフォルトの名無しさん:2010/07/20(火) 14:24:10
まったくどうしようもないな┐(´∀`)┌ぷぅ〜
148デフォルトの名無しさん:2010/07/20(火) 19:02:22
Eclipse CDT 環境で Win32API の SuspendTread を使用しても
スレッドが停止してくれないんですけど、誰か分かりますか?

作成したExeをそのまま実行すると停止してるように見えるのに・・・
149デフォルトの名無しさん:2010/07/20(火) 23:32:10
関数名の語源が書いてある(解説してる)サイトってないのか?
どうも読み方や意味が分からないから関数名がおぼえれないんだ。。。
150デフォルトの名無しさん:2010/07/21(水) 00:10:53
覚えるより探す手段を増やすほうがよろしいかと。

機能別索引な関数マニュアル(こういうことやりたいけど、似たようなの無いかね?) と
アルファベット順の関数マニュアル(あの関数の引数 どうだったっけか?)
それぞれあると嬉しい

標準関数の話なら ある程度命名の法則性があったり、なかったり
長くならないように短縮してたりするからなぁ…
151デフォルトの名無しさん:2010/07/21(水) 00:12:49
覚えようとしたことは一度もない。その都度調べるわ。
152デフォルトの名無しさん:2010/07/21(水) 00:21:25
積分ってどうやってC言語組めばいいんでしょうか

メジャーな書き方あれば・・・
153デフォルトの名無しさん:2010/07/21(水) 00:52:57
俺はむしろ覚えたいね
歩くリファレンスと呼ばれたいね
154デフォルトの名無しさん:2010/07/21(水) 00:55:08
このリファレンス重くて使い物にならねーな
155デフォルトの名無しさん:2010/07/21(水) 00:58:27
語源おぼえてるやつってどこで覚えた?
ってかどこに書いてあるの?
156デフォルトの名無しさん:2010/07/21(水) 01:38:14
大事な誤字はすべてケンちゃんから学んだ
157デフォルトの名無しさん:2010/07/21(水) 01:53:03
すし屋?ケーキ屋?おもちゃ屋?
158デフォルトの名無しさん:2010/07/21(水) 01:54:10
洗濯屋?
159デフォルトの名無しさん:2010/07/21(水) 02:06:44
CreateFile() はそらんじて書けたためしが無い
160デフォルトの名無しさん:2010/07/21(水) 05:45:06
>>152
定積分でよければシンプソン方が簡単に見つかると思うけど。
いずれにしても、数学的な知識なしで書ける訳ではないよ。
161デフォルトの名無しさん:2010/07/21(水) 12:50:35
>>152
とにかく簡単なのは区分求積法だな、シンプソン法のがいいけど

でも今のCPUだと大概は区間細かくしまくっても余裕だから
あまり恩恵が無いが
162デフォルトの名無しさん:2010/07/21(水) 17:58:08
なんか質問者と回答の半分くらいのホストが一緒なんだけど自作自演ってことでよろしいか?
163デフォルトの名無しさん:2010/07/21(水) 18:20:19
ばーか
つまんねえって
164デフォルトの名無しさん:2010/07/21(水) 18:21:14
ですね
165デフォルトの名無しさん:2010/07/22(木) 19:52:00
ふと思ったんだが、strcatの語源ってなんなんだ?
166デフォルトの名無しさん:2010/07/22(木) 19:53:19
単語としてはcatinate
実質的にはコマンドのcat
167デフォルトの名無しさん:2010/07/22(木) 20:17:45
>>166
これって調べたらラテン語じゃね?
どこで知ったんだよ
これを知ってるやつはほとんどいないだろうな
168デフォルトの名無しさん:2010/07/22(木) 21:51:54
string catenate
169デフォルトの名無しさん:2010/07/22(木) 22:25:52
>>167
いや、知ってる奴は多いと思うぞ。
UNIXのコマンドの中で、catは印象に残る変な名前best4に入るから、ちょっとしたトリビアになってる。
UNIXを触らない専門学校卒とか文系卒には馴染みがないのかもしれんが。
170デフォルトの名無しさん:2010/07/22(木) 22:27:55
manco mmand
171デフォルトの名無しさん:2010/07/22(木) 22:30:44
strcat_sってマイクロソフト独自の物なの?
172デフォルトの名無しさん:2010/07/22(木) 22:42:35
>>169
おまえが触っているのは Linux ってオチはなしだぜ
173デフォルトの名無しさん:2010/07/23(金) 00:21:50
釣りだと思うが、catはconcatenate、連結だろ。
174デフォルトの名無しさん:2010/07/23(金) 02:54:42
中学校で習った
catは猫
175デフォルトの名無しさん:2010/07/23(金) 10:48:05
>>174
ですよねー
176デフォルトの名無しさん:2010/07/23(金) 11:46:27
catenate は「連結する」という意味の英語ですよ。
技術書に限らずその英文に普通に使われいます。

unix で cat を man すれば catenate だと書いてあるし、
strcat の gcc や MS のヘルプ(英文)にも catenate と書いてある。

こんなの高校程度の英語だろ。あ、夏休みか。。。。
177デフォルトの名無しさん:2010/07/23(金) 12:47:47
ちょっと検索してみた限りでは、 manページに書いてあるのは、catenate じゃなくて concatenate が多数派。
178デフォルトの名無しさん:2010/07/23(金) 13:19:21
>>177
ちゃんと読めてるのか?
そもそもシノニムなんだから、機能の解説としてconcatenate が使われていても意味ないぞ。
由来に catenate だと書いてあるだろ。
179デフォルトの名無しさん:2010/07/23(金) 13:46:14
http://en.wikipedia.org/wiki/Cat_(Unix) かな
ネイティブの気持ちはわからんけど、なぜコマンドをconcatにしなかったと思うらしいね
conに付く意味が大きいからかな
パっと見、どの言語も連結に関する関数名は、ほぼconcat…だしね
180デフォルトの名無しさん:2010/07/23(金) 13:47:39
>unix で cat を man すれば catenate だと書いてあるし、
>strcat の gcc や MS のヘルプ(英文)にも catenate と書いてある。
どのunixの話?
gcc や MSのヘルプってどのバージョン?
catenate が使われている man page ってどこにあるのよ?
181デフォルトの名無しさん:2010/07/23(金) 15:20:11
脳内に決まってんだろ
182デフォルトの名無しさん:2010/07/23(金) 16:22:55
ダマされない方がいいよ catenate なんて辞書に乗ってない

cat も strcat も concatenate を略した物だとMSのヘルプに明記されている

この話題はもう終了でいいよ
183デフォルトの名無しさん:2010/07/23(金) 16:30:06
ttp://ejje.weblio.jp/content/catenate
辞書に載ってないは言いすぎだろ…
catenateさんに謝れ
184デフォルトの名無しさん:2010/07/23(金) 16:32:04
>>182
そろそろ中学生用の辞書は卒業したらどう?
185デフォルトの名無しさん:2010/07/23(金) 16:46:14
>>183
グロ注意
186デフォルトの名無しさん:2010/07/23(金) 16:56:22
カテナチオ作戦は失敗に終わったようだな
187TreeBoa:2010/07/23(金) 19:40:45
お前バカは
こんなくそ言語まだやってんの? メモリ管理のめんどくせえくそ言語wwwwwwwwwwwwwwwwwwwwwwww
ばかすぎてかわいそうだよwwwwwww
きみたちどうせあれだろwwww C言語やったらC#とかやんだろばかだからwwwwwww

Objective-Cやれよな?wwwwwばかだから御前等本当かわいそうwwwww

必死に「メモリ解放!! エッサエッセ!!メモリ解放!!エッサ free!! free!ビュンビュン!」
とかわめいてればいいんだよwwwwwwwくそどもが

御前等 Perlじゃなくて PHPとかやってるあたまの悪そうな奴だからな ホ ン ト ゴ ミ wwwwwww
188デフォルトの名無しさん:2010/07/23(金) 20:05:47
ついにモンキーセンターにまで感染が拡大したか…
京都大霊長類研究所はどうなるんだろう
189デフォルトの名無しさん:2010/07/23(金) 20:12:50
え?何?アイちゃんなの?
190デフォルトの名無しさん:2010/07/23(金) 20:15:22
お前らpythonとrubyだったらどっち好き?
191デフォルトの名無しさん:2010/07/23(金) 20:38:25
>>188
基本的に怪しいと思ったら全殺しだよ。
192デフォルトの名無しさん:2010/07/23(金) 22:21:11
>>190
PerlPerlPerlPerlPerlPerlPerlPerl
PerlPerlPerlPerlPerlPerlPerlPerlPerl
PerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerl
PerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerl
PerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerl
PerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerl
PerlPerlPerlPerlPerlPerlPerlPerlPerlPerlPerl
193デフォルトの名無しさん:2010/07/23(金) 22:30:28
C言語とか2chにスレ立てる必要すらねーよごみww
こんなの独学だろ頭湧いてんのか?wwwマジ受ける御前等のゴミさ加減には
塩加減もほどほどにしろよな目糞鼻くそ
てめえらが borland C++コンパイラとかcygwinでコンパイルしてる姿みると本当笑っちまうぜww
catとかくだらねえ話題ほざいてるし御前等レベル惹く杉んだよカスがよww

てめえら一生クソコード書いてんだろww勉強に必死そうだしww クハハハハハハハwwwwまじ雑魚過ぎだわ

こいつらバカだからステップ数競ってんだろwww perlじゃ一瞬で糞みてえなコードかけんだよ雑魚ww
Cで深い部分やるとかいってるけどさ てめえらの脳味噌できるの?バイナリとかほざいてるけど君たちwww
別にそこまで凄いことやらないのに何CPUとかわめいてんの?wwwばかだろほんと
いたいたいたいちあちあちあいたいちあちあたいたすぎるよ君たちwwwwwwwwwwwwwwwwwwwwwwwww
バカはポインタでつんでんだろwwあほが

とりあえずこんなゴミスレ立てるんじゃねえよwww すげーストレスたまってんだよばかがしね

Perl=大魔導師
C=コジキ
ですねwwwwwwwwwwwwwwwwwwwwwwwww
194デフォルトの名無しさん:2010/07/23(金) 22:52:42
もちつけアイちゃん
195デフォルトの名無しさん:2010/07/23(金) 23:51:56
>>193
宿題スレにもこういうのが沸いていているんですが、煽ると結構楽しいので、‥‥‥まあゆっくりしていってください。
196名無し:2010/07/24(土) 16:08:03
C言語ではなにがつくれますか?
ボクはC言語でpspのゲームがつくりたいです
どうやったらつくれますかおしえてください
コンパイラって言うのを入れないと駄目なんですがどうやっているれるんですか?
C言語ではなにができますか!?詳しく教えてください!
太鼓の達人みたいなゲーム創りたいです!
197名無し:2010/07/24(土) 16:15:05
あと2chのゴミどもみたいな脳味噌になってみたいです!
どうやったらなれますか!?C言語やる意味があるとおもてるバカな天才にもおききしたいです!

何でC言語をやっているんですか?!詳しく教えてください!!!!!!!!!!!!!!!!!!!!!!!!
御願いします! バカになる努力とかしてますか?
アイちゃんってなんですか?脳味噌たりてますか?!

Perlはクソだとオモッテルんですか?! 頭兵器ですか? Cやれば仕事があると勘違いしてるんですか?!

頭の弱いゴミドモ教えてくださいwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
198名無し:2010/07/24(土) 16:18:34
孫さん 孫サンいってるバカはなんあんですうか?!
宗教なんですか?
C言語もそうだとおもいませんか?perlもそうですよ
バカみたいに 孫サン!孫サン!ソフトバンクとかわめいてるゴミはしんだほうがいいとおもいますね☆
ホリポリマンセー 孫サンマンセー と拝んでるばかどもはしねばいいともいますよ♪

ホリポリってperlやってたみたいですが逮捕されちゃいましたね^^;wwwwwwwwwwwwwww
wwwwwwwwwwwww
まじうけますねwwwwwwwwwww クソドモが影響うけて起業しちゃって最高ですよwwwwww
wwwwwwwwwwww
wwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwww   かばんもちとかやってるやつどうなったんでしょうねwwwwwwwwww
ばかすぎてオナラが10000発でですたすけてくださいwwwwwwwww
199デフォルトの名無しさん:2010/07/24(土) 16:18:52
ばーか
つまんねえって
200名無し:2010/07/24(土) 16:20:30
>>199
どういうのだったらおもしろいいですか?具体的にこたえてくださいごみwww

クソスクリプト書いてるてめえにいわたくねえよごみwwww
なあ?www答えてみろよごみがおいおいいおいwwwww
クソガリクソチビがわめいてんじゃねえよこらwwwww
なあ?www 180センチ以下はホリポリってんだよかすwwwwwwチビはしんどけってなあ?wwwwwwww
201デフォルトの名無しさん:2010/07/24(土) 16:26:51
だからつまんねえって
202名無し: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
おもしろさ評価してるゴミがつれたつれたwwwwおもしろさ評価してるゴミがつれたつれたwwww
203名無し:2010/07/24(土) 16:30:19
2ch巡回してゴミつってるのでね
おもしろさもとめてないですよ^^;クソガリチビちゃん

俺よりゴミなくせしてでしゃばってんじゃえねえよカス^^;
204デフォルトの名無しさん:2010/07/24(土) 16:31:44
いいから失せろよゴミ
205デフォルトの名無しさん:2010/07/24(土) 16:33:12
>>204
ゴミがゴミに必死にレスつけてどうする
落ち着け
206デフォルトの名無しさん:2010/07/24(土) 16:35:32
だから失せろって
207デフォルトの名無しさん:2010/07/24(土) 16:36:38
チンパンジーのアイちゃんがわいてますね
208デフォルトの名無しさん:2010/07/24(土) 16:38:09
センスねーな
209デフォルトの名無しさん:2010/07/24(土) 16:48:11
210デフォルトの名無しさん:2010/07/24(土) 17:26:01
どこぞで苛められているので、憂さ晴らししているんですね。よくわかります。
211デフォルトの名無しさん:2010/07/24(土) 19:49:35
>>193
おもえ力抜きすぎwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

もっと本気出せよwwwwwwwwwwww
もしかしてヘボイの???????????wwwwwwwww
だったらVIPで1人ですれたてて練習してこいks

マジks過ぎて2chが廃れるからやるならミィやグレエでやれks
もしかしてマイアカウント荒らしたくないゆとり君か?
それならニコ生でも荒らしてこいks
212デフォルトの名無しさん:2010/07/25(日) 08:26:44
マ板で管理人やってるからwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ワロスワロスwwwwwwwwwww馬鹿ども必死wwwwwwwwwwwwww
213デフォルトの名無しさん:2010/07/25(日) 11:45:28
なつだねー(棒)
214デフォルトの名無しさん:2010/07/25(日) 19:14:23
なんかこのスレだけ標的にされてるな
215デフォルトの名無しさん:2010/07/25(日) 20:35:26
【Perl,PHP】LLバトルロワイヤル11【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1276128624/

ここにもいる
216デフォルトの名無しさん:2010/07/25(日) 21:47:07
インテルのippライブラリっていうものを使って、ウェーブレット変換をするプログラムを作れと言われたのですが、
ライブラリというのは、プログラムの最初に、#include<ipps.h>というのを入れとけば、マニュアルで指定された関数名を入力して、値を渡すだけで結果を返してくれるものなのでしょうか?
(ippライブラリのマニュアルにippsWTHaarFwd と ippsWTHaarInv は、ipps.h ファイルで宣言される。と書かれていました。)
ライブラリの使い方がサッパリ分かりません。
217デフォルトの名無しさん:2010/07/25(日) 21:51:48
>>216
インテルのライブラリなら、代理店から購入しているでしょうから代理店にお問い合わせください。
218デフォルトの名無しさん:2010/07/25(日) 21:54:31
>>216
includeできる状態だったら関数名を入力するだけで使える
ググって出てきたのを適当にはっとくからここからは自分で調べてみ

それでもわからんかったら、わからん部分を具体的に訊きんシャイ
http://www.geocities.jp/ky_webid/c/008.html
http://www.geocities.jp/ky_webid/c/020.html
219デフォルトの名無しさん:2010/07/25(日) 22:15:46
>>218
まさかと思うけど、ippのことを何も知らずに書いているほど間が抜けているわけじゃないよね?

>>216
マジに、検索もできないくらいノウハウがないなら代理店でセミナー受けた方がいいんでない?
220デフォルトの名無しさん:2010/07/25(日) 22:45:59
純正セミナーはそれなりに意味あるぞ
自力で脱出不能の誤解に陥ってるのに気づけるし
221216:2010/07/25(日) 23:21:37
プログラミング苦手なのに、インターンシップ先でいきなりライブラリを使ってプログラムを作れと言われたので手も足も出せない状態です。
期間も短いので、セミナーを受けることは難しいので、ここでお教えいただければと思ったのですが・・・

218さんが貼って下さったリンクの内容は理解できましたが、219さんの表現からすると、やはり、#include<ipps.h>と関数名打ちこんで値を渡すだけでは動作しないのでしょうか?
どのようにすれば動作するのか教えていただけないでしょうか。
不躾な質問ですが、どうかお願いいたします。
222デフォルトの名無しさん:2010/07/25(日) 23:24:03
まず猫でもわかるプログラミングでも見て言語から勉強するべきだろ。
223デフォルトの名無しさん:2010/07/25(日) 23:32:30
stdio.hもライブラリである
224216:2010/07/25(日) 23:43:52
>>223
それは今回勉強してて分かりました。
つまり#include<ipps.h>と関数名打ちこんで値を渡すだけで動作するのでしょうか?
225デフォルトの名無しさん:2010/07/25(日) 23:50:00
ここは入門編スレであり実際の動作はサポートしません
226デフォルトの名無しさん:2010/07/26(月) 03:51:18
そのインターンシップ俺にやらせろよ
227デフォルトの名無しさん:2010/07/26(月) 09:30:41
あfdgsfdfs
228ccc ◆Wg.sDXhXMM :2010/07/26(月) 09:54:56
やっと規制とけた・・・
前スレで質問したものですが、
やっぱここで気の済むまでやり取りしないとスッキリしないです。

行き詰ったらまた質問させてください
229デフォルトの名無しさん:2010/07/26(月) 12:35:12
誰だお前
230デフォルトの名無しさん:2010/07/26(月) 13:23:03
オレオレ
231デフォルトの名無しさん:2010/07/26(月) 16:08:24
なにそのクソインターンシップwwwwwwwwwwwwwwww
ばかそうだなwwww

そもそもプログラミングに自信が無いゴミが参加するとうざいんだよね^^;

インターン先のゴミ馬鹿社員とかも相当頭おかしいんだろうねwwwwwwwwwwwwww
232デフォルトの名無しさん:2010/07/26(月) 16:39:33
>>224
「だけ」では動作しない。
ヘッダには宣言が書いてある。だから(狭義の)コンパイルは通る。
しかし、呼ぶ関数の実体はWinなら.dllとかに入ってる。.libをリンカに渡さないとリンクが通らない。
サンプル提供されてるから、そこから設定をコピればいい。

て、cでのプログラミングの基本なんだけど
この辺をしらない人間に「IPP使ってプログラム作れ」って言う奴がそもそもおかしい。
233デフォルトの名無しさん:2010/07/26(月) 18:34:50
は○なじゃないよね>インターンシップ
234デフォルトの名無しさん:2010/07/26(月) 22:35:46
(1)過去スレで、C99規格では、左シフト e1<<e2 において e1が符号付かつ負の値の時は未定義になるというのがありました。これはC90規格の時でもそうなんでしょうか?
組み込み系で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; とするのがいいのでしょうか。
235デフォルトの名無しさん:2010/07/26(月) 23:35:05
>>231
世間知らずの馬鹿がここにいるとは。。。。
この世も終わったものだなwwwwwwwww

ってかこいつ絶対「自分は天才」って感じのナルシだなwwwwwww
つうかプログラム知らないくせに語るなってwwww
お前の知ったかはここまでだ、
知恵袋にいって、いまからの小学校への入り方聞いてこい
236PHP=クソ(笑):2010/07/26(月) 23:51:04
>>235
オマエガネwwwwwwwwwwwwwwwwww
君にはyahooの珍言ブクロがよくお似合いだよwwwwwww
wwwwwwwww
wwwwwwwwwwwww
wwwwwwwww
珍言の宝庫が お に あ いwwwwwwwwwwwwwwwww(笑)wwwwwwwwwwwwwwwwwwwwww
プログラムしらねえとか本と受けるね君wwwwwwwwwwwwwwwwwwwwww
おめえはクソだろwwww はてなで修行つんできた ナリ上がりのバカ?www
そんな低レベルじゃねえんよ雑魚がww
てめえが語るなよハナクソ

なんかすげえ必死にレスつけてる御前がバカみたいだよwwいっぺんしねよクソガリww
こら?ww頭でも体格でも俺に叶わねえゴミがちょずいてんじゃねえぞ?ww
ペアコンとかわめいてそうなゴミみたいだねきみwww かわいそうだよwww
きみゴミゴミしいねw googleのケツおってるバカは◯なのインターン生かな?ww(大笑)(大笑)
(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)
(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)
(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)(大笑)
爆笑wwwwwwwwwwwwww強烈君本当ばかすぎwwwwwwwww 
237PHP=クソ(笑):2010/07/26(月) 23:52:41
>>236
ゴミゴミしい君の美味しい餌レスをまってますよ^w^b
238デフォルトの名無しさん:2010/07/26(月) 23:52:49
/*自己参照構造体*/

typedef 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;
}
239デフォルトの名無しさん:2010/07/26(月) 23:55:12
ここのfor 文が理解できないです。
条件式・次処理式はどう変動しているんですか?
240デフォルトの名無しさん:2010/07/26(月) 23:58:23
というか、なんでnextdataで次の構造体に移れるのかがわからないです
241デフォルトの名無しさん:2010/07/26(月) 23:59:20
for(
  lpdata = &a; // リストの先頭から開始
  lpdata; // NULLだったら終了
  lpdata = lpdata->nextdata // 次のDATAへ
)
これだけだよ

a.nextdata = &b;
b.nextdata = &c;
c.nextdata = NULL;
ここでnextdataに次の構造体を代入してるからだろ
242デフォルトの名無しさん:2010/07/27(火) 00:00:13
ごめん、アドレス入ってた。バカだった。
243デフォルトの名無しさん:2010/07/27(火) 00:02:02
a.nextdata = &b;
b.nextdata = &c;
c.nextdata = NULL;
の部分を見て、
a.nextdataが直でNULLを指してるのかと勘違いしてました
244デフォルトの名無しさん:2010/07/27(火) 00:07:55
>>234
e1が負の値じゃないから未定義じゃないんじゃないの
245PHP=クソ(笑):2010/07/27(火) 00:12:03
低レベルすぎるよ・・・・・・・・・・・
こんなバカみたいな事やってどうするの?・・・
くだらねえwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

自分で問題つくって自分で解決してる 自問自答プログラムつくるばかおおいねwwwwwwww
246デフォルトの名無しさん:2010/07/27(火) 00:34:57
もう少しで猫Cの構造体の項目が終わるよ!

連続投稿の規制で遅れたけど>>241さんありがとうございました!
247デフォルトの名無しさん:2010/07/27(火) 01:32:20
234です。
244さん返答ありがとうございます。
 確かに(2)ではe1が負ではありませんが、
 0xff00になって、int型の最大値(この場合は+32767)を超えてしまうのは
 やはりやばいのではと思って質問に加えました。
 ちなみにintが32ビットであるvc++2008で
   unsigned char a = 0xff;
   unsigned int b ;
    b=a<<24;
 をやってみたら。 特にエラーも出さず、b=4278190080(=0xff000000)
 になりました。
 
248デフォルトの名無しさん:2010/07/27(火) 03:51:53
よくエラーで
○×.exe の 0xたぶん16進 (abcde.dll) で
ハンドルされていない例外が発生しました:
0x---------: 場所 0x-------- を読み込み中にアクセス違反が発生しました。

って出て困るんですけど、これの原因ってなんですか?
249デフォルトの名無しさん:2010/07/27(火) 03:54:17
原因がちゃんと書かれているじゃないか
250デフォルトの名無しさん:2010/07/27(火) 03:55:05
>>248
>0x---------: 場所 0x-------- を読み込み中にアクセス違反が発生しました。

日本語読めるならわかるだろ
251デフォルトの名無しさん:2010/07/27(火) 04:12:29
そのメモリに不正なアクセスが起こったって事はポインタですか?
252デフォルトの名無しさん:2010/07/27(火) 04:20:25
>>251
別にポインタじゃなくても起こるよ
用意したメモリの範囲外にアクセスしようとすればね
253デフォルトの名無しさん:2010/07/27(火) 04:21:38
書式指定フィールド間違えてただけでした。
254デフォルトの名無しさん:2010/07/27(火) 04:22:56
>>250>>252
ありがとうございました
255デフォルトの名無しさん:2010/07/27(火) 10:10:41
#include <stdio.h>
int main(){
int i=0;
char *u[10]={"や","ら","な","い","か","?"};
char *k[10]={""," "," "," "," "," "};
while(u[i])
{
printf("%s%s\n",k[i],u[i++]);
}
return 0;
}

エラーが出ます教えてください
256デフォルトの名無しさん:2010/07/27(火) 10:13:25
whileの{}があったからえらーがでてました
かいとうありがごうざいました
257デフォルトの名無しさん:2010/07/27(火) 10:15:35
>>255
関数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;
}
258デフォルトの名無しさん:2010/07/27(火) 10:16:45
悪い
副作用完了点は1つしかないが、関数内の引数の評価の順序は定められて
いないので、i と i++ のどちらが先に評価されるかわからない

従って i++ を外に出さなければならない
259デフォルトの名無しさん:2010/07/27(火) 10:17:09
ウインドウとかボタンってどうだすんですかおしえてください
よくわからないんですが ボタンとかテキストボックスはどうやってひょうじするのでしょうかおしえてください
260デフォルトの名無しさん:2010/07/27(火) 10:17:54
>>255
i++ を外に出せ
261デフォルトの名無しさん:2010/07/27(火) 10:22:11
いまハテナのイーンターンでC言語やれとかいわれてるんですが
そしてロックマンZERO作れとか言われてるんですが

perlでC言語をやりたいんですがどうやればいいんですか
perlをコンパイルってやるんですが

#1/us/bin/prel
print "hello;

ってメモ帳にかいて gcc a.cってやってるんですが ./a.exeってやって
エラーがでて実行できませんおしえてください

本みてやってるんですがなかなかできませn
262デフォルトの名無しさん:2010/07/27(火) 10:23:27
perl a.plでできるよ

君才能あるね これじゃハテナである意味ナンバーワンでしょ
263デフォルトの名無しさん:2010/07/27(火) 10:24:09
つまらねえから 消えろ
とかいって釣られてくれるバカはまだレスくれませんか??????・・・

お返事まってます!!☆
264デフォルトの名無しさん:2010/07/27(火) 10:24:48
それは断る口実だよ
少しでもまともな判断力が残っているなら願い下げだ
265デフォルトの名無しさん:2010/07/27(火) 10:27:49
>>256
それたまたま動いているだけだから
266デフォルトの名無しさん:2010/07/27(火) 10:33:02
C言語でロックマンを作りたいのですが・・・
どうやってつくればいいんでしょうか?

秋葉原とかで部品をかってロックマンとかデジモン作ってみたいのですが・・・
267デフォルトの名無しさん:2010/07/27(火) 10:37:41
まず入門書でも買って勉強しろ
268デフォルトの名無しさん:2010/07/27(火) 11:20:42
ロボット作るってことか?
269デフォルトの名無しさん:2010/07/27(火) 12:21:37
>>266
とりあえず、今のお前はここに池
http://pc12.2ch.net/test/read.cgi/tech/1274998754/l50
ここはまだ優しい住人が多い。
たぶん同じ答えが返ってくるかもしれんがな。

次に入門書だ。極限まで簡単そうなのを買え。
金がなければ入門サイトでも図書館でもいいけどな。

そこでお前は分からない単語と出会う。
ノイマン型とかオブジェクト指向とかイクセス表現とかな。
だがここでヘタに調べるとドツボにハマる。
向こうは意味不明な言葉を意味不明な言葉で説明してくる。
だから最初はできるだけ分かったふりしてスルーしろ。
本当はものすごく大事な事なんだが、お前のCPUが爆発するからな。
大体第一章はこんなんばっかだから軽く読み流す程度でおk
270デフォルトの名無しさん:2010/07/27(火) 12:36:42
>>259
#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;
}
271デフォルトの名無しさん:2010/07/27(火) 12:37:26
次に大事なのはコンパイラってやつ。
これも大抵の本は第一章くらいで解説してるんだが、予備知識として今説明しとく。

まず、全てのプログラミング言語はただ文字を打っただけじゃ動かない。
じゃあどうやったら動くのかというと、
コンパイラって言うのに入れて機械語にしてからやっと動く。

最近は便利になったから、このコンパイラをもっと簡単に、
より分かりやすくしたソフトがタダでダウソできる。
これがIDE(統合開発環境)ってやつ。
昔はどうしてたかわからんが、今は
IDEにソースを打ち込む→ボタン一発
これでコンパイルできる。コンパイルってのもわかんないかもしれないが
要は書いたソースをプログラムにして実行してるって事。

ここまでたどりついたら、後は地道に本を読んでソースを実行しての繰り返し。
272デフォルトの名無しさん:2010/07/27(火) 12:52:37
> これでコンパイルできる。コンパイルってのもわかんないかもしれないが
> 要は書いたソースをプログラムにして実行してるって事。

IDE とはつまり、こういうだらずの製造装置
俺はぜひ IDE ぬきの環境も使うことを薦める
273デフォルトの名無しさん:2010/07/27(火) 12:53:33
はてなに「2chで質問してるインターンがいる」とチクってやれば沈黙する。
274デフォルトの名無しさん:2010/07/27(火) 15:37:19
はてなの人力検索で質問すればOK
275デフォルトの名無しさん:2010/07/27(火) 17:26:00
ttp://www9.plala.or.jp/sgwr-t/c/sec15-5.html
のリスト構造で入力した順番に表示するにはどうすればいいんでしょうか
276デフォルトの名無しさん:2010/07/27(火) 17:35:56
>>275
「新しいデータを先頭に入れて(*1)」「先頭から表示する(*2)」から入力の逆順表示になる。
+1か*2を逆にすればいい。
*2の逆を速くやるために「双方向リスト」というデータ構造もある。
277デフォルトの名無しさん:2010/07/27(火) 17:42:23
void show_list(struct list *p)
{
if (p->next)
show_list(p->next);
puts(p->name);
}
278デフォルトの名無しさん:2010/07/27(火) 19:16:00
219.126.184.225だったかな
例のインターン
279デフォルトの名無しさん:2010/07/27(火) 19:24:44
関数呼び出した時のメモリのイメージがぼんやりしててよく分からないのです。
参考になるサイトとかないですかね?
関数再帰させたときの仕組みを知りたかったりしてます。
280デフォルトの名無しさん:2010/07/27(火) 19:48:15
cc -S 279.c
vi 279.s
281デフォルトの名無しさん:2010/07/27(火) 20:00:18
>>279
「関数呼び出し スタック」で検索すれば沢山ヒットする。
282デフォルトの名無しさん:2010/07/27(火) 20:45:56
ttp://codepad.org/853oWKR7
これを同じnameが入力されたらscoreを更新したいのですが
同じnameが2つ出てきてしまいます。

A 100 B 200 のときに
A 70 と入力したら
A 70 B 200 となるようにしたいです
今のものだと
A 100 A 70 B 200 となってしまいます

関数struct slist *addに手を加えて直したいのですが・・・
よろしくお願いします
283デフォルトの名無しさん:2010/07/27(火) 20:50:47
>>282
search って関数作って既にあれば
score を書き換えるようにする
284デフォルトの名無しさん:2010/07/28(水) 02:38:45
c言語なんですが

int 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
このようなエラーが出ます。どのようにすれば解消できるか教えていただけないでしょうか?
よろしくお願いします
285デフォルトの名無しさん:2010/07/28(水) 02:46:12
>ox[i][j]='oxn[i][j]';
ox[i][j]=oxn[i][j];
キャストしないと通らないかもしれないけど
286デフォルトの名無しさん:2010/07/28(水) 02:53:49
>>285
うまく通ってくれました
ありがとうございました
287デフォルトの名無しさん:2010/07/28(水) 13:31:38
>>272
今の時代なら、両方から攻めるのがいいぞ。
IDEでさくっと作った後、IDEを捨てて作り直させる。
一度ゴールを見た状態からの方が脳に地図を作りやすい。
288デフォルトの名無しさん:2010/07/28(水) 18:01:51
>>287
フリーで C++ にいい IDE 環境はなんでしょうか。
289デフォルトの名無しさん:2010/07/28(水) 18:41:50
日当たり良し
290デフォルトの名無しさん:2010/07/28(水) 20:42:41
>>236
必死乙
できないやつほど嘘をついて必死になるって本当だったんだな
ってか、Yahooのブログとかいつの話してんの?
さすが知ったか訓は各が違うな〜

今までお前(カス)がプログラムのことを語ってないし、自分の地位を表してないのにww
夢の話はいいんだよ

>頭でも体格でも俺に(ry
確かにお前の馬鹿さやデブさ、臭さには叶わんわ〜
291デフォルトの名無しさん:2010/07/29(木) 00:48:30
csvファイルをエクセルで開いた場合に、二行D列〜K列に横並びで入ってる実数型の
データを一つの配列に読み込みたいのですが、どのようにすれば読み込めるのでしょうか?
fopenでできるとも思ったのですが、どのようにして一行目と二行目のA〜C列を読み込まないようにすればいいのかわかりません。
292デフォルトの名無しさん:2010/07/29(木) 00:50:36
>>291
csvの構造は知ってるよね?
293デフォルトの名無しさん:2010/07/29(木) 01:06:38
fgetsで一行ずつ読み取って
カンマで分割して
atoiで整数に変換すればいいんでないの。

セルが""で囲まれてる場合もあるけど。
294デフォルトの名無しさん:2010/07/29(木) 07:19:48
>>293
なんで小数点以下を捨ててしまったの?

>>291
分割方法はなんでもいいけど、数値変換にはatoiじゃなくatod、、、でもなく、strtodを使うとよいよ。
295294:2010/07/29(木) 07:20:45
atodってorz
atofの間違い。といっても、それは使わない。
296デフォルトの名無しさん:2010/07/29(木) 17:37:14
VBA使えば悩まずに済む。
297デフォルトの名無しさん:2010/07/29(木) 18:14:14
Excel からデータもらうんなら COM だろ
298デフォルトの名無しさん:2010/07/29(木) 20:55:19
>>291
場合分けするの面倒だからとりあえず全部読んで
A〜C を使わないようにする
299デフォルトの名無しさん: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);
}
}
--
300デフォルトの名無しさん:2010/07/31(土) 02:13:21
高度なコードを書いて見てください!
301デフォルトの名無しさん:2010/07/31(土) 02:43:21
オレが書いたんじゃないが、かなり高度なコード。
http://www.asahi-net.or.jp/~qa8f-kik/chopin/Scherzo/fig1.GIF
302デフォルトの名無しさん:2010/07/31(土) 03:05:08
別にオブジェクト指向的に使わなくてもC++の標準関数使ったほうが楽な場面が
多いことが最近分かった。
malloc、freeよりnew、deleteの方が楽だし、文字の扱いも楽だ。。。
303デフォルトの名無しさん:2010/07/31(土) 03:14:12
最近ヒープからメモリ領域を確保することしかしらないプログラマもどきがふえてうざい
304デフォルトの名無しさん:2010/07/31(土) 03:15:28
>>301
これをフォルテッシモシモは難易度高いな
305デフォルトの名無しさん:2010/07/31(土) 03:19:01
>>300
書いて見たけど。
306デフォルトの名無しさん:2010/07/31(土) 11:09:31
307デフォルトの名無しさん:2010/07/31(土) 12:37:59
てす
308デフォルトの名無しさん:2010/07/31(土) 16:01:55
>>304
ffffffffはフォルティシモシモシモシモシモシモですか? w
309デフォルトの名無しさん:2010/07/31(土) 16:03:32
フォルテッシッシモな
310デフォルトの名無しさん:2010/07/31(土) 16:35:26
下ネタが好きな連中やのぅ
311デフォルトの名無しさん:2010/07/31(土) 18:22:28
はじめてのC
312デフォルトの名無しさん:2010/07/31(土) 20:13:27
はじめてのセックス
313デフォルトの名無しさん:2010/07/31(土) 21:14:56
今日、街中のでかい本屋へ情報収集にいった。

いつも人が皆無で俺専用のC言語スペースにまだ大学生くらいのやつが
いるじゃねえか! 早くどけや!とおもいつつ、他のスペースをうろうろして
時間をつぶすこと1時間あまり。

ようやく、どいた。レジに並んでいるそいつの持っている本をみると
「やさしいC」だった。

こいつもあんなに試行錯誤しながら、やさしいCを買うなんて意外と苦労してるのかもしれないなと
おもった。
314デフォルトの名無しさん:2010/07/31(土) 21:33:26
まぁ無難な選択だな
315デフォルトの名無しさん:2010/07/31(土) 21:37:06
入門書でそんな悩んでもしょうがない。
適当にパパっと選べばいい。
316デフォルトの名無しさん:2010/07/31(土) 21:39:22
オマエに言われることじゃないw
少しでもいい本見つけたかったんだろうからなwww
でもなんでネットで調べてからいかないんだろうなとは思う。
317デフォルトの名無しさん:2010/07/31(土) 21:40:31
俺専用のC言語スペースってところがツッコみどころなんだろ。自分も大したことないという
318デフォルトの名無しさん:2010/07/31(土) 22:06:20
ターゲティング広告で退化した奴と根が同じのがいるな
書店を覗くことのメリットを全否定してやがる
319デフォルトの名無しさん:2010/07/31(土) 22:11:02
>>308
フォルテシシシシシシシモだったごめん。
320デフォルトの名無しさん:2010/07/31(土) 22:11:49
覗くことのメリットとは?
少なくとも目的がはっきりしてるならネットで探したほうが効率がいい。
321デフォルトの名無しさん:2010/07/31(土) 22:14:10
>>320
思ったよりもめくりにくくてびっくりする本とかあるよね。
けどその本じゃなきゃだめだったりするから本屋のぞいたからといって改善はされないけど。
322デフォルトの名無しさん:2010/07/31(土) 22:17:32
>>321
残念な回答(´・ω・`)
単純にネットを批判してるオヤジのような印象を受けちゃうよ(´・ω・`)
323デフォルトの名無しさん:2010/07/31(土) 22:19:21
本屋で立ち読みしてネットで買う
324デフォルトの名無しさん:2010/07/31(土) 22:21:33
>>313
Cの参考書を探していたのだとしたら、「やさしいC」は限りなくベストに近い書籍だよ。

1時間で判断できたならセンスがある。確信なく買ったのなら運がある。
325デフォルトの名無しさん:2010/07/31(土) 22:22:51
そうか、では箱買いするべきだな
326デフォルトの名無しさん:2010/07/31(土) 22:36:23
もう少し待ってみようか
本気でわからないのかも知れないなw
327デフォルトの名無しさん:2010/07/31(土) 22:54:23
明解Cでお勉強始めたよ。
なんせ暇だから。
今のところなんとか楽しい。
328デフォルトの名無しさん:2010/07/31(土) 23:00:38
俺はCよりC++やった方がいいと思う
Cに未来はない
329デフォルトの名無しさん:2010/07/31(土) 23:03:25
別にとっかかりは何だっていいだろw
ひとつの言語でできることを体感すればいい。
330デフォルトの名無しさん:2010/07/31(土) 23:04:54
CをさらっとやったらそのままC++に行けばいいんでない
331デフォルトの名無しさん:2010/07/31(土) 23:05:08
Cの存在を否定するやつって何を考えているんだろ
332デフォルトの名無しさん:2010/07/31(土) 23:08:21
CをやったらJavaに行けばいいよ
333デフォルトの名無しさん:2010/07/31(土) 23:09:54
CでメモリのイメージつかめるようになったらC++やればいいと思う。
ポインタを理解できれば合格だよね。
334デフォルトの名無しさん:2010/07/31(土) 23:23:30
C++0x見れば分かるように、仕様がグジャグジャでどうにもならなくなってる。

C++に未来なんてないよ。
335デフォルトの名無しさん:2010/07/31(土) 23:26:03
C++0xってもう発売されてるんですか?
336デフォルトの名無しさん:2010/07/31(土) 23:28:07
昨日大学生協に売ってたよ。
337デフォルトの名無しさん:2010/07/31(土) 23:29:08
アニメイトで予約特典付けてもらった
338デフォルトの名無しさん:2010/07/31(土) 23:31:18
いまアマゾンで50%offだぞ
急げ!
339デフォルトの名無しさん:2010/08/01(日) 00:07:10
俺も入門書は明解Cだった、恐らく次に求める本はC言語ポインタ完全制覇だな
HSP/BASIC(N88互換のやつ)

あくまでも遊びと割り切ってやること
(この間(90/満年齢)年以上置く:15歳だったら21歳まではプログラミングに
手を出さない。18歳だったら23歳まで。12歳だったら19歳迄 30歳だったら33歳まで)

/*-------------------------------------------------*/
PHP(決して深いりしないことを条件)

C(これも最初はさらっと)
←→(相当行ったり来たり)
Java(もしくはC#)
←→(時々行ったり来たり)
C++

こんな感じかな。
341デフォルトの名無しさん:2010/08/01(日) 01:23:03
>>340
要するにあなたはNEETと。それはよくわかった
342デフォルトの名無しさん:2010/08/01(日) 01:30:16
>>340
人類の言葉でおk
343デフォルトの名無しさん:2010/08/01(日) 01:50:28
解読出来ない奴はNEET
344解読w:2010/08/01(日) 02:03:45
コマンドの組み合わせと変数を使うことで仕事が出来ることを
体験しておこう(必須じゃないけど)

変数や関数の使い方の初歩を覚えよう(PHP)

やや高度な変数や関数の使い方、構造体の使い方を覚えよう
OSについても勉強しよう(C)

本格的に構文を覚えよう(Java)

時にはアクロバティックな必殺技も使う
「高度な」プログラミングテクニックを覚えよう(C++)
345デフォルトの名無しさん:2010/08/01(日) 02:21:20
プログラミング初学者が始めるのに適当な言語はCかPerlだと思うんだがどうだろう。
346デフォルトの名無しさん:2010/08/01(日) 02:36:39
>>345
さもなくばしね(or die)
こんな文が羅列されてるスクリプト

マクロや条件コンパイルの嵐で関連ファイルが数百を超えるようなソース

電車に飛び込みたくなる理由もわかるような気がするw
347デフォルトの名無しさん:2010/08/01(日) 02:38:50
C は文字列の扱いにつまづく
Perl は 0 の扱いにつまづく
今でも初学者用として BASIC は偉大だと思う
348デフォルトの名無しさん:2010/08/01(日) 02:41:09
そんなレベルの話じゃないけどなw
データとか振る舞いとかプログラムの「い」を覚えるには適当な言語じゃないかなw
349デフォルトの名無しさん:2010/08/01(日) 02:43:38
「い」を覚えていない人にそう思わせるところが
嫌らCと言われる所以と聞きました
350デフォルトの名無しさん:2010/08/01(日) 03:33:44
>>346
関連ファイルが数百を超えたからといってどうだというんです?
351デフォルトの名無しさん:2010/08/01(日) 03:53:55
オーナーにとてもじゃないが読めないから、
明日迄に正常に動作することを保った上で
読み易く理解し易いように書き直してくれ
と言われて何人が電車に飛び込んだのだろ
うか...
352デフォルトの名無しさん:2010/08/01(日) 09:42:04
質問なんですが
Javaでいうjcpadやエクリプスのように
エディタとコンパイラ?が一緒になっているようなフリーソフトはないでしょうか?
VisualC++ を使ってみるといいと聞いたんですが
C言語を書き込むと必ずデバックで引っかかってしまいます。
353デフォルトの名無しさん:2010/08/01(日) 09:46:41
jcpad知っててcpad知らないの?
354デフォルトの名無しさん:2010/08/01(日) 10:13:59
>>353
生まれてきてよかったです
ありがとうございました
355デフォルトの名無しさん:2010/08/01(日) 10:42:18
それほどでもない
分からないことがあったらまたおいで
356デフォルトの名無しさん:2010/08/01(日) 10:52:59
EclipseにもC言語用のプラグインが・・・いや、なんでもない。
357デフォルトの名無しさん:2010/08/01(日) 12:51:59
>>355
うん((o(´∀`)o))ワクワク
358327:2010/08/01(日) 22:47:14
どうも。たらたらやってます。今配列に差し掛かりました。

for文の辺りからちょっと気になってたんですけど
この部分無駄じゃないの? とか、こうしたほうが簡単じゃないの?
って部分が時々あります。
自分なりに、本の記述でなにかメリットがあるのか考えるんですけど、
どう考えても無駄に思えるところもあって。理解がついていっていないのかと不安になります。
まだはじめたばかりなので読み進めるにしたがって理解が深まるとよいのですが・・・

たとえば、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];
359358:2010/08/01(日) 22:49:52
あ、これだとダメですね(笑)

やっぱバカですねwww
360デフォルトの名無しさん:2010/08/01(日) 22:50:59
バカは死ね
361デフォルトの名無しさん:2010/08/01(日) 22:52:10
>>359
どうもどうも
362デフォルトの名無しさん:2010/08/01(日) 22:54:46
>>358

vx[0]=vx[4]
vx[1]=vx[3]
vx[2]=vx[2]
vx[3]=vx[1] ← (ノ∀`)アチャー 上でvx[1]にvx[3]入れちゃったから入れ替わらない

結局下の方法だとvx[3]とvx[4]は入れ替わらないままになっちゃうんだよね(´・ω・`)
363358:2010/08/01(日) 22:58:04
そうみたいですね(笑

今下の説明を読んで納得しました
お恥ずかしい(笑


364デフォルトの名無しさん:2010/08/01(日) 23:00:59
コード晒すと恥じかくこともあるけど成長できるからいっぱい書いていくべし
たくさん恥かこうぜw
365358:2010/08/01(日) 23:04:12
うんwww
ありがと( ;∀;)

でもいまんとこよくわかった
366358:2010/08/02(月) 07:32:17
起きたお(・∀・)
367デフォルトの名無しさん:2010/08/02(月) 11:07:08
>>358
考え方として、逆順にすると言う目的に対して>358の前者のコードが
「配列の前半分の要素について、それぞれ対応する後ろ半分の要素と交換する」
という形で解決すべく書かれているということを抑えておくといいと思う。

要は、パズルの結果としてコードがあるのではなく、やりたいことを実現するためにコードがあると言うこと。
それが判っていれば、>358の後者では上に括弧書きした解決手段(アルゴリズム)を実現できていないことは自明だろう。
368デフォルトの名無しさん:2010/08/02(月) 11:11:49
>>362の分かりやすさに比べて、>>367のバカっぷりには呆れるな
369デフォルトの名無しさん:2010/08/02(月) 11:20:19
あぁ、頭の使い方を知らない奴から見たら、底抜けに馬鹿に見えるだろうな。
370デフォルトの名無しさん:2010/08/02(月) 11:56:28
>>367
そのアルゴリズムを実装することが目的のページだったってこと?
371デフォルトの名無しさん:2010/08/02(月) 12:41:16
望洋は確かに丁寧に説明しているな、>>358の下の考えを見越したかのように
というより、コンパイルして間違ってないか試してないってことだね、後後困りそうだ
372デフォルトの名無しさん:2010/08/02(月) 13:07:00
>>371
試してるよ。ぱっと見気がつかなかった。
373デフォルトの名無しさん:2010/08/02(月) 14:29:46
バッファオーバーランで戻りアドレスが上書きされるのって
今どきのコンパイラだとありうる?
8ビットマイコンとかくらいでしかないよね?よく知らんけど
374デフォルトの名無しさん:2010/08/02(月) 14:35:34
今時のコンパイラでも環境によっては在り得る。
8ビットマイコンでも環境によっては起こり得ない。
375デフォルトの名無しさん:2010/08/02(月) 14:35:54
>>373
リターン値とローカル変数が同じスタックに取られてるいじょう、
性能に関係なくありえるんじゃないの?
376デフォルトの名無しさん:2010/08/02(月) 14:51:32
いや、戻り番地ってレジスタにぶっこまれるのが多いよなーと思って。
377デフォルトの名無しさん:2010/08/02(月) 15:01:38
VCでアセンブラのソースをださせてみたら、関数は昔とかわらず
callで呼んでたけど、最近のcallはスタックに戻るアドレスを積まないのだろうか。
378デフォルトの名無しさん:2010/08/02(月) 15:13:41
>>376
普通のプロセッサでは、スタックに積まれる。

>>377
x86はスタックに積むしかない。

データスタックとコールスタックが別のアドレス空間にあって競合しないプロセッサもあれば、
レジスタセットに戻りアドレスを積んでしまうプロセッサもある。
379デフォルトの名無しさん:2010/08/02(月) 15:20:46
そういやBALRなんて命令があったなあ。
380デフォルトの名無しさん:2010/08/02(月) 16:17:58
ttp://msdn.microsoft.com/ja-jp/library/8dbf701c.aspx
2010からか知らんけど、VCだと破壊検出用のコードが埋め込まれる
他にも、スタック内コードの実行不可とか色々ある
381デフォルトの名無しさん:2010/08/02(月) 20:42:46
gccだとカナリア、VCだと何て呼ぶんだっけ
とにかく両者、似たような機構がある
ただ、あくまで保険であって完璧ではないって話じゃなかったかなあ?
382デフォルトの名無しさん:2010/08/02(月) 21:22:42
gccで正常にコンパイル終了して、outファイル実行しようとしたら
へんな数字と文字の羅列が結果のあとにでてきたんですけどなんで?
謎の羅列は↓

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:
383デフォルトの名無しさん:2010/08/02(月) 21:58:44
>>382
共有ライブラリでも呼び出してる?
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/dlopen.3.html
384デフォルトの名無しさん:2010/08/02(月) 22:13:24
dlfcn.hインクルードしてませんねー
ちょっと自分でたしかめてみます
385デフォルトの名無しさん:2010/08/03(火) 00:45:41
printf("%d", sizeof(char *));
は4を出力しますが、この4は32bitOSだから4なんでしょうか?
386デフォルトの名無しさん:2010/08/03(火) 01:10:40
いいえちがいます
387デフォルトの名無しさん:2010/08/03(火) 01:40:39
>>385
んじゃあ、おまえ、64bitOSだと、int型が8にでもなるというのか!
388デフォルトの名無しさん:2010/08/03(火) 01:42:45
っつか、何型だろうとそれはポインタだから
389デフォルトの名無しさん:2010/08/03(火) 07:39:55
sizeof(char *)が2になる32ビットOSもある、sizeof(char *)が4になる16ビットOSもある。
390デフォルトの名無しさん:2010/08/03(火) 08:46:59
A , B ,C型のメンバを持つ構造体1があって
B,C型のメンバを持つ構造体2があって
2のB,C型のメンバを順番どおりに1のB,C型のメンバに入れたいのですがどうすれば良いでしょうか?
391デフォルトの名無しさん:2010/08/03(火) 09:07:03
どうするもこうするもないよ
そのままそれぞれ代入すればいい
392デフォルトの名無しさん:2010/08/03(火) 11:20:20
>>389
>sizeof(char *)が2になる32ビットOS
ねーよ
393デフォルトの名無しさん:2010/08/03(火) 11:28:39
>>392
あるんだな。これが。ww
394デフォルトの名無しさん:2010/08/03(火) 11:30:45
charが16bitでchar*が32bitだったらsizeof(char*)は2になるな。
395デフォルトの名無しさん:2010/08/03(火) 11:36:09
ha?
396デフォルトの名無しさん:2010/08/03(火) 11:43:25
ならねーよ
お前はバカか
397デフォルトの名無しさん:2010/08/03(火) 12:28:10
>>396
なるよ。
398デフォルトの名無しさん:2010/08/03(火) 12:43:28
sizeof の戻りはバイト数
char型 が1バイトで 1バイトが16bit で ポインタが32bit空間必要だったら
399デフォルトの名無しさん:2010/08/03(火) 12:50:24
具体的なOS名を出さずに最後は仮定の話なのか?
400デフォルトの名無しさん:2010/08/03(火) 12:54:41
仮定の話だったらありえるって認めたわけかな。
上の「ならねーよ お前はバカか」って発言はとてつもなく間抜けだったって
胸にしまって生きて行ってね。
401デフォルトの名無しさん:2010/08/03(火) 13:01:33
>>389=>>400だったらウケる
402デフォルトの名無しさん:2010/08/03(火) 13:44:55
>>385 ほとんど正解
8bit/Byteの32bitアプリケーションだから4が返る
64bitOSが32bitアプリ動かした場合も、4が返るので違うということになる
64bitアプリなら8が返る
403デフォルトの名無しさん:2010/08/03(火) 13:57:09
>>399
例えば、Win32
404デフォルトの名無しさん:2010/08/03(火) 15:45:10
>>393
それマジで言ったん?ソースあんならすぐ出せ
405デフォルトの名無しさん:2010/08/03(火) 18:41:47
てs
406デフォルトの名無しさん:2010/08/03(火) 19:41:11
例えばgccとかのコンパイラのソースってどこかに公開されている?
407デフォルトの名無しさん:2010/08/03(火) 19:44:19
>>404
>>403 当たり前の事実なのでソースは不要。
408デフォルトの名無しさん:2010/08/03(火) 20:15:25
>>407
やってみたが4じゃねーか
嘘乙
409デフォルトの名無しさん:2010/08/03(火) 20:16:42
>>408
キミは経験値がまだ足りない。
410デフォルトの名無しさん:2010/08/03(火) 20:27:11
ガスライティング
411デフォルトの名無しさん:2010/08/03(火) 20:29:11
実例プリーズw

# ワードアクセスの場合にアドレス線を1本ずらすってのはハードでは普通に出てくるが
412デフォルトの名無しさん:2010/08/03(火) 21:06:44
16bitモード・スモールモデルのプログラム実行しろよ。
413デフォルトの名無しさん:2010/08/03(火) 21:10:37
ほう、そこでは char が 16bit になるのかw
414デフォルトの名無しさん:2010/08/03(火) 21:12:47
Javaじゃあるまいし、charが16ビットの環境なんてあんのかよ。
机上でなく、実際の環境として。
415デフォルトの名無しさん:2010/08/03(火) 21:13:28
なければ作ればいいじゃない
416デフォルトの名無しさん:2010/08/03(火) 21:14:29
>>415
そんなことは今話していない。
417デフォルトの名無しさん:2010/08/03(火) 21:14:43
>>413
>>393>>394は別人なので、それに言いがかり付けたいなら>>394に直接つけろ。
418デフォルトの名無しさん:2010/08/03(火) 21:20:43
往生際が悪い
419デフォルトの名無しさん:2010/08/03(火) 21:27:16
つまり横レスした>>394が悪いってことだな
420デフォルトの名無しさん:2010/08/04(水) 11:38:08
結局ソースは出てこなかったな・・・
ちょっと期待していたんだが
421デフォルトの名無しさん:2010/08/04(水) 11:46:14
無いよ
422デフォルトの名無しさん:2010/08/04(水) 13:01:05
>>394 はまったく間違ってないだろ。
どこが間違ってるか説明してみろ。
ツッコまれるのをビビって説明できないだろうけど。
423デフォルトの名無しさん:2010/08/04(水) 13:03:12
君の説明はいいからソース出せ。
424デフォルトの名無しさん:2010/08/04(水) 13:09:21
>>422
>どこが間違ってるか説明してみろ。
レスのタイミング
425デフォルトの名無しさん:2010/08/04(水) 13:11:06
>>423
なんのソースだ。>>394にソースがいるのか。
426デフォルトの名無しさん:2010/08/04(水) 13:15:12
あえていうならCの仕様書だろうかwwww

427デフォルトの名無しさん:2010/08/04(水) 13:22:49
規格上はありえる
その上で、そういう実装があるのかねという問題がある
その辺はよく知らん……
428デフォルトの名無しさん:2010/08/04(水) 14:07:56
>>403
バーカ
ちゃんと限定しろよ
429デフォルトの名無しさん:2010/08/04(水) 14:13:19
>>428
現時点では限定する必要は無い。引っ込んでろ。バカ。
430デフォルトの名無しさん:2010/08/04(水) 14:15:19
いい加減脳内OSでしたごめんなさいって言えばいいのに…
431デフォルトの名無しさん:2010/08/04(水) 14:16:02
>>429
ならねーよバーカ
432デフォルトの名無しさん:2010/08/04(水) 14:17:27
>>431
「必要は無い」に対して「ならねー」ってなんだよ。引っ込んでろ。バカ。
433デフォルトの名無しさん:2010/08/04(水) 14:17:35
脳内OSでしたごめんなさい
434デフォルトの名無しさん:2010/08/04(水) 14:23:16
>>432
Win32で
>charが16bitでchar*が32bitだったらsizeof(char*)は2になるな。
こうなるOSの話だろがバーカ
435デフォルトの名無しさん:2010/08/04(水) 14:34:19
>>434
アンカーの打ち方憶えてから出直せ。クズ。
436デフォルトの名無しさん:2010/08/04(水) 14:37:48
>>435
反論できなくなったら話題そらしかよゴミ
437デフォルトの名無しさん:2010/08/04(水) 14:51:43
>>436
突っ込む相手が違うんだよ。そっちは>>427が既に論破してる。
干からびて死ね。バカ。
438デフォルトの名無しさん:2010/08/04(水) 14:55:10
>>437
その辺はよく知らん、で論破かよバーカ
439デフォルトの名無しさん:2010/08/04(水) 15:03:51
>>438の知能では二人相手にしている事が分らないようだから、両方相手してやる。
特別だぞ。バカ。

>>389 (これがオレ、特定の環境が存在すると言っている)
sizeof(char *)が2になる32ビットOSもある: 例 Win32
sizeof(char *)が4になる16ビットOSもある: 例 Win16 ラージモード

>>394 (どこかの誰か。特定の環境が存在するとは言っていない)
> charが16bitでchar*が32bitだったらsizeof(char*)は2になるな。
規格上あり得る。ソースはC99の規格書。


これでわかったか? 干からびて死ね。
440デフォルトの名無しさん:2010/08/04(水) 15:06:01
>>439
ならねーつってんだろバーカ
441デフォルトの名無しさん:2010/08/04(水) 15:06:30
>>440
干からびて死ね。バカ。
442デフォルトの名無しさん:2010/08/04(水) 15:08:44
>>441
反論できないからって無理して悪口だけ書かなくていいから
443デフォルトの名無しさん:2010/08/04(水) 15:09:17
>>442
干からびて死ね。バカ。
444デフォルトの名無しさん:2010/08/04(水) 15:10:30
>>443
反論できないからって無理して悪口だけ書かなくていいから
445デフォルトの名無しさん:2010/08/04(水) 15:10:50
>>444
干からびて死ね。バカ。
446デフォルトの名無しさん:2010/08/04(水) 15:11:38
>>445
反論できないからって無理して悪口だけ書かなくていいから
447デフォルトの名無しさん:2010/08/04(水) 15:12:53
>>439
横からですまんが、その環境について詳しく書いてもらえるとありがたい。
小出しにし続ける方針なら何日後ぐらいに見ればいいかを教えてほしい。
448デフォルトの名無しさん:2010/08/04(水) 15:13:33
(ヽ´ω`) げっそり
449デフォルトの名無しさん:2010/08/04(水) 15:14:21
ラージモードってメモリモデルのラージモデルのことか
sizeofってコンパイラがその時点で計算するんだしOS関係無いんじゃ?
450デフォルトの名無しさん:2010/08/04(水) 15:14:40
COMとか?
環境ってよりはアプリの作り方のように思えてならないけど。
451デフォルトの名無しさん:2010/08/04(水) 15:21:23
>>447
小出しじゃなくてそのまま書いてるだろ。どれが分らないんだ?
452デフォルトの名無しさん:2010/08/04(水) 15:23:17
>>449
OSがサポートしているメモリモデルでなければ実行できないのだから、関係なくは無い。
453デフォルトの名無しさん:2010/08/04(水) 15:27:27
>>451
Win32は全てsizeof(char *)が2になるってことでよろしいか。
454デフォルトの名無しさん:2010/08/04(水) 15:27:45
OSがサポートしてなきゃ自分でサポートすればいい
455デフォルトの名無しさん:2010/08/04(水) 15:28:58
ttp://homepage2.nifty.com/c_lang/intro/no_56.htm
これのことを言ってるのか
456デフォルトの名無しさん:2010/08/04(水) 15:39:54
流れが止まった・・・
457デフォルトの名無しさん:2010/08/04(水) 16:10:58
linuxでCの勉強をしています
getcwd() でカレントディレクトリを取得出来るのは判ったのですが
これは実行したプログラムの置かれている場所を取得する訳ではないようです
たとえば
[/tmp] $ /hoge/fuga/hage
の様に実行した場合
/tmp (カレントディレクトリ)ではなくて
/hoge/fuga の方を知りたいという意味です
argv[0] に /hoge/fuga/hage が入っていることまでは辿り着きましたが
ここから
/hoge/fuga
だけを抜き出す関数って標準で存在しますか?どんな名前の関数でしょうか?
458デフォルトの名無しさん:2010/08/04(水) 16:19:33
>>453
全てなんて限定詞はつけていないが。Win32でsizeof(char *)が2になる環境を知りたいのか?
NTVDM, WoW16
459デフォルトの名無しさん:2010/08/04(水) 16:21:02
strtok
460デフォルトの名無しさん:2010/08/04(水) 16:26:12
>>457
strrchr
461デフォルトの名無しさん:2010/08/04(水) 16:41:55
>>459-460
できました
ありがとうございました
462デフォルトの名無しさん:2010/08/04(水) 16:46:33
32bitOS上で16bitコードを動かすためのエミュレート環境は、16bitOSだろ
NTVDM, WOW32を32ビットOSと言い張るのはかなり希少な珍獣
463デフォルトの名無しさん:2010/08/04(水) 16:53:44
つーか屁理屈w
464デフォルトの名無しさん:2010/08/04(水) 17:01:15
>>458
ありがとう。最初にそれを書いてくれてれば何度も手を煩わせずにすんだんだけど、ごめんね。
465デフォルトの名無しさん:2010/08/04(水) 17:04:48
WoW16
466デフォルトの名無しさん:2010/08/04(水) 17:59:41
AndroidアプリをC言語で書くことはできますか?
467デフォルトの名無しさん:2010/08/04(水) 18:34:21
android c でググれ
468デフォルトの名無しさん:2010/08/04(水) 18:36:57
>>422
だろ。さん乙
469デフォルトの名無しさん:2010/08/04(水) 18:53:44
>>446
干からびて死ね。バカ。
470デフォルトの名無しさん:2010/08/04(水) 19:06:53
報告書に、c言語って書いたらC言語って書けと怒られた。
この上司、頃してもいいよね
471デフォルトの名無しさん:2010/08/04(水) 19:09:35
>>470
小文字で書くお前が悪いだろ・・・どう考えても・・・
472デフォルトの名無しさん:2010/08/04(水) 19:13:02
>>470
世界中どこ見たってC言語のCは大文字だよ。
c language で検索してみろ。
473デフォルトの名無しさん:2010/08/04(水) 19:13:25
>>471
ばーか
474デフォルトの名無しさん:2010/08/04(水) 19:32:12
>>470
その部下もコロちゃんがどうしたこうした
475デフォルトの名無しさん:2010/08/04(水) 19:58:21
なんだこの低レベルなインターネッツは…
476デフォルトの名無しさん:2010/08/04(水) 20:00:37
>>422
実例プリーズと言っているだけで間違っているかどうかは問うていないよ
つまり規格に違反している製品でも構わんということだ
477デフォルトの名無しさん:2010/08/04(水) 20:20:07
>>469
反論できないからって無理して悪口だけ書かなくていいから
478デフォルトの名無しさん:2010/08/04(水) 22:37:16
(ヽ´ω`)
479デフォルトの名無しさん:2010/08/04(水) 22:42:16
>>477
干からびて死ね。バカ。
480デフォルトの名無しさん:2010/08/04(水) 23:19:28
  || ̄ Λ_Λ
  ||_(Д`; ) 「なに?このスレ・・・」
  \⊂´   )
    (  ┳'
481デフォルトの名無しさん:2010/08/04(水) 23:56:29
本当にC言語の範囲でしかプログラミングしたことない人っているのかな?
482デフォルトの名無しさん:2010/08/05(木) 00:01:32
いるんじゃない?
これ他言語知ってる奴ならわかるはずだ、って質問を散見するよ。
483デフォルトの名無しさん:2010/08/05(木) 00:10:31
Cの質問する時点ではCしか知らんだろ
484デフォルトの名無しさん:2010/08/05(木) 00:11:29
未だに最初の言語として選ばれることも多いようだし、
十分あり得るのだろうさ
485デフォルトの名無しさん:2010/08/05(木) 00:57:03
>>479
反論できないからって無理して悪口だけ書かなくていいから
486デフォルトの名無しさん:2010/08/05(木) 01:09:51
>>485
反論出来ねーのはテメーだ。
干からびて死ね。バカ。
487デフォルトの名無しさん:2010/08/05(木) 01:14:59
>>486
反論できないからって無理して悪口だけ書かなくていいから
488デフォルトの名無しさん:2010/08/05(木) 01:16:31
>>487
反論出来ねーのはテメーだ。
干からびて死ね。バカ。
489デフォルトの名無しさん:2010/08/05(木) 01:20:11
>>488
反論できないからって無理して悪口だけ書かなくていいから
490デフォルトの名無しさん:2010/08/05(木) 01:28:34
ばーかばーか
491デフォルトの名無しさん:2010/08/05(木) 01:34:10
煽り合いはAAでやってくれ
492デフォルトの名無しさん:2010/08/05(木) 01:35:05
ばーかばーか
493デフォルトの名無しさん:2010/08/05(木) 01:37:07
                ハ        _
    ___         ‖ヾ     ハ
  /     ヽ      ‖::::|l    ‖:||.
 / 聞 え  |     ||:::::::||    ||:::||
 |  こ ?  |     |{:::::‖.  . .||:::||
 |  え      |     _」ゝ/'--―- 、|{::ノ!
 |  な 何   |  /   __      `'〈
 |  い ?   ! /´   /´ ●    __  ヽ
 ヽ      / /     ゝ....ノ   /´●   i
  ` ー―< {           ゝ- ′ |
        厶-―    r  l>        |
      ∠ヽ ゝ-―     `r-ト、_,)      |
      レ^ヾ ヽ>' ̄     LL/  、   /
      .l   ヾ:ヽ ` 、_      \\ '
     l    ヾ:ヽ   ト`ー-r-;;y‐T^
      |    ヾ `ニニ「〈〉フ /‖. j
494デフォルトの名無しさん:2010/08/05(木) 01:38:40
ばーかばーか
495デフォルトの名無しさん:2010/08/05(木) 01:42:21
            ____
         /     \
   n      / ⌒   ⌒ \
   | |   /   (⌒)  (⌒)  \ 
  i「|^|^ト、|      __´___     | <君みたいな低脳と一緒にしないでくださいね
 |: ::  ! } \.     `ー'´     /
  ヽ  ,イ
496デフォルトの名無しさん:2010/08/05(木) 01:43:19
夏か
497デフォルトの名無しさん:2010/08/05(木) 01:45:53
君ら年がら年中そんなことばかりやっててよく飽きないね
498デフォルトの名無しさん:2010/08/05(木) 01:47:03
          __、
     ,r´⌒ヽ,⌒ヽ,ヽ
   (⌒)、   .人  λ\、 ._____
    \. \    、 ヽ./ ー  ー\
     |\ \    ヽ./ ( ●) ( ●)
     |  \  \ /     (__人__) \  はいはい、どーもすみませんでした
     |.   \   |       ` ⌒´   |
  .   |.   |.\_ノ\            /
  .   |.   |   |   \______/
  .   |   )  .|     . . ̄ ̄
  .   |   |  .|
     |   |.|  .|
  .   |  | .| .|
     /  / / ヽ,
    (__ノ  ヽ、__つ
499デフォルトの名無しさん:2010/08/05(木) 02:11:08
>>498
そのアゴをなでなでしたいと常々思っている
500デフォルトの名無しさん:2010/08/05(木) 18:16:39
で、実例プリーズw

# グッドな泣き声にSっ気が…
501デフォルトの名無しさん:2010/08/05(木) 20:25:20
>>500
干からびて死ね。バカ。
502デフォルトの名無しさん:2010/08/05(木) 21:43:59
土方は干からびて死ね。
ねぇ、今日はどんな土方仕事したの?
503デフォルトの名無しさん:2010/08/06(金) 00:54:06
>>500
どの実例がほしい?
charが12ビットな環境でいい?
504デフォルトの名無しさん:2010/08/06(金) 01:19:37
じゃあcharが17ビットな環境で。
505デフォルトの名無しさん:2010/08/06(金) 01:53:50
素直にcharが16ビットな環境にしとけよ
506デフォルトの名無しさん:2010/08/06(金) 02:00:10
19ビットで。
507デフォルトの名無しさん:2010/08/06(金) 02:34:04
6bitで
508デフォルトの名無しさん:2010/08/06(金) 02:51:33
1bitで
509デフォルトの名無しさん:2010/08/06(金) 03:32:38
とりあえず13bitで
510デフォルトの名無しさん:2010/08/06(金) 11:14:37
ビット幅 C
で検索したら1バイト=16ビットの例が出てきた。
DSPか・・・ニッチだなぁ。
511デフォルトの名無しさん:2010/08/06(金) 14:54:32
ニッチの使い方おかしいだろ。
512デフォルトの名無しさん:2010/08/06(金) 15:02:24
頭の使い方おかしいだろ。
513デフォルトの名無しさん:2010/08/06(金) 16:08:37
ニチニチうんこです
514デフォルトの名無しさん:2010/08/06(金) 16:43:14
#include <stdio.h>
#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までズラッと表示されると思うのですが、
このコマンドプロンプトウィンドウをキーボードの矢印キーを使って上下にスクロールさせたいです。
矢印キーを使ってのウィンドウスクロールってどうやればいいんでしょう…?
515デフォルトの名無しさん:2010/08/06(金) 17:38:21
1バイト=64ビットであるべきだと思う
516デフォルトの名無しさん:2010/08/06(金) 17:42:12
そのココロは?
517デフォルトの名無しさん:2010/08/06(金) 18:06:19
>>514
その処理系に 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;

----
つづく
518デフォルトの名無しさん:2010/08/06(金) 18:07:18
>>517 の続き

for(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;
}
519デフォルトの名無しさん:2010/08/06(金) 18:09:20
>>517 >>518
これじゃちらつしてしかたないか。
カーソル位置を制御する関数で、描画のたびにカーソルを画面の
トップにもってこないといけないな。
520デフォルトの名無しさん:2010/08/06(金) 19:16:05
環境依存になるけど窓なら「コンソールAPI」を呼び出せばできると思う
521デフォルトの名無しさん:2010/08/06(金) 19:18:13
初心者レベルの話ではないと思うw
522デフォルトの名無しさん:2010/08/06(金) 19:19:13
ANSIならエスケープシーケンスがうんたらたかんまん
523デフォルトの名無しさん:2010/08/06(金) 19:42:36
コマンドプロンプトではうんたらたかんまん
524デフォルトの名無しさん:2010/08/06(金) 20:33:07
CUIでこみいったことをやろうとするとGUIよりも面倒になる
525デフォルトの名無しさん:2010/08/06(金) 22:29:55
>>514
Rogueでggる
Cursesが見つかる
526デフォルトの名無しさん:2010/08/06(金) 22:55:45
project eulerの問10です。

200万以下の素数の合計を求めるプログラムなんですが、
結果が上手く合いません。


どこが間違っていますか?


#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;
}
527デフォルトの名無しさん:2010/08/06(金) 23:05:04
>>526
perlのBigIntつかえ
intの最大値は足し算の結果より小さいんだろ
528デフォルトの名無しさん:2010/08/06(金) 23:11:23
>>527
なるほど!

cで言えば、
long long intを使えば良いってことですね
ありがとうございました
529デフォルトの名無しさん:2010/08/06(金) 23:50:19
>>507-508
char は少なくとも 8bit あると規格で規定されてる
530デフォルトの名無しさん:2010/08/07(土) 00:12:23
sizeof(char)が1ってのは決められているだろうけど
それが8bitであるって規格されてたっけ?
531デフォルトの名無しさん:2010/08/07(土) 00:25:02
うんにゃ

C99のbyteの定義:
addressable unit of data storage large enough to hold any member of
the basic character set of the execution environment

つまりbasic character setが全部表現できるサイズなら何でもおけ
532デフォルトの名無しさん:2010/08/07(土) 00:27:41
正規表現を勉強したのですがどうすればいいですか?
533デフォルトの名無しさん:2010/08/07(土) 00:34:54
>>532
正規表現で……
・素数判定
・fizzbuzz
・整数の足し算
・〜の取り扱い
・半角カナの置換作業
・バブルソート
534デフォルトの名無しさん:2010/08/07(土) 00:37:21
↑こんなん覚える必要ないからとりあえずboost::regexを動くようにしろよ
535デフォルトの名無しさん:2010/08/07(土) 00:40:16
>>534
正規表現を勉強したいので
じゃなくて
正規表現を勉強したので
だぞ?
536デフォルトの名無しさん:2010/08/07(土) 00:53:52
ハロワで条件の所に「正規表現のできる人」がある仕事を探す
537デフォルトの名無しさん:2010/08/07(土) 17:15:02
>>531
ってことは7bitでもいいってことかなー
538デフォルトの名無しさん:2010/08/07(土) 18:00:42
>>537
もちろん問題ない。
今は絶滅してるけど、過去にそういうのはあった。
むしろ4bitがあった。俺はそのときに泣いた。
もう涙は流さない。
539デフォルトの名無しさん:2010/08/07(土) 18:10:54
http://www.kijineko.co.jp/tech/superstitions/1-byte-is-8-bits.html

ネットでCHAR_BITは8以上って情報をよく見るけど、これは嘘なの?
540デフォルトの名無しさん:2010/08/07(土) 18:21:42
>>539
正しい
JISの「5.4.3.2.1 整数型の大きさ <limits.h>」
に規定があるが、CHAR_BITは最低でも8とされている
541デフォルトの名無しさん:2010/08/07(土) 19:08:49
http://codepad.org/a8dPNc38

コラッツ問題で
100万以下の数字のうち、項数がもっとも多くなる数字はどれか
という問題を解いています


そこで配列を300万個用意したいのですが、
エラーが起きて上手く実行されません。


どうすれば配列が確保できるようになるのでしょうか?
542デフォルトの名無しさん:2010/08/07(土) 19:11:16
malloc
543デフォルトの名無しさん:2010/08/07(土) 19:12:42
>>542
mallocしか手はないですか?
544デフォルトの名無しさん:2010/08/07(土) 19:17:23
calloc
545デフォルトの名無しさん:2010/08/07(土) 19:23:31
fopen
546デフォルトの名無しさん:2010/08/07(土) 19:27:27
>>541
バグってるわな.
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)
547デフォルトの名無しさん:2010/08/07(土) 19:42:39
>>541
それ以前に
・intの最大値を確かめよ
・long long int を調べよ
・300万個の配列を考え直せ
・項数と整数を一組だけ保持して比較せよ
・割り算でのバグに注意せよ
548デフォルトの名無しさん:2010/08/07(土) 19:55:12
flgは要らんな
549デフォルトの名無しさん:2010/08/07(土) 21:22:08
スレ違いになりますが、perlには文字列を処理する関数が豊富ですが、
これらの関数は元はC言語で実装されたものですか?
550デフォルトの名無しさん:2010/08/07(土) 21:22:32
>>547
高々100万程度なので、
long long int型は使わなくてよくないですか?


じゃあ配列を使わないで作り直してみます!
551デフォルトの名無しさん:2010/08/07(土) 21:55:03
>>550
計算途中でこんな数値が出てくるみたい
56991483520
552デフォルトの名無しさん:2010/08/07(土) 21:59:43
>>551
配列使わずに作り直してたら確かにint型じゃ収まりきれませんね

生意気な事いってすいませんでした。
553デフォルトの名無しさん:2010/08/07(土) 22:05:53
大量の配列を要するプログラムは大抵の場合設計に問題がある
本当に300万個ものデータを「オンメモリ」にしなきゃならんのか?
そこから考え直した方がいい
554デフォルトの名無しさん:2010/08/07(土) 22:18:15
>>553
nの項数は決まっているので、
それぞれを格納して足せば高速化が図れるのでは?

と考えたんですが、
配列使わなくても1秒ぐらいで出力できたんで
その必要はなかったですね
555デフォルトの名無しさん:2010/08/07(土) 22:20:50
アキュムレータが2個しかない CPU で立派に書けてたコードを移植するときに思うことだな
556デフォルトの名無しさん:2010/08/07(土) 22:33:22
よくわからないですけど、
馬鹿な事を考えてた って意味ですか?
557アセンション:2010/08/07(土) 22:43:22
あのさ、C言語ってやっぱ6番目の元素のC(炭素)にかけてるよな?
6はラテン語でセクサ(セックス)。Cもセックス。

あとさ、2チャンって「ハッキングから今晩のおかずまで」って標語あるじゃん。
あれってドッキングから今夜のおかずって意味だろ?

あとさ、無意識に存在する神レベルの連中からしたら、ソースコードはスパゲッティで十分なんだって知ってた?
構造化とかオブジェクト指向とか意識の俺らが読むのに都合よくしてるだけなんだってさ。
558アセンション:2010/08/07(土) 22:47:04
女子高生の制服って何で性欲を掻き立てるんだろうな。

変態が好まないようなデザインにすれば万事解決なのに。

って言ったら、制服がかわいくないと学生が集まらないって言われた。

一見もっともらしいんだけど気になる。。。。

だって、変態と女子高生の美的センスが一致してるってことになるからな。

女子高生がかわいいと思うけど、変態が好まない制服を開発すれば万事解決するはず。

もっとも女子高生じゃないババアが制服着てもキモイだけだけどね。
559デフォルトの名無しさん:2010/08/07(土) 22:51:18
エロにもいろいろとあるわけで、
変態は女子高生の制服のみが対象じゃねえんだ。
変えたら鞍替えしてくるだけだ。
女子高生といえば、靴下が超定番なんだけど。
社会人みたいにストッキングや生足が定番に出来ないか。
膝下が丸出しの方が好きだ。
560デフォルトの名無しさん:2010/08/07(土) 22:58:14
>>552
私もためしてみましたが、ステップの途中でとてつもなく大きな数字があらわれてくる (>>551) みたいです。
int じゃたりない。
配列よりさきに、数字の大きさでつまずきました。
まず配列なしでつくってみようと思っていますが、さあどうしようか。java なら BigInt があるんですけれども。
561>>541:2010/08/07(土) 23:04:06
>>560
long long intでできますよー

http://codepad.org/TiVVAFYl
562デフォルトの名無しさん:2010/08/07(土) 23:07:50
>>561
max とか maxsu とかの初期化は?
563>>541:2010/08/07(土) 23:09:28
>>562
代入するだけの変数には、
基本、初期化をしないんですけど
この考えはだめですかね?
564デフォルトの名無しさん:2010/08/07(土) 23:11:33
>>563
だめに決まってるだろ
なんで maxsu が 1000000 超えてるんだよ
565>>541:2010/08/07(土) 23:15:59
>>564

自分のPCでは837799を出力しましたが
そちらではだめでしたか?

この答えで正解だったので、
プログラムは間違えてないと思います。
566デフォルトの名無しさん:2010/08/07(土) 23:32:44
>>565
maxsuは別に初期化しなくてもいいが、maxは初期化しなければならない。
正しい答えが出たのは、偶然maxの数値が低かっただけ。
567デフォルトの名無しさん:2010/08/07(土) 23:37:15
抽象的な質問で申し訳ないのですが…

C言語の熟練の方は、ライブラリ関数とシステムコールはどのように使い分けているのでしょうか?
自分の認識では、システムコールはOSの機能で、ライブラリ関数はあくまでソフトウェアだから
環境が変わればライブラリ関数は統一できてもシステムコールはそうはいかない、
と思うのですが間違ってますか?

私の手元にある参考書では、どっちもごちゃ混ぜに使っているので少し疑問に感じました。
具体的には、ファイルを管理するサンプルプログラムがありまして
基本的にはライブラリ関数を使ってるのですが、
ファイルかディレクトリかの判断をする箇所だけ、statというシステムコールを使っているのです。
これって、Linuxじゃない環境では動かなくなるんじゃないでしょうか?
あるいはライブラリ関数レベルでディレクトリ判断は不可能なんでしょうか。
568デフォルトの名無しさん:2010/08/07(土) 23:38:24
うるせえ
くだらねえことで留まるな
569>>541:2010/08/07(土) 23:38:29
>>566
確かにそうですね・・・。

指摘ありがとうございました。
570デフォルトの名無しさん:2010/08/07(土) 23:41:12
>>565
少なくとも max は代入する前に参照してるだろ?
stack 変数はどんな値が入ってるか分からないので
max の初期値が 1000000 越えてたらまともに動かないだろ?
571デフォルトの名無しさん:2010/08/08(日) 06:31:38
>>567
熟練ではないが。

他のOSでも動作することを前提に設計でもしない限り、動かなくて当たり前。
動かしたい場合、Java辺りを選択するんじゃないでしょうか。

あと、ライブラリとは標準Cライブラリの事でしょうか?
WindowsにしろLinuxにしろ、標準Cライブラリだけでソフトを仕上げることは不可能です。
572デフォルトの名無しさん:2010/08/08(日) 07:15:02
printf("%10.5f ", hoge);

%10.5fを定数化することはできますでしょうか?
#defineで定義してみたのですが
やはり普通の文字列としてしか認識してくれませんでした
573デフォルトの名無しさん:2010/08/08(日) 07:36:48
*
574デフォルトの名無しさん:2010/08/08(日) 07:48:10
#include <stdio.h>

int 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;
}
575デフォルトの名無しさん:2010/08/08(日) 07:48:56
>>572
何をしたいのか書いた方がいいと思う。
576デフォルトの名無しさん:2010/08/08(日) 08:15:17
>>573-575

#define FIELD_WIDTH 10
#define PRECISION 5

として

printf("%*.*f ", FIELD_WIDTH, PRECISION, matrix[i][j]);

と書くにはどうすれば?という質問でした。
解決しました。ありがとうございました。

数値計算を行っておりまして、
一括でフィールド幅と精度を管理したいということでした
577デフォルトの名無しさん:2010/08/08(日) 08:18:44
>>576
本気で数値計算を考えてるなら注意しておく
そんなやり方では精度は確保できないぞ
578デフォルトの名無しさん:2010/08/08(日) 08:33:04
>>577
丸め誤差、桁落ち、積み残し、打ち切り誤差を考慮した
アルゴリズムが精度の確保につながると思うのですが、
大学のレポートで出力を一括で管理したいだけのレベルなのでこれで大丈夫です。
わざわざありがとうございます
579デフォルトの名無しさん:2010/08/08(日) 08:43:42
.* の方を PRECISION って言ってるだけだからなぁ
580デフォルトの名無しさん:2010/08/08(日) 11:35:58
func(FILE *f)という関数にstdoutを渡したら、普通に標準出力ができました
stdoutってFILE構造体何ですか?
581デフォルトの名無しさん:2010/08/08(日) 12:00:02
age
582デフォルトの名無しさん:2010/08/08(日) 12:18:02
FILE構造体へのポインタ、でしょ
583デフォルトの名無しさん:2010/08/08(日) 16:03:19
>>554
ご提案のアイディアを形にしてみました。
対象となる整数は 10億まで。私の環境ではこれが精一杯。
http://codepad.org/Ec8bEj52
584デフォルトの名無しさん:2010/08/08(日) 19:45:10
>>583
整数計算がしたいだけならperl入れてBigInt使った方がラクかもしれんね
600桁同士の掛け算も一瞬で終わる
585デフォルトの名無しさん:2010/08/08(日) 20:13:41
unsigned/signed charは何が違うんですか
符号の有無じゃなくて
asciiだと128しか割り当てられていないと思うですが
586デフォルトの名無しさん:2010/08/08(日) 20:24:15
charというのは、「文字」の型ではなく「整数」の型
587585:2010/08/08(日) 20:34:34
>>586
C言語のcharはjavaのbyteとかに近いわけだ
javaでもcharには数値を入れられたと思うけど、使い方的に

ちなみに、charとunsigned charは互換性があるのですか?
こんな事をしてみたいんですが

unsigned char c[] = "char";
strlen((char *)c);
588デフォルトの名無しさん:2010/08/08(日) 21:56:07
こんなことここで言ってもしょうがないんだけど
BYTE型として扱いたい型に符号の有無があるのがおかしいんだよ
C言語規格のあいまいさの1つ
589デフォルトの名無しさん:2010/08/08(日) 22:34:14
>>588
BYTE 型ってなに?
590デフォルトの名無しさん:2010/08/08(日) 22:40:23
符号なしの整数だっけ
591デフォルトの名無しさん:2010/08/09(月) 00:05:32
あいまいじゃなければいいのか?
Javaのbyte型は符号付きに固定されているが、そういうのがいいのか?
592デフォルトの名無しさん:2010/08/09(月) 00:12:27
>>587
そのキャストに耐えられないようだと前途多難
臭い汚い仕事が嫌いなら他言語へ逝け
593デフォルトの名無しさん:2010/08/09(月) 00:41:11
>>591
符号ありなしを固定したいだけなら
signed char もしくは unsigned char と書けばいいだけ
594デフォルトの名無しさん:2010/08/09(月) 02:39:42
C++でGUI作ってるバカおる?
595デフォルトの名無しさん:2010/08/09(月) 02:46:34
場違いな馬鹿なら↑におる。
596デフォルトの名無しさん:2010/08/09(月) 02:47:26
Qt4 / C++
597デフォルトの名無しさん:2010/08/09(月) 10:26:41
signed char と unsignd char は当然違うが、
char が上2者と同じか或いは違うかは環境次第。
598デフォルトの名無しさん:2010/08/09(月) 15:22:37
visual studio ultimateいれたんだが何ができるかな
599デフォルトの名無しさん:2010/08/09(月) 15:23:16
C#出来るよ
600デフォルトの名無しさん:2010/08/09(月) 21:13:11
>>598
目的があって買ったんじゃないの?
それともワレザーですか?
601デフォルトの名無しさん:2010/08/09(月) 21:18:26
dream sparkでVSprofessional落としたけど全然有効活用できない
602デフォルトの名無しさん:2010/08/09(月) 21:20:09
>>598はおそらく包括契約結んでる大学の学生もしくはドリームスパーク

無料もしくは1400円ぐらいで入手できる
603デフォルトの名無しさん:2010/08/09(月) 21:54:48
以下のプログラムを、C++ではなくC言語に直してほしいです。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10913.txt
604デフォルトの名無しさん:2010/08/09(月) 22:01:13
DreamSparkってProfessionalだけじゃない?
605デフォルトの名無しさん:2010/08/09(月) 22:03:40
時期を考慮すると
悪い予想の方が有力だね
606デフォルトの名無しさん:2010/08/09(月) 23:14:19
>>603
クラス使ってないし簡単やん
607デフォルトの名無しさん:2010/08/09(月) 23:21:05
>>606
cには可変長配列がない
608デフォルトの名無しさん:2010/08/09(月) 23:49:47
realloc() すればいいじゃん
609デフォルトの名無しさん:2010/08/09(月) 23:55:25
>>607
可変長配列?
配列の要素数に変数を使うってことならC99で対応済みだよ
610デフォルトの名無しさん:2010/08/10(火) 00:04:02
>>607
「ない」って時点でC土方には不適格
それを作るのがてめーらの仕事だろうが ぼけ
611デフォルトの名無しさん:2010/08/10(火) 00:13:43
>>607
いや、簡単に作れるだろ。何言ってんのよ。
612デフォルトの名無しさん:2010/08/10(火) 00:14:29
Cひじかた
613デフォルトの名無しさん:2010/08/10(火) 00:17:26
Exsactory!
Exsactory!
Exsactory!
Exsactory!
Exsactory!
614デフォルトの名無しさん:2010/08/10(火) 06:11:59
int * i;
int* i;
int *i;
の違いは何ですか?
615デフォルトの名無しさん:2010/08/10(火) 06:42:38
ない
見た目が違うだけ
616デフォルトの名無しさん:2010/08/10(火) 07:41:33
int * i; キチガイ
int* i; 素人
int *i; 老人
617デフォルトの名無しさん:2010/08/10(火) 09:10:34
俺はキチガイ派か
618デフォルトの名無しさん:2010/08/10(火) 09:35:45
int * i;
きちがいっていうか素人だよな。
こんなところでムダに個性をださなくていい。
619デフォルトの名無しさん:2010/08/10(火) 09:41:44
int* SomeClass::some_func(void);
これは、
int *SomeClass::some_func(void);
これの方がいいんすかどうなんすか。
620デフォルトの名無しさん:2010/08/10(火) 09:41:54
そういうふうに書いてるソースを読む気はしないわな
621デフォルトの名無しさん:2010/08/10(火) 10:08:41
変数は
int *i;
にして、関数は
int* SomeClass::some_func(void);
にするんじゃ一貫性がないんじゃないんですかどうなんすか
622デフォルトの名無しさん:2010/08/10(火) 10:09:57
いいじゃんint* chinko;で
623デフォルトの名無しさん:2010/08/10(火) 10:17:23
*のマークが他の単語にくっついてたらおかしいから真ん中
624デフォルトの名無しさん:2010/08/10(火) 10:20:10
>>623
そんな独自の工夫はいいから、普通に書いてほしい。
625デフォルトの名無しさん:2010/08/10(火) 10:47:52
int *const iとかやるの?
626デフォルトの名無しさん:2010/08/10(火) 11:08:15
>>619
俺は後者
627デフォルトの名無しさん:2010/08/10(火) 11:08:51
コマンドラインのtouchみたいな関数ってある?
628デフォルトの名無しさん:2010/08/10(火) 11:10:27
真ん中なのは標準のヘッダーファイルの書き方だな
629デフォルトの名無しさん:2010/08/10(火) 11:13:37
>>627
標準にはない
touchでできることをする関数はあるけど
OSによって違う
630デフォルトの名無しさん:2010/08/10(火) 11:18:59
>>629
了解。仕方ないからopenしてcloseしてutimeするわ。
631デフォルトの名無しさん:2010/08/10(火) 11:37:54
>>627
system("touch")じゃダメなん?
632デフォルトの名無しさん:2010/08/10(火) 11:50:55
touchのソースでも同じことしてるしな。
ファイルがあるかの確認して無かったら作成するようにはなってるが
633デフォルトの名無しさん:2010/08/10(火) 11:59:18
utimeって知らなかったから検索したら
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/utime.2.html
このページが見つかったんだけど、廃止予定って書いてある。
utimesのほうを使えってことだろうか。
634デフォルトの名無しさん:2010/08/10(火) 13:42:48
英語のmanも見るといいかも
635デフォルトの名無しさん:2010/08/10(火) 13:56:46
>>633

ジ  ハ ,,ハ
デ (;゚◇゚)z
!?
636デフォルトの名無しさん:2010/08/10(火) 17:51:26
Cの本で小難しくてぶつぶつと独り言をいいながら読む本はないですか?

プログラミング言語Cは読みました。
637デフォルトの名無しさん:2010/08/10(火) 17:55:59
K&R読んだならもうCはいいだろ
638636:2010/08/10(火) 17:59:45


    〃〃∩  _, ,_
     ⊂⌒( `Д´) < ヤダヤダ!
       `ヽ_つ__つ
              ジタバタ
639636:2010/08/10(火) 18:06:11
>>637
読むには読みましたが、内容がさっぱり理解できませんでした。
640デフォルトの名無しさん:2010/08/10(火) 18:07:03
( ´゚д゚`)エー
641デフォルトの名無しさん:2010/08/10(火) 18:07:18
はじめてのC
642636:2010/08/10(火) 18:12:14
>>639
そいつは偽者です。
>>641
それも読んだ。
643デフォルトの名無しさん:2010/08/10(火) 18:15:45
Cの本ばっかり読むな、馬鹿になるぞ
644デフォルトの名無しさん:2010/08/10(火) 18:18:32
じゃあレシピとかクックブックとかそのへんで
645デフォルトの名無しさん:2010/08/10(火) 18:18:36
>>636
規格票
646636:2010/08/10(火) 18:19:16
わかった。ありがとう。感謝します。
647デフォルトの名無しさん:2010/08/10(火) 21:27:57
Cを深く学ぶのが目的なら読むより書け
難解な本を読むのが目的なら哲学書でも探せ
648デフォルトの名無しさん:2010/08/10(火) 21:55:29
両方必要
ひとりよがりでカキまくってても限界そのものに気付くことができないし
他人の受け売りだけでは何も創造できない
649デフォルトの名無しさん:2010/08/10(火) 21:57:07
unixのソースコードでも読んでろ
650デフォルトの名無しさん:2010/08/10(火) 22:40:45
とりあえず書くことが必要だろ
そうじゃないとアルゴリズムの凄さなんて感じることができないと思う
651デフォルトの名無しさん:2010/08/10(火) 22:58:40
二分探索とかはじめて知ったときはすげーって素直に思えたあの頃
652デフォルトの名無しさん:2010/08/10(火) 23:29:45
すみません。1行入力の場合fgets関数で取得してちゃんと数字かどうかとか
決められた文字で入力されているかとか判断するというのは最近知りましたが、
1文字だけ入力を取得する場合も上記の方法でできますが、正式なやり方というのは
別の方法であったりするのでしょうか?
653デフォルトの名無しさん:2010/08/11(水) 00:30:34
仕様通りに動けば、全て正式。
654652:2010/08/11(水) 00:44:38
仕様どおりに動かないから、困っているんです(><;)
655デフォルトの名無しさん:2010/08/11(水) 01:12:56
「正式」って何のことを言いたいんだ?

ちなみに、このスレの範疇では「無理」だよ
OSやハードに特有の機能がどうしても必要
656デフォルトの名無しさん:2010/08/11(水) 01:17:27
>>652
できます。
657デフォルトの名無しさん:2010/08/11(水) 01:33:51
////////////////////
char 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; }
}
658デフォルトの名無しさん:2010/08/11(水) 05:29:58
kbhit()
659デフォルトの名無しさん:2010/08/11(水) 06:50:28
プログラムに正式なんてないよ
より効率のいい書き方とか保守性の高い書き方とかはあるけど
660デフォルトの名無しさん:2010/08/11(水) 08:16:27
正式は無くても不正はある不思議
661デフォルトの名無しさん:2010/08/11(水) 10:20:50
Perlで記述したスクリプトをCにコンバートしてくれるソフトはありませんか?
662デフォルトの名無しさん:2010/08/11(水) 10:29:37
663デフォルトの名無しさん:2010/08/11(水) 10:41:23
>>662
ありがとう
本当にできるとは思わなかった
664デフォルトの名無しさん:2010/08/11(水) 16:51:03
バイナリモードでファイルを開くとEOFが普通のデータとして扱われるらしいんですが
ストリームの終端を知るにはサイズを調べるしかないんですか?
665デフォルトの名無しさん:2010/08/11(水) 17:07:44
>>664
全然違う。キミにそんな出鱈目を教えたテキストは今すぐ廃品回収に出せ。
どこかのサイトで読んだなら、これ以上の犠牲者が出ないうちにここで晒すべし。
666デフォルトの名無しさん:2010/08/11(水) 17:17:17
EOFって0x1Aのことかw
667デフォルトの名無しさん:2010/08/11(水) 17:20:00
EOF(=End of File)が意味をなさないというのは
さすがに考えられない
668デフォルトの名無しさん:2010/08/11(水) 17:21:48
>>664
おそらく EOF と 0x1a を混同しているのだろう
それから「サイズ」とは何かを厳密に定義してみると自分の口から答えが聞けるはず
669デフォルトの名無しさん:2010/08/11(水) 17:36:27
「バイナリモードだとEOFがデータとして扱われる」じゃなくて
「テキストモードだと^ZがEOFとして扱われる」だな。
670デフォルトの名無しさん:2010/08/11(水) 18:23:16
CP/Mの頃ならEOF=0x1Aは結構曲者
671>>541:2010/08/11(水) 19:43:29
質問です

int main(void)

って、
int main()
とどう違いますか?

正しいのはどちらなんでしょうか?
672デフォルトの名無しさん:2010/08/11(水) 20:04:13
どっちも間違い
673デフォルトの名無しさん:2010/08/11(水) 20:27:09
>>664
バイナリモードであろうと、テキストモードであろうと、EOF の使いかたは同じです。
674デフォルトの名無しさん:2010/08/11(水) 20:37:05
>>672
え?
675デフォルトの名無しさん:2010/08/11(水) 21:01:24
>>673
え?
676デフォルトの名無しさん:2010/08/11(水) 21:02:13
>>674
int main(int, char **)
677デフォルトの名無しさん:2010/08/11(水) 21:12:27
>>676
べつに引数なくてもいいだろ。
678デフォルトの名無しさん:2010/08/11(水) 21:45:15
void main()
679デフォルトの名無しさん:2010/08/12(木) 00:25:32
>671
C++では両者は同じ意味

Cでは両者は異なったモノとなる。

int main(void);
は戻り値の型がintで、引数をとらない関数mainの宣言

int main();
は戻り値の型がintで、引数の制限がない関数mainの宣言

Cの int main();と同様の関数をC++で宣言するとint main(...);となる。
680デフォルトの名無しさん:2010/08/12(木) 00:40:21
>>679
int main() と int main(); は違うだろ。
しかも main() をプロトタイプ宣言なんてほとんどしないだろ。
681デフォルトの名無しさん:2010/08/12(木) 00:49:42
口だけ番長
682679:2010/08/12(木) 01:23:27
>680

舌足らずですまぬ。

int main()
だけじゃ完結してないから気持ち悪くて、補完しただけ。

int main() {}
でもよかったんだけどね。

それにmainだけじゃなく関数一般に通じるから、プロトタイプ宣言にした。
683デフォルトの名無しさん:2010/08/12(木) 07:53:23
mainのプロトタイプに出会ったら「ヘボ」と即断していいってジーちゃんが言ってた。
684デフォルトの名無しさん:2010/08/12(木) 08:08:09
よい兆候とはいいがたいが
言葉遣いが正しくないくらいで何がわかるんだ
685デフォルトの名無しさん:2010/08/12(木) 08:18:14
ヘボサインに出会ったら念入りにレビューするのだ。
686デフォルトの名無しさん:2010/08/12(木) 09:07:06
>>679
それがC99の関数定義では int func() と inf func(void) の意味は一緒ということになりました。
http://hibari.2ch.net/test/read.cgi/tech/1278759538/951
int main() と int main(void) は関数定義であるかぎり同じ。私も最初は驚きました。
687デフォルトの名無しさん:2010/08/12(木) 11:45:01
>>686
それがC99に対応している処理系はほとんど無いのです
gccですら部分対応なのでとても使えません
688デフォルトの名無しさん:2010/08/12(木) 13:26:05
取り引き先の頑固親父曰く、c99の内次の項は全て「使えて当たり前」だそうだ。
・//コメント
・printf()の"%lf"
・ブロック先頭以外の変数宣言

この条件なら、対応している処理系が殆どだねw
689デフォルトの名無しさん:2010/08/12(木) 13:28:55
>>686
未来のレス番に誘導されても。
690デフォルトの名無しさん:2010/08/12(木) 13:31:46
>>986
すまんかった orz
691デフォルトの名無しさん:2010/08/12(木) 13:40:01
C99なんて実際に業務で使ってるとことかあんの?
そんなの使うくらいなら素直にC++に行くと思うんだが。
692688:2010/08/12(木) 13:58:28
>>691
>688に書いた頑固親父曰く、HP-UXで使えないものは使わない。
どうやらHP-UXのC++はiso準拠度が低いらしいが、寧ろ私は「自分が理解できないものは使わない」のだと思う。

尤も、その周辺の部署では当たり前のようにc++を使っているので件の親父の所だけカオスと化している。
693デフォルトの名無しさん: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
694デフォルトの名無しさん:2010/08/12(木) 15:51:22
そういうURLの貼り方はするな
695デフォルトの名無しさん:2010/08/12(木) 15:52:35
長い、これだけでいい
http://www.amazon.co.jp/dp/475613596X/
しかしたけーなこれwww
696デフォルトの名無しさん:2010/08/12(木) 16:11:50
図書館のサイトで検索してみては?
697デフォルトの名無しさん:2010/08/12(木) 16:57:02
>>696
技術書は落書きしてナンボなんだから、借り物じゃ駄目だ
698デフォルトの名無しさん:2010/08/12(木) 16:59:51
いや、質問者も内容知らないみたいだから
買う前に見たほうがいいじゃない
699デフォルトの名無しさん:2010/08/12(木) 17:00:32
中身を見て買うか否かの判断するんだろ?
700デフォルトの名無しさん:2010/08/12(木) 17:04:21
コンパイラ込みの値段だから高い。オレならこの内容に3万は出さない。

[基礎編]
STEP1 プログラムを作ってみよう!!
STEP2 プログラムを洗練しよう!!
STEP3 入力スピードの分析をしよう!!
STEP4 入力データの分析をしよう!!
STEP5 応用課題に挑戦しよう!!
STEP6 C言語基礎のまとめ
Appendix サンプル
Appendix 用語辞書

[応用編]
STEP1 入力単語の分析をしよう!!
STEP2 データファイルを使用しよう!!
STEP3 プログラム開発に挑戦しよう!!
STEP4 C言語応用のまとめ
Appendix サンプル
701デフォルトの名無しさん:2010/08/12(木) 17:25:43
なんだ、富士通製のコンパイラがついて高いのか
702デフォルトの名無しさん:2010/08/12(木) 17:33:25
逆に考えるんだ
富士通のCコンパイラがその値段で手に入るのだと
703デフォルトの名無しさん:2010/08/12(木) 17:34:28
正直、要らねぇw
704デフォルトの名無しさん:2010/08/12(木) 17:37:21
これはひどい
っていうか社内研修用の教材じゃねーのか
705デフォルトの名無しさん:2010/08/12(木) 17:38:50
下請けに大量に買わせるんだろ。
706デフォルトの名無しさん:2010/08/12(木) 17:42:35
これをプレミア付けて売ってるやつはなんなんだろ。
買うやつがいるからこの値段なんだろうけど・・・
707デフォルトの名無しさん:2010/08/12(木) 17:42:57
講師に儲けさせるための講習会で書籍代込みですみたいな
708デフォルトの名無しさん:2010/08/12(木) 17:45:21
レビュー書いてる香具師は中古書店の自演かw
709デフォルトの名無しさん:2010/08/12(木) 17:45:32
>>702
いらねえw
VC10を超えられるとは思えない
710デフォルトの名無しさん:2010/08/12(木) 17:49:47
富士通コンパイラ買うぐらいなら
インテルコンパイラを買う
711デフォルトの名無しさん:2010/08/12(木) 17:56:30
上には上があった
http://www.amazon.co.jp/dp/4893690779/
712デフォルトの名無しさん:2010/08/12(木) 17:59:06
713デフォルトの名無しさん:2010/08/12(木) 17:59:32
くそ、そういう本持ってたのに捨ててしまった
あの棚一列あれば軽くAVセット買えただろうな
売れればの話だが
714デフォルトの名無しさん:2010/08/12(木) 18:10:43
>>712
VBはスレ違い・・・・ってなんだこりゃ
\9,976,886もするのに送料340円とるのかよ
715デフォルトの名無しさん:2010/08/12(木) 18:13:05
>>712
>基本コントロールで簡単に作る Visual Basic 6.0 プログラミング入門 [単行本]
>中古品2点¥ 9,976,886より

意味が全く分からない
716デフォルトの名無しさん:2010/08/12(木) 18:43:20
amazonのDBがこわれてるんだろう
717デフォルトの名無しさん:2010/08/12(木) 20:22:36
ちょっとまて、何が起こっているんだ?
説明してくれないか。

¥ 9,976,886
+ ¥ 340(配送料)

¥ 10,974,574
+ ¥ 340(配送料)
718デフォルトの名無しさん:2010/08/12(木) 20:25:07
>>717
自動で最安の10%増しをつけてるとみた
719デフォルトの名無しさん:2010/08/12(木) 20:28:40
>>718
頭良いな
720デフォルトの名無しさん:2010/08/13(金) 00:20:27
>>718
まだ上がっていくぞwwwスカウターの故障かwww
721デフォルトの名無しさん:2010/08/13(金) 00:37:57
互いに自動で競りあげてるのか。www

一方は現在の最安まで上げる。
一方は現在の最安に10%上乗せする。

¥ 12,072,031 + ¥ 340(配送料)
¥ 12,072,031 + ¥ 340(配送料)
722デフォルトの名無しさん:2010/08/13(金) 00:52:46
1日に1回調整が行われるとして、つまり、これは何日経つとこうなるんだ?
だれかCで回答してくれ
723デフォルトの名無しさん:2010/08/13(金) 06:09:09
#include <stdio.h>

int 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;
}
724デフォルトの名無しさん:2010/08/13(金) 07:15:12
p(1-0.1)^n = 12,072,031
初値と日数の二つ未知数がある
725デフォルトの名無しさん:2010/08/13(金) 08:25:00
>>723の実行結果

13% \102 123days
163% \1287 96days
197% \1556 94days
726デフォルトの名無しさん:2010/08/13(金) 10:04:29
新品がなく中古品のみならば数量が限られているのは自明。
かつプレミア価格がついていれば希少価値があるということで
最安値より少々高めの価格にしても売れるに違いない。
という考えに基づいていると仮定するならば、開始値は1287円……かな?
727デフォルトの名無しさん:2010/08/13(金) 10:25:40
希少価値じゃなくて、当時は不問にされていたが、現時点では
関係者にとって都合の悪い情報とかが書かれてるとかそういう
んじゃねの?
728デフォルトの名無しさん:2010/08/13(金) 10:32:13
インフレスパイラルが800円でスタートすると101日だね。
4030円辺りでスパイラルがスタートしたとしても84日か。

実際には他の業者がいればスパイラルには落ち込まなかっただろうし、スパイラル前の日数は不明だね。
729デフォルトの名無しさん:2010/08/13(金) 12:06:18
int array[] = {1, 2, 3, 4, 5};
int *array = {1, 2, 3, 4, 5};
配列の時はsizeof(array) / sizeof(array[0])で長さを求められますが、
ポインタの時はどうすれば長さを求められるんですか?

また、*arrayはarray[0]でアクセスできないのは何故ですか?
730デフォルトの名無しさん:2010/08/13(金) 12:13:18
コミケについての質問です。
静岡駅からコミケ会場に最も効率よくたどり着く陸路を求めるにはどうすればいいですか?
731デフォルトの名無しさん:2010/08/13(金) 12:27:12
>>729
方法は無いから諦めろ
だから最後の要素に終了を意味する奴を入れたりする

array[0]でアクセスはできる
だからお前がなにか別なとこ間違えてる
732デフォルトの名無しさん:2010/08/13(金) 12:36:48
>>731
感謝
733デフォルトの名無しさん:2010/08/13(金) 12:42:06
>>730
Googleトランジットで検索する。
但し徒歩とかタクシーとかは対象外なので別途検討必要
734デフォルトの名無しさん:2010/08/13(金) 12:44:48
と思ったら、車も徒歩もルート算出できるんだ
すげーなこれ
735デフォルトの名無しさん:2010/08/13(金) 13:06:14
test
736デフォルトの名無しさん:2010/08/13(金) 14:13:17
char test[1024];
memset(test, 0, sizeof(test));
0でtestを初期化しているってことで、おk?
737デフォルトの名無しさん:2010/08/13(金) 14:17:34
>>736
test[0] 〜 test[1023] が 0 で初期化される。
738デフォルトの名無しさん:2010/08/13(金) 14:45:39
int test[1024];
memset(test, 0, sizeof(test));
0でtestを初期化しているってことで、おk?
739デフォルトの名無しさん:2010/08/13(金) 14:46:04
文法的に言えばそれは無保証
testのアドレスからsizeof(test)バイト分が0クリアされるだけ
解釈翻訳系にtest[]を連続したアドレスに割り当てる義務は無い
(但しその処理系は非正統とされ仲間はずれにされるだろうけど)
740デフォルトの名無しさん:2010/08/13(金) 14:48:17
嘘を言うな嘘を
741デフォルトの名無しさん:2010/08/13(金) 14:48:43
int test[1024];
memset(test, 0, sizeof(test)/sizeof(test[0]));
0でtestを初期化しているってことで、おk?
742デフォルトの名無しさん: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      !   ト ヽ |
743736:2010/08/13(金) 15:23:54
>>737
thx
744デフォルトの名無しさん:2010/08/13(金) 20:18:25
ここまで行ってない状態だったら、それが相場かと思って買ってしまう情弱もいるんだろうな。

¥ 14,607,157 + ¥ 340(配送料)ブックワールド懿「諠Qザンモン
¥ 16,067,872 + ¥ 340(配送料)ロネジェパン
745デフォルトの名無しさん:2010/08/13(金) 20:48:35
そりゃプロ野球選手が書いたらそこまでいくだろ...
746デフォルトの名無しさん:2010/08/13(金) 21:14:46
関数で、配列の値を返すことはできますか?
つまり、仮に関数内で、int array[] = {1, 2, 3, 4};
という配列を定義したとして、最後にreturn array;
と書いて、この関数の戻り値を配列arrayの値にすることは可能でしょうか?
747デフォルトの名無しさん:2010/08/13(金) 21:17:50
配列を返す事は可能。でもその例では戻った時にはarrayは既にない。
748デフォルトの名無しさん:2010/08/13(金) 21:20:38
そうなんです。何度やってもエラーになってしまうんです・・・
申し訳ありませんが、どうやれば関数で配列を返えせるのか教えていただけませんか?
749デフォルトの名無しさん:2010/08/13(金) 21:28:15
丸ごと返したらコピーされるだろ
750デフォルトの名無しさん:2010/08/13(金) 21:30:44
>>748

#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;
}
751デフォルトの名無しさん:2010/08/13(金) 21:33:02
>>748
配列を構造体で包んでしまう
752デフォルトの名無しさん:2010/08/13(金) 21:35:04
>>749-751
親切に教えていただきありがとうございます
とても助かりました!
753デフォルトの名無しさん:2010/08/13(金) 22:26:41
>752

誤解が無いように補足しておくと、関数の戻り値に配列を指定することは「できない」。

配列を指すポインタ(>750)、構造体を返す(>751)ことはできる。

>750でも注意が必要で、戻り値に指定している配列の宣言にstaticがついていることに注意。
自動変数を指すポインタを戻り値にしてしまうと、関数を抜けたときに無効な領域を指す
ことになってしまう。

なお、スタック上でデータをやりとりするために、実引数に配列を指すポインタを渡して、
そこに値を設定するのも定跡。
754デフォルトの名無しさん:2010/08/13(金) 22:52:51
VBの参考書一冊書いたら、中古プレミアがついて1冊1600万円
これ現実なんです。
755デフォルトの名無しさん:2010/08/13(金) 22:55:48
規格PDFとネットで十分だろ
本など一切いらん
756デフォルトの名無しさん:2010/08/13(金) 23:01:08
>>755
俺にもそう考えていた時代がありました
757デフォルトの名無しさん:2010/08/14(土) 14:30:49
しかし、プログラム関連の書籍ほど糞みたいな分野はすくねえだろ・・
758デフォルトの名無しさん:2010/08/14(土) 22:43:48
test
759デフォルトの名無しさん:2010/08/14(土) 22:45:49
2000万円突破まで時間の問題
http://www.amazon.co.jp/dp/4839902003/
760デフォルトの名無しさん:2010/08/14(土) 23:11:45
¥ 19,442,126 + ¥ 340(配送料)中古品 - 可 出品者: ブックワールド☆ゲザンモン
¥ 21,386,338 + ¥ 340(配送料)中古品 - 良い 出品者: ロネジャパン

1.1^3=1.331倍/1日
761652:2010/08/15(日) 00:15:17
超、亀レスですが・・

>>657
ご丁寧に長文のソースコードまでかいてくださり、ありがとうございました。
参考にさせていただき色々と思考してみようとおもいます。getchar()関数を使うのが
どうも普通のようですね。K&Rにも似たような例がありました。なんか胸がすっきりしました。

回答くださったほかのみなさんもありがとうございました。
762デフォルトの名無しさん:2010/08/15(日) 02:09:15
PDFは要らない。
プレーンテキストでいい。
763デフォルトの名無しさん:2010/08/15(日) 10:24:19
>>759
これどっかのニュースサイトに載ってもおかしくないな最早。
それとも、こういうことってこの件以外にもいっぱいあんのかな。
764デフォルトの名無しさん:2010/08/15(日) 12:03:19
>>759
どこまでいくんだろうな

¥ 23,524,971 
+ ¥ 340(配送料) 中古品 - 良い  出品者: ロネジャパン 

¥ 21,386,338 
+ ¥ 340(配送料) 中古品 - 可  出品者: ブックワールド☆ゲザンモン 



 
765デフォルトの名無しさん:2010/08/15(日) 12:09:14
LONG_MAX 2147483647
ULONG_MAX 4294967295

さてどっちか。
766デフォルトの名無しさん:2010/08/15(日) 12:18:18
>>765
int64 か uint64 だろう
767デフォルトの名無しさん:2010/08/15(日) 13:41:38
DBのnumericでやってるんじゃない?
768デフォルトの名無しさん:2010/08/15(日) 21:42:28
struct x_variable v; // 変数ハンドル

x_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 した場合は、
退避していたデータを、ハードディスクからメモリに復帰させてアクセスする。

というライブラリを作りたいのですが、難しくて作れません。だれか作ってください。
それ以前に、これは技術的に可能でしょうか?
769デフォルトの名無しさん:2010/08/15(日) 21:48:44
>>768
ファイルマッピング
770デフォルトの名無しさん:2010/08/15(日) 21:52:00
一時的にメンバ変数を増やしたい場合ってどうするのがよいだろうか
クラスstaticなmapにthisポインタとデータをマッピングして代用してるんだけどあんましスマートじゃない気がする
771デフォルトの名無しさん:2010/08/15(日) 22:21:42
>>770
スレ違い
772デフォルトの名無しさん:2010/08/15(日) 22:22:55
>>770
マルチは嫌われる
773デフォルトの名無しさん:2010/08/15(日) 23:34:37
語彙不足が深刻だな
これはスパム
774デフォルトの名無しさん:2010/08/16(月) 00:42:19
英語、国語、数学の順に点数を入力していき、どれかで、−1を入れるとそこで、入力終了。
各科目の合計と、全科目の総合点、入力件数を表示するプログラムを作っていて、引っかかっています。
下の通りに作ったのですが、どこをどう直せばいいか教えてください。

#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);
}
775デフォルトの名無しさん:2010/08/16(月) 01:11:20
str[100][3]の初期化がない
もし全部の要素が埋まってないで下のgoukeiの処理を行ったらおかしくなるよね

案としては、
@あらかじめstr配列は全て-1で初期化しておく
A入力時に-1をいれた後、他の2教科の最後の配列に-1を入れる

そのあと下のfor文ではstrが-1まで足し続けるというふうにすればいいんじゃないかな

もうちょっとそのコードは美しくなれると思うけど、まぁいいでしょw
がんばってね。
776デフォルトの名無しさん:2010/08/16(月) 01:48:50
がんばりたくないから丸投げしたんだよ
777デフォルトの名無しさん:2010/08/16(月) 03:31:37
778デフォルトの名無しさん:2010/08/16(月) 03:51:59
二番煎じ乙
779デフォルトの名無しさん:2010/08/16(月) 03:54:31
この問題は>>778に一任されました
780デフォルトの名無しさん:2010/08/16(月) 08:18:19
>>775
ありがとうございます。
Aからわからない(汗)
最初の教科の1番目に−1が入り、
ほかの教科は最後にー1が入るってこと?

for文がー1までたし続けるというと…
781デフォルトの名無しさん:2010/08/16(月) 09:44:01
別に@をすればAはしなくてもいいけど。
要は-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にするでいいんじゃないか。

方法はいくらでもあるけどね。
782デフォルトの名無しさん:2010/08/16(月) 09:46:12
上のループで件数を数えているんだから、下のループ回数は件数で割り出せばいいよ。
無駄な初期化は却って為に成らない。
783デフォルトの名無しさん:2010/08/16(月) 09:47:08
あ、printf文は関係ないやwww
その記述は忘れてくれwww
784デフォルトの名無しさん:2010/08/16(月) 09:48:36
>>782
それだったらAの方法のほうが簡単だろwww
785デフォルトの名無しさん:2010/08/16(月) 09:59:32
>>784
あぁ、それでもいいね。いずれにしても、終端条件を意識していればいいよ。
786デフォルトの名無しさん:2010/08/16(月) 13:06:53
テストのやり方がわからない。
お勧めのテストツールを教えて。
787デフォルトの名無しさん:2010/08/16(月) 14:46:45
お前のような奴におすすめなのはやはり人力だな
788デフォルトの名無しさん:2010/08/16(月) 14:53:48
>>787
人力かー
人力以外でなんか無いかな
789デフォルトの名無しさん:2010/08/16(月) 15:09:34
-1で初期化したら、3つまでしか値入れれなくなった。

int str[100][3];の下に
for(i=0;i<100;i++){
for(j=0;j<3;j++){
str[i][j] = -1;
}
}
を入れたんですが…
790デフォルトの名無しさん:2010/08/16(月) 15:17:51
すいません、問題丸写しな感じなんですがよろしくお願いします

文字列を入力し、長さが5文字以下の文字列10個を抽出した後、
抽出した文字列を出力するプログラムを作りなさい。
入力は、長さが5文字以下の文字列を10個抽出したところで終了し、
出力を行うようにしなさい。
文字列の入力はscanf関数を、文字列の長さはstrlen関数、文字列の複写はstrcpy関数を
使いなさい。
入力データ中に、15文字を越える文字列はないものとします。

という問題です。
791790:2010/08/16(月) 15:19:08
*入力データ*

Boy 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

という感じにしたいのです
792790:2010/08/16(月) 15:20:34
char work[15 + 1];
char *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] );
793デフォルトの名無しさん:2010/08/16(月) 15:21:17
>>789
初期化はマズイわw
抜けたすぐのif文でbreakするからなw
じゃあ-1抜けた後他の2科目に-1を入れる方法にすればいいw
794790:2010/08/16(月) 15:22:02
という感じでやってみたのですが、うまくいきませんでした

if( i == 0 && work[i] == '\n' || work[i] == '\t' || work[i] == ' ' )

この辺りがおかしいかなと思っているのですが、、、
よろしくお願いします
795デフォルトの名無しさん:2010/08/16(月) 15:41:13
>>790
いろいろ気持ち悪いw
796デフォルトの名無しさん:2010/08/16(月) 15:49:52
scanfって改行とかタブとかまず認識しないでしょ。
一文字ずつ入れるなら書式指定子%dってよりも%c使うべきだし、
%s使うべきだし・・・
%s使ったらstrlenより上までの処理はほぼいらない。

dataの一つの配列には5文字以下の文字が入るわけだからあらかじめ
その領域を確保して置かなければならない。
malloc使うか、あらかじめdata[10][6]として確保しておくか。

dataは10個って決まってるのだからわざわざ11個用意する必要はない。

strlenのkも不必要だろw

空のelse文も不必要だろw

ざっと見た感想は以上、がんばってね。
797790:2010/08/16(月) 16:01:50
なんか気持ちわるくてすいませんw
>>796
レスありがとうございます
なんで%dをつかってたのか、、、、

指摘して頂いたところを再度確認してもう一度やりなおしてみます
本当にありがとうございました!
798デフォルトの名無しさん:2010/08/16(月) 16:11:34
>>789
だから初期化するのはやめようよ。
799790:2010/08/16(月) 16:38:43
#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;
}

という感じでやってみたのですが、うまくいきませんでした
800デフォルトの名無しさん:2010/08/16(月) 16:47:37
scanf("%s")でただの改行って読めないだろ
ホワイトスペース文字だから改行はスキップされる

fgets()とsscanf()を使って自分で解析しろ
801デフォルトの名無しさん:2010/08/16(月) 16:48:53
>fgets()とsscanf()を使って自分で解析しろ
何度目のFAQかな
1000回はくだらないはず
802デフォルトの名無しさん:2010/08/16(月) 16:51:43
>>799
なんかめちゃくちゃになってるwww
前のほうが良かったと思うけど・・・
803デフォルトの名無しさん:2010/08/16(月) 17:04:56
>>789です。
なんか、よく分からないけど
0で初期化したら完成しました。

ありがとうございました。
804デフォルトの名無しさん:2010/08/16(月) 17:05:54
とりあえずおつかれ
805デフォルトの名無しさん:2010/08/16(月) 17:07:33
>>803
だから初期化はやめようよ。
それってもしかして、用意した配列の全要素を足しているままじゃないの?
そういう、自分がやるべきことを見失う結果になる恐れがあるから「初期化で済ませる」という考え方はよくないんだ。
806デフォルトの名無しさん:2010/08/16(月) 17:08:09
>>803
オレの予想だと、-1を入力した科目だけ1点足りないような気がするけどなー
きちんと処理してるんだろうか・・・
807デフォルトの名無しさん:2010/08/16(月) 17:09:13
>>788
マ板くさくなるが…
テストノウハウは色んな意味でみだりに出せないんだよ
808デフォルトの名無しさん:2010/08/16(月) 17:33:27
>>803
いちおう言っておくけど色々おかしいと思うよ

例えば国語入力時に-1が来たら英語だけ1件多くなってしまう
英語国語数学が常にセットで1件であるなら、終了判定は数学入力直後または英語入力直前でなければならない
逆に言えば途中で終了判定してはならない

さらにいうと点数を取り込む変数と終了文字を取り込む変数を一緒にする必要はない
点数と関係ない終了判定だけの場所で判定すれば今回のような混乱はそもそも起きない

他にもあるけど、とりあえず「疎」と「密」をもう少し考えてからコーディングするといい
809デフォルトの名無しさん:2010/08/16(月) 17:36:10
>>808
件数は1科目1件ってことならおかしくないじゃんw
背景が見えないなら与えられた条件で答えてやれよwww
別に全科目一緒の件数にしなければならないなんて書いてないしwww
810デフォルトの名無しさん:2010/08/16(月) 17:45:07
>790
丸投げするなら宿題スレの方がよいと思うが。とりあえず素直にコーディングしてみた。

#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;
}
811デフォルトの名無しさん:2010/08/16(月) 17:45:48
点数なんかエクセルで入力しろよ
812デフォルトの名無しさん:2010/08/16(月) 17:47:28
"%10s"とかで切れた文字列ってそのままバッファにのこらなかったか?
813デフォルトの名無しさん:2010/08/16(月) 17:49:26
残るね。だからscanf()は使い難いんだ。
814810:2010/08/16(月) 17:52:14
ミスった。
誤)
while (scanf("%10s", aBuf) != EOF) {
正)
while (scanf("%15s", aBuf) != EOF) {
815デフォルトの名無しさん:2010/08/16(月) 17:59:36
>>799

> #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
俺これ書いてないですよ
816デフォルトの名無しさん:2010/08/16(月) 18:10:47
>>815
どっちにしろもう宿題やってもらえたんだから消えろよゴミ
817デフォルトの名無しさん:2010/08/16(月) 18:17:03
>>810
自分なんかに時間を割いていただいてありがとうございました
なんとかかみ砕いて理解してみます
818デフォルトの名無しさん:2010/08/16(月) 18:53:55
>>810
何このわけわからない感じは。

#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
819デフォルトの名無しさん:2010/08/16(月) 20:52:19
さすがにまともに動かないレベルは不味いだろwwwww
820デフォルトの名無しさん:2010/08/16(月) 21:01:40
へ?まともに動くだろww
821デフォルトの名無しさん:2010/08/16(月) 21:12:55
>820
>へ?まともに動くだろww

>791のデータ食わせたら期待通りになるだろうけど、10個抽出できる前に入力が無くなると
まずいよ。
822デフォルトの名無しさん:2010/08/16(月) 21:16:07
>>821
そんな裏読み必要ないよwww
そんなこと言い始めたらデータチェックとかもっとしなきゃいけないことあるだろwww
レベルにあったコードを提示してるんだけどwww
元々の彼のコードに沿ってね。
823デフォルトの名無しさん:2010/08/16(月) 21:17:29
そもそも %s にそういう突っ込みかよ

みんな志村後ろ後ろと言っているところで
1人だけ科学的にどうとかぶつぶつ言ってるようなキモさが漂うな
824デフォルトの名無しさん:2010/08/16(月) 22:27:44
絶対に一緒に仕事したくないタイプだなw
相手のレベルとコードの安全性は何の関係もないのに
825デフォルトの名無しさん:2010/08/16(月) 22:34:27
関係大有り。相手のレベルが低ければ、安全なコードしか教えない。
826デフォルトの名無しさん:2010/08/16(月) 22:40:22
相手のレベル考えないならscanfも使っちゃダメだしエラーチェックももっと入れないとダメだろ
827デフォルトの名無しさん:2010/08/16(月) 22:41:38
てか学習と仕事をごっちゃにすんなよwww
求められるものも責任も全く違うだろwww
とりあえず彼の理解度に沿ったコードを提示したつもりなだけで
他にももっといい方法は色々あるだろうよ。
828デフォルトの名無しさん:2010/08/16(月) 22:44:21
そもそも>810と>818は本質的にやってることは変わらないよ。

・810は標準入力がつきるまで、単語を10個抽出。
・818は単語を10個抽出するまで、標準入力を読む。

818では単語10個抽出する前に、入力がつきてしまった場合の考慮漏れ。
惜しかったね。90点くらい挙げてもイイ。

829デフォルトの名無しさん:2010/08/16(月) 22:48:06
欠陥コードなんぞ誰も求めないし欲しがらないわな
830デフォルトの名無しさん:2010/08/16(月) 22:49:14
いや認めないねw
それはあらかじめ分かってることだ。
設定にない余計なことは一切してないもんね。
831デフォルトの名無しさん:2010/08/16(月) 22:59:09
他人の安全なコードをわざわざ書き直しさらに潜在バグを入れる
これで「相手のレベル」とか言っちゃうんだからたまらんよなw
832デフォルトの名無しさん:2010/08/16(月) 23:10:27
欠陥コードこそが自らを成長させる宝物である。
833デフォルトの名無しさん:2010/08/16(月) 23:12:35
欠陥じゃないもん、絶対に違うもん!
834デフォルトの名無しさん:2010/08/16(月) 23:32:03
@"C:\"にLを付けたらコンパイルできなくなりました。
L@"C:\"
どう書けばいいですか?
835デフォルトの名無しさん:2010/08/17(火) 10:01:43
ん?C#か?
836デフォルトの名無しさん:2010/08/17(火) 12:02:06
gdbのフロントエンドって、dddとinsightくらいしかない?
837デフォルトの名無しさん:2010/08/17(火) 12:15:07
qtの奴とかeclipseとか対応してたりEmacsのlispでできた奴とかあったような
838デフォルトの名無しさん:2010/08/17(火) 12:29:09
今更初心者がC勉強するとして どの環境が理想?

1. 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
839デフォルトの名無しさん:2010/08/17(火) 12:31:06
VCあるならそれでいいじゃないの
840デフォルトの名無しさん:2010/08/17(火) 12:37:14
>>838
一番資料の多いもの
VCだね
841デフォルトの名無しさん:2010/08/17(火) 12:41:22
初心者ならLinux+Vim+gccでMakefile自分で書いたりgdb使ったりLinuxコマンドで検査の自動化とかしてプログラミング以外の周辺知識も得るべき。
842デフォルトの名無しさん:2010/08/17(火) 12:43:14
無能だな、チミは
843デフォルトの名無しさん:2010/08/17(火) 12:50:29
身近に聞けるような人が居ないなら
素直にIDEに頼っておけばいいよ
Linuxいろいろでやると多分、ぐぐってもでないぐらい基本的なことでつまづきまくるから
844デフォルトの名無しさん:2010/08/17(火) 17:05:44
>>838
> 4. Windows Visual C++ IDE
845デフォルトの名無しさん:2010/08/17(火) 17:58:01
>>843
そんなときのために俺たちがいるんだろ。
846デフォルトの名無しさん:2010/08/17(火) 18:03:52
イマイチ頼り無さげ
847デフォルトの名無しさん:2010/08/17(火) 18:13:39
IDEとかつかってるやつはライブラリ頼りの糞アプリプログラマにしかなれんよ。
プロのプログラマになりたければ基礎からみっちりやるべき。
そのためにはLinux+Vim+gcc以外はエセグラマ
848デフォルトの名無しさん:2010/08/17(火) 18:22:20
入門程度ならcodepadで十分
849デフォルトの名無しさん:2010/08/17(火) 18:36:56
>>847
コイツ無能
850デフォルトの名無しさん:2010/08/17(火) 18:42:54
>>845
お前らは役に立たん
851デフォルトの名無しさん:2010/08/17(火) 18:43:03
vi+ccな奴にもasやハードわからん奴ごまんといるからな
要は狭い領域でタコツボ化したらどこやってても同じなんだよ
852デフォルトの名無しさん:2010/08/17(火) 18:43:07
マイクロソフトの回し者乙
853デフォルトの名無しさん:2010/08/17(火) 18:47:36
一番お手軽で動作も軽快なのはWin + MinGW
854デフォルトの名無しさん:2010/08/17(火) 19:03:33
MinGWのどこがお手軽なのか。嘘をつくな。

WindowsならVC++Express一択
855デフォルトの名無しさん:2010/08/17(火) 19:09:33
Linux (笑)
Vim (笑)
gcc (笑)
856デフォルトの名無しさん:2010/08/17(火) 19:30:10
>>854
VCはありえない
動作がくそ重い上に余計なヘッダーをインクルードする
あれはC標準ではなくWindows標準環境である
Windowsでしか通用しないプログラマになりたいならそれでもいいが
オレとしては絶対にオススメできない
857デフォルトの名無しさん:2010/08/17(火) 19:31:43
あっそ。死んでろ。
858デフォルトの名無しさん:2010/08/17(火) 19:33:10
C標準(笑)
859デフォルトの名無しさん:2010/08/17(火) 19:34:28
Windowsしか触れない似非プログラマがファビョってますなw
860デフォルトの名無しさん:2010/08/17(火) 19:36:53
Windowsで通用しないプログラマーになっちゃったらヤバいだろwww
861デフォルトの名無しさん:2010/08/17(火) 19:37:52
どんな環境でも純粋にCの部分はおなじだろ。そしてそんなに大きくない。
Windowsだろうと、Linuxだろうと、Cは学べる。

その上で、Windowsであれば、VC++Expressが最適。
862デフォルトの名無しさん:2010/08/17(火) 19:42:31
>>861
俺ならcygwinとgccをオススメするね。
cygwin入れたら色々便利だし。
863デフォルトの名無しさん:2010/08/17(火) 19:43:11
文型はVCで糞GUIアプリしか作れない糞グラマと相場が決まっている。
理系はLinux系の知識も習得してプログラミング以外にも多くの周辺知識を得ている。
ここが使えるやつと使えないやつの差として出てくる。
そして使えないやつは最終的に技術から逃げて人売り経営者になって業界を悪くしていくんだ。
すべてはLinux+vim+gccから始めなかったことが現在のIT業界の惨状を招いていると言っても過言ではない
864デフォルトの名無しさん:2010/08/17(火) 19:45:23
大体プロジェクトとか面倒くさいんだよ。
後からプロジェクト名変えようとすると面倒くさいことになるし。
865デフォルトの名無しさん:2010/08/17(火) 19:46:36
文系理系って分けてる時点で成長が止まってるんだよ
866デフォルトの名無しさん:2010/08/17(火) 19:55:33
つまり学校で習わなかったことができない奴ってことね
867デフォルトの名無しさん:2010/08/17(火) 20:01:09
>>863
コイツ無能
868デフォルトの名無しさん:2010/08/17(火) 20:09:04
>>863
なんでそこでvimなんだよ
869デフォルトの名無しさん:2010/08/17(火) 20:10:01
emacsは糞。異論は認めない。
870デフォルトの名無しさん:2010/08/17(火) 20:19:11
makeとかgdbとかそこらへんに落ちてるチュートリアルみれば一発だろ。
必要になったら覚えりゃいい。
871デフォルトの名無しさん:2010/08/17(火) 20:24:33
>830

今問題文(>790)読み返してみたら
>入力は、長さが5文字以下の文字列を10個抽出したところで終了し、
>出力を行うようにしなさい。

ってあるから、確かに仕様は満たしてるって言えるね。
10個以下の場合は、使用範囲外ということにしてしまえる。

そっちが煽り口調だったもんで、こっちも言い過ぎたかも。

でも>810のコードが読めないヘボかと思ってしまったのだよ。
初学者相手には、よりベターなコードを示す方がよいと思っているけど。
872デフォルトの名無しさん:2010/08/17(火) 20:26:17
ネトウヨってキモイよね
873デフォルトの名無しさん:2010/08/17(火) 20:40:00
理系はgccで糞CUIアプリしか作れない糞グラマと相場が決まっている。
文系はWindowsの知識も習得してプログラミング以外にも多くの周辺知識を得ている。
ここが使えるやつと使えないやつの差として出てくる。
そして使えないやつは最終的に技術から逃げて人売り経営者になって業界を悪くしていくんだ。
すべてはWindows+VCから始めなかったことが現在のIT業界の惨状を招いていると言っても過言ではない
874デフォルトの名無しさん:2010/08/17(火) 20:43:34
クソワロタ
875デフォルトの名無しさん:2010/08/17(火) 20:45:34
Windows+gcc から始めたオレこそが救世主ということだな
876デフォルトの名無しさん:2010/08/17(火) 20:50:18
大抵VCから始めたやつはVCしか使えなくて終わっていく。
Linuxから始めたやつはあらゆる開発環境を使いこなしていく。
877デフォルトの名無しさん:2010/08/17(火) 20:54:06
>>876
コイツ無能
878デフォルトの名無しさん:2010/08/17(火) 21:01:20
無能に限ってWindowsを批判すれば有能だと思われると勘違いしている。
879デフォルトの名無しさん:2010/08/17(火) 21:05:10
>>876
それはlinuxで勉強したからじゃなくて本人の資質だろ。
趣味でプログラムやってて、マイナーなlinuxを選択するってマニアックだろうし。

SolarisでCのシステムの保守をしてる部署の手伝いしたことがあるけど
そこの若い連中は、自発的にやってるわけじゃないから悲惨な状況だったし。
(Cとunixに関しても、windows中心にやってた俺よりぜんぜんだめ)

最初にVCを使ったからVCしか使えなくなるようなやつは、最初にlinux環境で
やらせてもlinuxしかできないやつになるだけだよ。
880デフォルトの名無しさん:2010/08/17(火) 23:32:22
>>879
> 最初にVCを使ったからVCしか使えなくなるようなやつは、最初にlinux環境で
> やらせてもlinuxしかできないやつになるだけだよ。

現実問題として、そうゆう奴が多いのはOSの系統に関わらずそうだよ

itron やってるやつが pthread になったとたんに使えなくなるとか
pthread 使ってた奴が Windows にスレッドアプリ書けないとか
Windows でスレッドアプリ書いてた奴が VxWorks じゃ何もできないとか
以下続く………
881デフォルトの名無しさん:2010/08/18(水) 00:56:21
どんな環境でもすぐ対応できるのがプロ
たとえlinux+vi+gccだろうがWin+VSだろうがWin+MinGWだろうがetcetc
882デフォルトの名無しさん:2010/08/18(水) 01:15:38
初心者がどうしたらいいの話題でプロの話とか頭おかしすぎやしないか?
883デフォルトの名無しさん:2010/08/18(水) 01:32:03
>>838
1. 君の行く道は果てしなく遠い だけど多分それが最も堅実な道、それでいいのさ♪
2. 君の行く道は果てしなく悪路♪
3. 君の行く道はやがて行き詰まる♪
4.君の行く道はやがて泥沼♪
5.君の行く道はやがて蛇婆に出会う♪
6.君の行く道は多分永遠(とわ)の迷路♪
7.君の行く道はすぐに挫折、だけど多分それが正解、君は幸せ♪
884881:2010/08/18(水) 03:18:48
ぼーっとしてて初心者〜というの失念してたわwすまんこすまんこ
885デフォルトの名無しさん:2010/08/18(水) 11:28:18
こういうコード読んだり書いたりしない話題なった途端にみんな張り切りすぎ
886デフォルトの名無しさん:2010/08/18(水) 11:46:06
いまどき、2ちゃんねる見てるのなんて、課長以上のおっさんだけだから。

コードになんて興味なんだよ。興味があるのは部下への説教だけ。
887デフォルトの名無しさん:2010/08/18(水) 12:40:16
> すぐ対応できるのがプロ

この「すぐ」が泣くほどシビアに要求されるのがつらいとこ
888デフォルトの名無しさん:2010/08/18(水) 13:25:39
for(i=0; i<...)の変数iは整数型って決められてるの?
889デフォルトの名無しさん:2010/08/18(水) 13:26:49
>>888
自分で決めます
890デフォルトの名無しさん:2010/08/18(水) 13:55:09
>>888
何でもいいよ。

for(@, A, C){B}
は、
@→Aが真だったら→B→C→Aが真だったら→B→C→Aが真だったら→B→C→…
をAが偽になるまで繰り返すだけ。

整数型である必要はないし、変数を使う必要もない。
891デフォルトの名無しさん:2010/08/18(水) 17:30:38
必要ないけど、整数型が多いな。
892デフォルトの名無しさん:2010/08/18(水) 17:33:13
実数使って終了条件が期待した動作しなくて困る人もいる
893デフォルトの名無しさん:2010/08/18(水) 18:44:29
struct hoge{
int a;
int b;
}
で、
struct hoge *hoge;
hoge = (struct hoge *)calloc(1000, sizeof(struct hoge))
ってやったら、1000要素の構造体配列内のaとbは全部0で初期化されたりする?
894デフォルトの名無しさん:2010/08/18(水) 18:45:36
>>893
yes
895デフォルトの名無しさん:2010/08/18(水) 18:48:00
>>894
ありがとう
896デフォルトの名無しさん:2010/08/18(水) 21:06:07
ゼロのバイトパターンの羅列が整数のゼロだって規則あったっけ?
897デフォルトの名無しさん:2010/08/18(水) 21:20:05
> バイトパターン

お里がw
898デフォルトの名無しさん:2010/08/18(水) 23:56:33
VB6本 5000万円突破
これってマジスカ?
899デフォルトの名無しさん:2010/08/19(木) 00:12:49
>>898
20億付近になったら報告たのむ
900デフォルトの名無しさん:2010/08/19(木) 00:18:01
13日後には突破する。
901デフォルトの名無しさん:2010/08/19(木) 00:18:23
オーバーフロー狙いか
ちなみにクレジットカードだと20京ドルでも正だったそうだぞ
902デフォルトの名無しさん:2010/08/19(木) 00:22:09
もしかしてすでに何度かオーバーフローして、何週目かだったりして。
903デフォルトの名無しさん:2010/08/19(木) 00:24:21
amazonの方は平気だろう。ヘッポコ競り上げプログラムは記述言語次第だな。
Cじゃないだろうからオーバーフローしない可能性が高い。
904デフォルトの名無しさん:2010/08/19(木) 00:28:34
Cでもちょっとオーバーフローが許されない
分野での整数計算はlong longだろ
905デフォルトの名無しさん:2010/08/19(木) 00:40:29
ヘッポコ競り上げプログラムを作る連中がそんな頭が回るはずが無いだろ。
906デフォルトの名無しさん:2010/08/19(木) 00:47:43
オレが一番くん
907デフォルトの名無しさん:2010/08/19(木) 00:48:54
>>905
Cで計算部分を書かせるわきゃない罠。今時どー考えても

update table auction set price=price+round(price/10) where
auctionid=$AuctionID

とかのSQLを投げさせてOracleとかのDBが実際の計算を行ってるってw
908デフォルトの名無しさん:2010/08/19(木) 00:49:44
ああ、VB6が5000万円超えたら、マジで売る。
909デフォルトの名無しさん:2010/08/19(木) 01:21:56
>>907
amazonの出品者ってDBへのアクセスが許されてんのか?
910デフォルトの名無しさん:2010/08/19(木) 01:40:41
>>909
DB板やWebサイト板で聞いてみるとよい
911デフォルトの名無しさん:2010/08/19(木) 01:46:20
>>910
お前>>907? 他板で聞けと言う事は>>907は想像ってことか?
それなら「思う」とかわかるように書け。
912デフォルトの名無しさん:2010/08/19(木) 01:49:39
初めから想像としか読めないが
913デフォルトの名無しさん:2010/08/19(木) 02:01:43
>>909
amazon自体が一種のDBなんだからサイトを開いた時点でアクセスした
も同然だろw。てか、アクセスってtermが曖昧
あとamazonのサイトがDBMSレスで作られているとしたら
中々神なサイトということは言える。
914デフォルトの名無しさん:2010/08/19(木) 02:05:09
>>913
なんて読解力が無いんだ。そんな事じゃ仕様書の読み間違いは日常茶飯事だろ。
915デフォルトの名無しさん:2010/08/19(木) 02:21:06
>>914 仕様書のミスを見つけるのが仕事ですが何か?
916デフォルトの名無しさん:2010/08/19(木) 03:49:30
日本だと口頭で伝えるので読解力は不要です。
917デフォルトの名無しさん:2010/08/19(木) 04:32:49
報告書がきちんと書けない人はクビです
918デフォルトの名無しさん:2010/08/19(木) 23:41:11
マシンのビット数ってCコンパイラーにどんな影響を与えるんですか?
919デフォルトの名無しさん:2010/08/19(木) 23:44:40
This program cannot run in DOS mode.
920デフォルトの名無しさん:2010/08/20(金) 00:04:36
>>918
影響って?
921デフォルトの名無しさん:2010/08/20(金) 01:02:38
>>918
生成するバイナリーが変わる。
922デフォルトの名無しさん:2010/08/20(金) 17:29:20
もう1億突破したよ。これは早い
923デフォルトの名無しさん:2010/08/20(金) 21:46:07
-10億ぐらいになったら買おうかな
924忍者Perl ◆M5ZWRnXOj6 :2010/08/21(土) 15:26:03
なにここのスレ やばいっすね!! シュッシュッシュマジパネーッス!!

レベル低っ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
925デフォルトの名無しさん:2010/08/21(土) 16:00:32
>>924
宿題は?
926デフォルトの名無しさん:2010/08/21(土) 20:51:53
>>922
アクセスが増えた所為なのかどうかは知らんが、一日数回更新されている悪寒。
最早、毎回千万以上増えているw
927デフォルトの名無しさん: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]);
}
}
928デフォルトの名無しさん:2010/08/22(日) 15:29:17
>>927
strlen()を使う
charポインタを使う
929デフォルトの名無しさん:2010/08/22(日) 15:42:13
ポインタっていうと…
*〜のやつだよね?

使い方イマイチよくわかんなくて…
930デフォルトの名無しさん:2010/08/22(日) 15:44:56
for(i = 100;i <= 0;i--){
そもそもこれが・・・
まずは素直に昇順で書いて中で位置計算して味噌
931デフォルトの名無しさん:2010/08/22(日) 15:46:53
for(i=strlen(in)-1;i>=0;i--){printf("%c",input[j]);}
とかどう?
932デフォルトの名無しさん:2010/08/22(日) 15:47:35
誤) strlen(in)
正) strlen(input)
933デフォルトの名無しさん:2010/08/22(日) 15:47:44
あとコピーしてるけど入れ替えにしないと半分消えるぞ
swap関数かマクロ自作の例がどっかにあるだろう
934デフォルトの名無しさん:2010/08/22(日) 15:57:32
>>927
#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);
}
935デフォルトの名無しさん:2010/08/22(日) 16:17:11
>>934
これどうなってるの?
ポインタが/0まで進んて戻ってくるってこと?
936デフォルトの名無しさん:2010/08/22(日) 16:21:41
>>935
お前が再帰を全く理解できてないだけだよ
937デフォルトの名無しさん:2010/08/22(日) 16:30:14
>>935
一行ずつ追いかければかわるかと。
938デフォルトの名無しさん:2010/08/22(日) 16:31:29
無駄に再帰使いたがるヤツいるよなw
939デフォルトの名無しさん:2010/08/22(日) 16:34:39
あぁわかった。100番目から入力した文字数までずっと何もしてないだけか
940デフォルトの名無しさん:2010/08/22(日) 16:36:25
>>938
オレも思ったw
941デフォルトの名無しさん:2010/08/22(日) 16:56:22
>>127です。
いまさらですが、宿題に条件があって…
1)文字列を配列に入力し、最後の文字から一文字ずつ取り出して表示する。
2)文字列をポインタの示す領域に入力し、最後の文字から一文字ずつ取り出して表示する。
です。

私はポインタ理解してないんで、1でやってたんですが、
うまくいかなくて…
942デフォルトの名無しさん:2010/08/22(日) 17:05:34
>>941
表示がoutputになってるけど、最初のやつに載せるならint lenを定義して
len = strlen(input);
for(i = 0;i < len;i++){
output[len - i - 1] = input[i];
}
output[len] = '\0';
でどうよ
943デフォルトの名無しさん:2010/08/22(日) 17:08:39
あっと最後の文字からか、、、forループは
for(i = len - 1;i >= 0;i--){
output[j++] = input[i];
}
とか?
944デフォルトの名無しさん:2010/08/22(日) 17:45:30
#include <stdio.h>
#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;
}
945デフォルトの名無しさん:2010/08/22(日) 17:51:24
できたー!
ありがとうございましたm(_ _)m
946デフォルトの名無しさん:2010/08/22(日) 17:53:07
格好つけてクソァなんぞ使いおってw
947デフォルトの名無しさん:2010/08/22(日) 17:53:19
#include <stdio.h>
#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;
}
948デフォルトの名無しさん:2010/08/22(日) 18:03:14
ぉrすげぇ
949デフォルトの名無しさん:2010/08/22(日) 19:05:53
#include <stdio.h>
#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;
}
950デフォルトの名無しさん:2010/08/22(日) 19:44:22
どーせマクロ使うんなら参照渡しでええやん
951デフォルトの名無しさん:2010/08/22(日) 19:57:43
速度が違うくね?
952デフォルトの名無しさん:2010/08/22(日) 22:39:10
>>951
>速度が違うくね?
今からそんな変な表現の癖が付いていると社会人になってから馬鹿にされるぞ。
つーか、この程度のコードでどこの速度を気にしているんだよ。気になるなら実測しろ。

>>950
Cで参照渡しってなんだよ。ポインタの値私と言いたいのか?

>>949
xor使うのはいいが、pa == pbのときに破綻するだけだから一次変数を設ける方がずっといい。
953デフォルトの名無しさん:2010/08/22(日) 22:44:35
破綻しなくね?
954デフォルトの名無しさん:2010/08/22(日) 22:46:13
>>953
なら試してみろよカス
955デフォルトの名無しさん:2010/08/22(日) 22:52:42
pa == pb なら入れ替える必要ないだろボケ
956デフォルトの名無しさん:2010/08/22(日) 22:54:51
入れ替える必要がなくてもそんなこといちいち確認してたら
無駄が発生するから、同じ文字なら入れ替えないなんて
無駄なコードは入れなくて良いよ。
957デフォルトの名無しさん:2010/08/22(日) 23:05:08
(・∀・)ジサクジエーン
958デフォルトの名無しさん:2010/08/22(日) 23:07:29
a = 3 / 0011  2進数4桁で検証
b = 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 で入れ替えても問題ないじゃん?
959デフォルトの名無しさん:2010/08/22(日) 23:07:43
#define swap(pa, pb) if(pa - pb)( *(pa) ^= *(pb), *(pb) ^= *(pa), *(pa) ^= *(pb) )
でFA?
960デフォルトの名無しさん:2010/08/22(日) 23:08:27
#define swap(pa, pb) if((pa) - (pb))( *(pa) ^= *(pb), *(pb) ^= *(pa), *(pa) ^= *(pb) )
961デフォルトの名無しさん:2010/08/22(日) 23:09:00
>>958
&a==&b のときにうまくいくことを
codepad で示してくださいな
962デフォルトの名無しさん:2010/08/22(日) 23:10:23
ポインタの引き算ってありだっけ?
963デフォルトの名無しさん:2010/08/22(日) 23:11:52
>>956
入れ替える必要が無いのに入れ替える操作をする方が無駄じゃないか
964デフォルトの名無しさん:2010/08/22(日) 23:13:08
お前らstaticの意味判ってないだろ
965デフォルトの名無しさん:2010/08/22(日) 23:17:00
>>964
突然どうした。おねむか?
966デフォルトの名無しさん:2010/08/22(日) 23:17:44
>>963
同じだった場合は入れ替えないなんて
if文を入れるのが無駄じゃないと思うならやれ。
大半が同じでなかった場合は完全に無駄だから。
967デフォルトの名無しさん:2010/08/22(日) 23:24:21
交換にxor使わなくていいだろ。
はやくなんの?
968デフォルトの名無しさん:2010/08/22(日) 23:30:14
レジスタだけで済むからな
969デフォルトの名無しさん:2010/08/22(日) 23:31:47
逆順に表示するだけなんだから入れ替えたものを保持する必要は無い
よっておまえら全員無駄
970デフォルトの名無しさん:2010/08/22(日) 23:39:15
>>968
テンポラリの変数を使う交換もレジスタだけで済むだろ。
971デフォルトの名無しさん:2010/08/22(日) 23:41:16
ジョークで使った再帰には無駄に再帰してるとかつっこんでるけど、
xorの交換のほうが、無駄にそんなテクニック使うなって感じだよ。
972デフォルトの名無しさん:2010/08/22(日) 23:43:15
ジョークで使った再帰とかwwwwwwwwwwwwwwwwwww
973デフォルトの名無しさん:2010/08/23(月) 01:45:40
>>967
大抵、判るほど速くはならないよ。
974デフォルトの名無しさん:2010/08/23(月) 01:58:33
>>967
まともな最適化コンパイラを使う限りは
速くなる可能性は考えにくい
むしろ遅くなるケースがありえる
975デフォルトの名無しさん:2010/08/23(月) 10:54:27
>>958
#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;
}
976デフォルトの名無しさん:2010/08/23(月) 10:57:18
>>975
どうした、
977デフォルトの名無しさん:2010/08/23(月) 11:17:51
>>975
マクロの定義が不適切
int main(int ac, char **av) の引数が不要
意味不明なコード
978デフォルトの名無しさん:2010/08/23(月) 11:19:36
>>975
何がしたいのかさっぱり。aを何か別の変数と入れ替えする訳でもなく
それ自身のxorを取ってどーすんの???
979デフォルトの名無しさん:2010/08/23(月) 11:24:32
0 0 : 0
0 1 : 1
1 0 : 1
1 1 : 0 < ここがorとxorの違う点
2つの同じ値のxorは0になる罠。
その前に、そのコード自体の意味があるの?
aをswapに渡す意味が?
980デフォルトの名無しさん:2010/08/23(月) 11:25:45
>>979
何も分かっちゃいない
981デフォルトの名無しさん:2010/08/23(月) 11:25:47
>>975>>961
のやつじゃないの?
mainの引数はフォーマットからのコピペとかだろうからいいだろw
codepadで見てみたら存在しない13行目で)がどーたらってでたんだけどなんぞ。
982デフォルトの名無しさん:2010/08/23(月) 11:27:26
>>979
0になってもいいじゃん。またもどるんだから。
1 1 :0
1 0 :1
0 1: 1
983デフォルトの名無しさん:2010/08/23(月) 11:27:28
>>975
#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;
}
984デフォルトの名無しさん:2010/08/23(月) 11:37:59
なんで&a==&bだと破綻するの?
985デフォルトの名無しさん:2010/08/23(月) 11:40:51
>>975 みたいに何か指摘しようとして肝心な部分をミスっている奴って
何が言いたいか意味不明だよなw
swapとは言え内面的に見れば、それ自身のクソアッー!を求めたら0なのは当然だろw
それ以前に使い道を間違えているとしか言いようがない。
986デフォルトの名無しさん:2010/08/23(月) 12:01:47
987デフォルトの名無しさん:2010/08/23(月) 12:04:24
必死だなw
988デフォルトの名無しさん:2010/08/23(月) 12:06:15
>>982
お前はバカか?それ自身のXORだぞ?
989デフォルトの名無しさん:2010/08/23(月) 12:07:56
>>980
オマエガナーw
むしろ分かっているからそれ自身のXORをして
何で入れ替え(swap)した気になっているんだと
疑問を呈しているんだが?
990デフォルトの名無しさん:2010/08/23(月) 12:08:06
>>985
それ自身の糞を求めたら0になるからってのは説明不足だろ
だったら両方同じ値でも破綻するみたいじゃないか

それ自身の糞を求めたら0になって同じ物を参照してるせいで両方0になっちゃうことも言っておかないと
991デフォルトの名無しさん:2010/08/23(月) 12:09:43
>>980
何も分かっていないのはお前。2つの変数の入れ替えなのに
それ自身を入れ替えるって、意味が分からんわ
>>958 には2つの変数を用いていることが前提で説明されているのに
何も分かっちゃいないのはお前の方
992デフォルトの名無しさん:2010/08/23(月) 12:11:11
>>990
> それ自身の糞を求めたら0になるからってのは説明不足だろ
日本語以前に何をしようとしているか分かってないお前は
得意気に揚げ足を取ったつもりなんだろうけど、それ自身のXORを取ることが
入れ替えにどう繋がるんでしょうか?
別に俺はswapのマクロを書いた本人じゃねーよ。
0になっちゃうぅ〜〜なっちゃうぅ〜だから何?入れ替えの意味が通じてないなら
日本語から学びなおせガキ
993デフォルトの名無しさん:2010/08/23(月) 12:13:48
>>990
意味が分からんわ。それ自身を入れ替えるようなコードが
>>949 で発生するんだろうか?
> swap(&b[i], &b[len - i - 1]);

>>953 は完全に揚げ足を取ったつもりなんだろうけど
コードの意味すら理解していないようだな。
まぁxorを用いたswapもどうかと思うが。
俺のswapのマクロはまた別のタイプだが、入れ替えようの
変数は別に用意するよ。
994デフォルトの名無しさん:2010/08/23(月) 12:14:37
それから、2つの変数が 同じ値 だった場合は
>>958 で2つとも元の値に戻ることは実証済み。
995デフォルトの名無しさん:2010/08/23(月) 12:17:21
gccで
#define swap(a,b) do {typeof(a) tmp=a;a=b;b=tmp;} while(0)
ってするのがいい
996デフォルトの名無しさん:2010/08/23(月) 12:19:04
日本語でおk
もはや日本語を理解できないどころではない、コードの意味が分からないガキだろ、こいつ。
屁理屈が的を射てない。
997デフォルトの名無しさん:2010/08/23(月) 12:19:55
>意味が分からんわ。それ自身を入れ替えるようなコードが
>>949 で発生するんだろうか?

だからね、>949の場合には大丈夫でもそれにswapなんて名前をつけちゃいけないのよ。
汎用だと思い込んだ(未来の自分を含む)誰かがノーチェックで利用するかもしれないんだから。

で、仮にswapをswapForReverseとして使うくらいなら、始めからxorに頼らないswapを用意すればいいだけ。
998デフォルトの名無しさん:2010/08/23(月) 12:21:15
さも相手の揚げ足を取ったつもりでいた自分が
元のコードの概要を理解していなかったとか、話にならん。
値が0になるかならないかについては、それ自身のXORの話だろ。
そんなの説明もあったし分かってんだよ。
言いたいことがそれなら、もう指摘は無用だよ。
大人しく入れ替え用の変数を用意してやった方が無難と言いたいなら
そう言えば良いだろ。長々と女々しい。
999デフォルトの名無しさん:2010/08/23(月) 12:26:07
俺のswapのマクロはそんな欠陥品じゃない。と言っても、パクリだがw
ttp://www.bohyoh.com/CandCPP/FAQ/FAQ00008.html
1000デフォルトの名無しさん:2010/08/23(月) 12:26:55
揚げ足取り必死だなw
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。