C言語なら俺に聞け(入門篇) Part 15
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/06/25(月) 06:14:52・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
前スレ
C言語なら俺に聞け(入門篇) Part 14
http://pc11.2ch.net/test/read.cgi/tech/1181735298/
教えて欲しいのではなく丸投げしたいならこちらへ
C/C++の宿題を片付けます 91代目
http://pc11.2ch.net/test/read.cgi/tech/1182607405/
0153デフォルトの名無しさん
2007/06/28(木) 00:23:511は5で割り切れないので終了。余り 1
0154デフォルトの名無しさん
2007/06/28(木) 00:24:310155デフォルトの名無しさん
2007/06/28(木) 00:27:32strncat,strcpy,ctrncpy,sprintf,sscanf
ざっと思いつくのでこの程度。
あと、可変個引数使うときにある、printfのやつ。
あんま使ったこと無いから忘れたけど、vsprintfだっけ?
0156デフォルトの名無しさん
2007/06/28(木) 00:28:03どちらさまですか?
0157デフォルトの名無しさん
2007/06/28(木) 00:28:28おぬしは間違いなくstaticについて理解していない。
なぜstaticが付いているのかを考えるのじゃ
0158デフォルトの名無しさん
2007/06/28(木) 01:02:20BASICのgotoみたいな命令はないのでしょうか?
0159デフォルトの名無しさん
2007/06/28(木) 01:02:33というかできなかったのです。一瞬だけ実行されてすぐ消えてしまいます。
どうすればいいかわかりますか?
0160デフォルトの名無しさん
2007/06/28(木) 01:05:29gotoというそのまんまの命令がある
loop:
printf("test");
goto loop;
みたいに使う
>>159
コマンドプロンプト経由で使えばおk
0161デフォルトの名無しさん
2007/06/28(木) 01:06:300162デフォルトの名無しさん
2007/06/28(木) 01:10:52そのファイル名のみを相手のコマンドプロントでコマンドさせるってことですか?
0163デフォルトの名無しさん
2007/06/28(木) 01:12:280164デフォルトの名無しさん
2007/06/28(木) 01:13:18int main(void){
start:
〜いろいろな処理〜
if(条件を満たしていない) goto start;
多分普通の人であれば
int main(void){
do{
〜いろいろな処理〜
}while(条件を満たしていない);
0165デフォルトの名無しさん
2007/06/28(木) 01:13:310166デフォルトの名無しさん
2007/06/28(木) 01:14:04渡したファイルはexe?
コマンドプロントで、exeのあるディレクトリに移動して実行すればオケ。
0167デフォルトの名無しさん
2007/06/28(木) 01:15:06一般的にはポインタが難しいと言われる。
0168デフォルトの名無しさん
2007/06/28(木) 01:16:061.コマンドプロンプトを起動してもらう
2.コマンドプロンプトにexeファイルをドラッグアンドドロップしてもらう
3.Enterキーを押してもらう
これが一番手軽だと思う
0169デフォルトの名無しさん
2007/06/28(木) 01:17:32ポインタって何に便利なの?
0170デフォルトの名無しさん
2007/06/28(木) 01:18:240172デフォルトの名無しさん
2007/06/28(木) 01:20:43必要にならないと分かりにくいと思う
0173デフォルトの名無しさん
2007/06/28(木) 01:24:36Nバイトの構造体配列をソートして並び替えることを考える。
このとき、Nバイトのコピーが頻繁に発生することになる。
構造体に対するポインタの配列として保存していた場合、ポインタのソートで済むことになる。
例えばポインタが4バイト、構造体が100バイト超とかで配列が1000超とかだとすれば
どちらが効率的かはわかるよね?
0174デフォルトの名無しさん
2007/06/28(木) 01:24:45どうすればいいですか?
171と同一人物です
0175デフォルトの名無しさん
2007/06/28(木) 01:29:33お前がその便利さを知らない、説明できないだけだろ?えせプログラマは
こんなところで質問者をたぶらかしてないで、へちょいプログラマで満足してろよ?
0176デフォルトの名無しさん
2007/06/28(木) 01:29:34ファイルを保存している場所と同じ場所にexeファイルがあると思われ
0177デフォルトの名無しさん
2007/06/28(木) 01:30:55へちょくないあなたがへちょい>>170の代わりに答えてあげてください
0178デフォルトの名無しさん
2007/06/28(木) 01:34:22あるにはあるのですが、ドラッグアンドドロップはできませんし、
そのディレクトリに移動して 〜.exe と打っても実行されません
0179デフォルトの名無しさん
2007/06/28(木) 01:40:02コマンドプロンプトって何かわかってるか?
0180デフォルトの名無しさん
2007/06/28(木) 01:42:45わかってるつもりです
0181デフォルトの名無しさん
2007/06/28(木) 01:43:020182デフォルトの名無しさん
2007/06/28(木) 01:45:17「notepad」って打ってメモ帳が起動するか?
ドラッグアンドドロップでフルパスが表示されて、エンター押して実行できると思ったんだけどなぁ
0183デフォルトの名無しさん
2007/06/28(木) 01:48:14メモ帳はでてきます。
でもファイルをドロップしようとすると○の中に×が入ってるようなのが出てきて
できません
0184デフォルトの名無しさん
2007/06/28(木) 01:49:570185デフォルトの名無しさん
2007/06/28(木) 01:50:51ティ○ポの中にオ×コが入ってるようなので とか妄想しちゃうぞwwwww
0186デフォルトの名無しさん
2007/06/28(木) 01:51:04xpとかだとドラッグアンドドロップできないようになってるのかな?
じゃぁあきらめてフルパス(c:\cpad\test.exeみたいなやつ)を打って実行するべし
入力面倒だけど。
0187デフォルトの名無しさん
2007/06/28(木) 01:54:18Vistaですよ。
かなりめんどいってことですね〜〜…
ありがとうございました
0188デフォルトの名無しさん
2007/06/28(木) 01:55:230189デフォルトの名無しさん
2007/06/28(木) 01:56:120190デフォルトの名無しさん
2007/06/28(木) 01:57:04あっ武勇伝、武勇伝、武勇でんでんででんでんっ♪
0191デフォルトの名無しさん
2007/06/28(木) 02:41:460192デフォルトの名無しさん
2007/06/28(木) 02:43:500193デフォルトの名無しさん
2007/06/28(木) 03:03:13http://ja.wikipedia.org/wiki/%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF
0194デフォルトの名無しさん
2007/06/28(木) 07:10:08下のソースコードだと2つの文字列が改行にいくまで繰り返すって言う意味ですかね?
while((*s1 != '\n') || (*s2 != '\n'))
{〜〜
s1++;
s2++}
0195デフォルトの名無しさん
2007/06/28(木) 07:12:030196デフォルトの名無しさん
2007/06/28(木) 07:18:58ホワイルの中身の意味が知りたくて。
0197デフォルトの名無しさん
2007/06/28(木) 07:21:18そのロジックだと、s1、s2の改行文字の位置が揃っていないと誤動作しそうだが。
#つーか、>194自身が挙げたサンプルで死亡確定だな。
0198デフォルトの名無しさん
2007/06/28(木) 07:57:55s1にもs2にも改行コードないからプログラム起動して即吹っ飛ぶ。
s1がABC\n、s2がAB\nだったとしても一致しないのでやっぱり吹っ飛ぶ。
そのコードはs1とs2の改行コード位置が一致した場合にループ抜ける。
0199デフォルトの名無しさん
2007/06/28(木) 08:00:030200デフォルトの名無しさん
2007/06/28(木) 08:45:230201デフォルトの名無しさん
2007/06/28(木) 08:49:39これの IEEE 方式。
ttp://ja.wikipedia.org/wiki/%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0
0202デフォルトの名無しさん
2007/06/28(木) 08:50:57IEEE 方式のマシンが多い、と。
別にエクセス 64 のマシンでも C は使える。
C かどうかで決まるものではなく、
CPU が何かによって決まるもの。
0203デフォルトの名無しさん
2007/06/28(木) 10:07:580204デフォルトの名無しさん
2007/06/28(木) 11:11:40>>201に書いてあるだろ
0205デフォルトの名無しさん
2007/06/28(木) 11:14:24だから小数点以下いくつという形の精度じゃないと。
「浮動」小数点ってのは、そういう事だ。
0206デフォルトの名無しさん
2007/06/28(木) 12:07:340207デフォルトの名無しさん
2007/06/28(木) 14:02:25但しそれに掛ける10のn乗という指数が付くわけだが。
0208デフォルトの名無しさん
2007/06/28(木) 14:16:16本当は2進数で考えないといけないんだけど。
0209207
2007/06/28(木) 14:21:03#include <values.h>
int main(void)
{
printf("%d, %Lg, %Lg\n", sizeof(long double), LDBL_MAX, LDBL_MIN);
printf("%d, %g, %g\n", sizeof(double), DBL_MAX, DBL_MIN);
printf("%d, %g, %g\n", sizeof(float), FLT_MAX, FLT_MIN);
return 0;
}
gcc 4.1.1 (i386-redhat-linux) で上記のソースをコンパイルして
動かすと結果はこう出る。
12, 1.18973e+4932, 3.3621e-4932
8, 1.79769e+308, 2.22507e-308
4, 3.40282e+38, 1.17549e-38
e から後ろの部分が指数で「掛ける10のn乗」を表す。
3.3621e-4932 は 3.3621 掛ける10の -4932 乗だ。
但し上記の結果は環境依存で、同じ gcc でもコンパイルオプションに
よっては変わってしまう。だから全てについてこうであるという保証は
できない。(values.h も gcc 独自のヘッダかも知れない)。ただ大雑把に
言えることは float よりは double、また double よりは long double
の方が多くの範囲をカバーできるかも知れないというだけだ。
(コンパイラによっては long double はないかも知れないが)。
0210デフォルトの名無しさん
2007/06/28(木) 17:00:08209が使っている定数は<float.h>で提供されている。
0211デフォルトの名無しさん
2007/06/28(木) 17:01:51しかし、double と同じサイズのこともある。
0212デフォルトの名無しさん
2007/06/28(木) 17:10:52質問が抽象的すぎてごめんなさい
0213デフォルトの名無しさん
2007/06/28(木) 17:12:060214デフォルトの名無しさん
2007/06/28(木) 17:42:10putchar('\n')
ってのはどういうことですか?
0215デフォルトの名無しさん
2007/06/28(木) 17:48:00通常は画面だと思っていい。
\n はわかるか?
改行コードをあらわすエスケープシーケンスだ
つまり、画面上で改行する、ということ
0216デフォルトの名無しさん
2007/06/28(木) 17:50:19printf("\n")
とは違うんですか?
0217デフォルトの名無しさん
2007/06/28(木) 18:07:45たまたまprintfで1文字出力するなら、putchar と同じ様になるな。
でも、printf の第一引数の文字列は % とか入ると違ってくるけどな。
0218デフォルトの名無しさん
2007/06/28(木) 18:08:09'\n' は文字
0219デフォルトの名無しさん
2007/06/28(木) 18:31:55というか、putcharでできることはprintfでもできるんですか?
0220デフォルトの名無しさん
2007/06/28(木) 18:32:550221デフォルトの名無しさん
2007/06/28(木) 18:35:29プログラムの内容には関係ないですよね?
0222デフォルトの名無しさん
2007/06/28(木) 18:36:120223デフォルトの名無しさん
2007/06/28(木) 18:40:48% が出てきたらどうするかとかいう処理を行ってる。
ま、出力自体のコストに比べりゃ微々たる差だがね。
0224デフォルトの名無しさん
2007/06/28(木) 18:41:45printfで全部まかなうのもいいし、使い分けるのもいい。
同じことができるなら、片方はまったく無駄だと思ってるなら
それはキミが初心者だから。
0225デフォルトの名無しさん
2007/06/28(木) 18:42:180226デフォルトの名無しさん
2007/06/28(木) 18:43:47意外とされてるんだなあ。
0227デフォルトの名無しさん
2007/06/28(木) 18:48:020228デフォルトの名無しさん
2007/06/28(木) 18:52:36こういうのってどうやって知るんですか?
○は□に最適化されるとか
0229デフォルトの名無しさん
2007/06/28(木) 18:55:28両方のパターンを書いてコンパイルして
バイナリ比較して等しくなるかどうか確認したのでも。
0230デフォルトの名無しさん
2007/06/28(木) 18:57:450231デフォルトの名無しさん
2007/06/28(木) 19:08:410232デフォルトの名無しさん
2007/06/28(木) 19:31:120233デフォルトの名無しさん
2007/06/28(木) 20:31:57一般人は掲示板で知る。
0234デフォルトの名無しさん
2007/06/28(木) 21:16:58普通のハッカーなら掲示板でヒントを読んで自分で試して知るだろうな。
0235ぴっころ
2007/06/28(木) 21:32:592進数で表した時、2の倍数は最下位ビットが0になる事が分かりました。
では3の倍数は何かこのような決まりはあるのでしょうか?
0236デフォルトの名無しさん
2007/06/28(木) 21:33:540237ぴっころ
2007/06/28(木) 21:36:372進法で表した時です。
0238デフォルトの名無しさん
2007/06/28(木) 21:37:000239デフォルトの名無しさん
2007/06/28(木) 21:38:42ヒント1 : 2の倍数とは偶数のこと
ヒント2 : 3の倍数を並べてみよう
0240デフォルトの名無しさん
2007/06/28(木) 21:45:183 (11) で割ったら余りが 0 になるということくらいだな。
0241デフォルトの名無しさん
2007/06/28(木) 21:45:44数学の問題だなあ。
3で割ると余り0
なんてのはあまり意味ないか・・・。
10進数で表した時に各桁を足して3の倍数ならそれは3の倍数
(123は1+2+3=6なので3の倍数)なんてのもあるが、関係ないね。
0242デフォルトの名無しさん
2007/06/28(木) 21:51:230243ぴっころ
2007/06/28(木) 21:51:33>>239
11
110
1101
1100
1111
10101
11000
11011
繰り返しもあるような無いような・・・。
ちょっと僕のキャパでは厳しいです・・・。
0244デフォルトの名無しさん
2007/06/28(木) 21:53:5918はどこへ消えた
0245デフォルトの名無しさん
2007/06/28(木) 21:54:19発想はいいがちょっと惜しいな。
1000000001の間に11を入れて1011000001も3の倍数だ。
0246デフォルトの名無しさん
2007/06/28(木) 21:55:49うそだ!
NHKのじゃじゃまる、ぴっころ、ぽろりのぴっころだろ?
0247デフォルトの名無しさん
2007/06/28(木) 22:06:53vista出使える環境設定ソフトかPATHの設定方法を教えてください。
0248ぴっころ
2007/06/28(木) 22:08:04110
1101
1100
1111
10010
10101
11000
11011
11110
11→10→01→00
・・・。
ちょっときついです。
教えてもらえると助かります。
0249デフォルトの名無しさん
2007/06/28(木) 22:09:420250デフォルトの名無しさん
2007/06/28(木) 22:11:401100
数が減ってるな
まぁ1001の書き間違いだろうからそれくらい勘弁してやれ
0251デフォルトの名無しさん
2007/06/28(木) 22:12:59マイコンピュータのプロパティの中にない?
XP/2003まではそこにあるんだけど。
0252デフォルトの名無しさん
2007/06/28(木) 22:23:37■ このスレッドは過去ログ倉庫に格納されています