C言語なら俺に聞け(入門編)Part 101
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2012/05/04(金) 04:05:26.52★前スレ
C言語なら俺に聞け(入門編)Part 100
http://toro.2ch.net/test/read.cgi/tech/1333108892/
★過去スレ
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++の宿題片付けます 157代目
http://toro.2ch.net/test/read.cgi/tech/1335517816/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
# サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
長くなりそうなコードはcodepadに貼り付けてもいいでしょう
http://codepad.org/
http://ideone.com/
0002デフォルトの名無しさん
2012/05/04(金) 06:44:59.49mikrocというコンパイラを使ってPICマイコンで電子工作をしてるのですが、
指定した桁の値を取り出すにはどうすれば良いのでしょうか?
例)x = 12345;という変数の中の値を、a = 1;b = 2;c = 3;d = 4;e = 5;
というように取り出したいです。
C言語についてはPICで遊ぶために0からのスタートでして、ほぼ初心者です。
よろしくお願いします。
0003デフォルトの名無しさん
2012/05/04(金) 08:04:22.28取り出したい桁を右からn桁目とすると
「(n-1)回、10で割った整数」を10で割った際の余りを求めれば良い
0004デフォルトの名無しさん
2012/05/04(金) 08:48:55.98>>3のやり方が正攻法だと思う。
バッファを余計に使って良ければ、sprintfを使うのが簡単かな。
char buf[10];
int x = 12345;
sprintf(buf, "%d", x);
これで、buf[0]: 1, buf[1]: 2, buf[2]: 3, buf[3]: 4, buf[4]: 5
となります。
0005デフォルトの名無しさん
2012/05/04(金) 11:47:36.94しかしポインタのアドレスはバイト単位であり、
無理だということが分かったのですが何か良い方法は無いでしょうか?
なぜこんな事がしたいかと言いますと、とびとびの複数のビットフィールドに対し
同じ処理を行いたく冒頭の事が出来ないか試行錯誤していました。
ご助言頂けると嬉しいです _ _
0007デフォルトの名無しさん
2012/05/04(金) 12:11:24.13同じ処理がしたいのならやればいいじゃん。
どうしてもポインタが必要な処理なの?
もうちょっと具体的に状況を書いてみて。
00085
2012/05/04(金) 12:36:54.04レスありがとうございます!状況としてはマイコンの制御のためにコードを書いています。
具体的には以下の処理を行いたいです。
// 空行まで変数の宣言です。
struct bit {
unsigned b0: 1;
unsigned b1: 1;
unsigned b2: 1;
unsigned b3: 1;
unsigned b4: 1;
unsigned b5: 1;
unsigned b6: 1;
unsigned b7: 1;
};
union port {
struct bit bit;
unsigned char byte;
};
volatile union port *p2 = (union port *)0x00E4;
unsigned char sw2_before = 1, sw3_before = 1;
if(sw2_before == 0 && p1->bit.b7 == 1)
p2->bit.b4 ^= 1;
if(sw3_before == 0 && p1->bit.b3 == 1)
p2->bit.b5 ^= 1;
ですが、現状だとご覧のように同じようなコードが二回繰り返されているので
これを関数として抜き出したいんです。(空行以降の部分です。)
0009デフォルトの名無しさん
2012/05/04(金) 13:10:03.66マクロで書けばいいんじゃね?
仮にビットフィールドへのポインタが有りだとしたらどんなコードを書く?
00105
2012/05/04(金) 14:27:08.47ありがとうございます!マクロですか、余り使ったことなかったのですが調べてみます!
仮にビットフィールドへのポインタが有りだとしたら以下の様にしたいです。
void led_toggle_switch(unsigned *led: 1, unsigned char before, unsigned char after) {
if(before == 0 && after == 1)
*led ^= 1;
}
led_toggle_switch(&p2->bit.b4, sw2_before, p1->bit.b7);
led_toggle_switch(&p2->bit.b5, sw3_before, p1->bit.b3);
0011デフォルトの名無しさん
2012/05/04(金) 14:45:02.780012デフォルトの名無しさん
2012/05/04(金) 15:29:00.01bit位置を示す引数をもう一つ追加。
ledはビットフィールド変数ではなく、byteの方にすれば、
void led_toggle_switch(
unsigned *led: 1,
unsigned bitPos, // 1-7
unsigned char before,
unsigned char after)
{
if(before == 0 && after == 1){
*led ^= (1 << bitPos);
}
}
0013デフォルトの名無しさん
2012/05/04(金) 15:34:21.91いえいえ
00145
2012/05/04(金) 15:51:10.19なるほど、こういうやり方もあるんですね・・・。全く思いつかなかったです・・・。
とても勉強になりました、ありがとうございます!
マクロも自分で書いてみました。スッキリ纏まって良い感じです!
#define LED_TOGGLE_SWITCH(led, before, after)\
if(before == 0 && after == 1) { led ^= 1; }
LED_TOGGLE_SWITCH(p2->bit.b4, sw2_before, p1->bit.b7);
0015デフォルトの名無しさん
2012/05/04(金) 16:01:37.31ビットごとに意味を割り当てるにしてもビットフィールドを使わないことが多いね。
0017デフォルトの名無しさん
2012/05/04(金) 16:49:27.66レスが付いた後だけど、今見返すと、第2引き数のコメント間違っているね。
誤)
unsigned bitPos, // 1-7
正)
unsigned bitPos, // 0-7
0018デフォルトの名無しさん
2012/05/04(金) 16:53:41.76マクロ関数書くときは各引数を括弧でくくっておかないと、思わぬ動作をすることがある。
#define LED_TOGGLE_SWITCH(led, before, after)\
if(((before) == 0) && ((after) == 1)) { (led) ^= 1; }
0019デフォルトの名無しさん
2012/05/04(金) 17:37:22.16いえいえ
0020デフォルトの名無しさん
2012/05/04(金) 19:38:55.050021デフォルトの名無しさん
2012/05/04(金) 19:54:41.840022デフォルトの名無しさん
2012/05/04(金) 22:53:48.92何で?
0023デフォルトの名無しさん
2012/05/04(金) 23:34:29.440024デフォルトの名無しさん
2012/05/04(金) 23:46:03.86>>16では無いのだが、ビットフィールドって処理系依存だからでしょ。
LSB、MSG並びと、宣言の順番がどうなるか、とか。
あと、ビットフィールドと共用体の合わせ技もよく使うが、
(>>8のportがまさにそれ)
共用体の一方で設定した値を他の型で読んだ時にどうなるかも処理系依存だったりする。
0025デフォルトの名無しさん
2012/05/05(土) 00:30:24.150026デフォルトの名無しさん
2012/05/05(土) 01:00:43.97gccだとarchに依存したエンディアンで並び順は考慮でける
コンパイラによっては、並び順をオプション等で指定できるのもある
要は使い分けが出来るかどうか、ビットフィールド
ワケワカでやってハマったから、使えないっていう人がいるからね
0027デフォルトの名無しさん
2012/05/05(土) 01:39:16.730028デフォルトの名無しさん
2012/05/05(土) 01:43:12.51今世紀最新の遺物だなお前
動く化石だ
0029デフォルトの名無しさん
2012/05/05(土) 01:52:10.360030デフォルトの名無しさん
2012/05/05(土) 02:06:26.65superH は 4byte
0031デフォルトの名無しさん
2012/05/05(土) 02:13:55.710032デフォルトの名無しさん
2012/05/05(土) 02:41:12.25バカとなんちゃらは使いよう
I/Oのビットを立てたり下げたりするのって、普通こうするじゃん?
いや、C に 0xc6 表現以外にも 「0b11000110」とかあればもっといいんだけどさー。
この前、5bit ごとにデータをシリアル化したい、ていうお題がどこかであったけれども、そのときもビットフィールドを使いたいとか思わなかったなあ。
ここはビットフィールドじゃないとっ、ていうお題があるんだろうか?
0034デフォルトの名無しさん
2012/05/05(土) 03:13:04.970035デフォルトの名無しさん
2012/05/05(土) 03:43:16.000036デフォルトの名無しさん
2012/05/05(土) 05:09:09.58マイコンメーカーが提供しているヘッダファイルにもバリバリ。
0037デフォルトの名無しさん
2012/05/05(土) 05:10:37.10しかし、クズは使いようもないな。
0038デフォルトの名無しさん
2012/05/05(土) 07:20:33.81いちいち定数切るのが面倒。
0039デフォルトの名無しさん
2012/05/05(土) 07:39:33.82n個の配列を作りたいのですが、下のソースでは、int m[n];の行で
constant expected
と言われます。どうしたら良いでしょうか。
SHARPのPC-G850VSです。
main(){
int n = 2;
int m[n];
}
0040デフォルトの名無しさん
2012/05/05(土) 07:50:35.470041デフォルトの名無しさん
2012/05/05(土) 07:56:26.66ANSI-Cでは配列宣言の要素数は定数でなくてはなりません。
int m[2];
と書きましょう。
0042はちみつ餃子 ◆8X2XSCHEME
2012/05/05(土) 08:04:01.82まぁ、必要っていう人が居るなら要るんだろうけど、レアケースであることにかわりはない。
gcc と vc++ ではビットフィールドを配置する上位下位が逆ってことで一部のライブラリで問題が起こるってことも聞いたことあるし。
gcc にはオプションで vc++ に合わせるモードもあるんだけど、ライブラリとして使う性格上、他のライブラリとの兼ね合いで
一律に逆転してもまずいっていう。 具体的には gtk がそれ。
あと、久々に規格を見直していて気付いたんだけど、ビットフィールドはなるべく詰め込むことが must なんだな。
> 十分な領域が残っている場合、構造体内のビットフィールドの直後に続く別の
> ビットフィールドはは同じ単位の隣接したビットに詰め込まなければならない。
> 十分な領域が残っていない場合、入り切らなかったビットフィールドを次の単位に入れるか、
> 又は隣接した単位の境界をまたがらせるかは、処理系定義とする。
(JISX3010:2003 の 6.7.2.1 から引用)
ここで言う「単位」がバイトのことなのかどうかがわらないんだが、原文ではどーなってんだろ。
いずれにせよ >>8 のような1ビットが8個の状況では1バイトに連続して配置されることが保証されてる。
あと、ちょっと本質的じゃないがビットフィールドの変わり種の使い方として構造体の代入抑制がある。
幅ゼロで const なフィールドがあると代入できなくなるんだと。
struct A
{
…
const int : 0;
};
てな感じ。
0043NAS6 ◆n3AmnVhjwc
2012/05/05(土) 08:20:47.910044デフォルトの名無しさん
2012/05/05(土) 08:27:22.09おっさんだろ
0045デフォルトの名無しさん
2012/05/05(土) 08:56:49.82c言語に限らずこういうのを他の言語でも見かけるが、これって何で?
>>39の例の方が柔軟で良さそうに思えるのだけど。
んー。定石ですか。
0048デフォルトの名無しさん
2012/05/05(土) 11:19:57.15配置を決めたいのが理由じゃねーよ。
隠れて何かしないってのがCのポリシーだからだろ。
決めなくても実現できるのはわかるよな。
0049デフォルトの名無しさん
2012/05/05(土) 11:23:05.840050デフォルトの名無しさん
2012/05/05(土) 11:24:42.880051デフォルトの名無しさん
2012/05/05(土) 14:45:42.23for文の中で、下のように10倍、100倍、1000倍、10000倍のような計算を
変数”i ”を使って一つに纏める簡単な方法はありますか?
よろしくお願いします。
for(i = 1・・・
x = x * 10;
-----------ここから下を省略したい--------------------
x = x * 100;
x = x * 1000;
x = x * 10000;
0052デフォルトの名無しさん
2012/05/05(土) 14:52:11.70この程度がわかんなかったら
後々の学業に支障をきたすレベル
有体に言えば脳障害と見間違う程にひどい
0053デフォルトの名無しさん
2012/05/05(土) 14:53:54.19{
x = x * i;
}
0054デフォルトの名無しさん
2012/05/05(土) 14:56:40.570055デフォルトの名無しさん
2012/05/05(土) 14:57:15.92お前が脳障害だろ。
>>51
まず日本語を勉強しろ。
0056デフォルトの名無しさん
2012/05/05(土) 14:57:57.95ホンモノの脳障害の糞詰まりのクソ野郎がお出ましかw
巣にこもってでてくんなアホ
0057デフォルトの名無しさん
2012/05/05(土) 14:58:11.12ごめんなさいorz
プログラムのプの字も知らず、あるきっかけで数日前にC言語というものを触り始めたばかりですorz
>>53
ありがとうございます。
"i*"が味噌なんですね?
ちょっとやってみます
005851
2012/05/05(土) 14:59:27.28すみませんどこか日本語おかしかったでしょうか?
0059デフォルトの名無しさん
2012/05/05(土) 15:00:03.5232bit整数だとオーバーフローしてるし
0060デフォルトの名無しさん
2012/05/05(土) 15:01:36.33x = x * 10;
-----------ここから下を省略したい--------------------
x = x * 100;
x = x * 1000;
x = x * 10000;
をそのまま解釈すれば
x = x * 10000000000;
だが、お前がしたいこととは違うんじゃないのか?
日本語ができないならせめて元のコードを示せ。
006151
2012/05/05(土) 15:04:07.61ああ、そういうことですか
100億なんて数字は使わないし、計算できないですもんね
本当はこうでしたすみません
x = x * 10;
-----------ここから下を省略したい--------------------
x = x * 100;
x = x * 1000;
0062デフォルトの名無しさん
2012/05/05(土) 15:06:06.55でいいだろが。
0063デフォルトの名無しさん
2012/05/05(土) 15:13:42.39{
x += (x * i);
}
こういうことだろうか
0064デフォルトの名無しさん
2012/05/05(土) 15:22:17.360065デフォルトの名無しさん
2012/05/05(土) 15:42:05.10脳みそにクソが詰まった人間同士がクソの垂れ流しあいをしてるwww
素晴らしいw
相手はズブズブのシロートなんだから
やりたいことくらい察してやれよwww
ンなことだからオマイラは脳みそに怪しい部分をお持ちですね
とか言われんダよww
0066デフォルトの名無しさん
2012/05/05(土) 15:42:37.040067デフォルトの名無しさん
2012/05/05(土) 15:47:12.870068デフォルトの名無しさん
2012/05/05(土) 16:36:13.950069デフォルトの名無しさん
2012/05/05(土) 16:38:18.940070デフォルトの名無しさん
2012/05/05(土) 16:58:04.18行き詰まったから質問してるんだろうけど、もっと手前で道を間違ったから行き詰まってるんだよ。
例えて言えばお前の質問は「どうやったらこの道を進めるんですか?」と言ってるようなもんだ。
行き止まりの進み方を聞いたってこっちは知らんがなとしか言えない。 そこは進めない。
「どうやったらxxに行けるんですか?」と聞いてくれれば、 xx がどこか言ってくれれば回答しようがあるんだよ。
要は「自分が行き詰まっているところ」じゃなくて「目的地」を示せってこと。
0071デフォルトの名無しさん
2012/05/05(土) 17:14:44.100073デフォルトの名無しさん
2012/05/05(土) 20:08:19.730074デフォルトの名無しさん
2012/05/05(土) 20:08:26.24無い
そういう方法は標準では用意されてない
最初に配列の個数を決めたら後で変えることはできない
こういうのを静的配列と呼ぶ
実行時に配列の長さnを変えられるのは動的配列、
Cは動的配列を標準では提供していない
「C 動的配列」で調べれば出てくる
0075デフォルトの名無しさん
2012/05/05(土) 20:14:41.580076デフォルトの名無しさん
2012/05/05(土) 20:21:28.260077はちみつ餃子 ◆8X2XSCHEME
2012/05/05(土) 20:26:13.72C99 ではかなり条件が緩和されてる。
http://seclan.dll.jp/c99d/c99d04.htm
ただ、ポケコンだと新しい処理系を使うってのも簡単じゃないだろうし…。
普通は malloc でメモリを確保して使うんじゃないかな。
int main(void){
int n = 2;
int* m = malloc(sizeof(int)*2);
//ここで m を使った処理
free(m); // ←メモリの解放
}
0078デフォルトの名無しさん
2012/05/05(土) 20:27:13.180079デフォルトの名無しさん
2012/05/05(土) 20:32:00.56自己紹介お疲れ様です
これからも駄文の垂れ流し、よろしくお願い致します無能様
0080デフォルトの名無しさん
2012/05/05(土) 20:39:01.94こういう内容の発言なのに自分がコテ付けてないってのは
かなり自家撞着なアホwww
「わたくし、アホでございます」と宣言してるようなモンだw
0081デフォルトの名無しさん
2012/05/05(土) 20:48:44.010082デフォルトの名無しさん
2012/05/05(土) 21:04:27.71/ \ /\ キリッ
. / (ー) (ー)\
/ ⌒(__人__)⌒ \ コテなしの無能発言よりはまし。NGできるコテつきは良心的ともいえる。
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
___
/ \
/ノ \ u. \ !?
/ (●) (●) \
| (__人__) u. | クスクス>
\ u.` ⌒´ /
ノ \
/´ ヽ
____
<クスクス / \!??
/ u ノ \
/ u (●) \
| (__人__)|
\ u .` ⌒/
ノ \
/´ ヽ
0083デフォルトの名無しさん
2012/05/05(土) 22:42:35.88同じく初心者が頭振り絞って考えたけど
こういう事かな?
#include <stdio.h>
int main()
{
int x;
int i;
int j=10;
printf(" 整数を入力\nx=");
scanf("%d",&x);
for(i=0; i<=3; i++)
{
x = x*10;
printf("x * %d = %d\n", j,x);
j=j*10;
}
return(0);
}
0084デフォルトの名無しさん
2012/05/05(土) 22:47:44.92初心者向けの本やサイトでそのスタイルは余りにも見かけない
本当に初心者なのかが疑問に残る
初心者が何もせずに何も見ずにそのスタイルに行きついたなら
ある種の教祖的な素質がある
0085はちみつ餃子 ◆8X2XSCHEME
2012/05/05(土) 23:02:00.16へぇー。 手元にある本をざっと見たら確かにその通りだわ。
でも、俺も昔は >>83 みたいに書いてた。
初心者的には括弧の位置が対応してた方が安心できるんじゃないかなぁ。
エディタの支援がある状況だとちゃんとインデント付けてくれるけど、
初心者はそれに慣れてないわけだし。
0086デフォルトの名無しさん
2012/05/05(土) 23:17:37.350087デフォルトの名無しさん
2012/05/05(土) 23:22:42.18008839
2012/05/05(土) 23:23:16.24有難うございます。とても勉強になります。
私は取り敢えず入門書を大体読み終えたのですが、まだまだですね…
以下のソースでテストしてみたところ上手く動作したので、今自分の作りたいものを作れそうです。
main(){
int n = 2;
int *m = malloc(sizeof(int)*n);
*m = 1;
*(m +1) = 3;
printf("%d, %d",*m,*(m+1));
}
0089はちみつ餃子 ◆8X2XSCHEME
2012/05/05(土) 23:27:57.12因みに俺が最初に C のコーディングに使ったエディタは Vz だったよ。
教員もめんどくさいから最近だと VC++ 選ぶと思うけどな。
C の初心者に Emacs から指導するのは手間なだけだろ。
009039
2012/05/05(土) 23:28:20.64忘れてました
0092デフォルトの名無しさん
2012/05/05(土) 23:39:40.17この手のfor分は行数ケチスタイル?
0093デフォルトの名無しさん
2012/05/05(土) 23:45:01.470094デフォルトの名無しさん
2012/05/05(土) 23:45:41.530095はちみつ餃子 ◆8X2XSCHEME
2012/05/05(土) 23:48:18.69意味的にループのための初期化、判定、インクリメントになってるなら、
ケチとかどうとか言う類のものじゃないと思うけどな。
俺はアリだと思うし、実際に書くよ。
0096デフォルトの名無しさん
2012/05/05(土) 23:57:19.780097デフォルトの名無しさん
2012/05/05(土) 23:58:17.230098デフォルトの名無しさん
2012/05/06(日) 00:00:21.670099デフォルトの名無しさん
2012/05/06(日) 00:19:46.980100デフォルトの名無しさん
2012/05/06(日) 00:36:28.990101デフォルトの名無しさん
2012/05/06(日) 00:37:16.01アッパーキャメルケース
ローワーキャメルケース
スネークケース
あなたはどれ?
0102デフォルトの名無しさん
2012/05/06(日) 00:46:42.90pascal の begin / end の段付けを意識した書き方だとこうなるよね。
おっと信者の出番がきましたか霧
勝手にリークを定義されても霧
0106デフォルトの名無しさん
2012/05/06(日) 00:51:19.83unsigned int abc;
↑
この変数の中身を指定したビットだけ取り出したり操作したりするのはどうすればいいのでしょうか?
例えば、abc = 0b0000000000000000 として、10ビット目だけを反転したり取り出したりしたい場合です。
よろしくおながいします
ごめんなさい。もしよろしければそれぞれ教えてください。
demacs が遅くて Vz も便利に使ってたけど、どこぞのemacsバインドマクロを早々にいれちゃったなあ。
0109デフォルトの名無しさん
2012/05/06(日) 00:57:56.53https://www.google.co.jp/search?source=ig&hl=ja&rlz=&q=C+%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97&oq=C+%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97&aq=f&aqi=g6g-m2&aql=&gs_l=igoogle.3..0l6j0i5l2.131.2350.0.2892.12.12.0.0.0.0.125.1076.9j3.12.0...0.0.
0110デフォルトの名無しさん
2012/05/06(日) 00:58:51.17http://codepad.org/1GkrqfnM
最小のビットを 0 として大きい方向に1, 2, 3, ... 10 と数えたときの10番目です。
最小ビットを 1 から開始するときは mask = 1 << (10-1) にしてね
0112デフォルトの名無しさん
2012/05/06(日) 01:09:25.07ローワーキャメル lowerCamel
アッパーキャメル UppterCamel
スネークケース snake_case
キャメルケースはローワーやアッパーのジャンル名だった。 めんご
0113デフォルトの名無しさん
2012/05/06(日) 01:10:44.82google様はロケール情報まで付け足してくれるのか
こりゃあいいこと知ったw
ありがとうありがとう
さっそく情報抜き出すよ!
0114デフォルトの名無しさん
2012/05/06(日) 01:13:30.53#define XORBIT(a,b) (a)^=(1<<(b1))
int main(void)
{
unsigned int abc=123;
int bit;
XORBIT(abc,10);
bit=GETBIT(abc,10);
return(0);
}
0115デフォルトの名無しさん
2012/05/06(日) 01:19:04.690116デフォルトの名無しさん
2012/05/06(日) 01:41:51.19素晴らしい演算記号なのだろう
きっと
0117デフォルトの名無しさん
2012/05/06(日) 01:51:20.12iPhoneだとゲタに見える
文字コードいくつの文字なんだろ
0118デフォルトの名無しさん
2012/05/06(日) 01:52:53.96≪
0119デフォルトの名無しさん
2012/05/06(日) 01:57:11.76マイナス(-)のつもりが全角で化けてたみたい、すまん。
それと
#define GETBIT(a,b) ((a)&(b-1)?1:0)
は
#define GETBIT(a,b) (((a)&(b-1))?1:0)
の方が良いのですね。
不精せずにcodepad 等で動かしてみれば?
0121106
2012/05/06(日) 03:00:44.55とりあえず、>>111さんのコードに変数 x を追加して、
x = a & mask;
if(x == 0){printf("10th = 0");}
if(x > 0){printf("10th = 1");}
これでやりたいことができました。
C言語をかじって1ヵ月しかないですが、このスレでは質問すれば有用な返答が頂けて感謝しています。
どうもありがとうございます。
0122デフォルトの名無しさん
2012/05/06(日) 04:34:36.13下のif分はelseにまわした方がよくないか?
というか111がやってるのと逆のシフトを行えば
ifすらいらないぞ
0123デフォルトの名無しさん
2012/05/06(日) 06:23:57.73printf("10th = %d\n", !!(a & mask));
0124デフォルトの名無しさん
2012/05/06(日) 06:27:00.010125デフォルトの名無しさん
2012/05/06(日) 12:43:15.68int a,b;
dobule c;
a = 7;
b = 4;
c = b / a;
と書いたのですが、
%f表記でも、cに値が入っていません。
使っているcは、オブジェクティブcなのでスレチかもしれませんが、教えていただけると助かります。
0126デフォルトの名無しさん
2012/05/06(日) 13:08:02.71c = (double)a / (double)b;
じゃないの?
0127デフォルトの名無しさん
2012/05/06(日) 13:15:14.09ありがとうございます。
早速試してみます。助かりました。
0128デフォルトの名無しさん
2012/05/06(日) 14:11:17.740129デフォルトの名無しさん
2012/05/06(日) 14:11:43.53キャストは一つだけで十分
http://codepad.org/KyBPyoJA
0130デフォルトの名無しさん
2012/05/06(日) 22:33:24.410131デフォルトの名無しさん
2012/05/06(日) 22:39:35.34>Cソースに、関数内に特定の文字列が入っているかどうか
これ、だいぶぼやっとしていて、何がしたいのかよくわからないが、、、。
grepとか範囲内検索では足りないのかな?
具体的に例を上げてくれれば、レスもらえるかも。
どっちにしてもCの話ではなさそうだが、、、。
0132デフォルトの名無しさん
2012/05/06(日) 22:43:01.00ディレクトリの監視をするのに、inotifyだと、inotify_eventのnameに監視してるファイルを作成/削除/変更
したファイルの名前が入ってると思うのですが、kqueueの場合は、どのように監視しているファイル名を
取得すればよいのでしょうか?
よろしくお願いします。
0133デフォルトの名無しさん
2012/05/06(日) 22:45:42.96例えば秀丸だと、grepでは、ソースファイル名とライン数はわかるけど、grepした文字列がどの関数にはいっていたかどうかは、grep先を目視しないとわからないですよね。
私は、ある文字列が、どの関数にある、ということをそういった手間をかけないで調べたいのです。
0134デフォルトの名無しさん
2012/05/06(日) 22:59:37.87>文字列がどの関数にはいっていたか
その「文字列」って具体的に何?
スタック変数なら、関数内だから無関係だよね。
グローバル変数なら、カプセル化がヘボすぎて、管理できなくなってるだけの気がするが。
リストアップしたくなる時点で設計が良くない気がする。
それ以外の文字列なら、用途が想像できない。
0135デフォルトの名無しさん
2012/05/06(日) 23:13:26.33どちらにせよ関数の中の変数名を調べたいってのは
プログラミングとしては末期症状だとは思う
そういうのが必要になる状況てのは
かなり切羽詰まっている、
有体に言えばそのソースコードはクズでしょう、捨てなさい
0136デフォルトの名無しさん
2012/05/06(日) 23:17:33.31関数の仕様が変わったので書き直しとかかね
0137デフォルトの名無しさん
2012/05/07(月) 01:02:14.28秀丸は関数一覧を表示していれば、検索でヒットした部分を含む関数もハイライトしてたよ。
grepではどうなるかわからないけど。
0138デフォルトの名無しさん
2012/05/07(月) 08:11:14.02関数/変数ならクロスリファレンサを使えばいい。
ここまでその名前が出てきてないのにびっくり。
カスばかりだな。
0139デフォルトの名無しさん
2012/05/07(月) 08:32:35.160140デフォルトの名無しさん
2012/05/07(月) 08:35:32.45何がしたいのかも分かってないのに偉そうな奴だな
察したのか?
0141デフォルトの名無しさん
2012/05/07(月) 09:27:17.120142デフォルトの名無しさん
2012/05/07(月) 11:13:36.95この中間ぐらいの本や、サイト探しています
誰か知りませんか?
0143デフォルトの名無しさん
2012/05/07(月) 11:22:00.490144デフォルトの名無しさん
2012/05/07(月) 11:38:22.560145デフォルトの名無しさん
2012/05/07(月) 12:37:25.97知りません
>>143
うん
>>144
うん
0146デフォルトの名無しさん
2012/05/07(月) 21:50:41.84「苦しんで覚えるC言語」とかどう?
ttp://9cguide.appspot.com/
「C言語ポインタ完全制覇」も躓き安いところを抑えてある。
下のページを見て興味が湧いたら、どうぞ。
ttp://kmaebashi.com/programmer/pointer.html
0147デフォルトの名無しさん
2012/05/07(月) 23:02:33.270148デフォルトの名無しさん
2012/05/07(月) 23:04:20.630149デフォルトの名無しさん
2012/05/07(月) 23:09:24.14C++とバイナリー互換を持たせて相互運用したいのかによって変わると思う。
0150デフォルトの名無しさん
2012/05/07(月) 23:21:48.75すげ レスはや。 thx C++とは関連なかとです。
typedef struct _CAGE{
void (*hoge)(....); // = 0; とか入れたいところだが無理か w
int (*hage)(....);
} _CAGE;
こんなのを次のクラス宣言に取り込めばええだけかな?
インターフェースは、多重継承をやりたくないけれども完全排除もしたくない、というジレンマの上にある妥協の産物。
継承の仕様の一部に制限をかけただけのもの。
C でインターフェースを書くということで、一次近似できたとしても、「制限をかける」ことはできないのでは?
制限なしなんでもありのCにインターフェースとかはなじまない。
0152はちみつ餃子 ◆8X2XSCHEME
2012/05/08(火) 00:12:05.27インターフェイスがどう実装されているかを考察するとかなら
あえて C でやってみるのもいいんじゃない?
わかっている人から見れば不毛だろうけど。
0153デフォルトの名無しさん
2012/05/08(火) 00:36:31.390154ビル・ジョブス
2012/05/08(火) 03:15:21.64関数全体をマクロに閉じ込めれば出来なくも無いが可読性最悪。
大昔のC++コンパイラが中間生成するCみたいな。
0155デフォルトの名無しさん
2012/05/08(火) 04:04:34.32苦Cはダメになるぞ。
0156デフォルトの名無しさん
2012/05/08(火) 06:32:55.55やはりそうなりますか。未実装を検出できなければインターフェースの意味がないもんね w
継承でやります。stateやcompositeやら書いていたらインターフェースで管理したくなってつい不毛な... w
C++? Cortex-M3で、OO利用バイナリを最小にしたいのでちょっと...。
0157デフォルトの名無しさん
2012/05/08(火) 10:08:48.830158デフォルトの名無しさん
2012/05/08(火) 12:00:48.44assertの事? 入れてるよ w
アグリゲート等の使う側の話じゃなくて、管理の話。 構造体系にも関係するかも?
Mavenの方々 thx
0159デフォルトの名無しさん
2012/05/08(火) 12:03:24.04別にassertでもなんでもいいが、未実装の検出が目的じゃねーのか。
0160デフォルトの名無しさん
2012/05/08(火) 12:56:21.38にある
char st[10]="ABC";
p1=st
とあり、p1=stについて
これを「ポインタpはSTを指す」という&stではないことに注意とあるのですがよくわかりません。
printf("%p %p\n", &st, st);
すると同じアドレスが表示されました。
どう違うんでしょうか?
0161デフォルトの名無しさん
2012/05/08(火) 12:56:57.460162デフォルトの名無しさん
2012/05/08(火) 13:34:19.800163デフォルトの名無しさん
2012/05/08(火) 14:51:00.00俺にきくなよ
知らないっていってるだろ
0164デフォルトの名無しさん
2012/05/08(火) 15:44:25.25インターフェイスって多重継承の道を突き進んだ延長上にあるものだぞ
それこそ Cargill が背理法として持ち出した「馬鹿げた想像」が皮肉にも現実化したもので
# 本番稼働で ((void)0) になるだけなものを使って何がしたいんだろうね
0165デフォルトの名無しさん
2012/05/08(火) 16:05:27.27全く別問題な気がする。
C++やJavaみたいなオブジェクト指向言語でインターフェースを使った設計が
広く使われているって事はC言語しか使えない環境でインターフェース的なことをやりたい
欲求も当然あるんじゃ無いかな
C言語でインターフェースの型情報を持てないのは、言語使用としてサポートしていないと言うだけで
それを実装できないというわけでは無いと思う。
例えばインターフェース型の構造体に静的に宣言された型識別子を割り当てて管理することも出来る。
当然可能であればC++で書いた方がよっぽど楽って事にはなると思うけど。
0166デフォルトの名無しさん
2012/05/08(火) 16:07:20.36そこもダメになるサイト。「ポインタp1はstを指す」のではなく、stの先頭要素を指している。
つまり、stは配列そのものではあるが参照されると先頭要素を指すポインタ型になる。
&stとした場合はstは配列だから当然に、配列を指すポインタ型になる。
そのサイトを書いた奴はその辺りを判っていないと思われる。
0167デフォルトの名無しさん
2012/05/08(火) 16:19:20.87例えばそこのページの最後にある、
>このとき str == str[0] == &str[0][0]
はナンセンス。
str[0]と& str[0][0]は型が等しいから比較できるが、strは型が違うので比較しても意味が無い。
敢えて比較したいのならば、(void *) str == (void *)str[0]とするべき。
言葉で書くなら、strとstr[0]は(型は違うが)アドレスは等しくなるとするか。
そもそも、初心者は「アドレスの概念を強いられているんだ!」と怒ってもいい。
0168デフォルトの名無しさん
2012/05/08(火) 16:34:59.800169デフォルトの名無しさん
2012/05/08(火) 16:37:08.22的な?
0170デフォルトの名無しさん
2012/05/08(火) 17:09:11.840172デフォルトの名無しさん
2012/05/08(火) 18:15:44.09Cのアルゴリズムコード出して試験はしないよね?
オートマンとか、左再帰とかそういうのしかやってない....
0173デフォルトの名無しさん
2012/05/08(火) 18:21:09.82>>164
純粋仮想関数をnewすると実行でアサーションエラーになります。 使う話で恐縮だが。
それでも、インターフェース機能が存在するのは、マストな存在だからです。
チップ組込みも肥大化しつつありますが、それに増してPC上でビッグプログラムを開発すると、
構造設計段階での有難みが身に染みます。
しかし...、CでのOOPは慣れれば快適 w
もちろん、メッセージドリブン、イベントドリブンや仮想関数テーブルのライブラリを完成させてからの話だが w
0174デフォルトの名無しさん
2012/05/08(火) 18:30:51.79C言語の関連の話なのか全然分からない。
0176デフォルトの名無しさん
2012/05/08(火) 18:35:31.36既成機能のほうが優れているし早いんじゃないの?
0177デフォルトの名無しさん
2012/05/08(火) 18:37:13.33お前はいったい何が言いたいんだ。
日本語に不自由なのか?
0178デフォルトの名無しさん
2012/05/08(火) 18:40:26.15エンジニアでもなればいいのに。
0179デフォルトの名無しさん
2012/05/08(火) 18:43:23.54他言語の機能だって、あらゆる手段を組み合わせて実装できるんじゃないの?
0180デフォルトの名無しさん
2012/05/08(火) 18:48:41.960181デフォルトの名無しさん
2012/05/08(火) 18:55:01.760182デフォルトの名無しさん
2012/05/08(火) 19:05:22.940183デフォルトの名無しさん
2012/05/08(火) 19:10:57.76医者なんで... 今日は非番。
0184164
2012/05/08(火) 19:18:18.01それはもしかして C++ の話?
だとすると純粋仮想関数は new できないんだが・・・
# スレチすまそ >ALL
> CでのOOPは慣れれば快適
ここは同意
C しか知らないと他の言語を漁りに行く動機がなかったりなw
# 知人にいるんだこれが
0185デフォルトの名無しさん
2012/05/08(火) 19:32:27.61東大生でも理解できんぞ。
0186デフォルトの名無しさん
2012/05/08(火) 19:34:34.730187デフォルトの名無しさん
2012/05/08(火) 19:34:44.530188デフォルトの名無しさん
2012/05/08(火) 19:43:14.48馬鹿よせよ。
C言語のコーナーじゃ文法の本がほとんどじゃ。
俺の知ってるC言語じゃない!
0189デフォルトの名無しさん
2012/05/08(火) 19:44:46.530190デフォルトの名無しさん
2012/05/08(火) 19:45:40.70自分本位で専門知識ひけらかすアホがいるよな。
0191デフォルトの名無しさん
2012/05/08(火) 19:46:33.090192デフォルトの名無しさん
2012/05/08(火) 19:50:09.670193デフォルトの名無しさん
2012/05/08(火) 19:51:46.671か月で読める。
0194デフォルトの名無しさん
2012/05/08(火) 20:02:55.580195デフォルトの名無しさん
2012/05/08(火) 20:03:36.850196デフォルトの名無しさん
2012/05/08(火) 20:05:16.61C の話をしろや
0197デフォルトの名無しさん
2012/05/08(火) 20:06:30.260198デフォルトの名無しさん
2012/05/08(火) 20:07:49.76あまりに基礎技術が進みすぎると誰もやりたいと思わん。
そういう意味で90年代後半のほかほかITブームの流れにのったやつは運がいいよな。
0199デフォルトの名無しさん
2012/05/08(火) 20:13:12.88汗流すほうが健康にもいいし楽しい。
0200デフォルトの名無しさん
2012/05/08(火) 20:20:58.12文理不問で学歴不問で未経験者OKで
数年毎に新しい技術が出てきて蓄積が無意味になるんじゃ
若くて素直で人件費の安い奴隷が優先されてコストのかかる頑固な年寄りは切られるよ
その方が企業にとって都合がいいからそういうシステムになってるんだろうね全く人間がモノ扱いだよ
0201デフォルトの名無しさん
2012/05/08(火) 20:22:37.77趣味で好き勝手やるのが一番
0202デフォルトの名無しさん
2012/05/08(火) 20:33:21.85かみ砕いてやると創造性の発揮というやつだ
これができない奴は PG 以外でも結局同じこと
0203デフォルトの名無しさん
2012/05/08(火) 20:35:38.370204デフォルトの名無しさん
2012/05/08(火) 20:44:44.920205デフォルトの名無しさん
2012/05/08(火) 20:57:35.760206デフォルトの名無しさん
2012/05/08(火) 21:15:28.53http://codepad.org/XAPbYL9u
のコードが、コンパイラによって処理が出来たり出来なかったりします。
これは、このプログラムのなかに問題があるのか、それともコンパイラ側に問題が有るのでしょうか?
因にコンパイラはandroidアプリのc4droidとc/c++コンパイラです。
前者では失敗(十進数では~の下りが表示されない)、後者では成功しました。
プログラムが汚いのはスマートフォンで組んだからです。お許しを。
0207デフォルトの名無しさん
2012/05/08(火) 21:18:37.500208デフォルトの名無しさん
2012/05/08(火) 21:19:22.970209デフォルトの名無しさん
2012/05/08(火) 21:22:39.03ありがとうございます!
あんな事に気づけないとは...
下らない質問失礼しました。
0210デフォルトの名無しさん
2012/05/09(水) 00:40:35.470211デフォルトの名無しさん
2012/05/09(水) 01:42:57.87とある環境のソースを別の環境で移行する為に、変数の値の置き換えを行いたいです。
Aプロジェクトで「Mouse.Trg&_lMOUSE」と書いているソースを、
Bにて「System.touch.trgFlag」で呼び出せるようにしたいです。
#define Mouse.Trg&_lMOUSE System.touch.trgFlag
#define Mouse.Py System.touchPos.y
と書いてみたのですが「Mouse.Trg&_lMOUSE」の「.」と「&?」が原因でエラーが出てしまっております。
このようなことはできないのでしょうか。
警告 warning: missing whitespace after the macro name
エラー error: expected primary-expression before '.' token
0213デフォルトの名無しさん
2012/05/09(水) 01:51:22.00日本語がわからんがきっとこんな感じか。
#if PROJECT_A
# define MouseLButton() (Mouse.Trg & _lMOUSE)
#elif PROJECT_B
# define MouseLButton() System.touch.trgFlag
#endif
0214はちみつ餃子 ◆8X2XSCHEME
2012/05/09(水) 01:54:29.41http://freedeai.180r.com/up/src/up11133.png
0215デフォルトの名無しさん
2012/05/09(水) 01:55:14.23やはりこのようなことは#defineでは出来ないのですね・・・。
>>213様
アドバイスありがとうございます。
その場合、両方のソースでMouseLButton() に置き換える感じなのでしょうか?
変数だけで指定することが出来ない場合、その方法を使用させて頂くかもしれません。
ありがとうございます!
0216デフォルトの名無しさん
2012/05/09(水) 02:01:35.24Bでstruct Mouoseを用意して適当に値を詰めるって手もあるが。
0217デフォルトの名無しさん
2012/05/09(水) 02:02:02.290218デフォルトの名無しさん
2012/05/09(水) 02:02:38.830219デフォルトの名無しさん
2012/05/09(水) 11:39:17.60違いやどっちがより正しいとかでもあったりするのかちょっと気になって
検索で調べたんだけどこれと言って見つけられないんだけど
何か知ってる人いるかな?
0220デフォルトの名無しさん
2012/05/09(水) 11:41:28.71つけてるのは勘違いしてる間抜けだけ。
0221デフォルトの名無しさん
2012/05/09(水) 11:49:12.28return (0); は神経質。
return(0); はおっちょこちょい。
0222デフォルトの名無しさん
2012/05/09(水) 12:21:20.580223デフォルトの名無しさん
2012/05/09(水) 12:36:29.830224デフォルトの名無しさん
2012/05/09(水) 12:48:18.84が死ぬ。
0225デフォルトの名無しさん
2012/05/09(水) 13:27:17.23"カーニハン リッチー return"
を検索
「K&R (第1版) でも return 文の後の式を括弧で囲っていた(中略)
if/while/swtich のように、他の式を一つ取る構文は全て () が必須なのだから、return もある方が自然」(?)
ttp://blog.kmckk.com/archives/1242942.html
0227デフォルトの名無しさん
2012/05/09(水) 18:22:58.01おすすめとかってありますか?
0228デフォルトの名無しさん
2012/05/09(水) 18:27:10.07WindowsならVisualStudio Express(C++)
MacOSXならXcodeフリー版
その他Unix系OSならgcc
でおk
0229227
2012/05/09(水) 18:40:21.190230デフォルトの名無しさん
2012/05/09(水) 23:23:22.310231デフォルトの名無しさん
2012/05/10(木) 01:20:40.21Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
Digital Mars Compiler Version 8.42n
Copyright (C) Digital Mars 2000-2004. All Rights Reserved.
Written by Walter Bright www.digitalmars.com/ctg/sc.html
Open Watcom C/C++32 Compile and Link Utility Version 1.9
( Open Watcom C32 Optimizing Compiler Version 1.9 )
0232デフォルトの名無しさん
2012/05/10(木) 01:23:08.33License
LCC is free for personal use ...
LCC (compiler) - Wikipedia
0233デフォルトの名無しさん
2012/05/10(木) 01:34:28.920234デフォルトの名無しさん
2012/05/10(木) 01:34:37.88http://codepad.org/
0235デフォルトの名無しさん
2012/05/10(木) 07:41:16.210236デフォルトの名無しさん
2012/05/10(木) 08:09:18.650237濡鼠
2012/05/10(木) 11:39:31.82今、H8マイコンでC言語を勉強しているのですが、
実際に現場で使うのでしょうか?
0238デフォルトの名無しさん
2012/05/10(木) 11:51:18.37した際に、消したにも関わらず、一回前に書いたコードが何故か実行され、新しく書いた
方が実行されません。何故でしょうか?
0239デフォルトの名無しさん
2012/05/10(木) 11:55:24.980240デフォルトの名無しさん
2012/05/10(木) 12:29:33.18プログラムの使い方はスレ違い。
C++の話でもスレ違い。
ビルド失敗したんじゃないの?
>>237
現場でH8を使うかどうかはスレ違い。
H8の開発現場でCを使うかどうかもスレ違い。
0241デフォルトの名無しさん
2012/05/10(木) 12:35:49.11現場じゃ使えない
せめてSH-2かARM系
0242デフォルトの名無しさん
2012/05/10(木) 12:50:47.32>>241 C言語の勉強と書いてあるじゃないか。 H8かどうかなんて関係無い。 よく見てレスしろ! カス!
0243デフォルトの名無しさん
2012/05/10(木) 13:09:38.350244デフォルトの名無しさん
2012/05/10(木) 13:59:43.430245デフォルトの名無しさん
2012/05/10(木) 14:04:53.780246デフォルトの名無しさん
2012/05/10(木) 14:31:38.730247デフォルトの名無しさん
2012/05/10(木) 14:37:16.46H8じゃなくH8Sなどならまだしばらく売るだろうけどね
量産なら一円でも安いものを選択するだろうが
入門なら後々まで役に立つものを選びたいね
RXはかなり微妙だったが…
0248デフォルトの名無しさん
2012/05/10(木) 15:25:24.070249デフォルトの名無しさん
2012/05/10(木) 17:42:06.72IO EXPANDERに H8S2149使ってたな〜
0250デフォルトの名無しさん
2012/05/10(木) 21:55:11.280251デフォルトの名無しさん
2012/05/10(木) 22:02:11.360252デフォルトの名無しさん
2012/05/10(木) 22:21:30.230253デフォルトの名無しさん
2012/05/10(木) 22:26:40.97本当に恐ろしいわ。
0254デフォルトの名無しさん
2012/05/10(木) 22:31:46.75数学の参考書で一行ごとに丁寧な説明があるのとかあるが
C言語の解説書もそうして欲しいよなww
馬鹿馬鹿しいと思うことでもビギナーにとっちゃ永遠に分からない事かもしれんし。
0255デフォルトの名無しさん
2012/05/10(木) 22:54:22.590256デフォルトの名無しさん
2012/05/10(木) 22:57:00.530257デフォルトの名無しさん
2012/05/10(木) 23:43:29.11・彼女が出来ました!
・宝くじがあたりました!
・昇進しました!
・道端で500円を拾いました!
・
0258デフォルトの名無しさん
2012/05/11(金) 04:27:39.320259デフォルトの名無しさん
2012/05/11(金) 07:20:52.420260デフォルトの名無しさん
2012/05/11(金) 07:47:59.16C言語の勉強でH8をたまたま使っているだけだろ。
それともなにか、C言語は手に入らないってこと言ってるのか?w
0261デフォルトの名無しさん
2012/05/11(金) 08:54:45.980262デフォルトの名無しさん
2012/05/11(金) 08:59:31.530263デフォルトの名無しさん
2012/05/11(金) 09:15:05.250264デフォルトの名無しさん
2012/05/11(金) 09:43:42.580265デフォルトの名無しさん
2012/05/11(金) 09:46:49.880266デフォルトの名無しさん
2012/05/11(金) 22:10:49.930267デフォルトの名無しさん
2012/05/11(金) 22:55:42.980268デフォルトの名無しさん
2012/05/11(金) 23:45:59.08http://codepad.org/UAQSRi2n
がvisual c++2010では実行できて、Tiny C compilerを利用したIDE(学習用c言語開発環境)では実行できません。
具体的には、37行目からのprintf文に問題があるようですが、その警告文がよくわからないです。
警告文:unknown escape sequence: '�x81'
どなたか宜しくお願いします。
0269デフォルトの名無しさん
2012/05/11(金) 23:53:18.430270デフォルトの名無しさん
2012/05/11(金) 23:59:09.980271デフォルトの名無しさん
2012/05/11(金) 23:59:28.13そもそもエラーが起きるのが37行目なので全角空白にも問題はあると思いますが、解決にはなってないみたいです。すいません。
0274デフォルトの名無しさん
2012/05/12(土) 00:06:00.59時々あるのが、エディタ上の文字エンコーディングの設定によるエラー
0275デフォルトの名無しさん
2012/05/12(土) 00:06:12.45コマの名前全部アルファベットにしろ
FuとかOuとか
0276デフォルトの名無しさん
2012/05/12(土) 00:12:34.310277デフォルトの名無しさん
2012/05/12(土) 00:13:11.400278268
2012/05/12(土) 00:16:25.54ありがとうございました。
0279デフォルトの名無しさん
2012/05/12(土) 00:19:21.540280デフォルトの名無しさん
2012/05/12(土) 00:20:07.860281デフォルトの名無しさん
2012/05/12(土) 00:36:50.30問題は31行目と54行目。
puts("−−−−−−−−−−−−−−−−−−−−−−−−");
に変えれば解決する。
0282デフォルトの名無しさん
2012/05/12(土) 00:37:20.83いえいえ
お礼なんていらないよ
0283デフォルトの名無しさん
2012/05/12(土) 00:38:39.18理由を教えてあげなよ
0284デフォルトの名無しさん
2012/05/12(土) 00:42:24.850285デフォルトの名無しさん
2012/05/12(土) 00:49:42.02そこまで教えてあげたなら、ね
0286デフォルトの名無しさん
2012/05/12(土) 00:50:12.83"―" はシフトJIS では 0x81, 0x5c。
0x5c は '\' (バックスラッシュ)で、これは C のエスケープシーケンスの始まりを示すね。
で、問題のコンパイラは、一文字目の "―" の後ろに続く、二文字目の "―" の最初の 0x81 をエスケープシーケンスの2バイト目と解釈してしまった。
無論、\ + 0x81 に相当するシーケンスは定義されていないから、エラーとして表示された。
こんなところでいいかな?
>>268
玉方と王方の区別は?
0288デフォルトの名無しさん
2012/05/12(土) 00:51:38.580289デフォルトの名無しさん
2012/05/12(土) 00:54:55.18さすがだね
出来るやつは後進の育成にも積極的なのは世の常
0290デフォルトの名無しさん
2012/05/12(土) 00:56:19.600291デフォルトの名無しさん
2012/05/12(土) 00:58:01.88>>287と>>289のIPおせーてくださいって運営に言ってみれば?w
0292デフォルトの名無しさん
2012/05/12(土) 00:58:48.260293デフォルトの名無しさん
2012/05/12(土) 00:59:45.45いいんじゃないですか?そう思っておけば
0294デフォルトの名無しさん
2012/05/12(土) 01:03:03.13自演を演出するための自演。
シフトjis なんて fat32 が現れた時点から死滅する運命だろうなと思っていたんですが、現実には10年を超えた今でも長生きしていますね。
0296デフォルトの名無しさん
2012/05/12(土) 01:11:41.53停滞しているプロジェクトにいきなりアプローチしても反応がなさそうなので、
活発そうなところを探したいです。英語はできます。
0297デフォルトの名無しさん
2012/05/12(土) 01:12:43.960298デフォルトの名無しさん
2012/05/12(土) 01:13:31.980299デフォルトの名無しさん
2012/05/12(土) 02:00:40.01void main(void)
{
printf("C言語始めました。");
printf("先輩方よろしくお願いします。");
}
0300299
2012/05/12(土) 02:05:31.380301デフォルトの名無しさん
2012/05/12(土) 02:34:10.050302299
2012/05/12(土) 02:45:38.93クソッ
手元にビジュアルスタジオさえあれば間違いなんてすぐ分かるのにヘタレすぎワロタ
0303デフォルトの名無しさん
2012/05/12(土) 03:09:02.00>>1
http://codepad.org/
http://ideone.com/
0304デフォルトの名無しさん
2012/05/12(土) 05:31:58.122012年5月12日(土) 8時30分〜9時00分
ゲスト:安田浩一(ジャーナリスト)
中国や韓国などに対して過激な批判を展開する「ネット右翼」。
会員数1万人以上を誇り右翼団体の中でも最大規模となっている組織も存在する。
実際にネット右翼を取材したジャーナリスト・安田浩一氏は、一人ひとりに会ってみると、
おとなしい今どきの若者たちが多いという。
http://www.bs11.jp/news/1349/
0305デフォルトの名無しさん
2012/05/12(土) 09:50:30.59C:\>gcc test.c
test.c: In function `main':
test.c:4: warning: return type of 'main' is not `int'
0306デフォルトの名無しさん
2012/05/12(土) 10:26:28.06// 理解不能です
// printf scanf if whileしか理解できません
0307デフォルトの名無しさん
2012/05/12(土) 10:52:49.44よく見たらWindows環境だったけど
gcc test.c
なんて書かれてると不安を覚えるなあ…
いや、コンパイル後の扱い次第なのはそうなのだが
0308デフォルトの名無しさん
2012/05/12(土) 10:57:26.84[int] main()
mainの前のintは省略可能≠void
0309デフォルトの名無しさん
2012/05/12(土) 14:10:07.86HPや攻撃力などの要素がかなり多い場合、どうやって管理するんでしょうか
何百行にも渡ってtypedef struct〜とか書くんでしょうか
0310デフォルトの名無しさん
2012/05/12(土) 14:12:19.92そこから読みだす
できれば、そのcsvデータを作る別のプログラミも作る
0311デフォルトの名無しさん
2012/05/12(土) 14:59:11.24なのを階層的にずらずら並べていったほうが柔軟性、拡張性は高い。
敵:
名前=毒スライム
属性=毒,混乱
毒:
確率=10%
ダメ=1-8
備考=3回刺されたら即死
てな感じで。
例えば備考のような項目はデータとして存在していてもプログラム側ではとりあえず無視して
将来対応するようにしても良い。
何にしても型に頼らずデータで表現するというのが重要。
0312デフォルトの名無しさん
2012/05/12(土) 19:14:59.410313デフォルトの名無しさん
2012/05/12(土) 20:04:49.461位 イラン
2位 パキスタン
3位 北朝鮮
4位 イスラエル
5位 ロシア
6位 韓国 ←←←←←←←←←←←
最も評価の高い国
1位 日本
2位 ドイツ
3位 カナダ
4位 イギリス
5位 中国
6位 フランス
BBC世界世論調査2012
http://www.globescan.com/images/images/pressreleases/bbc2012_country_ratings/2012_bbc_country%20rating%20final%20080512.pdf
0314268
2012/05/12(土) 20:14:21.81自分が見ていないときに回答されていて驚きました。
実際にputs関数の中を変更したら、実行できました。
これは、要するに全角記号だとコンパイラによって処理がかわるから、全角記号は避けたほうがいいということでいいでしょうか?
>>287
とりあえず表示したかっただけなので、まだ区別は考えていません。
>全角記号だとコンパイラによって処理がかわるから、全角記号は避けたほうがいいということでいいでしょうか?
今回、コンパイルできなかったときのコンパイラは、シフトJIS に対する作りこみがなかったんですね。
まあ、それが普通でしょう。
確かに日本語とか全角とかある種の半角カタカナとかはやめておいたほうがいいかもしれません。
シフトJIS - CP932 は、さまざまな問題をはらんでいるにもかかわらず Windows やその前から使用されているですが、一概に反旗をかかげるわけにもいかなくて。
ユニコード騒動での誰得感が払拭できないのは、私がふるーい人間だからかなあ?
0317268
2012/05/12(土) 20:39:14.27理解できました。いい経験になったと思います。
ありがとうございました。また質問に来るかもしれませんが、よろしくお願いします。
0318デフォルトの名無しさん
2012/05/12(土) 22:55:09.04腸煮え繰り返る思いだ。
説明悪すぎるんだよクソ教授。癌になってしんでほしい。
0319デフォルトの名無しさん
2012/05/12(土) 23:02:03.42そんなに難しいことやってるの?
0320デフォルトの名無しさん
2012/05/12(土) 23:11:29.51わかんなかったら、わかるためのあらゆる努力はしたのかい?
受け身の学習法では、今後社会に出てから困るよ
0321デフォルトの名無しさん
2012/05/12(土) 23:15:40.14ここにたむろする連中の大半は独学だ。学校の授業など糞だと思っている奴らばかりだ。
単位だけほしいのなら http://toro.2ch.net/test/read.cgi/tech/1335517816/ にお題を投下すれば、大概はネタ thanks とばかりに適当に片付けてくれる、あー気分次第という面々も多いが。
後で困ることがあるかもしれんが。
0322デフォルトの名無しさん
2012/05/13(日) 00:03:11.08社会に出たら、単位取りゲーム得意な人間程うまくのしあがるんだよ。
大学の勉強何かで無駄に頭使いたくないね。
0323デフォルトの名無しさん
2012/05/13(日) 00:07:00.56プログラムの知識ない奴プログラミングの腕はすごいw
0324デフォルトの名無しさん
2012/05/13(日) 00:30:14.790325デフォルトの名無しさん
2012/05/13(日) 00:33:04.190326デフォルトの名無しさん
2012/05/13(日) 00:58:07.48つまらん、必要ねーだろこれっていう知識がどこで生きてくるかわからない
セレンティピティーとはそういうもの
まあ、人それぞれ考え方はあるけどね
0327デフォルトの名無しさん
2012/05/13(日) 00:58:29.26○セレンディピティー
0328デフォルトの名無しさん
2012/05/13(日) 01:02:30.17おっぱいぼよよーん
0329デフォルトの名無しさん
2012/05/13(日) 02:08:03.400330デフォルトの名無しさん
2012/05/13(日) 02:17:38.56厳しい時代だのう。。
0331デフォルトの名無しさん
2012/05/13(日) 02:21:38.06書籍とか処理系のマニュアルとかで勉強してたよ
0332デフォルトの名無しさん
2012/05/13(日) 03:42:40.87MSDNのヘルプもあれくらい軽量高速なヘルプにするべき
0333デフォルトの名無しさん
2012/05/13(日) 04:28:08.120334デフォルトの名無しさん
2012/05/13(日) 08:17:02.49そうか?
0335デフォルトの名無しさん
2012/05/13(日) 08:37:39.24そう思い込んでるやつが増えただけ
わかってない奴が使えない点は何も変わってない
0336デフォルトの名無しさん
2012/05/13(日) 08:43:45.471 そう思い込んでるやつが増えただけ
2 太陽が東から昇る点は何も変わってない
0337デフォルトの名無しさん
2012/05/13(日) 08:55:28.24Wiki の丸暗記で天狗になってるだけで、何かやらせようとするたびまたネットサーフィンだけで自分の創造をしないやつはいらねえ
そういうクズと10を要求したら12くらいやってくる逸材が全然ちがうのは今に始まったことではない
# やれやれ、ここまでかみ砕いかにゃわからんとはな
2ちゃんにもググレカスと鳴くだけでそいつ自身は空っぽなやつがごまんといるだろ
>セレンディピティー
凡人もはげましてくれるいい言葉ですね。ともかくもガラクタでもクズでもいいから探求しなければ物事は始まらない。
>>322
嫁 つhttp://ja.wikipedia.org/wiki/%E3%82%BB%E3%83%AC%E3%83%B3%E3%83%87%E3%82%A3%E3%83%94%E3%83%86%E3%82%A3
あと、ここ20年のデフレ下では「なにもしないこと」が最善最強の戦略であった。今後はいずれインフレになり、この戦略は使えないことを教えてあげよう。
0339デフォルトの名無しさん
2012/05/13(日) 09:26:02.77>(こんなとこで挙証する気はねえぜ)
すれって。
「いらねえ」やつが「いらねえ」という当たり前のことにスリカえとらんで。
0340デフォルトの名無しさん
2012/05/13(日) 09:27:09.34何のためにだよ
0341デフォルトの名無しさん
2012/05/13(日) 11:10:17.07そうかねぇ、
本で勉強しないで、ネット検索してわかったつもりになってるやつが
増えてきてる気がする
0342デフォルトの名無しさん
2012/05/13(日) 12:19:18.55それとも終わった時に計算するんでしょうか?
例えばfor ( a=0; a=5; a++ )の場合、何回分↓の処理を実行することになるんでしょうか
0343デフォルトの名無しさん
2012/05/13(日) 12:21:03.760344デフォルトの名無しさん
2012/05/13(日) 12:22:28.18それだと無限ループかな
0345デフォルトの名無しさん
2012/05/13(日) 12:23:20.78計算してから分岐する。while(){}
0346デフォルトの名無しさん
2012/05/13(日) 12:27:24.510347デフォルトの名無しさん
2012/05/13(日) 12:35:02.09誰がbakaだって!
試せばいい。
http://codepad.org/2RkwEaI0 >>344
http://codepad.org/NAmGXnvF 0回
http://codepad.org/IQ6Aljn6 5回
0349デフォルトの名無しさん
2012/05/13(日) 13:01:25.320350デフォルトの名無しさん
2012/05/13(日) 13:03:28.52なんで?
>>344も勉強になったでしょ。
0351344
2012/05/13(日) 13:14:43.810352デフォルトの名無しさん
2012/05/13(日) 13:46:24.42の場合、ABD;CBD;CBD;CB...
Bの条件で終了するなら、ABD;CBD;CBD;CB
間違っても
決して、ABD;BCD;BCD;BC...
ではない。
>>344 語尾に「?」つけてみればわかる。
0353デフォルトの名無しさん
2012/05/13(日) 14:02:31.26START:
if(a = 5) goto END;
...
a++;
goto START;
END:
0354デフォルトの名無しさん
2012/05/13(日) 14:11:15.07× a = 5
○ a == 5
0355デフォルトの名無しさん
2012/05/13(日) 14:16:37.530356344
2012/05/13(日) 14:17:13.39俺が断定しなかったのは、コンパイラの設定によってはビルド自体ができないからだよ
まあ、こんな質問にそこまで考慮する必要はないんだろうけどね
0357デフォルトの名無しさん
2012/05/13(日) 14:19:07.76>>342
http://hibari.2ch.net/test/read.cgi/tech/1289715349/
http://hibari.2ch.net/test/read.cgi/tech/1295273862/
http://hibari.2ch.net/test/read.cgi/tech/1309527259/
http://toro.2ch.net/test/read.cgi/tech/1313183984/
0359デフォルトの名無しさん
2012/05/13(日) 14:33:20.320360デフォルトの名無しさん
2012/05/13(日) 14:38:34.380361デフォルトの名無しさん
2012/05/13(日) 16:17:30.150362デフォルトの名無しさん
2012/05/13(日) 17:21:53.86それは「goto だけは使わない」人が自らを詰ませている滑稽な図式だ
for の continue に代わる動作くらいどうにでも作れるさ
0363デフォルトの名無しさん
2012/05/13(日) 17:29:30.750364デフォルトの名無しさん
2012/05/13(日) 17:40:06.66To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(237) : 'fopen' の宣言を確認してください。
#include <stdio.h>を宣言してあるのにfopenしたらこんなのが出てくるんだけど何が原因でしょうか?
0365デフォルトの名無しさん
2012/05/13(日) 17:41:06.82読めよ
0366デフォルトの名無しさん
2012/05/13(日) 17:48:36.26よっぽどひどい育てられ方をしたんだな
そんなに重篤な精神分裂を来すとは
0367はちみつ餃子 ◆8X2XSCHEME
2012/05/13(日) 17:52:12.34> This function or variable may be unsafe. Consider using fopen_s instead.
この関数、または変数は安全ではありません。 かわりに fopen_s を使うことを検討して下さい。
> To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
非推奨を無効にするには _CRT_SECURE_NO_WARNINGS を使って下さい。 詳細はオンラインヘルプを参照のこと。
0368デフォルトの名無しさん
2012/05/13(日) 18:24:22.48そもそもスレ違いだ。
0369デフォルトの名無しさん
2012/05/13(日) 19:07:37.730370344
2012/05/13(日) 19:17:44.180371デフォルトの名無しさん
2012/05/13(日) 19:23:20.02///)
/,.=゙''"/
/ i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!!
/ / _,.-‐'~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノ il゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、 ,!,!| |r┬-| |
/ iトヾヽ_/ィ"\ `ー'´ /
0372デフォルトの名無しさん
2012/05/13(日) 19:24:34.610373デフォルトの名無しさん
2012/05/13(日) 19:46:19.68んだ
0374デフォルトの名無しさん
2012/05/13(日) 23:52:35.630375デフォルトの名無しさん
2012/05/14(月) 04:44:35.22#include <stdlib.h>
int main(void)
{
int t;
system("cls");
for(t=0;t<12;t++){printf("\n");}
for(t=0;t<19;t++){printf(" ");}
printf("中心");
for(t=0;t<12;t++){printf("\n");}
for(t=0;t<40;t++){printf("_");}
return 0;
}
DOS画面の真ん中に「中心」って文字を表示するのに
変数tを複数のforで使いまわして作ってみたんだけど
コンパイルでエラーは出ないものの使い方としてはどうとかあるかな?
検索でダメってのは見かけないけど大丈夫とも見なくて不安がある
0376デフォルトの名無しさん
2012/05/14(月) 04:55:37.650377デフォルトの名無しさん
2012/05/14(月) 06:39:56.530378デフォルトの名無しさん
2012/05/14(月) 06:41:54.72UNIX以外の DOS、Windows、OS/2など向けに作られた curses とほぼ同じ機能を提供するライブラリである
curses - Wikipedia
0379デフォルトの名無しさん
2012/05/14(月) 06:44:15.35>printf("中心");
for(t=0;t<19;t++){printf(" ");}
printf("%*s", 42, "中心");
0380デフォルトの名無しさん
2012/05/14(月) 06:50:41.70ANSI.SYSドライバでANSIエスケープシーケンスを処理できる
http://ja.wikipedia.org/wiki/テキストユーザインタフェース
0381デフォルトの名無しさん
2012/05/14(月) 06:58:57.89面倒だから位置とか色とかは考えないほうがいいよ
http://msdn.microsoft.com/ja-jp/library/cc429123
0382デフォルトの名無しさん
2012/05/14(月) 07:06:40.45そこまでして知ったかぶりたいものかねえ
0383デフォルトの名無しさん
2012/05/14(月) 07:38:19.66構文としては意図した意味になっているし、
賢いコンパイラを使うのであれば、性能上の問題はないと期待できる
だからあとは、書き方としてお行儀がいいのかという問題だが、
「スコープは最大限狭める」という原則に従うなら、こう書くこともできる
for(int t=0;t<12;t++){printf("\n");}
for(int t=0;t<19;t++){printf(" ");}
printf("中心");
for(int t=0;t<12;t++){printf("\n");}
for(int t=0;t<40;t++){printf("_");}
しかし、これはC89ではできない書き方であるし、
ほとんど差がないのも間違いないので、提示のように書いたとしても問題ないと思う
0384デフォルトの名無しさん
2012/05/14(月) 08:14:46.000385デフォルトの名無しさん
2012/05/14(月) 09:42:15.150386デフォルトの名無しさん
2012/05/14(月) 09:52:06.330387デフォルトの名無しさん
2012/05/14(月) 09:56:58.230388デフォルトの名無しさん
2012/05/14(月) 11:38:47.530389デフォルトの名無しさん
2012/05/14(月) 14:28:45.45int i,a;
scanf("%d",&a)
for(i=1;i<=a;i++){
}
とかってできないんですか?エラーがでてしまいます。
これができれば指定した数分の掛け算表ができて便利なんですが...
やっぱり一々ソースを書き直したりしないといけませんか?
0390デフォルトの名無しさん
2012/05/14(月) 14:32:07.770392デフォルトの名無しさん
2012/05/14(月) 14:42:47.50教えてくれてありがとうございます!
0393デフォルトの名無しさん
2012/05/14(月) 15:11:35.820394デフォルトの名無しさん
2012/05/14(月) 15:43:56.260395デフォルトの名無しさん
2012/05/14(月) 15:53:16.680396デフォルトの名無しさん
2012/05/14(月) 15:55:30.48画像を移動したいんですが、真横や真縦はx,yをそれぞれの値になるまで足して描画を繰り返すのは分かるんですが、
少しずれたところに移動させるのはどういう式になるんでしょうか。
例えば、x0,y0からx200,y0は出来ますが、x0,y0からx200,y45が分かりません。
0397デフォルトの名無しさん
2012/05/14(月) 16:07:24.690398デフォルトの名無しさん
2012/05/14(月) 16:10:58.46yを1増やすにつき、xをいくつ増やせば良い?
少数が必用なので、少し頭を使うかもしれんが。
プログラムじゃなくて、算数の問題。
0399デフォルトの名無しさん
2012/05/14(月) 16:12:36.28簡単にするには座標を浮動小数点で持って1回に動かしたい量をそれぞれに
足しこんでいけばいい。
0400デフォルトの名無しさん
2012/05/14(月) 17:01:08.69ありがとうございます。
0401デフォルトの名無しさん
2012/05/14(月) 17:13:25.280402デフォルトの名無しさん
2012/05/14(月) 17:16:55.210403デフォルトの名無しさん
2012/05/14(月) 17:32:07.36天才じゃないと答えられないような質問あったか?
0404デフォルトの名無しさん
2012/05/14(月) 17:42:43.52いえいえ
0405デフォルトの名無しさん
2012/05/14(月) 18:14:43.31A:xxxについて教えて。
B:yyyだよ
A:ありがとうございます
C:いえいえ
という返信をする変人がいるらしい。
0406デフォルトの名無しさん
2012/05/14(月) 18:19:49.22(0, 0)から(200, 45)に滑らかに移動したいと言うこと?
(200, 0)を経由していいなら横と縦に分割できるじゃん。
0407デフォルトの名無しさん
2012/05/14(月) 19:13:05.980408デフォルトの名無しさん
2012/05/14(月) 19:48:15.340409デフォルトの名無しさん
2012/05/14(月) 20:00:06.950410デフォルトの名無しさん
2012/05/14(月) 20:14:45.180411デフォルトの名無しさん
2012/05/14(月) 20:15:12.90Mersenne Twister: A random number generator
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html
0412デフォルトの名無しさん
2012/05/14(月) 20:49:48.61int sum(int,int);
int main (void)
{
int value,Left,Right;
scanf("%d,%d",Left,Right);
value = sum(Left,Right);
printf("%d\n",value);
return 0;
}
int sum(int min,int max)
{
int num;
num = (min + max) * (max - min + 1) / 2;
return num;
}
scanf("%d,%d",Left,Right); この部分にエラーが出ました...
何が悪いのでしょうか?
0413デフォルトの名無しさん
2012/05/14(月) 20:57:05.220414デフォルトの名無しさん
2012/05/14(月) 20:58:38.72またまた凡ミスしていまいました
どうもです...
0415デフォルトの名無しさん
2012/05/14(月) 21:01:49.120416デフォルトの名無しさん
2012/05/14(月) 22:38:53.080417デフォルトの名無しさん
2012/05/14(月) 22:58:41.47ソースコード教えてください。
このプログラム作るの簡単ですか?初心者です。
0418デフォルトの名無しさん
2012/05/14(月) 23:00:10.55ググって貼り付けるだけ
0419デフォルトの名無しさん
2012/05/14(月) 23:00:47.54マクローリン展開 円周率でぐぐる
0420デフォルトの名無しさん
2012/05/14(月) 23:04:27.380421デフォルトの名無しさん
2012/05/14(月) 23:07:50.29ぐぐってこぴぺ。マチンの公式、うっふぇ。
ttp://ideone.com/cebSY
0422デフォルトの名無しさん
2012/05/14(月) 23:12:42.67それだめらしいです。
もう一つ
二次方程式の解を√つきで実数だけ全て求めるプログラムも教えてください。
実行例
a.out
x^2 ? ←出力
1 ←入力
x ? ←出力
1 ←入力
定数 ? ←出力
-1 ←入力
x^2+x-1の解は ←出力
y=(-1+√5)/2
y=(1+√5)/2
みたいな感じのプログラムです。
期限は円周率とこの二次方程式のプログラムセットで3週間です。
後4日です...徹夜で考えてるけど特に二次方程式のプログラムは
思いつきません...
0423デフォルトの名無しさん
2012/05/14(月) 23:16:11.09アホかお前
出直してこい
何もわかっちゃいねーーーーーーー
プログラムの前に中学生の数学からやり直せ
ミジンコ
0424デフォルトの名無しさん
2012/05/14(月) 23:18:07.100425デフォルトの名無しさん
2012/05/14(月) 23:20:53.07ライブラリ一切使わずに加減乗除だけで自力で組んでみるとなかなか面白いよ
0426デフォルトの名無しさん
2012/05/14(月) 23:23:49.34とりあえずOKらしいです。(という噂)
二次方程式は、解が無しなら、この解無しみたいな出力もするプログラムです。
後4日。お願いします'--'(手)
0427422
2012/05/14(月) 23:24:51.29y=(-1-√5)/2
でしたね。すいません
0428デフォルトの名無しさん
2012/05/14(月) 23:37:42.49くっそ適当wwwwwwwww
間違いがあったら自分で直してねwwwwwwwww
ttp://ideone.com/z1q8Z
0429デフォルトの名無しさん
2012/05/14(月) 23:39:27.29お前も勉強しなおし
0430428
2012/05/14(月) 23:41:01.12あと、小数(分数)になっても、小数点以下完全無視だからwww
それがいやなら、これをベースに徹夜するのだwww
0431428
2012/05/14(月) 23:52:28.29まあ、がんばれwww
もしかしたら、プロさんがすばらしい式整形盛りこんだやつ作ってくれるかもね
0432デフォルトの名無しさん
2012/05/15(火) 00:13:10.26根本的に間違ってるよw
0434デフォルトの名無しさん
2012/05/15(火) 00:42:26.71どこへ向かってるんだwww
0436デフォルトの名無しさん
2012/05/15(火) 01:20:13.92void check(int y[])
{
printf("check : %d\n", sizeof(y) / sizeof(y[0]));
}
int main()
{
int x[5];
printf("main : %d\n", sizeof(x) / sizeof(x[0]));
check(x);
return 0;
}
両方とも5が出力されると思っていたのですが
mainは5でcheckが1になります。
check関数のyはmainのxそのものを別名でアクセス出来るものかと思っていたのですが
checkが1になる理由は何なのでしょうか。よろしくお願いします。
0437デフォルトの名無しさん
2012/05/15(火) 01:21:16.66ポインタだから
0438436
2012/05/15(火) 01:29:13.51なるほど。そうなるとmainの中のxは配列を指しているわけではないという事でしょうか
sizeof(x)ってやって5になるってことはそうなんですよね・・・
今まで配列の名前自体は配列を指してるってイメージだったんでちょっと頭こんがらがってきました
解答ありがとうございます
0439436
2012/05/15(火) 01:31:09.17なんか言ってる事めちゃくちゃでごめんなさい。
0440デフォルトの名無しさん
2012/05/15(火) 01:47:24.31main の中では配列だけど
関数の引数で渡された時点でポインタになる
0442デフォルトの名無しさん
2012/05/15(火) 20:50:20.17いえいえ、お礼は結構ですよ
0443デフォルトの名無しさん
2012/05/15(火) 21:20:18.65ver 10.0.40219.1 sp1relを使用しています。
少しポインタを復讐しようと思いまして、入力した文字から最大値と最小値を出力するプログラムを書きました。
ソース(きたなくてすいません)
#include<stdio.h>
void maxmin(int *array,int *max,int *min);
int main(void){
int array[10];
int max,min,i=0;
do{
scanf("%d",&array[i]);i++;
}while(array[i-1]!=-1 && i<10);
maxmin(array,&max,&min);
printf("最大値:%d\n最小値:%d\n",max,min);
}
void maxmin(int *array,int *max,int *min){
*max=0;*min=100;
for(int i=0;*(array+i)!=-1 && i<10;i++){
*max = (*(array+i) > *max) ? *(array+i) : *max;
*min = (*(array+i) < *min) ? *(array+i) : *min;
}
return;
}
これをVisualStudioで実行すると構文エラーが起きてしまいます。ただ、bcc?ではエラーは起きませんでした。
maxmin関数内のiの宣言をforの中ではなく、一番上で宣言するとVisualStudioでもエラーは起きませんでした。
少し良くわからないので、教えてくれる方いたらお願いします。
0444デフォルトの名無しさん
2012/05/15(火) 21:34:09.11ANSI-Cでは変数の宣言は複文の先頭にしかかけません。
これは予想ですけどVC++ではCとしてコンパイル、BCCではC++としてコンパイル
しているのでは?
もう一つ、mainが戻り値を設定していないので、警告が出ます。
コードの中身はチェックしていませんので、悪しからず。
0445デフォルトの名無しさん
2012/05/15(火) 21:40:08.01VS側はコンパイラのオプションでエラーを出さない様に出来る。
0446デフォルトの名無しさん
2012/05/15(火) 21:40:29.59配列名は式中では配列の先頭要素へのポインタとなる。
ただしsizeof, &のオペランドになったときは例外。
0447デフォルトの名無しさん
2012/05/15(火) 21:59:34.84すべて仰るとおりです。すごいですね!!
VisualStudioでcppで作成し、mainにreturn 0;を追加したところコンパイルできました。ありがとうございました。
>>445
ありがとうございます。
オプションがどこにあるかよくわからなかったので、cppとして作成しました(^_^;)
0448デフォルトの名無しさん
2012/05/15(火) 23:01:41.010449デフォルトの名無しさん
2012/05/15(火) 23:32:19.490450デフォルトの名無しさん
2012/05/15(火) 23:35:06.280451デフォルトの名無しさん
2012/05/15(火) 23:36:05.520452デフォルトの名無しさん
2012/05/15(火) 23:57:44.680453デフォルトの名無しさん
2012/05/16(水) 04:02:50.68コスト同士の比較で、コストが最小となるものを求めるときに
//cost1,cost2,minはint
min=cost1;
if ((unsigned)min > cost2) min=cost2;・・・(1)
上のif文と(完全にではないですが)同等の条件として
if(min == -1 || (min > cost2 && cost2 != -1) ) min = cost2;・・・(2)
(1)のような(unsigned)-1 = INT_MAXを使った書き方は推奨してよいものなのでしょうか?
標準Cでは、符号あり→符号なしの変換はbit列を維持することが保証されているようですが、
具体的には(unsigned)-1のような使い方は、一般的に使われているのかが知りたいです
0454デフォルトの名無しさん
2012/05/16(水) 04:08:33.930455デフォルトの名無しさん
2012/05/16(水) 04:09:27.02(unsigned)-1 = INT_MAX
が成り立つ保証がない。
0456デフォルトの名無しさん
2012/05/16(水) 04:40:31.68裏技みたいなものなのですかねえ
手持ちのC参考書には
signed X → unsigned Yにおいて
X=Y、x < 0 のとき y=x + (1 + Y_MAX)
と書かれており、
調べてみたら
JIS X3010 http://www.jisc.go.jp/app/pager?id=90394の
6.3.1.3項にも同様のことが書かれているのですが
JIS規格と、Cの仕様って必ずしも一致しないのですかね
0457デフォルトの名無しさん
2012/05/16(水) 11:06:09.340458デフォルトの名無しさん
2012/05/16(水) 11:15:43.81それは見えないが処理系依存と書いてるんじゃないのか?
そもそも符号付整数を1の補数であらわすのか2の補数であらわすのか
あるいは別の形式かも処理系依存だろ。
0459デフォルトの名無しさん
2012/05/16(水) 13:15:05.200460デフォルトの名無しさん
2012/05/16(水) 13:23:31.11しつこい
0461デフォルトの名無しさん
2012/05/16(水) 14:03:02.100462デフォルトの名無しさん
2012/05/16(水) 14:16:53.920463デフォルトの名無しさん
2012/05/16(水) 14:18:45.670464デフォルトの名無しさん
2012/05/16(水) 14:22:53.450465デフォルトの名無しさん
2012/05/16(水) 15:27:35.21判んない思いつけないんでしょ462は
0466462
2012/05/16(水) 16:34:47.06creat()してすぐunlink()していることは想定内。
0467デフォルトの名無しさん
2012/05/16(水) 20:13:55.04オプソなんだからそりゃどっかにあるだろ
glibcでググればいいと思う
0468デフォルトの名無しさん
2012/05/16(水) 22:39:20.090469デフォルトの名無しさん
2012/05/16(水) 23:23:43.250470デフォルトの名無しさん
2012/05/17(木) 00:36:39.950471デフォルトの名無しさん
2012/05/17(木) 00:47:19.400472デフォルトの名無しさん
2012/05/17(木) 08:29:37.48あ、盲点だった。
ってことで、早速glibcのgitwebを見てみた。
stdio-common/tmpfile.cを見たら、中で__gen_tempname()を呼んでいた。
で、tempname.cを見ると……中身が__set_errno()だけだった(TT
0473デフォルトの名無しさん
2012/05/17(木) 10:57:56.52教えてください
0474デフォルトの名無しさん
2012/05/17(木) 11:00:25.25VC++2010無料版のcl.exeしか知りません
0475デフォルトの名無しさん
2012/05/17(木) 11:06:32.500476デフォルトの名無しさん
2012/05/17(木) 11:10:58.93gccで勉強します
0477デフォルトの名無しさん
2012/05/17(木) 11:30:36.12system("python yourProgram.py");"
0478デフォルトの名無しさん
2012/05/17(木) 17:35:04.160479デフォルトの名無しさん
2012/05/17(木) 18:59:16.56コードに追加すること.
確認方法は,生成した乱数の発生度数を階級毎にカウントし,
その各度数を表示する.
また,発生した乱数が一様になっていない場合は,
改めて一様乱数を生成する部分の修正を行うこと.
0480デフォルトの名無しさん
2012/05/17(木) 19:50:13.350481デフォルトの名無しさん
2012/05/17(木) 20:47:00.97どのような予測も未来永劫すべて退けるってどうやるんだ
0482デフォルトの名無しさん
2012/05/17(木) 20:59:13.93ガンバれ!
おれはやらんけど!
0483デフォルトの名無しさん
2012/05/17(木) 21:19:24.54はら減った
0484デフォルトの名無しさん
2012/05/17(木) 21:50:07.96剰余を求める関数で、
このシフト演算の意味がわからないんですが、
何のためにやるのでしょうか
0485デフォルトの名無しさん
2012/05/17(木) 21:53:34.132進法で筆算してみるよろし
0486デフォルトの名無しさん
2012/05/17(木) 22:39:59.410487デフォルトの名無しさん
2012/05/17(木) 23:30:52.93int main(){
int num1, num2, num3, num4;
printf("整数1 : ");
scanf("%d", &num1);
printf("整数2 : ");
scanf("%d", &num2);
num3 = num1/num2;
num4 = num1-(num3*num2);
printf("%d を %d で割ると %d 余り %d\n", num1, num2, num3, num4);
printf("%d を %d で割った小数値は %f\n", num1, num2, (float)num3);
return(0);
}
で、num1に17、num2に5と入力して、%fの所に3.400000と表示したいんだけど3.000000と表示されるのは何故?
0488デフォルトの名無しさん
2012/05/17(木) 23:34:15.70×なんでintで割り算してんだ
○なんでint を intで割り算してんだ
0491デフォルトの名無しさん
2012/05/17(木) 23:41:34.86キャスト(だっけ?)について教えてくれますか?
0492デフォルトの名無しさん
2012/05/17(木) 23:54:38.10あとは分かるな
0493デフォルトの名無しさん
2012/05/17(木) 23:54:49.30sizeof(array) / sizeof(*array)
sizeof(array) / sizeof(array[0])
0494デフォルトの名無しさん
2012/05/17(木) 23:58:13.02Just try and you can find out.
0495デフォルトの名無しさん
2012/05/18(金) 00:05:37.700496デフォルトの名無しさん
2012/05/18(金) 01:12:29.68floatは必要に迫られない限り使うのは避けよう。
%fより%gを使おう。
0497デフォルトの名無しさん
2012/05/18(金) 01:27:00.23このケースだと階級毎にカウントとか書いてるんだから
単純にカイ二乗検定すればいいんでしょ
数列のテスト方法は大量にあって、TAOCPはそれだけで一章使ってた気がする
0498デフォルトの名無しさん
2012/05/18(金) 07:50:21.45やはり風呂よりdouble?
>%fより%gを使おう。
これはお勧めできない。%g は値によって出力結果が大幅にかわり事前に予測できないのが非常に問題。
安易につかって破綻し泣ごにょごにょごにょ
0500デフォルトの名無しさん
2012/05/18(金) 09:52:36.050501デフォルトの名無しさん
2012/05/18(金) 11:15:14.49printf("%f, %f\n", 1e10, 1e-10);
printf("%g, %g\n", 1e10, 1e-10);
どっちが自然?
0502デフォルトの名無しさん
2012/05/18(金) 11:18:03.750503デフォルトの名無しさん
2012/05/18(金) 11:19:05.43問題2)大吉 中吉 末吉 吉 凶を表示するおみくじを表示せよ
こんなやつ
0504デフォルトの名無しさん
2012/05/18(金) 11:22:22.34宣伝したいサイトが出てくるまで粘るんだろどうせ
アホはさっさと立ち去れよ
0505デフォルトの名無しさん
2012/05/18(金) 11:28:32.600506デフォルトの名無しさん
2012/05/18(金) 11:34:05.830507デフォルトの名無しさん
2012/05/18(金) 11:34:50.33Project Euler
はやっておくかな
0508デフォルトの名無しさん
2012/05/18(金) 12:15:10.47ttp://www.nslabs.jp/c_pointer.rhtml
0509デフォルトの名無しさん
2012/05/18(金) 12:15:55.70難しいのだと数学的知識がないとどうにもならない
0510デフォルトの名無しさん
2012/05/18(金) 12:25:33.14main.h
struct Images{
int hero;
以下省略
};
main.cpp
int LoadFiles(){
//ファイル読み込み処理をここに書く
g_images.hero = 以下省略
}
とあるんですが、「images.hero」でそのまま使えないんでしょうか?
なぜg_を付けているのか、何の意味があるのか分からないです
0511デフォルトの名無しさん
2012/05/18(金) 12:44:34.07それだけ提示されても何のことやら。めんどくさいから全部貼れ。
ついでに質問もよく判らん。
まぁ、g_で始まっているからにはグローバル変数とでも言いたいのではないかと思うが。
0512デフォルトの名無しさん
2012/05/18(金) 12:52:00.020513デフォルトの名無しさん
2012/05/18(金) 12:57:17.480514デフォルトの名無しさん
2012/05/18(金) 13:16:51.400515デフォルトの名無しさん
2012/05/18(金) 13:54:09.79構造体はただの鋳型
使うにはそこから変数などの形で実体を作る必要がある
たぶんソースのどっかでg_を付けた名前で変数宣言してるだろ?
>>514
おk
0516デフォルトの名無しさん
2012/05/18(金) 15:34:27.50数字の1を入力するだけで戦闘できて、しかも自分のHPは減らない、うは面白www
これで毎日暇潰せるwww
お前ら本当ありがとうwww
しんでくる
0517デフォルトの名無しさん
2012/05/18(金) 16:04:56.62(argvの要素数は4以上あるものとする)
後でその領域を使えるようにしたいです。
void main(int argc, char* argv[]) {
while (argc>3) argv[--argc]=NULL;
}
これでは文字列の内容がちゃんと消去されてないし、
指していたメモリが開放されていないと思うのですが、
正しい方法を教えてください。
0518デフォルトの名無しさん
2012/05/18(金) 16:19:08.24二次元配列を渡す時、受ける側はポインタの配列で受けるのでしょうか。
また、二次元配列を渡す時の実引数は、何を渡したらいいのでしょうか。
0519デフォルトの名無しさん
2012/05/18(金) 16:25:00.64void f(hairetsu2jigen a);
0520デフォルトの名無しさん
2012/05/18(金) 16:31:21.48汎用性のある手段はない。一般的には、メモリ解放を意識する必要もない。
>>518
配列を渡したいのか配列へのポインタを渡したいのか要素へのポインタを渡したいのかはっきりしろ。
つーか、その辺りが判らないなら具体的にやりたいことを書け。
0521デフォルトの名無しさん
2012/05/18(金) 16:33:05.66検索して調べてみた感じだと、
argvがどういうふうに確保されるかは環境依存だから、
freeしようとするのはやめとけって感じでした。
freeしないとしたら空文字列を代入すればいいのかな?
0522デフォルトの名無しさん
2012/05/18(金) 16:34:56.28ありがとう。
逆にいうとargvのために確保された領域が
勝手に他から読まれる心配はしなくていいってことですか?
セキュリティの観点からも気になるんだけど。
0523デフォルトの名無しさん
2012/05/18(金) 16:37:25.05それだったら始めからグローバルな二次元配列を書きます
>>520
上位の関数で二次元配列を宣言して、下位の関数にアドレスを渡して、下位の関数で二次元配列の処理をしたいのです。
0524デフォルトの名無しさん
2012/05/18(金) 16:37:46.05の質問は、
while (argc>3) argv[--argc]=NULL;
と
while (argc>3) argv[--argc]="";
だったらどっちがまとも?
っていう内容です。
0525デフォルトの名無しさん
2012/05/18(金) 16:48:19.960526デフォルトの名無しさん
2012/05/18(金) 17:00:08.05構造体を返そうとしてるつもりなのでしょうか。
そうだとしたら何故return値がvoidなのでしょう。
Cは値渡ししかできないですよね。
もしそうでないとしても、それなら何故仮引数が構造体を指すポインタじゃないのでしょうか。
構造体はreturn出来るから構造体のメンバーに二次元配列を宣言したのでしょうが、何をしたいのかわかりません。
教えてください>>525さん
0527デフォルトの名無しさん
2012/05/18(金) 17:06:44.150528デフォルトの名無しさん
2012/05/18(金) 17:07:58.93二次元配列とか、そこらの本見れば書いてあるだろ。
人のミスにつけこむような、つまんない議論やめれ。
0529デフォルトの名無しさん
2012/05/18(金) 17:10:08.70void f(int a[][2]);
void f(int (*a)[2]);
0530デフォルトの名無しさん
2012/05/18(金) 17:11:44.88自分の無知を棚に上げて挑発的な態度を取っているように見えるのは気のせいか?
0531デフォルトの名無しさん
2012/05/18(金) 17:13:19.55>525じゃないけど答えてみる。
>518では「二次元配列を渡す」と書いてあって二次元配列を参照渡しした意図はどこにも書いてない。
従って、値渡ししている>519のやりたいことは自明。
配列を戻すことを考慮する必要がないのだから、戻り値がvoidなのも至極当然。
0532デフォルトの名無しさん
2012/05/18(金) 17:15:34.500533デフォルトの名無しさん
2012/05/18(金) 17:16:27.80どっちもまともじゃない。
引き数リストは使用しないのなら放っておけばいい。
「勝手に他から読まれる」のは何を想定しているのか判らないが、
それを心配するなら>524のどちらであろうとも全く無意味だ。
0534デフォルトの名無しさん
2012/05/18(金) 17:17:21.17s/参照渡しした意図は/参照渡ししたいとは/
0535デフォルトの名無しさん
2012/05/18(金) 17:25:03.78本買って勉強してきます。
プログラミングの本と常識の本を。
0536デフォルトの名無しさん
2012/05/18(金) 17:33:53.77一転して素直で、今度は人格が心配になる。
まあガンバレ。
0537デフォルトの名無しさん
2012/05/18(金) 17:41:36.590538デフォルトの名無しさん
2012/05/18(金) 17:53:23.75argv[1]=argv[3]
argv[2]=argv[4]
の後に、argv[1]とargv[2]を使った操作
をやるので、argv[3]とかargv[4]
をどっかでいじられると困るわけです。
strcpy使えばいいのか?
0539デフォルトの名無しさん
2012/05/18(金) 17:59:43.92関数に渡すために無駄な心配をしているのなら、
オリジナルのargvを渡さずローカルにコピーしたlocalArgVでも渡せばいいだろうよ。
0540デフォルトの名無しさん
2012/05/18(金) 18:01:49.160541デフォルトの名無しさん
2012/05/18(金) 18:09:53.74勘違いかもしれんが、それだとコピーじゃなくてポインタのすげ替えにしかなってないんじゃね?
たしかに危なっかしいな。
0542デフォルトの名無しさん
2012/05/18(金) 18:15:49.03誰から守ろうとしてるの?
デバッガでアタッチされて改変とかの心配?
0543デフォルトの名無しさん
2012/05/18(金) 18:20:50.50mainを起動した本人以外が文字列の内容を読む心配。
argv[3]='\0'
したところで、argv[3][1]以降に入ってた文字は残骸としてメモリに残ってるんでしょ?
C++だと勝手にデストラクタが発動するからライブラリの責任だけど、
Cだとゼロ埋めとか自分でするの?
0544デフォルトの名無しさん
2012/05/18(金) 18:23:27.19うっとうしかったらすまん。
0545デフォルトの名無しさん
2012/05/18(金) 18:27:59.13main/argvじゃなくてmainCRTstartupをまづ如何にかしようとするべきだな
0546デフォルトの名無しさん
2012/05/18(金) 18:40:57.46やっぱC系はわけがわからんな。危ない橋をわたらされてる感が・・・。
嫌味じゃなくて素朴な疑問なんだけど、不安で夜も眠れないとかならないの?
0547デフォルトの名無しさん
2012/05/18(金) 18:49:20.37自分でゼロ埋めたって、埋める前に読まれたらおしまい
プロセスの保護とかOSの話
言語関係ないだろ
0548デフォルトの名無しさん
2012/05/18(金) 18:55:48.65ふむふむ、argvに関しては納得。
いろいろ見てたら
memset(str,'\0',sizeof(str))
ってのが出てきた。
たしかにゼロ埋めじたいはやるみたいね。
0549デフォルトの名無しさん
2012/05/18(金) 19:00:06.56機会があったら使わせてもらうわ(笑)。
0550デフォルトの名無しさん
2012/05/18(金) 19:09:36.210551デフォルトの名無しさん
2012/05/18(金) 19:10:40.57受け取り側だけどうこうしても片手落ち。
送り側にも手を入れられるのならコマンドライン引数では渡さない。
受け取り側のプログラム差し替えられたらダダモレでしょ?
0552デフォルトの名無しさん
2012/05/18(金) 19:20:07.910553デフォルトの名無しさん
2012/05/18(金) 19:29:29.24入力された金額に対して、最も少ない紙幣と硬貨の数になるように計算せよ。
という課題に取り組んでいるのですが、なかなかうまくいきません。
現状では以下のようにしているのですが何が間違っているのか分かりません。
アドバイスをいただけたら幸いです。
http://codepad.org/JVbJI7BZ
0554デフォルトの名無しさん
2012/05/18(金) 19:40:01.33var d = new Date();
d.getFullYear();
みたいなオブジェクトとメソッドをピリオドで結んだ形で書くのはどうやって書けますか?
%g がいかなるものか正確無比に把握できているのであれば %g を使用すること、%gの方がわかりやすい結果を出力するという事実に依存はない。
しかし、%g が、あるときは固定小数点表示、あるときは浮動小数点表示に切り替わる、その切り替わりタイミングは正確に記述されているのだろうか?
あるいは正確に記述されているとしてパンピーに把握できる内容だろうか?
凡人の私には
http://codepad.org/9vnPdoW3
の結果をあらかじめ予想することは不可能。ましてや自分のコード変更がめぐりめぐってどこぞのコードに影響することなど、把握不可能。
したがって、あるときから素性が比較的わかる %f にしておくのが無難という考え方に組することにしている。
この問題、wsprintf() 等で現実に直面する場合もあると思う。
どこかのだれかがなんの理由かしらないが、すべての実数値に 1e7 をプラスすることにしたために、めぐりめぐって泣ごにょごにょごにょ
0556デフォルトの名無しさん
2012/05/18(金) 19:41:48.00プログラミング以前に、中学・高校あたりの数学からやり直したらどうかな。
あなたは、数学的に物事を考える能力が無いよ。
0557デフォルトの名無しさん
2012/05/18(金) 19:43:06.96「構造体 ドット演算子」でggる
0558デフォルトの名無しさん
2012/05/18(金) 19:44:38.77structのフィールドに関数ポインタぶっこめば可能は可能だけど
結局a.foo(&a);とself/this相当を引数で渡さないといけないアホなことになるw
posix/execv*() 群を使用するとき、「argv を malloc() していいの?malloc() した argv はどうなるの?free() しなくていいの?」とこちらできいたことがある。
答えは、「ほっとけ」。
なぜだろう?
0560デフォルトの名無しさん
2012/05/18(金) 19:50:02.01えっ
質問者本人だけど、まだ見てるから回答ヨロ。
0561デフォルトの名無しさん
2012/05/18(金) 19:59:36.84malloc()したポインタをexec()する先に引き継げるなら別だけど、普通そんなことしない。
従って、exec()した先のプロセスがお亡くなりになるときにOS側に引き取って貰えばいいよ。
0562デフォルトの名無しさん
2012/05/18(金) 20:03:20.63一理あるけど、現代的なプログラミング言語しか触ったことのない俺にとっては、
Cの常識ってお行儀悪いなーって思う。
ただ、それだけ。べつに歯向かおうとは思ってない(笑
0563デフォルトの名無しさん
2012/05/18(金) 20:07:19.56そうか? 実に判り易いと思うが。
6桁で丸めた結果が整数なら小数点を省略する。それだけだ。
まさかとは思うが、製品版のアプリにまで適応する話と思ってないだろうな。
製品版なら、値域を厳密に判断してから出力するからそれこそ適材適所だ。
学習目的で実験的に使うと言う前提だからこそ、必ず小数点以下6桁も0が並ぶ方が不自然だろ。
そうそう、極小値で割った結果をそのままsprintf()で%fを使って出力するプログラムがあったよ。
結果は、スタックを食い潰して落ちる最悪なものだったがね。
0564デフォルトの名無しさん
2012/05/18(金) 20:09:22.40それはあんたが低レベルの振る舞いに慣れていないからだろ。
システムコールを直接扱おうとしたらその手の問題にはしばしば直面するぞ。
0565デフォルトの名無しさん
2012/05/18(金) 20:14:02.96それは自覚している。
ハイレベルのことだけやってて困らない。
だから唯一困るのがargvとかIOまわりなんだよね。
そこでどうしてもCと相互作用しないといかんくて。
これから勉強しようと思うんだ。
ヘネシー・パターソンとか読めばいい?
製品でなくても
>値域を厳密に判断してから出力するからそれこそ適材適所だ
に深く同意します。
0567デフォルトの名無しさん
2012/05/18(金) 20:39:05.78確かに、私は数学が苦手で数学的に考える能力は乏しいです。
おっしゃる通り、プログラミング以前の問題だと思います。
しかし、学校の授業の関係でやらなければならないので困っております。
また、これからもこの課題の考え方が必要になってくると思うので
この掲示板に書き込みさせてもらいました。
0568デフォルトの名無しさん
2012/05/18(金) 20:42:19.300569デフォルトの名無しさん
2012/05/18(金) 20:43:54.330570デフォルトの名無しさん
2012/05/18(金) 20:45:47.61ワロタ
「どこですか?」ってきそうw
>極小値で割った結果をそのままsprintf()で%fを使って出力するプログラムがあったよ。
%f といえども大きいほうには無限にひろがるから‥‥
0572デフォルトの名無しさん
2012/05/18(金) 20:57:46.860573デフォルトの名無しさん
2012/05/18(金) 21:01:43.210574デフォルトの名無しさん
2012/05/18(金) 21:05:16.20strcpy(argv[1],argv[3])
って普通にヤバイじゃんw
argv[1]=argv[3]
でargv[3]を消さずに放置するのが正解だな。
このスレ的にはargvをいじるなボケ、という感じだろうが、許してくれぃ。
0575デフォルトの名無しさん
2012/05/18(金) 21:05:52.40ttp://codepad.org/aIaYJhvH
0576デフォルトの名無しさん
2012/05/18(金) 21:07:19.700577デフォルトの名無しさん
2012/05/18(金) 21:08:06.12宿題スレに丸投げしたら答えだけ分かりそうで、意味は理解できない
かなと思ったのでこちらに書きましたが、556さんの言う通り数学的
思考力がないと意味がない気がしてきました・・・。
>>569
ありがとうございます。割り算を使ってこれから試行錯誤してみます。
0578デフォルトの名無しさん
2012/05/18(金) 21:09:40.370579デフォルトの名無しさん
2012/05/18(金) 21:28:30.62誤爆かと思ったら553からかw
0580デフォルトの名無しさん
2012/05/18(金) 21:43:54.34一般のC言語入門の本を読んでも全くわかりません。
何を学べばいいですか。
0581デフォルトの名無しさん
2012/05/18(金) 21:46:15.520582デフォルトの名無しさん
2012/05/18(金) 21:58:35.09組み込み系の良い教材になるよ
0583デフォルトの名無しさん
2012/05/18(金) 22:16:22.63その本は持ってますが、入門書とその本とのギャップが大きすぎてサッパリ。
その間のギャップを埋めるにはどうしたらいいでしょうか。
0584デフォルトの名無しさん
2012/05/18(金) 22:33:17.86リンカとかローダあたりの知識もあったほうがいいなそれはエキスパートCプログラミングあたりに書いてあった気がする
グラフィック処理はインデックスカラー形式だからそれはファミコンのプログラミングとか調べたら分かるかもしれない
あとはネット上でサンプルコードを漁ったり試行錯誤するといいんじゃね
0585デフォルトの名無しさん
2012/05/18(金) 23:23:46.91ネットは浅く広過ぎ。
0586デフォルトの名無しさん
2012/05/18(金) 23:26:07.870587デフォルトの名無しさん
2012/05/18(金) 23:27:10.640588デフォルトの名無しさん
2012/05/18(金) 23:27:36.540589デフォルトの名無しさん
2012/05/18(金) 23:32:07.93体系的に教えているサイトは浅い。
深い事載せてるサイトは、単にユーザーが気になって
実験してみました的な事。
定説的に深い事言ってるサイトって無い。
0590デフォルトの名無しさん
2012/05/18(金) 23:35:28.310591デフォルトの名無しさん
2012/05/18(金) 23:40:54.52だいたいネットに情報載せたら本売れなくなるじゃん。
専門的な事や創造的な事はネットに書くわけ無い。
0592デフォルトの名無しさん
2012/05/18(金) 23:41:09.110593デフォルトの名無しさん
2012/05/18(金) 23:41:41.000594デフォルトの名無しさん
2012/05/18(金) 23:44:00.070595デフォルトの名無しさん
2012/05/18(金) 23:49:57.57宿題スレにて、http://toro.2ch.net/test/read.cgi/tech/1335517816/497 が末尾再帰でないとの指摘があり、いろいろと考えていました。
思うに、http://toro.2ch.net/test/read.cgi/tech/1335517816/505 を理由に末尾再帰でない、ということになれば、よくある階乗の再帰関数
int f(int n) {
return (n == 0) ? 1 : n * f(n - 1);
}
ですら末尾再帰ではないことになるのでしょうか?
末尾再帰であるために
int f(int n, int i, int p) {
return (n == i) ? p : f(n, i + 1, p * (i + 1));
}
http://codepad.org/OSvQa0ni
と書かねばならないのでしょうか?
主観的な表現になりますが、なんだかつまらなくなってしまいました。
コメントをいただけるとうれしいです。よろしくお願いいたします。
0597デフォルトの名無しさん
2012/05/19(土) 00:30:30.91組み込み系の専門書読んだけど10pくらいで挫折した。
もっと分かりやすく書いて欲しいな。
0598デフォルトの名無しさん
2012/05/19(土) 00:35:48.28アホスwww
0599デフォルトの名無しさん
2012/05/19(土) 00:44:08.100600デフォルトの名無しさん
2012/05/19(土) 03:22:05.75>int f(int n) {
>return (n == 0) ? 1 : n * f(n - 1);
>}
>
>ですら末尾再帰ではないことになるのでしょうか?
末尾再帰では有りません。
「ループに変換可能か」と言うより
「ジャンプ最適化可能か」です。
なお、c言語では末尾再帰最適化を行わない処理系も多いので、
処理系依存度を下げたいなら、末尾再帰に拘る必要は有りません。
>末尾再帰であるために
>
>int f(int n, int i, int p) {
>return (n == i) ? p : f(n, i + 1, p * (i + 1));
>}
>http://codepad.org/OSvQa0ni
>と書かねばならないのでしょうか?
Yes。
ただしgccなどの一部の処理系では上記部分を関数内関数で書けるので、
呼び出し側からはint f(int n)で済ませることが出来ます。
>「ループに変換可能か」と言うより「ジャンプ最適化可能か」です。
call A
end
A:
...
ret
...
call A
ret
ならば
A:
...
ret
....
jmp A
になるということですか。昔、せこいことに call A / A: ... call B ret / B: ..... call C ret / C: ... ret を call A / A .. jmpB / B: ... jmp C / C: ... ret にしていた、というやつですね。
もう少し考えて見ます。コメントありがとうございました。
0602デフォルトの名無しさん
2012/05/19(土) 08:28:12.590603デフォルトの名無しさん
2012/05/19(土) 08:55:21.96>>553は日本語もやり直した方が良いひとだろ。
質問をお願いしますとか…
0604デフォルトの名無しさん
2012/05/19(土) 08:56:32.25まずは任天堂と開発者ライセンスの契約を結ぶところからかなー
0605デフォルトの名無しさん
2012/05/19(土) 09:25:04.60Schemeの継続の考え方が参考になると思う。
0606デフォルトの名無しさん
2012/05/19(土) 09:39:58.58ありがとうございました。
ただそういった知識を身に付けても、例えばDSだったりPSPだったり
対象が変わるとまたARM9とかMIPSとか調べないといけないですよね?
C言語というのは文法とか構文みたいなのは同じでもそういう
ハードウェアの知識が必要なのですか?
コメントありがとうございます。
0608デフォルトの名無しさん
2012/05/19(土) 09:47:21.70Cを使うのはあまりにも生産効率が悪すぎる。
0609デフォルトの名無しさん
2012/05/19(土) 09:52:41.35C言語自体は本当に言語としての土台の部分しか規定してない
その土台の上に何が乗っかるかで学ぶべきことが変わるなんてザラよ
とは言え、その土台がしっかり出来てりゃ乗っかるモノが変わっても対応しやすいけどね
0610デフォルトの名無しさん
2012/05/19(土) 09:53:53.23それの使い方調べればハードのこと考えなくても作れた気がするけど
0611デフォルトの名無しさん
2012/05/19(土) 10:33:52.66int main(void)
{
char h1[4][3] = {"あ","い","あ","い"};
char h2[2][3] = {"い","あ"};
int a=2,b=1;
if(h1[a]==h2[b]){
printf("成功! [%s],[%s]",h1[a],h2[b]);}
else{
printf("失敗! [%s],[%s]",h1[a],h2[b]);}
return 0;
}
配列使って文字の比較やりたいんだけど
エラーはでないものの「あ」「あ」の組み合わせでも
「失敗!」になってしまって困ってます。
配列使っての文字の比較ってどうすればいいでしょうか?
0612デフォルトの名無しさん
2012/05/19(土) 10:37:45.53==で比較したらだめだよ
アドレスの比較になってしまう
strcmp()で比較しないと
0613デフォルトの名無しさん
2012/05/19(土) 11:06:54.44結局それはC言語自体ではないと思う
0615デフォルトの名無しさん
2012/05/19(土) 12:13:44.150616デフォルトの名無しさん
2012/05/19(土) 12:19:45.04気に入らん。もう一度やれ!
0617デフォルトの名無しさん
2012/05/19(土) 12:22:01.620618デフォルトの名無しさん
2012/05/19(土) 12:36:07.42ばかじゃねーの
0619デフォルトの名無しさん
2012/05/19(土) 12:43:29.52お前が作るコンソールプログラムこそが役に立たないんだろw
0620デフォルトの名無しさん
2012/05/19(土) 14:35:45.26#include <stdio.h>
#include <stdlib.h>
int main(void) {
char *ip;
ip = getenv("REMOTE_ADDR");
printf("%s\n", ip);
return 0;
}
において(null)しか返ってこないのですが環境によって動作しない事もあるのですか?
0621デフォルトの名無しさん
2012/05/19(土) 15:15:10.25ハードの詳細な仕様書があってもライブラリが無いから使えないって言いそうなやつだな。
0622デフォルトの名無しさん
2012/05/19(土) 15:22:57.83>REMOTE_ADDR
>REMOTE_ADDRは、アクセス元のIPアドレスを表します。
>つまりあなたのホームページやCGIに対してアクセスした人がつかんでいるIPアドレスです。
httpサーバー経由の実行でもなきゃNULLが普通じゃね?
0623デフォルトの名無しさん
2012/05/19(土) 15:41:40.09単に”IPを取得する”ものだと勝手な先入観で思い込んでしまっていました
ありがとうございます
ちなみにC言語において実行元のIPを取得する関数は存在しますか?
0624デフォルトの名無しさん
2012/05/19(土) 15:49:55.99これが全くもって意味不明なんだが
0625デフォルトの名無しさん
2012/05/19(土) 15:50:05.730626デフォルトの名無しさん
2012/05/19(土) 16:00:42.47表現に悩みましたが、実行者のIPで伝わるのかな
0627デフォルトの名無しさん
2012/05/19(土) 16:06:09.03HTTPとかネット関係とか
そっちの方をやった方が良いだろコイツ
今のままじゃあ話なんて通じねーよ
ムダだよ
0628デフォルトの名無しさん
2012/05/19(土) 16:19:26.860629デフォルトの名無しさん
2012/05/19(土) 16:47:38.18IPアドレス持つにはTCP/IPプロトコルが必要。
TCP/IPプロトコルの無いハードなんていくらでもある。
0630デフォルトの名無しさん
2012/05/19(土) 16:58:18.340631630
2012/05/19(土) 17:01:14.050632デフォルトの名無しさん
2012/05/19(土) 17:06:16.64普段>>630はどんなエディタ使ってるんだろ
0633デフォルトの名無しさん
2012/05/19(土) 17:07:43.29調べて意味を理解できました、ありがとうございます
指摘通りネットワークの知識が薄いみたいなんで勉強してきます
つコンパイラ
0635デフォルトの名無しさん
2012/05/19(土) 17:47:23.610636デフォルトの名無しさん
2012/05/19(土) 21:21:40.19そうですか?あいもかわらず冷たいと思っています、C がわからなければ人じゃない、っていう雰囲気はいつまでも払拭されない、という気が。
0637630
2012/05/19(土) 21:49:40.05秀丸
vimとemacsは難しすぎてエディタの使い方を覚えないといけないから時間がかかります
geditは機能が足りないので不満です
そこで秀丸にある機能で自分で使いたいものを自分で実装して使いたいんです
0638デフォルトの名無しさん
2012/05/19(土) 21:54:48.550639デフォルトの名無しさん
2012/05/19(土) 21:57:02.97中学の時点でC言語の理解は難しいでしょうか?
日本で小学校高学年や中学生でC言語というかプログラミングやってる
人は少ないですか?周りにいないので。
0640デフォルトの名無しさん
2012/05/19(土) 21:59:13.83でもポインタとか構造体を使うにはちょっと難しいかもな
高校生になればだいたいできると思う
しかし小学生でプログラム組んでた奴もいるから結局は個人差か
0641デフォルトの名無しさん
2012/05/19(土) 21:59:16.77部活やったり友達と遊んだりする事に時間を使え
0642デフォルトの名無しさん
2012/05/19(土) 22:03:45.81CDブートのknoppixをUSBから起動させれば
あなたもたちまちCマスターどころかイッパシのハカーになれます
はっきりいって年齢は関係ありません
適性だけです
0643デフォルトの名無しさん
2012/05/19(土) 22:11:26.13学生なら部活やら人付き合いやら勉強やら資格の勉強やらに費やすべき
プログラミングなんかやったって受験で有利になるわけでも良い会社に入れるわけでも
出世競争で有利になるわけでも金が儲かるわけでもなんでもない
プログラミングに時間を費やすというのは完全に人生をドブに捨てるのと同じで愚かな行為
受験勉強を頑張りなさい
0644デフォルトの名無しさん
2012/05/19(土) 22:12:18.29うざいです><
0645デフォルトの名無しさん
2012/05/19(土) 22:24:33.13だったら自分で新しいエディタ書くよりpythonでgeditプラグイン書いたほうが速いと思うが
先輩たちがここにいるよ。
当時の話をきくと面白いかもしれないよ。
http://ikura.2ch.net/test/read.cgi/i4004/1334408350/
0647デフォルトの名無しさん
2012/05/19(土) 22:47:19.05オッサンは嫌
0648デフォルトの名無しさん
2012/05/19(土) 22:49:07.440649デフォルトの名無しさん
2012/05/19(土) 22:50:01.57モチベーション維持が極めて難しいということだな。
そこさえ乗り越えられれば何歳だろうと習得は簡単。
0650デフォルトの名無しさん
2012/05/19(土) 22:51:50.760651デフォルトの名無しさん
2012/05/19(土) 23:08:14.061〜40までの整数があって
1〜20を白、21〜40を赤
みたいにしたいとき、
1〜20 の ”〜”の部分は
どう表現すればいいんですか?
0652デフォルトの名無しさん
2012/05/19(土) 23:08:43.52ちがうんじゃねーの?
Cで出来ることがほとんどやりつくされてるからじゃね
デガラシいじくりまわしても楽しくないじゃん
0653デフォルトの名無しさん
2012/05/19(土) 23:25:18.64・覚えるのは 止めた方がいいですか?
どっちなのかと。
0654デフォルトの名無しさん
2012/05/19(土) 23:27:22.88あなたの質問は、if文の条件の書き方を知りたいと言うことですか?
でとすれば、if (整数 >= 1 && 整数 <= 20) 白();のようにすればよろしいかと。
0655デフォルトの名無しさん
2012/05/19(土) 23:27:59.05>1〜20 の ”〜”の部分は
>どう表現すればいいんですか?
「波線」。
0656デフォルトの名無しさん
2012/05/19(土) 23:41:55.43ありがとうございます!
>>655
勉強になりましたwww
0657デフォルトの名無しさん
2012/05/20(日) 00:25:16.230658デフォルトの名無しさん
2012/05/20(日) 00:49:25.18いやお前に言ってないからwww
0659デフォルトの名無しさん
2012/05/20(日) 00:55:35.760660デフォルトの名無しさん
2012/05/20(日) 01:10:07.47誰にも言ってないんですけど
0661デフォルトの名無しさん
2012/05/20(日) 03:56:57.85>657 が壁に向かって言ってるんだろ。
0662デフォルトの名無しさん
2012/05/20(日) 03:59:53.210663デフォルトの名無しさん
2012/05/20(日) 07:15:58.09ソフトバンクがシリーズ展開
iPad 向けアプリ「赤松先生のIT講座シリーズ」の第1弾としてリリースされたのは、『速解C 60分でわかる「構造体」「ポインタ」』(1500円、発売記念価格800円)。
http://markezine.jp/article/detail/11865
http://static.shoeisha.jp/mz/static/images/article/11865/11865.jpg
0664デフォルトの名無しさん
2012/05/20(日) 08:19:55.810665デフォルトの名無しさん
2012/05/20(日) 08:23:16.860666デフォルトの名無しさん
2012/05/20(日) 10:34:29.62そこで動画公開してる低レベル野郎のステマか?
0667デフォルトの名無しさん
2012/05/20(日) 10:51:41.38それこそドットインストールがどうこうって、ソフトバンクのステマかっての。
0668デフォルトの名無しさん
2012/05/20(日) 12:00:05.03役立つ言語がもしあると今度は立場がなくなるやつが何か吠えてるなw
0669デフォルトの名無しさん
2012/05/20(日) 12:10:49.110670デフォルトの名無しさん
2012/05/20(日) 19:20:02.560672デフォルトの名無しさん
2012/05/20(日) 20:15:42.94総合的な質問スレってありませんか?
0674デフォルトの名無しさん
2012/05/20(日) 20:57:23.25ここが総合的な質問スレに見えるならそういうことにしておけ
0675デフォルトの名無しさん
2012/05/20(日) 21:53:35.00{return ((double)(rand()%(int)((MAX-MIN+1)*POINT))+MIN)/POINT;}
実数の乱数を返す関数を作りましたが思ったような動作を行いません
記述を間違えているのでしょうか
POINTは10^4くらいです
0676デフォルトの名無しさん
2012/05/20(日) 21:56:40.57(MAX-MIN)*rand()/RAND_MAX+MIN;
0677デフォルトの名無しさん
2012/05/20(日) 22:01:51.280から1までの乱数を生成して、大きさ(MAX-MIN)をかけMINの分を底上げするんですね
助かりましたありがとうございます
fgetc(), fputc() は使っていいかい?
すいませんが、習い始めで
getcharを習い出したばっかりで、
ちなみに自分で作った文だとデバッグエラーが出るんです。
#include<stdio.h>
int main(void)
{
int rot;
while(rot >= 'a'&&rot <= 'z')
{
if('a'<=rot && rot<='m')
rot = rot+13;
else
if('n'<= rot && rot<='z')
rot = rot-13;
}
return 0;
}
こんな感じです。
>自分で作った文だとデバッグエラーが出るんです。
「デバッグエラー」、というのは具体的にどんな状態になるのかな?なにかメッセージがでるとか。
Program: C:\Users\名前
\Desktop\ROT13\Debug\ROT13\.exe
Module: C:\Users\名前
\Desktop\ROT13\Debug\ROT13.exe
File:
Run-Time Check Failure #3-The cariable'rot'is being used
without being initialized.
(Press Retry tu debug the application)
っていう表示のウィンドウが出ます。。。。
0685デフォルトの名無しさん
2012/05/21(月) 02:48:58.170686デフォルトの名無しさん
2012/05/21(月) 02:49:16.73hello world の表示は出来た?
0688デフォルトの名無しさん
2012/05/21(月) 02:56:07.55そりゃそうだろ
>>682はrotの入出力やってないもん
でもエラー出なくなったろ?
>>684のエラーはそういう意味
どこかで入出力文があれば初期化も不要なはずなんだが
それは rot に値がはいっていないよ、ってことですね。
たしかに、>>682 では rot の値がきまっていない。(rot をどう処理するかはかいてあっても。)
で rot に値をいれればいいのですが、どんな感じにしますか?getchar() で標準入力から掘り込み、printf() で表示するとかが適当だとおもいますけど。
なにか希望があれば教えてください。
あとプログラムを作成している環境(コンパイラの種類とか)もわかるのなら教えてください。もしかして web でやっているのでしょうか?
#include<stdio.h>
int main(void)
{
int rot;
while(rot >= 'a'&&rot <= 'z')
{
printf("%c\n",rot);
if('a'<=rot && rot<='m')
rot = rot+13;
else
if('n'<= rot && rot<='z')
rot = rot-13;
}
return 0;
}
これでprintfを足したんですが、同じエラー文?が出ました。
0692デフォルトの名無しさん
2012/05/21(月) 03:13:10.20プログラム云々の前にチラシの裏にでも理解出来たと思う部分を書き出してみて
自分の頭ん中をデバッグするところから始めるべき
0693デフォルトの名無しさん
2012/05/21(月) 03:15:07.11あと任せた
寝る
0694デフォルトの名無しさん
2012/05/21(月) 03:17:06.88最後に一つだけ
「入出力文」と書いたのは悪かった
「入力文」の方が正しいな
エラーの理由はrotを初期化しないでいきなり
while(rot >= 'a'&&rot <= 'z')
なんてやってるから undefined、つまり「鼻から悪魔が出てきても知りませんよ」という事
http://ideone.com/0H11v
一文字しかできませんが、手始めにこんなのはどうですか?
/* 1 */ と /* 3 */ で入力、/* 2 */ で出力しています。
あと rot13 の処理が「実は」正しくないですね。
日食までがんばりませんか?
int main(void)
{
int rot,loop;
loop = 1;
scanf("%c\n",&rot);
while(loop <=100)
{
if('a'<=rot && rot<='m')
rot = rot+13;
else
if('n'<= rot && rot<='z')
rot = rot-13;
scanf("%c\n",&rot);
}
return 0;
}
ここまでいったんですが、+13とか-13がされません。。。
プログラムが出来ました。
ありがとうございました。
#include<stdio.h>
int main(void)
{
int rot,loop;
loop = 1;
while(loop <=100)
{
scanf("%c",&rot);
if('a'<=rot && rot<='m')
rot = rot+13;
printf("%c",rot+13);
if('n'<= rot && rot<='z')
rot = rot-13;
printf("%c",rot-13);
}
return 0;
}
手が加わったのはいい感じです。
rot13 の処理に問題はありますが、とりあえず >>697 に沿って動くように訂正すると
http://codepad.org/ikiHqIJW
scanf("%c\n", &rot)
の rot は
char rot;
でないとうまくうごきません。
int rot;
だと'c' を入力したつもりでも、実は場合によっては rot が 'c' にならないことがあるのです。
ありま?
でも、それ、うごいているようにみえるのは偶然ですよ、たぶん。
int rot;
じゃなくて
char rot;
じゃないと‥‥‥
0702デフォルトの名無しさん
2012/05/21(月) 04:15:12.14>変な文字まで現れて・・・
X printf("%c",rot+13);
O printf("%c",rot);
X scanf("%c",&rot);
O scanf(" %c",&rot);
0704デフォルトの名無しさん
2012/05/21(月) 04:54:51.59今のソースをそのままideoneに貼れ。
0705デフォルトの名無しさん
2012/05/21(月) 07:57:55.850706デフォルトの名無しさん
2012/05/21(月) 07:58:49.830707デフォルトの名無しさん
2012/05/21(月) 09:54:53.680708デフォルトの名無しさん
2012/05/21(月) 12:29:33.32A1:
Q2:一番早いソートアルゴリズムは何ですか?
A2:
0709デフォルトの名無しさん
2012/05/21(月) 12:36:56.48A1: 俺が書いたコード ←禁止。
A2: 適材適所 ←禁止。
0710デフォルトの名無しさん
2012/05/21(月) 15:31:25.04int m,n,tmp
//m,nに対する入力は省略。m≧nとする。
while(n!=0){
tmp=m%nセミコロン
m=nセミコロン
n=tmpセミコロン
}
0711デフォルトの名無しさん
2012/05/21(月) 15:33:57.25新種のアホか?
新手のバカか?
0712デフォルトの名無しさん
2012/05/21(月) 15:34:52.92こういう奴はウザいから書き込むな
0713デフォルトの名無しさん
2012/05/21(月) 15:36:45.06だってさ
ユークリッド互除法の実装なんて些事はどうでもいいってさ
0714デフォルトの名無しさん
2012/05/21(月) 15:39:04.80アルゴリズムは擬似プログラムなんだから手順すらわかればいい
それをちゃんと動くように書き換えるのは読んだ人の仕事
0715デフォルトの名無しさん
2012/05/21(月) 15:41:23.50最初はつの関数だけ実装できればいいです
hello()って関数を実行したらHello Worldを返すプログラムが作りたいです
0716デフォルトの名無しさん
2012/05/21(月) 15:42:11.940717デフォルトの名無しさん
2012/05/21(月) 15:45:40.85コマンドラインからhello.spl(hello.splの内容はhello()だけ)
0718デフォルトの名無しさん
2012/05/21(月) 16:00:43.00自分で作れ
0719デフォルトの名無しさん
2012/05/21(月) 16:14:26.20つの関数ってなんですか?
0720デフォルトの名無しさん
2012/05/21(月) 18:05:58.770721デフォルトの名無しさん
2012/05/21(月) 18:08:08.730722デフォルトの名無しさん
2012/05/21(月) 19:15:14.110723デフォルトの名無しさん
2012/05/21(月) 23:29:59.74このような?を使った文で、どちらか片方を省略(この場合は:右側のmax)
することはできないのでしょうか?何か効率のいいやり方ありませんか?
0724デフォルトの名無しさん
2012/05/21(月) 23:32:51.22まずはその?を使った文とやらは
ホントはなんて言うのか
そこら辺から自力で調べろよアホ
教科書少しも呼んでないだろ
0725デフォルトの名無しさん
2012/05/21(月) 23:44:52.210726デフォルトの名無しさん
2012/05/21(月) 23:47:04.550727デフォルトの名無しさん
2012/05/21(月) 23:53:09.91それ宿題スレのだろ
limits.hが使えればINT_MINなどあり得ない最小値を代入しておいて
前の値と今の値を比べて大きければ今の値を代入すれば三項演算子は不要になる
0728デフォルトの名無しさん
2012/05/21(月) 23:58:02.73頭使えよ
0729デフォルトの名無しさん
2012/05/22(火) 00:01:16.440730デフォルトの名無しさん
2012/05/22(火) 00:09:05.99素直に
if (ar[i] > max) max = ar[i];
が効率は一番いいだろ
>>727
max = ar[0];
で初期化でいいじゃん
0731デフォルトの名無しさん
2012/05/22(火) 00:24:36.89わざと読みにくいプログラムにしたんじゃね?
書きようによっては何をやっているのか全く分からないプログラムも書けるww
それを宿題の答えとして提出させてやろうぜ
0732デフォルトの名無しさん
2012/05/22(火) 04:07:24.30int ar[10]={0};
int max = ar[0], i = 0, end = 10;
while(++i < end) ar[i] > max ? max = ar[i] : 0;
return 0;
}
0733デフォルトの名無しさん
2012/05/22(火) 05:18:14.790734デフォルトの名無しさん
2012/05/22(火) 11:22:34.55ture==1 環境
int f;
f = ar[i] > max;
max= ar[i]*f + max*(!f);
ture==-1 環境
int f;
f = ar[i] > max;
max= (ar[i]&f) | (max & (!f));
0735デフォルトの名無しさん
2012/05/22(火) 11:25:43.960736デフォルトの名無しさん
2012/05/22(火) 11:30:30.08tureだぞture
「true」じゃあああああああ無いんだ、
tureだ
真偽値に「ture」なる「何か」を用いる「環境」だ
0737デフォルトの名無しさん
2012/05/22(火) 11:36:42.900738デフォルトの名無しさん
2012/05/22(火) 11:45:50.30PRINT 1=1
は
-1
と表示されたな。
0739デフォルトの名無しさん
2012/05/22(火) 12:04:04.11N-BASIC
0741デフォルトの名無しさん
2012/05/22(火) 12:35:03.020742デフォルトの名無しさん
2012/05/22(火) 14:33:57.44CPUの比較命令使って出てくるのは0か1であって
1だったら、わざわざ-1にするっていう文が加わってるの?
0743デフォルトの名無しさん
2012/05/22(火) 14:35:13.27変わったCPUですね
0744デフォルトの名無しさん
2012/05/22(火) 14:37:28.31ここにいる人たちのエスパー力凄い
ありがとうございました
0745デフォルトの名無しさん
2012/05/22(火) 14:46:10.720746デフォルトの名無しさん
2012/05/22(火) 15:21:21.06方向キーで左右に「人」が動くのを作ったのですが
右に入力し続けると「人」の文字が消えるのを直すことが出来なくて困っています、
どう直せばいいでしょうか?
0747デフォルトの名無しさん
2012/05/22(火) 15:23:45.79{
wx++;
}
0748デフォルトの名無しさん
2012/05/22(火) 15:26:01.50アセンブラ使った事がないのがだだ分かりだな
フラグ知らないだろ
0749デフォルトの名無しさん
2012/05/22(火) 15:29:16.57gcc -S でもしてみろ。
0750デフォルトの名無しさん
2012/05/22(火) 16:15:45.90稀に見るアホ
0751デフォルトの名無しさん
2012/05/22(火) 16:19:00.960752デフォルトの名無しさん
2012/05/22(火) 16:20:00.150753デフォルトの名無しさん
2012/05/22(火) 16:21:59.96二次元配列を受けるとき、二次元配列は配列へのポインタで受けるということもわかりました。
ただ、二次元配列のアドレスを渡す時、funk()の実引数にアンパサンドをつけないのはどうしてでしょうか。
また、配列名にアンパサンドをつけて渡したあと、受ける側のポインタを操作するとセグメンテーションフォールトになり、コンパイラもエラーを吐きます。
教えてください。よろしくお願いいたします。
0755デフォルトの名無しさん
2012/05/22(火) 16:24:59.01「自己紹介乙」とは言うに事欠いて自分の無能をさらけ出すIQ0の言葉ともしらない白痴発見
0756デフォルトの名無しさん
2012/05/22(火) 16:26:00.92配列へのポインタを取り出すには(&)は必要ないよ
というか付けない癖を付けた方がよい
0757デフォルトの名無しさん
2012/05/22(火) 16:31:59.38後は書いてりゃ慣れる
0759デフォルトの名無しさん
2012/05/22(火) 16:45:57.820760デフォルトの名無しさん
2012/05/22(火) 16:48:11.810761デフォルトの名無しさん
2012/05/22(火) 17:25:05.82BASICの場合、環境次第で論理演算とビット演算の区別が
文脈依存だったりそもそも無かったりするから
真値の代表は「全ビット1」としてたほうが都合良いんじゃね
0763デフォルトの名無しさん
2012/05/22(火) 21:50:45.25例えば
void func(char a[][5]);
char a[3][5];
という宣言があった場合、funcを呼ぶときは
func(a);
でよい。
配列名のみは&a[0]と同じ意味になるから、これで型は合っている。
この時の実引数、仮引数の型は char(*)[5]。
上記の宣言で
func(&a);
を渡してしまうと実引数の型はchar(*)[3][5]となってしまう。
警告は出るだろうけど、エラーになるかな?
0764デフォルトの名無しさん
2012/05/22(火) 22:39:12.38それコンパイル通らないっしょ
char(*)[3][5]は3次元配列へのポインタになってしまわないか
0765デフォルトの名無しさん
2012/05/22(火) 22:40:00.090766デフォルトの名無しさん
2012/05/22(火) 22:45:17.000767デフォルトの名無しさん
2012/05/22(火) 22:45:41.600768デフォルトの名無しさん
2012/05/22(火) 23:02:03.920769デフォルトの名無しさん
2012/05/22(火) 23:06:26.27やっぱ警告は出るけど、エラーにはならないし、実行も問題なさそうです。
どんなコードを書いてますか?
# include <stdio.h>
void func(char a[][5])
{
puts(a[0]);
puts(a[1]);
puts(a[2]);
}
int main (void)
{
char a[3][5] = {
"0123", "4567", "89ab"};
func(a);
puts("===============");
func(&a);
return 0;
}
0770デフォルトの名無しさん
2012/05/22(火) 23:23:59.61{
printf("In func() %p %p %p\n", a[0], a[1], a[2]);
}
int main(void)
{
char a[3][5];
printf("In main() %p %p %p\n", a[0], a[1], a[2]);
func(&a[0]);
return 0;
}
例えばこれはコンパイル時警告が出るし(ポインタの非互換)実行結果がおかしい
0771デフォルトの名無しさん
2012/05/22(火) 23:24:15.23{
printf("In func() %p %p %p\n", a[0], a[1], a[2]);
}
int main(void)
{
char a[3][3][5];
printf("In main() %p %p %p\n", a[0], a[1], a[2]);
func(&a[0]);
return 0;
}
これならちゃんとコンパイルできて実行結果も正しい
0772デフォルトの名無しさん
2012/05/22(火) 23:28:55.11コンパイルされたネイティブに安全も糞もないと思う
実行速度はVCの方が最適化を念入りにするので大抵速いと思うけど
Intel C++ならもっと速くなると思う
0773デフォルトの名無しさん
2012/05/22(火) 23:36:01.81タダがいいならmingw-gccのほうがいいと思うよ
0774デフォルトの名無しさん
2012/05/22(火) 23:42:01.670775デフォルトの名無しさん
2012/05/22(火) 23:44:52.840776デフォルトの名無しさん
2012/05/23(水) 05:20:49.07void func(int (*p)[3], int (*q)[3], int (*r)[3])
{
int i, j, k;
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
for (k = 0; k < 3; k++)
*(((*r + i)) + j) += *((*(p + k)) + i) * *((*(q + j)) + k);
}
int main(void)
{
int ary1[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
};
int ary2[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
};
int answer[3][3] = {0};
func(ary1, ary2, answer);
return 0;
}
0777デフォルトの名無しさん
2012/05/23(水) 05:24:44.42void func(int (*p)[3], int (*q)[3], int (*r)[3])
{
int i, j, k;
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
for (k = 0; k < 3; k++)
*(((*r + i)) + j) += *((*(p + k)) + i) * *((*(q + j)) + k);
}
int main(void)
{
int ary1[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
};
int ary2[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
};
int answer[3][3] = {0};
func(&ary1, &ary2, &answer);
return 0;
}
実引数にアンパサンドをつけて渡すと、セグメンテーションフォールトになります。
渡している側と受ける側の型が違うのですか。ありがとうございます。
難しいです。実際に&配列名でどのアドレスが渡っているのか調べてみようと思います。
0778デフォルトの名無しさん
2012/05/23(水) 05:27:59.160779デフォルトの名無しさん
2012/05/23(水) 07:20:28.46777もセグメンテーション違反にならなかったよ。
警告は出たけどね。
0780デフォルトの名無しさん
2012/05/23(水) 07:25:29.62なんでやねん。
0781デフォルトの名無しさん
2012/05/23(水) 07:30:02.500782デフォルトの名無しさん
2012/05/23(水) 11:20:35.50http://codepad.org/lJEUVnq0
配列aから配列bを探して
b=>cde //例
位置2
位置13
件数は2
と表示したいです
どこが間違いか教えてください お願いします
0783デフォルトの名無しさん
2012/05/23(水) 11:39:06.73while((p=strstr(p,b)!=NULL) {
printf("位置 %d\n",p-a);
p++;
ct++;
}
0784デフォルトの名無しさん
2012/05/23(水) 11:39:55.920785デフォルトの名無しさん
2012/05/23(水) 11:41:29.03間違いを理解させないと意味がない
0786デフォルトの名無しさん
2012/05/23(水) 11:41:58.84while(i+bl<strlen(a)){
とか
if(memcmp(a+i,b,bl)==0){
とか
printf("位置 %d\n",i);
など
0787デフォルトの名無しさん
2012/05/23(水) 11:47:41.27何これ、間違い探しならぬ、使えるところ探し?
0788デフォルトの名無しさん
2012/05/23(水) 11:51:20.00あとポインタはまだ使えません、すみません
0789デフォルトの名無しさん
2012/05/23(水) 11:54:51.12strstr()関数の引き数はポインタなのだけど、それを使えないとなると
strstr()関数を使うのは不可能だなぁ。
そもそも、宿題なら宿題スレへ。
0790デフォルトの名無しさん
2012/05/23(水) 12:33:56.420791デフォルトの名無しさん
2012/05/23(水) 14:05:54.28コンパイラに明らかなバグがあれば危険だろうけどまずそれはないから
ネイティブに安全も糞もないのはBCCであろうとVCであろうと、システムを
破壊するようなプログラムを作って走らせれば同じように危険だから
0792デフォルトの名無しさん
2012/05/23(水) 14:21:16.85違う配列を並べて書いてもメモリ上で連続されてる保証はない
だからセグメンテーション違反が出たんじゃないの
2次元配列として別々にアクセスすればいいと思う
0793デフォルトの名無しさん
2012/05/23(水) 14:31:35.370794デフォルトの名無しさん
2012/05/23(水) 14:48:29.24(((*r + i)) + j) += *((*(p + k)) + i) * *((*(q + j)) + k);
これじゃないの?
*((*(r + i)) + j) += *((*(p + k)) + i) * *((*(q + j)) + k);
が正しいような
でも>>792の理由通り保証はないからね
0795デフォルトの名無しさん
2012/05/23(水) 14:54:54.28ttp://codepad.org/X8ME50BU
0796デフォルトの名無しさん
2012/05/23(水) 15:01:44.75ttp://codepad.org/spxptHlQ
結果が合ってるかは知らん
30 66 102
36 81 126
42 96 150
0797デフォルトの名無しさん
2012/05/23(水) 15:11:51.300798デフォルトの名無しさん
2012/05/23(水) 15:18:22.68すまん勘違いしてた
別々に定義した配列2つをあわせて使っていると思っていた
0799デフォルトの名無しさん
2012/05/23(水) 16:05:40.54http://codepad.org/vwU14S6p
0800デフォルトの名無しさん
2012/05/23(水) 16:09:22.14(((*r + i)) + j) += *((*(p + k)) + i) * *((*(q + j)) + k);
これは
*((*(r + i)) + j) += *((*(p + k)) + i) * *((*(q + j)) + k);
これの間違いでした。
配列名(ここでは配列の配列)に&をつけると、配列の配列を指すポインタを渡すことになり、それを受けるには、配列の配列へのポインタで受けるということがわかりました。
皆さんありがとうございました。
0801デフォルトの名無しさん
2012/05/23(水) 16:10:41.60ありがとうございました。
0802デフォルトの名無しさん
2012/05/23(水) 16:18:03.31みたいなコードぜったい書きたくないけど、
ここまで酷いと、逆にマクロにして綺麗になりそうな希ガス。
0803デフォルトの名無しさん
2012/05/23(水) 16:23:27.830804デフォルトの名無しさん
2012/05/23(水) 16:24:42.37んじゃあ普通に[]で書いてみてYO!!
0805デフォルトの名無しさん
2012/05/23(水) 16:39:07.260806デフォルトの名無しさん
2012/05/23(水) 16:52:48.30>>802
p[i]は*(p + i)のシンタックスシュガーってこと知ってる?
0807デフォルトの名無しさん
2012/05/23(水) 16:56:57.07mm(r,i,j)+=(mm(p,k,i))*(mm(q,j,k));
かな?
0808デフォルトの名無しさん
2012/05/23(水) 17:02:28.76void func(void *p, void *q, void *r)
{
int *ip=(int *)p;
int *iq=(int *)q;
int *ir=(int *)r;
*(ir+i*3+j)+=(*(ip+k*3+i))*(*(iq+j*3+k));
でよくね?
可変ならマクロなりなんなり使えば。
0809デフォルトの名無しさん
2012/05/23(水) 17:06:41.05そんなマクロを書くくらいなら、関数にした方がまし。
0810デフォルトの名無しさん
2012/05/23(水) 17:22:16.320811デフォルトの名無しさん
2012/05/23(水) 17:44:58.81まじすかIntel C++ちょっと欲しいですね
趣味でCやってますけどいくらするのか価格が出てないな・・・
問い合わせてみますか
0812デフォルトの名無しさん
2012/05/23(水) 19:39:00.80filename = *argv;
で、AAA になります。
これを、AAA.txt って表示させたいときにどうやって書けばいいですか?
filename = *argv".txt";
で駄目でした。
0813デフォルトの名無しさん
2012/05/23(水) 19:44:03.700814デフォルトの名無しさん
2012/05/23(水) 19:44:15.020815デフォルトの名無しさん
2012/05/23(水) 19:44:43.50それだったら始めからAAA.txtを引数にプログラム起動じゃダメかな。
C言語の文字列の結合はそんな簡単にはいかないよ。
0816デフォルトの名無しさん
2012/05/23(水) 19:47:27.140817デフォルトの名無しさん
2012/05/23(水) 20:35:05.65一番簡単そうだったstrcatfで出来ました。
他は難しそう・・・
0818デフォルトの名無しさん
2012/05/23(水) 20:38:15.680819デフォルトの名無しさん
2012/05/23(水) 20:44:21.92しかし、単語や意味を多く知っていると便利ではある
0820デフォルトの名無しさん
2012/05/23(水) 20:53:45.22プログラミングは覚えることよりツールの1つとして使うことに重点を置いたほうがいいよ
0822デフォルトの名無しさん
2012/05/24(木) 00:00:57.340823デフォルトの名無しさん
2012/05/24(木) 00:52:10.64ダメな例きわどい例アホな例、そんなのは全部省かれてる
コレはやっちゃダメだよ てな話も少ない
0824デフォルトの名無しさん
2012/05/24(木) 01:14:05.29いえいえ
0825デフォルトの名無しさん
2012/05/24(木) 02:50:39.05やりました。
問題ありますか?
0826デフォルトの名無しさん
2012/05/24(木) 03:09:58.922.? The parameters argc and argv and the strings pointed to by the argv array shall
be modifiable by the program, and retain their last-stored values between program
startup and program termination.
あれ?argvっていじって良かったんだっけ?
shall be modifiable by the program,
変えることができるようになってなければならないみたいだ。
0828デフォルトの名無しさん
2012/05/24(木) 03:41:49.52これって起動したプログラムによって設定されるって意味だよね?
JISには「プログラムによって変更可能でなければならない」とあるけど
自分でいじるって意味じゃないと思う
どうせきっちり文字列が収まる量しか確保されてないだろうし
ポインタのポインタでしょ?argcをいじったらどこを指しているポインタ
が入っているか分かったもんじゃない
だから undefined behavior だと思うんだけどそれが規格票に明言されて
いる場所をどうしても見つける事が出来なかった
0829デフォルトの名無しさん
2012/05/24(木) 03:47:23.19int main(int argc, char *argv[])
{
char buf[256];
if (argc) {
sprintf(buf, "%s.txt", argv[0]);
puts(buf);
}
return 0;
}
コピーしてからいじるしかない
ちなみに
strcpy(argv[0], "refjrmedkimgfjgjrfjgrgjorjgore");
ってやったら
0830デフォルトの名無しさん
2012/05/24(木) 03:48:15.93Access overrun: Attempt to access 31 byte(s) at 0x00B978F8, that is at heap
block 0x00B978F8 which is only 29 bytes long.
intr_strcpy(0x004020CF ["refjrmedkimgfjgjrfjgrgjorjgore"], 0x00B978F8)
| argv1.c line 26:
| }
|
|> strcpy(argv[0], "refjrmedkimgfjgjrfjgrgjorjgore");
|
| return 0;
Call Tree:
0x004011F1(=argv1.exe:0x01:0001F1) argv1.c#26
0x32C9C8CA(=CC32120MT.DLL:0x01:09B8CA)
The memory block (0x00B978F8) [size: 29 bytes] was allocated with malloc
Call Tree:
0x32C72BB9(=CC32120MT.DLL:0x01:071BB9)
0x32C99B12(=CC32120MT.DLL:0x01:098B12)
0x32C9C843(=CC32120MT.DLL:0x01:09B843)
処理系によると思うけど少なくとも一つの処理系ではargvの変更は駄目でした
0831デフォルトの名無しさん
2012/05/24(木) 03:52:47.65書き換え可能な事は確かに規格票通り保証されているけど、最初に確保された
長さを超えて書き込んだ場合は上の例のように明らかにバッファーオーバーフローしています
しかしその事は規格票にはどこにも書いてありません
はてさて困った
0832デフォルトの名無しさん
2012/05/24(木) 06:09:06.410833デフォルトの名無しさん
2012/05/24(木) 10:34:43.93とここまで規格票に書くべきだよね(´・ω・`)
0834デフォルトの名無しさん
2012/05/24(木) 10:38:18.06場合の動作は未定義」とちゃんと明示して欲しかった
何かの理由で書けなかったんだろうか?
0835デフォルトの名無しさん
2012/05/24(木) 10:46:47.090836デフォルトの名無しさん
2012/05/24(木) 10:52:41.71そうなんだが規格票では「書き換え可能」と書いてあるから悩んでるんだよね
>>831のリンク先も見てみた?Linuxでは意味のある事らしいけど
0837デフォルトの名無しさん
2012/05/24(木) 10:59:37.38調べた限りC99の規格の本が出てきたので、もうANSI Cの規格は手に入らないのかと・・・
0838デフォルトの名無しさん
2012/05/24(木) 11:16:49.510839デフォルトの名無しさん
2012/05/24(木) 11:23:45.60そういう事にしとこう
0840デフォルトの名無しさん
2012/05/24(木) 11:32:47.31もしかすると同じ人間かもしれないし
書き変えたい一派があなたの隣にウジャウジャいるのかも知れない
0841デフォルトの名無しさん
2012/05/24(木) 11:35:49.410842デフォルトの名無しさん
2012/05/24(木) 11:47:59.59Windowsで試しにargv[0]を書き換えてみたけどプロセス名は変わらなかった
プロセス隠ぺいならもっと高度な方法使うし
0843デフォルトの名無しさん
2012/05/24(木) 12:44:31.24私はintが最速だと思っていたのですが、doubleはintより速いんですか?
0844デフォルトの名無しさん
2012/05/24(木) 12:49:50.01intとdoubleは専門分野が違うので比較する事にあまり意味はない
0845デフォルトの名無しさん
2012/05/24(木) 12:54:10.95環境によって全く異なるから意味ないよ
例えば代表的なx86+FPUのCコンパイラならfldでdword ptrからFPUにロードする時
強制的に80bitになり全ての演算も80bitで行われる
そしてfstする時またdword ptr(4バイト)に戻される
他のハードウェアでは32bit精度で行う
0846デフォルトの名無しさん
2012/05/24(木) 15:12:07.68ハゲるぞ
0847デフォルトの名無しさん
2012/05/24(木) 15:28:25.49こらこら、大嘘を書くでない。
>>843
一般的に、intの方がdoubleより速いことは期待できるしintで済むならintにするべき。
floatとdoubleではfloatの方が速いことを期待できる場合もある。
しかしfloatとdoubleの関係はshortとintの関係と同じで自動格上げが働くことがあるので、
float演算で処理速度を期待する場合は注意深くコードを書く必要がある。
また、intの計算とdoubleの計算が混ざると型変換でかなり遅くなるから、演算途中の
型変換は極力起きないようにするべき。
従って、整数で済むときで大きさが問題にならないならintを使用し、
そうでない場合はdoubleを使うと思っていれば大抵問題にはならない。
0848デフォルトの名無しさん
2012/05/24(木) 16:50:07.320849デフォルトの名無しさん
2012/05/24(木) 17:19:16.45> 一般的に
> 期待できるし
> 期待できる場合もある
> 働くことがある
> 極力起きないように
> 大抵
なんだこれはボロボロじゃねーかwww
0850デフォルトの名無しさん
2012/05/24(木) 18:55:43.06で、できるだけ混ぜるなっと。
0851デフォルトの名無しさん
2012/05/24(木) 19:23:41.98struct {
x,y,aaa[4]
}
みたいにやりたいんですが
0852デフォルトの名無しさん
2012/05/24(木) 19:27:18.320853デフォルトの名無しさん
2012/05/24(木) 19:41:28.55ttp://codepad.org/I370nlRz
0854デフォルトの名無しさん
2012/05/24(木) 20:05:00.34寧ろあんたの目の前の電話にはコンパイラが入っているのか? それはそれですげぇな。
0855デフォルトの名無しさん
2012/05/24(木) 20:13:06.540856デフォルトの名無しさん
2012/05/24(木) 20:22:01.88for(i=0;i<=1000;i++)
{
for(j=0;j<=1000;j++)
{
for(k=0;k<=1000;k++)max=i*k*j;
}
}
のルーチンは何秒くらいで実行可能ですか?
0857デフォルトの名無しさん
2012/05/24(木) 20:56:11.610858デフォルトの名無しさん
2012/05/24(木) 21:33:27.29わかりました。解決しました。
ありがとうございました。
844,845さんもありがとうございました
0859デフォルトの名無しさん
2012/05/24(木) 23:45:00.45俺のスマフォにはコンパイラ入ってますが
0860デフォルトの名無しさん
2012/05/24(木) 23:54:49.47そりゃぁよかった。
0861デフォルトの名無しさん
2012/05/25(金) 03:17:40.47いえいえ
0862デフォルトの名無しさん
2012/05/25(金) 03:26:24.26お前誰だよ
0863デフォルトの名無しさん
2012/05/25(金) 07:26:52.590864デフォルトの名無しさん
2012/05/25(金) 08:01:54.500865デフォルトの名無しさん
2012/05/25(金) 08:14:30.57近所の泥ママ(チョン)の息子
0866デフォルトの名無しさん
2012/05/25(金) 10:30:21.96どうやって取得出来るん?
LIBPNGを使ってPNG画像のデコードをしたいんだけど、
画像にα値(透明色含む)が含まれていない場合はメモリの無駄だから、
αデータ分のメモリ領域を確保したくないんだけど
フルカラーの場合は
png_get_IHDR(pPng, pInfo, &PngWidth, &PngHeight, &bpp, &ColorType, NULL, NULL, NULL);
で取得できるColorType,内にPNG_COLOR_MASK_ALPHAビットが立っているか否かで判断できるんだけど
256色以下だとうまく出来ないみたい。
どなたか教えて下さいまし。
0867デフォルトの名無しさん
2012/05/25(金) 10:34:42.68わかりました
0868デフォルトの名無しさん
2012/05/25(金) 10:35:27.15VC++のコンパイラは使うのやめたほうがいいですか?
0869デフォルトの名無しさん
2012/05/25(金) 10:41:04.030870デフォルトの名無しさん
2012/05/25(金) 10:45:48.25gccな、bccじゃボーランド製のコンパイラ…
gcc統一のほうが楽で手堅いだろうけど
両方使ってプリプロセサとか駆使して
両対応のコード書くのも一度くらいは試して欲しいかな
細かい違いをハッキリ認識できると思う
0871デフォルトの名無しさん
2012/05/25(金) 10:53:49.40GUIとかするならWindowsとLinuxで同じコードなんて諦めるが吉
0872デフォルトの名無しさん
2012/05/25(金) 17:34:30.2123
425
2
109
2回目も
23
435
.
.
0873デフォルトの名無しさん
2012/05/25(金) 17:45:15.670874デフォルトの名無しさん
2012/05/25(金) 17:53:12.63ありがとうございます。
0875デフォルトの名無しさん
2012/05/25(金) 18:54:56.93gccというものも使ってみたいと思います
将来的にはどうなるか考えてないのですがどっちも経験し対と思います
0876デフォルトの名無しさん
2012/05/25(金) 19:06:11.72いえいえ
0877デフォルトの名無しさん
2012/05/25(金) 19:54:51.18void memcpyExtRam(uint8_t * dest, const uint8_t * src, unsigned len)
{
uint16_t * lDest = (uint16_t *) dest;
const uint16_t * lSrc = (const uint16_t *) src;
len /= 2;
for (int ic = 0; ic < len; ++ic) {
lDest[ic] = lSrc[ic];
}
}
gccで-Wcast-alignをつけると警告が出るのだけれど、警告を出さないように指示された。
出すな言われても、キャストするしかないしどうしたもんかの。
あー、お察しの通り組み込み系なんで、標準関数は使えないと言うことで。
0878デフォルトの名無しさん
2012/05/25(金) 20:24:03.760879デフォルトの名無しさん
2012/05/25(金) 21:45:42.82関数外のコードで 16bit 境界外のアクセスを許容しちゃうような気がしないでもない
0880デフォルトの名無しさん
2012/05/25(金) 22:40:47.35どっち途使う側が気をつけないとlenも奇数じゃダメだしな。
0881デフォルトの名無しさん
2012/05/26(土) 04:21:59.57gnu製libcに含まれる文字コード変換関数の使い方を教えてください。
上の例は英語で長くて意味不明なので、ここに貼り付けられる程度の完全な動くサンプルコードを誰かお願いします。
cp932テキストをutf8テキストへと変換するツールを、サンプルとしておねがいします。
0882デフォルトの名無しさん
2012/05/26(土) 05:34:16.59system("iconv -f cp932 -t utf-8 < cp932.txt > utf8.txt");
0883881
2012/05/26(土) 06:41:01.01そういうのいらない
0884デフォルトの名無しさん
2012/05/26(土) 07:32:55.06なんで?
iconvのライブラリの使い方を調べるのに時間を掛ける位なら、シェル経由で動かす方が余程建設的だよ。
って、まさか>882からファイル名固定だとか思い込んじゃってる?
0885デフォルトの名無しさん
2012/05/26(土) 08:01:20.38http://docs.oracle.com/cd/E19253-01/819-1213/6n3ja05bb/index.html
0886881
2012/05/26(土) 13:02:09.28ありがとうございました。
>>885
現状がほぼこれに近い状態です。(gnuのlibiconvを利用)
ここからglibc組み込みのgconvへと置き換えたい考えです。
0887デフォルトの名無しさん
2012/05/26(土) 14:18:43.350888デフォルトの名無しさん
2012/05/26(土) 14:21:43.23いちいちファイルにするの?
0889デフォルトの名無しさん
2012/05/26(土) 15:23:47.67あまり刺激するな
0890デフォルトの名無しさん
2012/05/26(土) 15:27:59.28SIMD使うならfloatの方が倍速い
0891デフォルトの名無しさん
2012/05/26(土) 21:39:23.71その場合、floatとdoubleの変換が起きないように注意。
>>888
libiconvの使い方を云々するぐらいなら、という条件だからねぇ。
0892デフォルトの名無しさん
2012/05/26(土) 21:57:59.49ツメが甘い甘いw
0893デフォルトの名無しさん
2012/05/26(土) 22:30:10.84float foo = 3;
float bar;
bar = foo / 2.0;
こう書いてしまうと2.0がdoubleなのでfooをdoubleにキャストしてから割り算が行なわれて、
更にfloatにキャストしてからbarに格納されることになる。
ついでに回避策がないから減点なんて言われるとイヤだから付け加えておくと、
bar = foo / 2.0f;
と書けばいいことになる。
その他にも例えばbar = sin(foo)とするとdoubleにキャストしてから関数を呼んで戻ってからまたキャストする。
c99ならsinf()を使えばいいけれど、c90でfloatだけで書くのは意外に難しかったりする。
しかもあれだ、プロトタイプ宣言していない場合はfloatを渡すととんでもないことになるね。
0894デフォルトの名無しさん
2012/05/26(土) 23:35:13.02int i,sum = 0,avg;
これってiに0という値を代入して、sumにavgを代入するって意味ですか?
0895デフォルトの名無しさん
2012/05/26(土) 23:36:02.770896デフォルトの名無しさん
2012/05/26(土) 23:37:07.560897デフォルトの名無しさん
2012/05/26(土) 23:38:10.250898デフォルトの名無しさん
2012/05/26(土) 23:45:49.800899デフォルトの名無しさん
2012/05/26(土) 23:53:19.250900デフォルトの名無しさん
2012/05/26(土) 23:54:44.020901デフォルトの名無しさん
2012/05/27(日) 00:03:22.48int sum = 0;
int avg;
を一行で書いただけ
0902デフォルトの名無しさん
2012/05/27(日) 05:39:44.920903デフォルトの名無しさん
2012/05/27(日) 08:22:23.270904デフォルトの名無しさん
2012/05/27(日) 08:23:31.30sum=char avg;
0905デフォルトの名無しさん
2012/05/27(日) 09:17:36.360906デフォルトの名無しさん
2012/05/27(日) 12:14:00.240907デフォルトの名無しさん
2012/05/27(日) 12:17:15.780908デフォルトの名無しさん
2012/05/27(日) 13:32:32.360909デフォルトの名無しさん
2012/05/27(日) 16:46:13.030910デフォルトの名無しさん
2012/05/27(日) 17:00:35.57なぜそう思ったのか?
0911デフォルトの名無しさん
2012/05/27(日) 17:03:55.05C言語はCPU依存のコード書けるの?
◯◯命令対応のプログラムなら速いとかあるじゃん?
CPUの型番に応じて分岐したりするの?
0912デフォルトの名無しさん
2012/05/27(日) 17:20:14.83組み込みならCPU依存は普通だが、個人向けレベルのPCでは極一部。
0913デフォルトの名無しさん
2012/05/27(日) 17:48:31.27インラインアセンブラ使いまくったライブラリを作ってそれを呼び出せばなんでもあり
C言語+SSEとかで検索してみ
0914デフォルトの名無しさん
2012/05/27(日) 17:56:55.88ごく一部なの?
例えばこれとかさ
http://sourceforge.jp/magazine/09/09/07/0257257
それぞれ対応コンパイラってのがあるのかな。
0915デフォルトの名無しさん
2012/05/27(日) 18:46:16.74PCのOSは元々、「ハードの違いによる個別対応を減らす」ためのもの。
そういうPCで敢えてCPU依存コードを書く意味が有る様なケースは、必然的にハイスキルが必要だから。
存在価値を否定してる訳ではないよ。
0916デフォルトの名無しさん
2012/05/27(日) 18:49:33.40書けるけど、コンパイラにやらせたほうが上手くやってくれるだろうなあ
0917デフォルトの名無しさん
2012/05/27(日) 21:13:09.67そういうのって大事な基礎だよね
いつか挑戦してみるよ
0918デフォルトの名無しさん
2012/05/27(日) 21:51:26.760919デフォルトの名無しさん
2012/05/27(日) 23:13:54.015つの整数の値をscanfで読みこんでポーカーの役を表示させるようなプログラムを組めと言われました
例えば5つとも同じなら5カード、5つの内4つ同じなら4カードのようにして
フルハウス、3カード、2ペア、1ペアを別々に表示するにはどうすればいいのでしょうか?
if文で全通り入力するやり方はしたのですがこれをswitch文で書くようにいわれましたが調べても全然わかりませんでした
よろしくお願いします
0920デフォルトの名無しさん
2012/05/27(日) 23:14:54.190921デフォルトの名無しさん
2012/05/27(日) 23:17:31.02何を試したか
どこでつまづいてるか
最低限これくらいは書け
標準的な知性があれば調べてわからんなんてことがありえないレベルの話だ
0922デフォルトの名無しさん
2012/05/27(日) 23:24:21.29この一言で全て悟った
「コイツはマジモンのアホだ」と
それとは別に
役判定は面倒臭い
ポーカーは入門クラス、
麻雀がプロクラスの面倒くさささ
初心者ならワンペアでつまづくのは当たり前
たぶんフルハウスあたりで挫折する
0923デフォルトの名無しさん
2012/05/27(日) 23:29:07.16根拠の無い自信に満ちている点だけはうらやましいが
レスの内容からものすごく残念な頭なのが分かる
お花畑の見本として優秀である
0924デフォルトの名無しさん
2012/05/27(日) 23:45:45.13VC++はC99に準拠してないってググって分かりました
gccも対応してないって知りました
0925デフォルトの名無しさん
2012/05/28(月) 00:08:44.49#include <stdio.h>
#include <stdlib.h>
typedef struct{ int value, count; }card_t;
int card_cmp(const void *a, const void *b){
if(((const card_t*)a)->count>((const card_t*)b)->count) return -1;
return ((const card_t*)a)->count<((const card_t*)b)->count;
}
int main(void){
card_t card[5];
int value, kind=0, i, j, eval=0;
for(i=0;i<5 && scanf("%d", &value)==1;i++){
for(j=0;j<kind;j++){
if(card[j].value==value){
card[j].count++;
break;
}
}
if(j>=kind) card[kind].value=value, card[kind++].count=1;
}
qsort(card, kind, sizeof(card_t), card_cmp);
for(i=0;i<kind;i++) eval=eval*10+card[i].count;
switch(eval){
case 5: puts("5カード"); break;
case 41: puts("4カード"); break;
case 32: puts("フルハウス"); break;
case 311: puts("3カード"); break;
case 221: puts("2ペア"); break;
case 2111: puts("1ペア"); break;
}
return 0;
}
0926デフォルトの名無しさん
2012/05/28(月) 00:12:04.700927デフォルトの名無しさん
2012/05/28(月) 00:17:19.060928デフォルトの名無しさん
2012/05/28(月) 01:25:11.130929デフォルトの名無しさん
2012/05/28(月) 01:34:43.39ストレート対応
http://pastebin.com/MSa2sJ9X
>>924
gccはC99をほぼサポートしているから、普通はgccでおk
完全サポートはWindowsでは多分無い
0930デフォルトの名無しさん
2012/05/28(月) 01:48:32.67主に科学技術計算で用いられるようなコンパイラだと
PGI C/C++が完全準拠。Intel C/C++もまあまあだったはず
0931デフォルトの名無しさん
2012/05/28(月) 02:07:55.18聞いたことがあります
メインストリームならそういう風に設計出来るんでしょうけど
まあx86の問題が大きいな
0932デフォルトの名無しさん
2012/05/28(月) 03:06:28.54まぁ珍しくもないが。
0933デフォルトの名無しさん
2012/05/28(月) 11:41:00.97int x[10];
x[10]=3;
で実行時にエラー吐くような。
0934デフォルトの名無しさん
2012/05/28(月) 13:21:45.550935934
2012/05/28(月) 13:30:53.300936デフォルトの名無しさん
2012/05/28(月) 13:41:24.431より大きい任意整数値を入力し、入力値より小さい素数を全て列記するプログラムを繰返し文を用いてつくりなさい。
試したすべての数で割り切れない場合は素数ひとつでも割り切れたら素数ではないと判断
任意整数値を入力し、素因数分解するプログラムを繰返し文を作りなさい。
という二つの問題をおしえてください
0937デフォルトの名無しさん
2012/05/28(月) 13:45:02.130938デフォルトの名無しさん
2012/05/28(月) 13:53:03.28きれいな方法が思い浮かばない
できんのかこれ
0939デフォルトの名無しさん
2012/05/28(月) 14:22:54.580940デフォルトの名無しさん
2012/05/28(月) 15:22:13.640941デフォルトの名無しさん
2012/05/28(月) 16:15:21.84#include <stdio.h>
int main(){
int n, x = 2;
printf("input = ");
scanf("%d", &n);
while (n > 1) {
while (n % x == 0) {
n /= x;
if (n % x)
printf("%d ", x);
}
x++;
}
return 0;
}
0942デフォルトの名無しさん
2012/05/28(月) 17:46:03.68この素因数分解どうやるんだ?
0943デフォルトの名無しさん
2012/05/28(月) 17:54:59.14素数を数えると落ち着くから
0944デフォルトの名無しさん
2012/05/28(月) 18:00:21.72プッチ??
0945デフォルトの名無しさん
2012/05/28(月) 18:26:53.2164bit版のC/C++コンパイラ
(Microsoft (R) C/C++ Optimizing Compiler Version 16.00.30319.01 for x64)で
mallocを使う場合に、きちんとstdlib.hを読み込まないで2GBを超えたメモリを確保すると
返値のアドレスが下位32bitを符号拡張して64bitにした値になる模様
きちんと#include <stdlib.h>でstdlib.hを読み込むとこの現象は起きないで
正常な64bitのアドレス値を返してくる
何でなんだろうか
0946デフォルトの名無しさん
2012/05/28(月) 18:28:25.440947デフォルトの名無しさん
2012/05/28(月) 18:33:11.26おめーがバカだからだよ
指定が無ければ int ってのは常識
0948デフォルトの名無しさん
2012/05/28(月) 18:36:10.762行目の#include <stdlib.h>を削除するとおかしな動作になる
#include <stdio.h>
#include <stdlib.h>
#define MEMORY01 250LL*1024LL*1024LL
#define MEMORY_N 24
int main( int argc, char **argv){
char *p1[MEMORY_N];
int i, j;
for (i = 0; i < MEMORY_N; i++) {
p1[i] = (char *) malloc(MEMORY01);
if (p1[i] == NULL) {
for (j = i - 1; j >= 0; j--) {
free(p1[j]);
}
printf("p1[%d] メモリが確保できません\n", i);
exit(1);
}
}
printf("メモリが確保できました\n");
0949デフォルトの名無しさん
2012/05/28(月) 18:36:31.10for (i = 0; i < MEMORY_N; i++) {
printf("p1[%d] = %016llx\n", i, p1[i]);
}
printf("\n\n");
printf("確保したメモリに0を書き込み中です\n");
for (i = 0; i < MEMORY_N; i++) {
memset(p1[i], 0, MEMORY01);
}
printf("書き込みが終了しました\n\n");
for (i = 0; i < MEMORY_N; i++) {
free(p1[i]);
}
return(0);
}
0950デフォルトの名無しさん
2012/05/28(月) 18:37:13.00そうなんだ
ありがとう
0952デフォルトの名無しさん
2012/05/29(火) 00:11:16.33グループは4つあり、性別は、男性は0、女性は1で表す。
※if文のネストを使用する
Aは20歳未満男性
Bは20歳未満女性
Cは20歳以上男性
Dは20歳以上女性のやりかたがわからないです。
0953デフォルトの名無しさん
2012/05/29(火) 00:14:44.86ちょっと簡単あるいは適当にコードを書いてみてください。もしかすると足しになることが書けるかもしれません。
0955デフォルトの名無しさん
2012/05/29(火) 01:27:20.71scanf("%d", &a);
if(s == 0) {
if(a < 20) printf("A");
else printf("C");
}
else {
if(a < 20) printf("B");
else printf("D");
}
0956ド素人がクビを突っ込んでみる
2012/05/29(火) 07:31:01.19scanf("%d",&age); //年齢入力
if(sex == 0) {
if(age >= 20) {
printf("C : 男性 20歳以上");
else
printf("A : 男性 20歳未満");
}
else
if(age >= 20) {
printf("D : 女性 20歳以上");
else
printf("B : 女性 20歳未満");
}
}
0957デフォルトの名無しさん
2012/05/29(火) 07:47:17.73なんでそんなに悩むのよ
0958デフォルトの名無しさん
2012/05/29(火) 08:12:28.46目的的な作業なんだ、
だからいかにバカらしく見えようともアホっぽいif文のネストを描かなきゃあいけないんだ
0959デフォルトの名無しさん
2012/05/29(火) 08:14:30.87#include <stdio.h>
int main(){
int sex, age,w;
char s[] = "ABCD", *tSex[] = {"男性", "女性"}, *tAge[] = {"未満", "以上"};
scanf("%d", &sex);
scanf("%d", &age);
w=(sex)+2*(age>=20);
printf("%c : %s 20歳%s¥n",s[w],tSex[w%2],tAge[w/2]);
return 0;
}
0960デフォルトの名無しさん
2012/05/29(火) 08:15:34.74scanf("%d", &a);
switch(s+(a<20 ? 0:2)) {
case 0 :
/*以下面倒なので省略*/
};
0961デフォルトの名無しさん
2012/05/29(火) 08:17:20.21※if文のネストを使用する
0962デフォルトの名無しさん
2012/05/29(火) 08:19:59.74if(age > 12) {
printf("えーマジ童貞?\n童貞が許されるのは小学生までだよね\nキャハハハハハハ\n");
}
}
0963デフォルトの名無しさん
2012/05/29(火) 08:33:28.58★低評価の嫌われ者の国ランキング
1位 イラン ←核
2位 パキスタン ←核
3位 北朝鮮 ←核その他
4位 イスラエル ←ユダヤその他
5位 ロシア ←元共産、プーチン
6位 韓国 ←つまり政治的問題とか関係無く、純粋に民族としてクズだから嫌われてるってことw
マジで韓国猿は生きてる価値ゼロだろwwww地球の汚物だから一匹残らず死滅した方がイイwwwwwwww
嫌われ者民族の汚物朝鮮猿に生まれたことが死ぬほど恥ずかしいニダ・・・orz
0964デフォルトの名無しさん
2012/05/29(火) 08:44:18.051位の上に論外国があるはずなのだが、わざと抜いているのか?
論外:アメリカ←核・ユダヤ人/イスラエル支援・実は世界最大のテロ国家・真珠湾2402人の仕返しに広島長崎30万無差別虐殺の100倍返し
0965デフォルトの名無しさん
2012/05/29(火) 09:06:55.100966デフォルトの名無しさん
2012/05/29(火) 14:27:54.08いえいえ
0967デフォルトの名無しさん
2012/05/29(火) 18:26:43.04ありがとう
0968デフォルトの名無しさん
2012/05/29(火) 18:44:13.990969デフォルトの名無しさん
2012/05/29(火) 19:40:01.060970デフォルトの名無しさん
2012/05/29(火) 20:29:30.27zconf.hに
#if !defined(SEEK_SET) && !defined(Z_SOLO)
# define SEEK_SET 0 /* Seek from beginning of file. */
# define SEEK_CUR 1 /* Seek from current position. */
# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
#endif
って書いてあるじゃん
0971デフォルトの名無しさん
2012/05/29(火) 21:01:22.660972デフォルトの名無しさん
2012/05/29(火) 21:54:29.54そりゃあ……
難儀なことだ
0973デフォルトの名無しさん
2012/05/29(火) 22:11:01.970974デフォルトの名無しさん
2012/05/30(水) 06:25:32.190,1,2,3,4,5,6を入れて、
次の7.8,9,10,11,12は飛ばし、
次の13,14,15,16,17,18は入れるような形です。
int i,j;
for(i=0; i<hoge; i++){
if(ここがわかりません){
in[j] = out[i];
j++;
}
}
0975デフォルトの名無しさん
2012/05/30(水) 06:52:31.24ttp://codepad.org/6GoyOSFJ
0976デフォルトの名無しさん
2012/05/30(水) 07:18:29.63ありがとうございます。
0977デフォルトの名無しさん
2012/05/30(水) 08:20:06.71それだと、012345を入れて67891011を飛ばさないか?
>974は0123456を入れるとあるぞ。
0978デフォルトの名無しさん
2012/05/30(水) 08:27:39.67素直にforを3回回すべき
0979梅子
2012/05/30(水) 10:28:43.78main(){
typedef char hoge;
hoge in[120], out[120];
int i, j;
for(i=0, j=0; i<100; i += 2*6*sizeof(hoge), j += 6*sizeof(hoge)){
memcpy(in+j, out+i, 6*sizeof(hoge));
printf("%d %d, ",i,j);
}
return 0;
}
0980デフォルトの名無しさん
2012/05/30(水) 10:30:17.76#include <stdio.h>
int
main()
{
char out[] = "abcdefghijklmnopqrstuvwxyz";
int i, hoge = sizeof out - 1;
putchar(out[0]);
for (i = 1; i < hoge; i++)
if (((i - 1) / 6) % 2 == 0)
putchar(out[0]);
return 0;
}
0981デフォルトの名無しさん
2012/05/30(水) 10:31:44.460982デフォルトの名無しさん
2012/05/30(水) 12:01:38.38いえいえ
0983デフォルトの名無しさん
2012/05/30(水) 12:16:27.50#include <stdio.h>
#include <string.h>
#include <sys/types.h>
void pattcpy(void* dst, void* src, u_int byte_size, u_int src_len,
u_int* pattern, u_int pattern_len)
{
u_int src_index = 0;
u_int pattern_index = 0;
while (src_index < src_len) {
if (pattern[pattern_index] != 0) {
memcpy(dst, src, byte_size);
dst += byte_size;
}
pattern_index++;
if (pattern_index >= pattern_len)
pattern_index = 0;
src += byte_size;
src_index++;
}
}
0984983
2012/05/30(水) 12:23:39.26{
/* パターン定義 */
u_int patt[14] = {1,1,1,1, 1,1,1, 0,0,0,0, 0,0,0,};
u_int patt_len = 14;
/* テスト用のコピー元データを生成(0〜99の連数) */
int src[100];
int i;
for (i = 0; i < 100; i++) {
src[i] = i;
}
/* コピー先 */
int dst[100];
/* パターンコピー */
pattcpy(dst, src, sizeof(int), 100, patt, patt_len);
/* 確認 */
for (i = 0; i < 100; i++) {
printf("src[%d], dst[%d]\n", src[i], dst[i]);
}
}
0985983
2012/05/30(水) 12:24:15.61* pattcpy
*
* dst: コピー先配列の先頭アドレス
* src: コピー元配列の先頭アドレス
* byte_size: 配列の各要素のサイズ (int = 4)
* src_len: src配列の長さ (or コピーを行うサイズ)
* pattern: パターン定義の配列の先頭アドレス
* pattern_len: パターン定義配列の長さ
*
* 備考: パターン定義のルールは、0ならスキップ、非0ならコピー
*/
0986デフォルトの名無しさん
2012/05/30(水) 12:28:44.800987デフォルトの名無しさん
2012/05/30(水) 12:28:50.23codepad つ
0988デフォルトの名無しさん
2012/05/30(水) 13:39:41.710989デフォルトの名無しさん
2012/05/30(水) 15:49:23.00回転させた後の画像の、左端の縦一列が右端の縦一列になってしまいます
下のような感じでやってるんですが、どこがだめなのでしょうか?
元のバイト配列 hoge
90度回転させる配列 result
int i=0;
int j=0;
int k=0;
int width = 1920;
int height = 1080;
for(i=0; i<height; i++){
int m = 1;
for(j=0; j<width; j++){
result[height * m - i] = hoge[k];
m++;
k++;
}
}
0990デフォルトの名無しさん
2012/05/30(水) 15:59:59.47プログラミングの才能ゼロだからもうやめとけ
0991デフォルトの名無しさん
2012/05/30(水) 16:29:27.84ttp://codepad.org/i5PjwMEr
0992デフォルトの名無しさん
2012/05/30(水) 17:11:08.10↓
動かす
↓
動かん
↓
分から〜ん
って奴は本当にやめた方がいいと思う
机上デバッグ出来ない奴には無理
0993デフォルトの名無しさん
2012/05/30(水) 17:15:07.99混乱してしまう事があるよな
簡単な図を書いてみるだけで整理出来る
0994デフォルトの名無しさん
2012/05/30(水) 17:16:53.28C言語なら俺に聞け(入門編)Part 102
http://toro.2ch.net/test/read.cgi/tech/1338365782/
0995デフォルトの名無しさん
2012/05/30(水) 17:18:57.53ttp://codepad.org/JQ7hDHyr
0996デフォルトの名無しさん
2012/05/30(水) 17:30:07.080997デフォルトの名無しさん
2012/05/30(水) 17:36:18.13そういう時は、"A"じゃなくて"F"を使うもんだぜ。
0998デフォルトの名無しさん
2012/05/30(水) 17:45:26.650999デフォルトの名無しさん
2012/05/30(水) 19:44:50.871000デフォルトの名無しさん
2012/05/30(水) 19:45:13.0410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。