08/09/03 01:35:42
>>457-458
最初に、最終行の[scanf]はいらないような気がしましたけど、
必要なのでしょうか。
私も初心者ですが、試しにやってみましたところ…
その構文エラーの原因は、「5」の横に[;]が書いてあるからです。
まず、これをはずしてください。
そのあともエラー出たのですが、[min]が初期化されてないようです。
私は[min]に適当に大き目の数を代入してみました。
それでいけると思います。
もっと詳しい人なら、もっといい解決方法があるかもしれませんがご参考まで。
460:まちがって名前消しちゃいました。
08/09/03 02:50:26
>>459
回答ありがとうございます。#defineに;はいらないんでしたね・・・。
461:まちがって名前消しちゃいました。
08/09/03 14:10:24
配列に関する昇順のソートでお聞きしたいのですが、
void sort(int data[], int n)
{
int k = n - 1;
while ( k >= 0 ){
int i, j;
for ( i = 1, j = -1; i <= k; i++)
if (data[ i - 1 ] >data[ i ]){
j = i - 1;
swap(&data[ i ], &data[ j ]);
}
k = j;
}
}
/*swap()は別途定義された関数。data[]が受け取る配列。[ n ]は配列の要素数です。*/
ここで[ j ]が[ -1 ]で初期化されているのがなぜなのか迷いましたが、
おそらく[while]を抜け出すために[k]を負の値にしなければならないからだと思いました。
ということは、[for]文の[ j = -1 ]によって[ j ]は毎回初期化されてるということでしょうか?
[ i ]はインクリメントされて毎回1ずつ増えていて[ i = 1 ]で初期化されていないように見えるのですが、
なぜ[ j ]は[ -1 ]に毎回初期化されるのか教えてください。
それとも、私の認識が全然違ってて、違う理由で[ k ]がマイナスになって[while]文を抜けてる
のでしょうか。([ i ]も[ j ]も毎回初期化されて[ 1 ]と[ -1 ]になってるとか・・・)
462:まちがって名前消しちゃいました。
08/09/03 17:37:37
iとjにセットしている数値は、あくまでも初期値。毎回初期化はされません。
if文で数値比較後、jにi-1を入れてるのに注目。swapがあればjは-1じゃなくなる。
forで一巡してswapがなければjは-1となり、whileから抜ける。
463:461
08/09/03 19:09:44
>>462
ありがとうございます。頭が混乱してたので、検証してみたところ、
[for]文を数回繰り返し→[while]文の先頭へ→[for]文へ…
を数回繰り返すとき、[while]文の先頭に戻ってから[for]文に入るとき
また初期化されてることを見落としてました。
最後は、[j]が[0]になって[k]に代入され、[while]文の先頭に戻り、
[for]文に入るとき[i]に[1]、[j]に[-1]が代入されて、[i <= k]が成立しないので
[ k = j ]に飛ぶのがわかりました。
そのあと、[k]に[j]の[-1]が代入されて[while]文の先頭に戻り、( k >= 0 )が
成立せず、晴れて[while]文を抜け出してるようです。
やっと納得できました。
464:まちがって名前消しちゃいました。
08/09/03 22:52:45
#include <stdio.h>
#define K ①
int main(void)
{
int i;
long s;
s = ②;
for (i = 1; i <= ③; i++)
s = s * i;
printf("%d の階乗 = %ld\n", K, ④);
return 0;
}
10の階乗を計算するプログラムですが、
①~④の中が分からなかったので教えてください。
465:まちがって名前消しちゃいました。
08/09/04 02:52:26 oBFjqOjP
① うんこ
② ちんこ
③ まんこ
④ SEX
466:まちがって名前消しちゃいました。
08/09/04 21:33:23
#include <stdio.h>
#define K 10
int main(void)
{
int i;
long s;
s = 1;
for (i = 1; i <= 10; i++)
s = s * i;
printf("%d の階乗 = %ld\n", K, s);
return 0;
}
これでいけるかと思います。
467:464
08/09/04 23:02:27
>>466
返答ありがとうございました。
468:まちがって名前消しちゃいました。
08/09/06 08:12:41
全くの初心者なんですが、
おすすめの本はないでしょうか?
469:まちがって名前消しちゃいました。
08/09/06 11:22:32 PN6yhvCs
読んでも身に付かないだろう。
URLリンク(msdn.microsoft.com)
470:まちがって名前消しちゃいました。
08/09/06 11:29:28 PN6yhvCs
URLリンク(homepage3.nifty.com)
URLリンク(www.kumei.ne.jp)
プログラミングを行うには、
「デザインパターン」も知っておく必要がある。
デザインパターンとは先人の知恵だ。
こうすれば、後で困らないように作れます。というレシピ。
URLリンク(634.ayumu-baby.com)
471:まちがって名前消しちゃいました。
08/09/06 12:53:21 nyoT4hzw
464は宿題を赤の他人にやらせたな
将来的には人をコキ使うのが上手な
プロジェクトリーダ、そして社長に
なる器だが、それに引き換え、466の
将来は人にアゴ使われるアホのまんま
で終わりだ。アホじゃ逝けないよ。
472:まちがって名前消しちゃいました。
08/09/06 13:32:04 8YLx2SSB
助けてください。
#include<stdio.h>
int main()
{
int ii,i;
for(int i=0; i!=51; i++)
{
printf("%2d\t",i);
if (i = 50)
ii = i;
}
i = ii;
if (i = 50)
{
printf("Success\n");
}
return 0;
}
で、forの中のprintfが正しく実行されないようなのですが、
これってほっとくとバグになる可能性ありますか?
あと、この書き方ってやっぱり見直して書き換えたほうがいいんでしょうか・・・
473:まちがって名前消しちゃいました。
08/09/06 18:08:59 PN6yhvCs
スコープちがうやん。
URLリンク(www.geocities.jp)
474:まちがって名前消しちゃいました。
08/09/06 18:11:24 PN6yhvCs
宿題は自分で解くように。
このような文法問題は宿題だ。
475:まちがって名前消しちゃいました。
08/09/06 18:13:38 PN6yhvCs
ビルドエラーメッセージをそのまま貼り付けろ。
どっかの中学生レベルの宿題は自分で調べるように。
476:まちがって名前消しちゃいました。
08/09/06 18:18:14 PN6yhvCs
>>458
#include<stdio.h>
#define NUMBER 5;
defuneは「コード置き換え」と思ってて良い。そこにブレークポイントを置いて実行できるところではない。
return も関数ではないから return (1) ではなくて return 1 で良い。
477:まちがって名前消しちゃいました。
08/09/06 18:32:00 PN6yhvCs
■調べてみようと感じる質問
メモリリーク、ヌルポ、スタックオーバーフロー、
意味不明コンパイルエラー、
■教科書嫁と思える質問
どう見ても宿題。
478:472
08/09/06 18:32:20 8YLx2SSB
自己解決しました。
Basicの癖が残っていたようですね。
お騒がせして申し訳ありませんでした。
まさか比較してなかったとは。おお怖い怖い。
479:まちがって名前消しちゃいました。
08/09/12 12:24:12
周りのプログラマーから聞いたのですが、「配列とポインタの違いを理解するといいんだよ」と
言ってました。「動きが違う」とかなんとか。
簡単に言うとどういう意味なのでしょうか。わかる方いましたら教えてください。
480:まちがって名前消しちゃいました。
08/09/12 17:46:48
周りに理解してるプログラマーがいるのに、なぜわざわざ
ここで聞く?
481:479
08/09/12 19:57:55
あまりに熟練者(何十年のベテラン)たちなので、「ポインタって実際の業務だとココが難しいんだよね」
みたいな感じで、あまり詳しく教えてくれない雰囲気なので…
「どう言ったらいいんだろうなぁ…」みたいな感じです。
それで、こっちはチンプンカンプンになりました。
482:まちがって名前消しちゃいました。
08/09/12 23:03:59
データ型が同じだったら配列もポインタも同じだろう?
そいつにキッチリ説明を求めたほうがいい
483:479
08/09/12 23:34:07
私がこの3週間勉強してわかったことと言えば、
・配列の名前を引数として関数に渡すと、先頭の要素のポインタとして渡される。
・配列の中身が変わるのを防ぐために const を付ける。
・変数の値を関数の中で変えて、main()に戻してそれを反映させたいときにポインタを使う。
このように理解してます。間違ってたらすみません。
配列とポインタはもっと奥が深いのだと思ってます。
>>482
たぶん、その人自身も何か勘違いしてるのかもしれませんね。
484:まちがって名前消しちゃいました。
08/09/13 06:19:31
ごめん違ったみたい
ポインタは値を代入可能
配列はアドレス変更不可能
485:まちがって名前消しちゃいました。
08/09/14 14:35:50
>>483
その3つはどれも文句なく正しい。自信持っていいよ。
>>479
そこをよく理解しないままCを使って間違ったことやる人間が多いというだけのこと。
486:まちがって名前消しちゃいました。
08/09/22 19:28:16 6ZIXhFqu
C始めようと思ってるんだけど最初からPCに入ってるコマンドプロンプトじゃコンパイルできない?
487:まちがって名前消しちゃいました。
08/09/22 19:54:55 3xDTFwgS
>>486
コマンドプロンプトじゃコンパイルできないので
↓これでも試してみたら?
Visual Windows for BC++
URLリンク(rd.vector.co.jp)
488:まちがって名前消しちゃいました。
08/09/23 00:05:53 6ZIXhFqu
>>487
インストールできなくて対処方法も試したけど効かなかったからvisual C++にしてみた
++でもCできますよね?
489:まちがって名前消しちゃいました。
08/09/23 00:23:00
>>488
標準入出力だけのライブラリを使うことでC言語の開発環境のようにも動作さられる
ので問題ありません。
490:まちがって名前消しちゃいました。
08/09/23 10:54:29 ePDT8MYP
fatalエラーってどんな意味?
コンパイルさせて出力させようとしたんだけど出てきたんだが・・・
調べたけど難しい言葉で書かれてて意味不すぎる
491:まちがって名前消しちゃいました。
08/09/23 12:05:53
>>490
fatalとは、fate(フェイトというアニメがあったはずだが)の形容詞形。
fate(運命)
fatal(運命的というよりは致命的との意味)
つまり、どうにもならないエラーですってこと。
がんばってねー
492:まちがって名前消しちゃいました。
08/09/23 12:39:07 ePDT8MYP
>>491
ありがと
どうにもならないエラー・・・
visual cpp2005のコマンドプロンプトでcl使うと出るんですよね
493:まちがって名前消しちゃいました。
08/09/26 02:59:06 PAN7XzHE
超初心者です 皆さんがC言語を学ぶのに使った参考書など、これは読んどけというものがあったら教えて下さい
494:まちがって名前消しちゃいました。
08/09/26 12:18:00 YF5imrxx
>>493
IT書籍 「インド式プログラミングバイブル C言語入門 (上)」
URLリンク(www.e-chishiki.com)
こんなすばらしい本があったとはインド人もビックリの入門書
お薦め書籍
URLリンク(www9.plala.or.jp)
495:まちがって名前消しちゃいました。
08/09/26 15:43:30
>>494ありがとうございます
496:まちがって名前消しちゃいました。
08/09/27 11:51:52 2VL8Y4GT
整数型配列 a[5]を宣言する。
配列aに適当な整数を代入する。
配列から最大値を求め画面表示する。
#include<stdio.h>
main()
{
int a[5];
int maxdata;
int i;
a[0]=12;
a[1]=3;
a[2]=40;
a[3]=10;
a[4]=30;
maxdata=a[0];
for(i=1;i<5;i++)
{
if(?)
{
maxdata=a[i];
}
}
printf("最大値:%d",maxdata);
}
?の部分がわからないのですが、誰か教えてもらえませんか?
497:まちがって名前消しちゃいました。
08/09/27 12:07:28 2VL8Y4GT
プログラム板で聞いてくることにしました。
無駄レスすいません。
498:まちがって名前消しちゃいました。
08/10/14 22:53:58 TuavOJJv
成績をつけるプログラムを教えてほしいです。
80点以上100点以内 A
65点以上80点未満 B
50点以上65点未満 C
0点以上50点未満 D
それ以外の整数に対しては「ありえない」と出す
499:まちがって名前消しちゃいました。
08/10/15 00:25:03 pk0GxuXL
printf()でポインタのアドレスを表示するときに、例えば、
printf("%p",(void*)ptr);
のように(void*)が必要な意味を教えてください。
今期の教授がスパコンのプログラミングとかやってる人のようで、うるさく言われるのですが、なぜ必要なのか理解できません。
よろしくお願いします。
500:まちがって名前消しちゃいました。
08/10/15 10:43:55 WEs5N7rQ
>>499
教授の脳内コンパイラーは、(void*)でないと「致命的な
エラー」になる理由は不明だ。
(void)が必要な意味はということは、
間接演算子*と四則演算子*が同じであると、一目で意図が
読み易く検索容易にする意図があるのかも。
自分の教え子が書いたコードを発見しやすくする為かも。
その教授の馬鹿の一つ覚えのようなプログラミング作法の
理由は、その教授に尋ねるしかないだろう。
解らないのは、教え方が悪いことが原因なんですね、その
ような欠陥授業を国の税金で援助していることも問題だ。
501:まちがって名前消しちゃいました。
08/10/15 10:50:24 WEs5N7rQ
void ポインタ - Google 検索
URLリンク(www.google.co.jp)
502:499
08/10/15 16:08:20 XYgPsrOC
>>500>>501
ありがとうございます。
503:まちがって名前消しちゃいました。
08/10/16 12:31:03
C言語どころか他のプログラミング知識も0に近い初心者なんですが、参考書は>>494に書かれているものでも大丈夫でしょうか?
プログラミング自体が初めてなら別の参考書の方が良いのでしょうか?
504:まちがって名前消しちゃいました。
08/10/17 04:23:30
俺は柴田望洋氏の本がわかりやすかったょ。
505:まちがって名前消しちゃいました。
08/10/19 14:19:35 +GN+X/q5
>>500
でたらめ言うな。
>>499
アーキテクチャによっては、ポインタ型の種類によって大きさが違うということがあり得るため。
(ワードマシンでchar*系とvoid*だけほかより大きいとか)
%pはvoid*を引数に取る指定だから、確実にvoid*を渡すためにそのキャストは必要。
506:まちがって名前消しちゃいました。
08/10/19 14:46:18
>>505
> アーキテクチャによっては、ポインタ型の種類によって大きさが違うということがあり得るため。
>(ワードマシンでchar*系とvoid*だけほかより大きいとか)
1ワードは32ビットのこともあれば、一般的に8bitを単位にすることもあるのでワードマシンの真意が不明だ。
「char*系とvoid*だけほかより大きい」って、そこだけアドレスビット数が大きいアーキテクチャかw
32ビットOSか64ビットOSか、またはターゲットOSが32ビットか64ビットかなどという問題はコンパイラーが
吸収してしまう問題で、高級言語の文法に関係しないのではないかと。
507:まちがって名前消しちゃいました。
08/10/19 19:44:26
>>504
ありがとうございます。
ちょっと調べてみますね。
508:まちがって名前消しちゃいました。
08/10/19 23:53:49
>>506
ごめん、自分でもそういうのに実際出くわしたことが無いんだけど。
URLリンク(www.kouno.jp)
ここの5.17にそういう例が挙げられている。
509:まちがって名前消しちゃいました。
08/10/23 14:58:06
質問です。
下のプログラムで階乗の逆数は求められますか?
main(){
int sum,i,n;
i=1;
sum=1;
while(i<=n){
sum=sum*1/i;
i=i+1;
}
}
仮に求められるとして、階乗の逆数の和はどう求められるのでしょうか?
お願いします。
510:まちがって名前消しちゃいました。
08/11/23 15:36:53 JbyrPlJj
C言語を勉強中のものです。起動すると、自動で閲覧の履歴をすべてコピーして任意のフォルダに貼り付けるソフトが作りたいんですけど、
どのような設計でいけますかね?
511:まちがって名前消しちゃいました。
08/11/26 00:42:39 iVNoSBsg
ナベアツ問題難しい
512:まちがって名前消しちゃいました。
08/11/28 16:32:26
いや、何の閲覧?
513:まちがって名前消しちゃいました。
08/11/29 03:17:17 mn3+I5GB
質問です。エラー処理についてですが、perror()とかerrnoってどういう場合に使うのですか?
システムコールの異常でなくて、普通の処理で自分でエラーとして終了させたい場合にも使って良いのですか?
例えばこんなのもありですか?
int main(int argc, char *argv[]){
int a=atoi(argv[1]);
if (a!=100) {
perror("test");
exit(-1);
}
}
あと終了時にexit(-1)とかreturn -1とかreturn 2とかあったりして使い分けがよくわかりません。
errnoについても使い方を教えて貰えると助かります。
514:まちがって名前消しちゃいました。
08/11/29 03:30:02
>>513
>あと終了時にexit(-1)とかreturn -1とかreturn 2とかあったりして使い分けがよくわかりません。
これ(返り値)は自分で決めること
通常、マイナス値は異常を示す
例題のプログラムの場合、返り値が-1だった場合、引数が100ではなかったってことが分かる
515:513
08/11/29 05:22:30 mn3+I5GB
通常はマイナス値で異常を示すということですね。
異常で終了させたい場合はexit(-1)もしくはreturn -1とかが普通ということですよね。
関数の戻り値はメイン側に値を返しますがこれらの場合はOSに返すと思います。
これらの値はどうやれば参照出来るのでしょうか?
516:513
08/11/29 05:47:34 mn3+I5GB
ぐぐったら色々出て来た。
exitとreturnの違いわかりました。
returnは関数の呼び出し元に値返却、
exitはプロセス呼び出し元(=OS)に値返却ですね。
returnにしてもexitにしても、正常終了なら0を返却。異常終了ならそれ以外を指定するようにする。
慣用的には、return -1もしくはexit(-1)だがexitについてはexit(1)と書く人も。(どっちでもOK)
また、stdlib.hで定義されているEXIT_FAILUREマクロを使ってexit(EXIT_FAILURE);としてもOK。
なんか整理出来て来た。ここまでは認識あってますか?
で、OS返却時の値はどうやれば参照出来ますか?
517:まちがって名前消しちゃいました。
08/11/29 05:54:59 0YV8UmJG
>>516
unix系OSでは(例えば)bash上でecho $?コマンドを実行すると直前に実行したプログラムの戻り整数値が表示される・・・
っていってもさっぱり分からんよな。
windows上でfirefox.exeというプログラムの戻り値を知りたいのなら、
#include <stdlib.h>してprintf("%d\n",system("firefox.exe"));などとするとfirefox.exeが終了したときの戻り値が表示される、と思う。
system関数の挙動は上記の説明で明らかだよね?新しい疑問が生まれたならまたどうぞ。
518:513
08/11/29 06:20:09 mn3+I5GB
>>517
質問です。下記のプログラムを実行してみました。
int main(int argc, char *argv[]){
int a=atoi(argv[1]);
if (a!=100) {
perror("test");
exit(-1);
}
}
(1)100を引数として渡した場合
echo $?で値を参照すると0になってました。return 0;をしていないのに0になるのはなんででしょうか?
main関数の戻り値はintなのにreturnを指定しなくても警告も出ないのはなんででしょうか?
(2)100以外の整数を引数として渡した場合
echo $?で値を参照すると-1になるかと思いきや(exit(-1)で抜けているため)255が表示されました。
なんででしょうか?
また、実行結果は test: Undefined error: 0と標準エラー出力されましたがこのUndefined error: 0というのは
どういう意味なんでしょうか?(これはperrorに関する質問かも知れませんが)
519:まちがって名前消しちゃいました。
08/11/29 06:55:01 S/xv0n8V
このif文はどういう意味なんでしょうか?
if (strlen(str1) == 10 && str1[9] != '\n') {
while (getchar() != '\n');
}
520:まちがって名前消しちゃいました。
08/11/29 07:35:52
>>518
以下は自分でも良く理解してない事なので眉に唾を付けて読むこと
(1)return 0;をしていないのに0になるのは"そうなるようにコンパイルされるから"としかいい様がない。
例としてgccを使ってglibcとリンクさせると
1:プログラムを実行するとまずglibc内のある関数が呼び出される
2:その関数がmainを呼び出す
3:mainが終わったらもとの関数に戻ってmainの不始末の尻拭いをする
という動作をするらしいが、処理系依存の話
警告について:例えばgccなら-Wallオプションを付けたら警告してくれると思うが、その他のコンパイラでも出そうと思えば警告は出してくれるのでは
(2)そもそもexit関数の動作は引数がEXIT_SUCCESSでもEXIT_FAILUREでもない時(ここでは-1)は処理系依存、らしい
glibcのexitは(引数 & 255)が返されるとのこと。そしてこれは結果と合致している(-1の2の補数表現は全ビットが1)
perrorについて:perrorは大域変数errnoを参照して標準エラー出力への振る舞いを変えるらしい、
errno変数は開始時は0で、標準ライブラリでエラーを起こしたり(存在しないファイルを読もうとしたり)しない限り0、
perrorはerrnoが0である限り現在の状態は正常である(0は定義されたエラーではない)と標準エラーへ出力するとのこと
521:まちがって名前消しちゃいました。
08/12/02 23:09:17
C言語の最新規格C99では、main関数のみ特別に
returnを省略するとreturn 0;が関数末尾にあったかのように扱うことになっている。
gccはオプションで指定しないとC99の機能は使えないが、
これに関してはそうしたところで古い規格に適合しなくなるわけではないから、
C99の指定の有無に関わらずreturn 0;が補われる挙動になっていると推測される。
522:まちがって名前消しちゃいました。
08/12/08 10:46:44
教えてください
unsigned int POINT1=0;
unsigned int POINT2=0;
unsigned int POINT3=0;
unsigned int POINT4=0;
unsigned a,b,c,d,e,f;
と宣言部で宣言して、
if(e==1 && d==0){
a++;
POINT1 = a;
e=d;
if(a==0x0a){
a=0;
b++;
POINT2 = b;
}
if(b==0x06){
b=0;
c++;
POINT3 = c;
}
if(c==0x0a)
c=0;
f++;
POINT4 = f;
}
if(f==0x06)
f=0;
}
と、割り込みの関数内で記述したところ
warning: type defaults to 'int' in declaration of 'POINT1'
error: conflicting types for 'POINT1'
error: previous definition of 'POINT1' was here ←宣言部の行のエラー
というエラーが出たのですが、
何の矛盾なんでしょうか?
523:まちがって名前消しちゃいました。
08/12/16 12:33:16 HfPfSgWX
bufにaの内容を入れるにはどうしたらいいですか。
int main(){
char buf[256];
char *a="あいうえお\n";
&buf=a;//<-エラー
}
524:まちがって名前消しちゃいました。
08/12/16 13:34:58
>>523
strcpyだったかな?文字列コピーの関数使いなされ。
525:まちがって名前消しちゃいました。
08/12/17 04:12:04 kjiorkiG
おーおっけ有り難う
526:まちがって名前消しちゃいました。
08/12/17 11:51:08 41tiy3bR
goto-lineってどうやるんでしたっけ?
ググってみたんですがM-xというのがどう入力するのか分かりません
527:まちがって名前消しちゃいました。
08/12/19 04:34:29
>>526
URLリンク(ja.wikipedia.org)
528:まちがって名前消しちゃいました。
08/12/25 22:57:07
ひとつ気になって仕方がないことがあるのですが
printf("value=%d",x,y:1,2); の様な感じで (記述は間違ってると思う
%dなどへ渡す値を状況によってif文のように変化させる
マクロ!?のような機能のことは何というのでしょうか?
529:まちがって名前消しちゃいました。
08/12/27 15:39:05
もしかして条件演算子
530:まちがって名前消しちゃいました。
09/01/01 12:52:40
test
531:まちがって名前消しちゃいました。
09/01/01 16:34:05 M6/cJT+v
Visual C++2005 Express Edition
を使って猫でも分かるプログラミングに挑戦しようとしたのですが、最初でつまづきましたw
最初の設定はどのようにすればいいのでしょうか?
532:まちがって名前消しちゃいました。
09/01/01 19:21:31
むりぽ
533:まちがって名前消しちゃいました。
09/01/09 11:23:02 JJ3kN4nG
すみません、Cのことで聞きたいのですが
ret = rfile(~・・・・)
この、rfileの使い方がいまいちよくわかりません。
調べてもでてこなくて・・・
教えていただけませんか?
534:まちがって名前消しちゃいました。
09/01/10 00:47:18 SWiBZwEj
C言語プログラミング認定試験の1級か2級もってたら、経験なくても就職できますか?
535:まちがって名前消しちゃいました。
09/01/10 01:06:30 RT8PkXLn
>>534
資格の有無や経験の有無が重要で即戦力が必要な場合は難しいけど、
ほかに取り柄があれば資格や経験が無くても大丈夫だよ。
「芸は身を助く」という。教えてクン以外に、なにか芸はないのか。
536:まちがって名前消しちゃいました。
09/01/10 01:13:12 SWiBZwEj
派遣切りで仕事探してるけど見つからない。パソコン関係の仕事は
したことないけど、不況なのにいっぱいある。興味がある分野だし
やってみたいけど、資格も経験もないのに申し込んでも断られるだけ。
だから資格だけでもとろうかと思案中です。情報処理と合わせて取ったら
可能性はありますよね?
537:まちがって名前消しちゃいました。
09/01/10 01:38:31
サァ シィノ マターリノ タメニ
色ンナ スレニ 貼ルンダヨ♪
\ /
シカタナイカラ シィノ オシリサンノ
~γ⌒ヽ∧∧ ニホイヲ カガセテ アゲルワ♪
.( * ) ,i゚ー゚*) アリガタク オモイナサイ♪
U U"ヽ)ヽ)
今ならもれなく、しぃのおしりの臭いがかげる掲示板
しぃのマターリ掲示板
URLリンク(jbbs.livedoor.jp)
538: ◆2pTyKAkygc
09/01/10 10:43:58
539:まちがって名前消しちゃいました。
09/01/12 01:29:25
>>534
そんな無名の資格、役立たねえ。
>>536
基本情報だったら猿でも取れるぞ。
ソフ開で、タクシーに原付免許持っていくのと同じくらい。適当だけど。
540:まちがって名前消しちゃいました。
09/01/13 18:55:26 T5c7rh8V
あの、今本当に困ってます。
¥n
float
printf
scanf
この文字の意味を教えてください
541:まちがって名前消しちゃいました。
09/01/13 18:59:53
>>540
gugure
542:朝晩
09/01/13 19:51:43 x530KDV3
age
543:まちがって名前消しちゃいました。
09/01/13 20:05:10
>>540
【¥n】 new lineの略で、新しい行は改行を意味する制御文字
【float】 飛蚊症で浮遊している虫のような小数点表示
【printf】 fはフォーマット(書式)の略で、書式に従ったプリント(出力)命令
【scanf】 fはフォーマット(書式)の略で、キーボードからのキー入力を走査して書式にしたがって処理する命令
このprintfとscanfの二つは、標準入出力関数としてstdio.hで定義された動作を行う関数命令
float 変数を有効桁数6桁の実数型の数値として解釈する変数の前に前置したり、変数の解釈
のしかたを宣言するときに変数の前に前置するC言語で予約された型名
printf
URLリンク(www.nmn.jp)
標準入出力関数
URLリンク(www9.plala.or.jp)
544:まちがって名前消しちゃいました。
09/01/24 15:16:15 MqcIO2Xw
HD性能を測定するbonnie++ベンチマークの説明文で
・putc()による書き込みはstdio命令とOSによるファイルスペースの確保を測定
・write(2)による書き込みはOSによるファイルスペースの確保を測定
ってあるんだけど、
putc()のstdioのオーバヘッドって、putcが書き込みの際にunsigned char型
に型変換することのオーバヘッドって意味かな?
545:まちがって名前消しちゃいました。
09/01/26 03:20:42 Mcx6t/Oc
fwriteで書き込んだ複数ファイルを結合したいのですが、どうすればいいのでしょうか?
URLリンク(www.dotup.org)
例えば↑のソースでいうところのa, b, cの3ファイルを順番に結合してdというファイルを作成したいです。
546:まちがって名前消しちゃいました。
09/01/26 03:24:01 8ZP3m8cl
dを新規に作って順に書き出す
547:まちがって名前消しちゃいました。
09/01/26 03:52:41 nu6Ocew9
Winnyの情報流出を管理・指導する国のIPA職員 岡田賢治 主任が違法ファイルDLしまくり感染して流出したドキュメント類。
嫁以外の女とのエッチ写真や、幼女児童ポルノ、違法アプリ所持、違法アプリバラ蒔き証拠など大量に流出。
★郵政省(今の総務省)、日立製作所、博報堂、味の素・・・と凄い流出規模!
URLリンク(ruru2.net)
★本人は著作権無視で違法ファイルダウンしまくりのくせに、著作権を勉強して知的所有権管理資格持ってるw
URLリンク(ruru2.net)
★全契約先でこの契約書結んでいるが、秘密保持、情報返還・処分義務の立派な契約違反。
URLリンク(ruru2.net)
★西武百貨店社員6155名分の個人情報を違法に自宅に持ち帰り流出。
URLリンク(ruru2.net)
★楽天ショップから個人情報データを違法に自宅に持ち去り大量に個人情報流出!
URLリンク(ruru2.net)
★大量のソニーやマイクロソフト等の大手企業勤務者の流出個人情報! 自民党とか衆議院とかもある。
URLリンク(ruru2.net)
★IPAは自身の流出は画像しか無いと断言しているが大嘘で、IPA役員資料とかも流出している。(IPA資料を無断で自宅に持ち帰り)
URLリンク(ruru2.net)
★三井リハウス(株)の入居者の口座番号や入金金額等のデータベースもIPA岡田賢治主任が流出
URLリンク(ruru2.net)
国の情報処理推進機構 IPA専門職員として違法アプリばら蒔きの大問題犯罪証拠も流出。
違法アプリやシリアルキーを周囲にわざとバラ蒔いている。(現在も違法ATOKを使用しており、長年違法アプリを日常的に使用していた可能性大)
★Micro Soft VisualC++の違法シリアルキーを知人に教えたメール
URLリンク(ruru2.net)
★メールソフトRimArts社 Beckyの違法シリアルキー等、内容から見ても長年かなり広範囲にバラ蒔いていたようだ
URLリンク(ruru2.net)
548:545
09/01/26 04:12:39
別んとこで聞いてきます
549:まちがって名前消しちゃいました。
09/01/26 11:59:27
以下のように乱数を発生させて2次元配列data0に格納するプログラムを作成したのですが、
関数を呼び出す毎に同じ値が出力されます。
一回目
6
38
11
二回目
6
38
11
三回目
6
38
11
といった感じです。
乱数シードの初期化がうまくできていないのが原因だと思うのですが、
なかなかうまく行きません。どう修正したら良いでしょうか?
for(j=0;j<LMEDS;j++)
randum(data0[j]);
void randum(int *number){
int i,j;
int flag;
//size = sizeof(number) / sizeof(int);
flag = 0;
srand(GetTickCount());
//srand((unsigned int)time(NULL));
number[0] = rand();
for(i=0;i<LMEDS_SELECT;){
number[i] = rand() % I_NUMBER;
for(j=0;j<i;j++)
if(number[j]==number[i])
flag = 1;
if(flag==1){
flag = 0;
continue;
}
else
i++;
}
};
550:まちがって名前消しちゃいました。
09/01/26 12:19:13 dXTIOPoH
質問です
#include <stdio.h>
int main(void)
{
int magic; /* マジックナンバー */
int guess; /* ユーザーが当てる */
int i;
magic = 1325;
guess = 0;
for (i = 0; i < 10 && guess != magic; i++) {
printf("考えた数字を入力してください: ");
scanf("%d", &guess);
if (guess == magic) {
printf("正解!");
printf(" %d はマジックナンバーです。\n", magic);
}
else {
printf("残念、違います。");
if (guess > magic)
printf("さらに小さい数字です。\n");
else
printf("さらに大きい数字です。\n");
}
}
return 0;
}
こんなプログラムのguess = 0;の意味がわかりません。
551:まちがって名前消しちゃいました。
09/01/26 12:34:35 Hja/DPq+
flightのメモリを確保して1文字ずつtargetをコピーしながら
insert 1文字をtargetにコピーし、insertが終端に達したら
flightからtargetに文字を帰すんですが、targetの終端を
うまく入れられません? どこが悪いのでしょうか?
/* targetバッファ文字列の先頭にinsertを挿入,(終端には\0を強制挿入) */
/* 戻り値:新しい文字列の長さを返す,エラー:<0 */
static int shiftCopy(char *target, int bufsiz, char *insert)
{
char *flight, *regress; int count=0;
flight = (char *)malloc(sizeof(char)*bufsiz--);
memset(flight,'\0',sizeof(flight));
regress = flight;
while(*insert && count<bufsiz){ /*挿入先を退避させつつ先頭挿入文字を格納*/
if(*target){
*flight++ = *target;}
*target++ = *insert++; count++;
}
while(*target && count<bufsiz){ /*挿入先を退避させつつ退避文字帰還*/
*flight++ = *target; *target++ = *regress++; count++;
}
while(*regress && count<bufsiz){ /*退避文字の帰還*/
*target++ = *regress++; count++;
}
*target='\0';
free(flight);
return count;
}
552:まちがって名前消しちゃいました。
09/01/26 16:28:32
自己解決しました。
/* targetバッファ文字列の先頭にinsertを挿入,(終端には\0を強制) */
/* 戻り値:新文字列の長さ, ERR:<0 */
/* <※危険※>: targetが空のとき,0初期化してないと無意味になる */
static int shiftCopy(char *target, int bufsiz, char *insert)
{
char *flight, *regress;
int count=0;
flight = (char *)malloc(sizeof(char)*bufsiz);
>> memset(flight,'\0',bufsiz); /*初期化サイズの誤り,ポインタの長さを初期化していた*/
regress = flight;
bufsiz--; /*targetパッファからはみ出ないため*/
while(*insert && count<bufsiz){ /*挿入先を退避させつつ先頭挿入文字を格納*/
>> if(!*target){ /*※ '\0'文字の後は不定であることを考慮してなかった*/
>> *(target+1)='\0';
}else{
*flight++ = *target;
}
*target++ = *insert++; count++;
}
while(*target && count<bufsiz){ /*挿入先を退避させつつ退避文字帰還*/
*flight++ = *target; *target++ = *regress++; count++;
}
while(*regress && count<bufsiz){ /*退避文字の帰還*/
*target++ = *regress++; count++;
}
*target='\0'; free(flight); return count;
}
553:まちがって名前消しちゃいました。
09/01/27 16:36:18 P3dZ0k3U
教えてください。
borlandC をコマンドラインで使っています。
実行ファイルへプロパティのバージョン情報タブを付けたいのですが、
どのようにしたら良いですか?
554:まちがって名前消しちゃいました。
09/01/28 05:46:44
nyuumonnkennpou@yahoo.co.jp
ハッキングして個人情報取得できませんか?
555:まちがって名前消しちゃいました。
09/01/28 08:48:25
>>550
疑問に思うならその行を削ってみるといい。動きが変わらなければ無くても構わない。
556:まちがって名前消しちゃいました。
09/01/28 10:53:03
>>550
guess = 0;
曖昧さがないようにゼロで初期化しているだけだ。
宣言しただけでは実体は作成されないので、初期値による初期化を行っている。
iはforループの開始時にゼロで初期化されている。
何にもユーザーが値を入れないでEnterキーを押したときに初期化でゼロをもし
いれていないときにゼロではなくゴミが入っている実装も考えられるから確実
にゼロで初期化する必要があるのだろう。
557:まちがって名前消しちゃいました。
09/01/28 14:48:36 ouVXRaO8
>>555
動きはかわりませんでした。
>>556
理解できました!!!guess = 0;
プログラム実行開始時に変数を初期化しているんですね
magic = 1325;
が固定された値なのになんて悩んでいました。
ようやく進めます
>>555>>556さんレスありがとうございました。
558:まちがって名前消しちゃいました。
09/01/28 20:28:23
>>544
writeでは1度の呼出で、何バイトでも一気に書き込みできるが、
putcでは、1度に1バイトずつしか渡せないという違いがある。
559: ◆xI9zI.tAfo
09/02/09 00:23:29
てすと
560:まちがって名前消しちゃいました。
09/02/11 08:33:51 yekbKKaR
プログラムはまったくの初心者ですがご伝授の程、宜しくお願いします。
現在、Pro*cの開発にて、2日前に作成されたファイルを削除するという
仕様をどうやってプログラミングしていいか悩んでいます。
ネットや本で調べたのですが、行き詰っています。
タイムスタンプを取得してそのファイルを削除が出来るのでようか?
宜しくお願いします。
561:赤西仁
09/02/13 22:55:55 mzpk1Vfg
1年間悩んでます。お力をお貸しください。
アークザラッドⅡというタイトルのゲームの、ゲーム画像(歩行画像など)を抽出したいのですが、
かれこれ1年ほど経ちますが、なかなかうまくいきません。
*もちろん抽出した画像は個人範囲内で利用するつもりです。
◆試してダメだったこと
ネット上からダウンロードできる、ありとあらゆる抽出系ツールを試した。
(ちなみに他のゲームはほとんど抽出可能)
◆教わったこと
・アークザラッドⅡは独自の画像形式を使っているから抽出できない。
・PS上で表示されてるということは絶対に摘出はできるはず。
◆抽出は不可能ではないということを知ったとき
2ちゃんねるで質問したところ、
ある方が実際にキャラクターの歩行画像を抽出して
私が立てたスレにアップしてくださいました。
スクリーンショットじゃ嫌なんです。どうか皆さん、お力をお貸しください。
562:まちがって名前消しちゃいました。
09/02/13 23:05:43
791 :赤西仁:2009/02/13(金) 22:36:56 ID:Ch37WsOG
1年間悩んでます。お力をお貸しください。
アークザラッドⅡというタイトルのゲームの、ゲーム画像(歩行画像など)を抽出したいのですが、
かれこれ1年ほど経ちますが、なかなかうまくいきません。
*もちろん抽出した画像は個人範囲内で利用するつもりです。
◆試してダメだったこと
ネット上からダウンロードできる、ありとあらゆる抽出系ツールを試した。
(ちなみに他のゲームはほとんど抽出可能)
◆教わったこと
・アークザラッドⅡは独自の画像形式を使っているから抽出できない。
・PS上で表示されてるということは絶対に摘出はできるはず。
◆抽出は不可能ではないということを知ったとき
2ちゃんねるで質問したところ、
ある方が実際にキャラクターの歩行画像を抽出して
私が立てたスレにアップしてくださいました。
スクリーンショットじゃ嫌なんです。どうか皆さん、お力をお貸しください。
563:まちがって名前消しちゃいました。
09/02/13 23:43:55
>>560
タイムスタンプを取得してそのファイルを削除するといいよ。
564:まちがって名前消しちゃいました。
09/02/16 17:27:20 +CCojU9+
NULLを検出した時にbreakしたいのですが、認識していないようで・・・
分かる方、対処法をお教え願います
csvbuff = strtok(buff,",\n");
printf("%s\n",csvbuff);
if (csvbuff == '\0'){
break;
}
else{
change_tb(flpcnt,csvbuff);
}
//カンマ区切り
for(flpcnt=1 ; flpcnt<=16 ; flpcnt++){
csvbuff = strtok(NULL,",\n");
if (csvbuff == '\0'){
flpcnt = 17;
break;
}
else{
printf("%s\n",csvbuff);
change_tb(flpcnt,csvbuff);
}
}
565:まちがって名前消しちゃいました。
09/02/16 23:48:09
ナル文字 と NULLポ
p == '\0' は '\0' が頑張ってキャストされて p が持つ NULL に一致する事が "あるかもしれない" 程度
p == NULL は p が NULL の時一致
if(char *p = buff; *p != '\0', p < buff + buf_len; ++p) するでしょ?
566:まちがって名前消しちゃいました。
09/02/16 23:49:35
いや一致することは 100% あり得んな
567:まちがって名前消しちゃいました。
09/02/17 20:29:58 WRhCvk+d
#include <stdio.h>
main()
{
puts ("My first program!!") ;
}
でコンパイルしても'○○'は内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されませんって出るのはなんで?
568:まちがって名前消しちゃいました。
09/02/17 20:37:45
putsじゃなくてprintfにしてみたら?
569:まちがって名前消しちゃいました。
09/02/17 21:04:07 WRhCvk+d
>>568
できたありがとう
570:chapter
09/02/19 19:46:59 gAgh/Mrm
今日からC言語の勉強を始めました。よろしくお願いします。
早速ですが質問です。MINGWを使ってるんですが
example1.cというソースファイルを作成した後に、「ls」でそのソースファイル
を呼び出して、「gcc example1.c」と入力してコンパイルしようとしたんですが
「sh: gcc: command not found」と表示されてしまいます。
ちなみに、example1.cの中身は
main()
{
}
です。本来なら何も表示されないはずなんですが・・・;;
どなたか原因を教えて下さい。
571:まちがって名前消しちゃいました。
09/02/21 16:27:09
>>570
MINGWをよく知らんのですが
>「sh: gcc: command not found」
gccが見つからんから知らねとゆーてる。
ちゃんとインストールされているか、パスが通っているか確認してみては?
572:まちがって名前消しちゃいました。
09/03/01 00:45:40
#include<stdio.h>
#include<math.h>
FILE *file;
int main(void){
int i,j;
double x,y,z;
for(i=0;i<=1000;++i){
x=0.3*i;
for(j=0;j<=1000;++j){
y=0.3*j;
z=sqrt(1+x^2+y^2);
fprintf(file,"%f %f %f\n",x,y,z);
}
}
fclose(file);
return 0;
}
z=sqrt(1+x^2+y^2);の部分で浮動小数点の不正な使用
というエラーが出るのですが、どうすればいいですか?
573:まちがって名前消しちゃいました。
09/03/01 04:09:16 g6EP3qUi
>>572
C言語での、べき(^)演算子は~乗として使うわけではない。
URLリンク(www5c.biglobe.ne.jp)
今回の場合は、
z=sqrt(1+x*x+y*y);
とするのが正解。
または、
z=sqrt(1+pow(x,2)+pow(y,2));
とするのが正解。
574:まちがって名前消しちゃいました。
09/03/01 09:16:19 YXipVU2C
C♯とCプラプラはそんなにちがわないですよね。
575:まちがって名前消しちゃいました。
09/03/01 15:28:53
>>574
まるで別物。
576:まちがって名前消しちゃいました。
09/03/01 18:30:38
>>573
あざーす
まったく、そのとおりでした
577:まちがって名前消しちゃいました。
09/03/14 12:44:17
学校の課題を手伝ってください。
キューを利用して、プリンタのプリントキューを再現したプログラム(以下に要点を記載)を作成しなさい。
"1”を入力するとキューにデータが追加され"2"を入力するとキューからデータが取り出される
キューが満杯になったり、空になったりした際はその旨をメッセージで表示する。
また、以下の関数を作成し、使用しなさい。
vaio enqueue(int val)キューにデータを追加する
vaio dequeue() キューからデータを取り出す
vaio queue_print()キュー全内容を表示する
以上ですお願いします。
578:まちがって名前消しちゃいました。
09/03/14 17:42:27
vaioではなくvoidでしたすいません。
579:まちがって名前消しちゃいました。
09/03/14 21:10:02
>>577
マルチポスト乙。
スレリンク(tech板)
580:まちがって名前消しちゃいました。
09/03/17 02:43:08
PCサロン板にプログラム言語Cのスレがあったなんてw
581:まちがって名前消しちゃいました。
09/03/18 18:40:05
>>580
この板ができた経緯が難民収容で、何でもありだったんだよ。
582:580
09/03/18 18:48:11
>>581難民かw
583:まちがって名前消しちゃいました。
09/04/08 12:42:58
test
584:まちがって名前消しちゃいました。
09/04/12 02:42:32
std::vector<double> scoreのメディアンを取りたいとき、median(score)としても駄目でした。
こんな関数ありますか?
585:まちがって名前消しちゃいました。
09/04/12 02:47:38
あるソースにこんなことが書いてあったのですが意味がわかりません
どういう意味でしょうか
std::istream& read(std::istream&);
586:まちがって名前消しちゃいました。
09/04/12 11:23:50
>>585
std::istreamを継承する全てのオブジェクトを受け取れるようにしてあるもの。
例えば
std::string global_str;
として、もしも
void read()
{std::cin >> global_str;}
だったとするとglobal_valに標準入力から文字列を格納するわけだが
これだとstd::cinからしか受け取れない。
そこで
std::istream& read(std::istream& is)
{is >> global_str;
return is;}
とすることでstd::istreamを継承する全てのオブジェクトから読み込めるようにしてある。
普通はistreamじゃなくてostreamで見かけるけどね。
587:まちがって名前消しちゃいました。
09/04/15 00:18:36
>>584
<algorithm>のnth_elementを工夫して使えばいいと思う。
要素数が奇数のとき
std::nth_element(score.begin(), score.begin() + score.size() / 2, score.end());
double m = score[score.size() / 2];
偶数のとき
std::vector<double>::iterator center_right = score.begin() + score.size() / 2;
std::nth_element(score.begin(), center_right, score.end());
std::nth_element(score.begin(), center_right - 1, center_right);
double m = center_right[0] + center_right[-1];
588:まちがって名前消しちゃいました。
09/04/15 00:19:45
>>585
もし、それがCだと思っているなら、違うと否定しておく。
C++だよ一応念のため。
589:586
09/04/15 06:04:09
>>588
ああ、
質問者の質問の意図は
そう言う意味だったのか。
素で答えちまった。。。
590:まちがって名前消しちゃいました。
09/04/18 00:15:16
標準関数について気になっていろいろ調べていたところ、
printfのような標準関数がstdio.hなどで宣言されているのはわかったのですが、自作した関数のように
int ***(---)
{
.....
}
と定義(?)されているのが見つかりません。
標準関数は宣言のみでできているということなのでしょうか?
違うなら、どこで定義されているのか教えてください。お願いします
591:まちがって名前消しちゃいました。
09/04/18 00:22:26
>>590
ソースがある場合もあるし
コンパイルされたライブラリ(バイナリ)でどっかにある場合もある。
環境を書け。
592:まちがって名前消しちゃいました。
09/04/18 00:35:00
OSがVistaで、コンパイラはMicrosoft Virtual C++ 2008 です
593:まちがって名前消しちゃいました。
09/04/18 16:30:02 fK1MoCdV
#include <stdio.h>
#include <math.h>
int main(void)
{
int i;
double exp(double x);
int x=-1.25*exp(-0.4*i)+1.25;
for (i=0; i<=20; i++)
{
printf("%dです:",x);
}
return(0);
}
x=-1.25*exp(-0.4*i)+1.25 のiに0~20まで代入した値を出したいのですが
1ですと20回出るだけです。
何が違うのか教えてください。お願いします。
594:まちがって名前消しちゃいました。
09/04/18 16:37:47
>>593
int x=-1.25*exp(-0.4*i)+1.25;
この一文でxは整数だから、小数点以下切り捨てで代入される。
なのでxの型を変更すべし。doubleとかに。
595:まちがって名前消しちゃいました。
09/04/18 16:57:01
>>594
doubleでやってみたらできました!
本当にありがとうございました。
596:まちがって名前消しちゃいました。
09/04/18 17:11:49
>>595
あと強いて言うなら
return(0);
は
return 0;
でいいんだよ。
また、for (i=0; i<=20; i++)
は for (i=0; i<=20; ++i)
の方が効率がよい。
(ただし「理論上わずか程度」ってぐらいだが。コンパイラの最適化もあるし。)
597:まちがって名前消しちゃいました。
09/04/18 17:42:27
ふむふむ、勉強になります
あと、この結果表示を縦並びにするのはどうすればいいですか?
598:まちがって名前消しちゃいました。
09/04/18 18:14:28
>>597
縦並び?
どういうこと?
改行したいと言うことかい?
改行なら
"%dです:"
を
"%dです\n"
にすればよろしいかと思いますが。
599:まちがって名前消しちゃいました。
09/04/22 11:19:13 0/4eA6Ud
ちょっと知恵もしくは答えを教えてほしいプログラミングの問題があるんだ。
u,nは整数で
1000>u>1,1000>n>=3 x>0,y>0,z>0 d>=0 の条件下で
d=u^n-max{x^n+y^n+z^n}
このときdが最小となる(x,y,z)の組を求めよ
ちょっとサンプルデータな
u n d x y z
2 3 5 1 1 1
6 3 0 3 4 5
7 4 224 4 5 6
98 3 8 2 48 94
76 4 733 17 47 73
54 5 103717 13 47 47
123 3 0 6 51 120
456 3 0 6 51 120
もしかしたらデータずれてるかも
600:まちがって名前消しちゃいました。
09/04/22 11:20:52 0/4eA6Ud
で、d=・・・ってところのプログラミングがさっぱりなんです。
いろいろ考えたけど、どうしても規則性がみつけられなくて・・。
たのんます
601:まちがって名前消しちゃいました。
09/04/23 22:53:40
VC++使ってるんですが、
int a = 12, b =100;
int i = (printf("%d",a), a);
みたいにすると、ディスプレイに12と表示されて、さらにiにはbと同じ値の100が入っていました
これってCの規格通りなのでしょうか、それとも処理系の特性によるものなのでしょうか?
602:まちがって名前消しちゃいました。
09/04/23 22:56:31
間違えました
>>600の3行目は int i = (printf("%d",a), b); です
603:まちがって名前消しちゃいました。
09/04/24 03:51:15
>>601
規格通り。
関数呼出の引数を並べるとき以外で、「式」の中に現れるカンマは、順次演算子というれっきとした演算子の1つ。
左から順に演算を行い、右側の値を結果とするというもの。
printf(), aを取り囲む括弧は(1 + 2) * 3などと同じように式を括るための括弧。
604:まちがって名前消しちゃいました。
09/04/24 11:27:02
【国際】 「中国でデジタル家電など売りたいなら、ソースコードを強制開示」 中国、制度強行へ…国際問題化の懸念★3
スレリンク(newsplus板)
【知的財産】中国:ITソースコード強制開示強行へ・制度を5月に発足…国際問題化の懸念 [09/04/24]
スレリンク(bizplus板)
605:まちがって名前消しちゃいました。
09/04/26 08:50:58
#include <stdio.h>
void main()
{
printf("Hello, World!");
return 0;
}
すいません。Visual C++2008 を使ってこのコードで、
「デバッグなしで開始」とすると・・・
1>------ ビルド開始: プロジェクト: test, 構成: Debug Win32 ------
1>コンパイルしています...
1>cl : コマンド ライン error D8045 : C ファイル '.\test1.c' を /clr オプションと共にコンパイルできません
1>test - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
と出てしまいます。どうしたらエラー0になりますでしょうか?
606:まちがって名前消しちゃいました。
09/04/27 23:08:19
>>605
プロジェクト作るときにWin32コンソールプロジェクトを選べ。
あとint main()な。
607:まちがって名前消しちゃいました。
09/05/01 11:56:47 BeV73NTB
PCはXPでcpad for LSI C-86使ってるんですが
exitがよくわからないです
プログラム
#include <stdio.h>
int main(void)
{
exit(1);
}
コンパイルメッセージ
関数exitは宣言されていないのでint型とみなす。
608:まちがって名前消しちゃいました。
09/05/01 19:32:07
>>607
#include<stdlib.h>
609:まちがって名前消しちゃいました。
09/05/06 22:26:14 zXBJqRNY
お前らごときがC言語なんか使うな
オナニー言語でも使ってろw
610:まちがって名前消しちゃいました。
09/05/13 17:12:32
borland c++ compiler 5.5において以下のプログラムをコンパイルした所エラーは出ないのですが、
windowsプロンプト上の実行結果に何も表示されません。
どなたか解決方法についてご教示願います。
#include<stdio.h>
FILE *fp;
char a;
int s;
int main(void)
{
fp = fopen( "test.txt", "r" );
while ((s=getc(fp)) != EOF) {
if(s==0) printf("B");
}
fclose(fp);
return 0;
}
611:まちがって名前消しちゃいました。
09/05/13 17:14:06
追記
test.txtの内容は、2進数文字列です。
612:まちがって名前消しちゃいました。
09/05/13 17:16:55
>>610
s=='0'とかs=='1'にしたいんじゃないの?
文字と数値の区別ついてる?
613:まちがって名前消しちゃいました。
09/05/13 17:22:12
>>612
動きました。有難うございます。
文字を扱うのは初めてだったので、躓いていました。
614:まちがって名前消しちゃいました。
09/05/14 17:53:48
なんでエラーになるのでしょうか?
#include <iostream>
class Test {
private:
Test *p;
public:
Test* GetP() {
return p;
}
};
int main() {
Test *t = new Test();
t->GetP() = NULL;
return 0;
}
615:まちがって名前消しちゃいました。
09/05/14 18:22:17
Test*& GetP() {
616:まちがって名前消しちゃいました。
09/05/14 18:24:28
ありがとう でも理解できひん なんでポインタの後に参照が!?
教えて
617:まちがって名前消しちゃいました。
09/05/14 18:36:07
>>614-617
C++スレ行けよw
618:まちがって名前消しちゃいました。
09/05/14 18:48:20
>>614-617
てことはおまえもいくってことか
619:まちがって名前消しちゃいました。
09/05/14 19:13:09
Test** GetP(){
return &p;
}
*(t->getp())=NULL;
620:まちがって名前消しちゃいました。
09/05/18 03:46:26
メモリリークについては誰も突っ込まないのか?
621:まちがって名前消しちゃいました。
09/05/19 09:50:03 LMpDXf3y
何でエラーになってしまうのでしょうか?
int na; /*身長(整数値)*/
double ba; /*標準体重(実数)*/
printf("身長を入力してください:");
scanf("%d", &na);
(double)ba=(na-100)*0.9; /*キャスト*/
print("標準体重は%5.1fです。\n" ba);
return(0);
622:まちがって名前消しちゃいました。
09/05/19 10:28:29
>>621
baをキャストしてどうする。
途中計算をキャストしろ。
623:まちがって名前消しちゃいました。
09/05/20 19:23:56
C言語の挿入ソートの比較回数について質問です.
↓は一応挿入ソートで正しくソーティングできています.
void inssort(int data[], int n) {
int i, j;
for (i = 1; i < n; i++){
j = i;
while(j >= 1 && data[j-1] > data[j]) {
swap(&data[j], &data[j-1]);
j--;
}
}
}
大域変数compareがあるとして、どこにcompare++;を入れれば正確くに比較回数を測ることができますか?
while関数の前におくと比較回数が固定になってしまいますし,
while関数の中において,整列済みのデータをソートしようとすると比較回数0になってしまいます・・・orz
624:まちがって名前消しちゃいました。
09/05/20 23:06:32
do{
scanf("%d",&va[i]);
scanf("%d",&vb[i]);
scanf("%d",&vc[i]);
scanf("%d",&vx[va[i]][vb[i]][vc[i]]);
printf("続けますか?(続ける1 終了する0)"); scanf("%d",&f);
j++;
i++;
}while(f==1)
for(i=0;i<j;i++){
printf("%d",vx[va[i]][vb[i]][vc[i]]);
}
こんな感じで、
vx[ この中に更にva[i]をいれる]
ってできますか?
625:まちがって名前消しちゃいました。
09/05/21 03:51:14 QK+Npslk
「cの入門の入門」て本のP58 「自作プログラムを保存するディレクトリを作る」て項目がありまして、やってみたのですが
C:\Documents and Settings\sela>
C:\>mkdir Source
サブディレクトリまたはファイル Source は既に存在します
C:\>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は ****-**** です
質問1 テキストには「サブディレクトリまたはファイル Source は既に存在します」との表示は無いのですが
この表示がでるのは問題あるのでしょうか?
質問2 そして、C:¥>dirの後はずらずら表示された中に
2005/01/DD HH:MM <DIR> Sourceという1行がないとダメみたいなんすけど
上記の通り
「ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は ****-**** です」
どのようにすればいいのでしょうか?
宜しくお願い致しますm(__)m
626:まちがって名前消しちゃいました。
09/05/21 04:38:49 ftKzh7mB
>>625
それC言語と関係無いから、エラー出ても関係無いよ。
重要なことは、プログラムを打ち込んで実行できること。
MS-DOSは出来る必要がない。
627:まちがって名前消しちゃいました。
09/05/21 04:43:36 ftKzh7mB
>>625
BCC developerでもいれておけばいい。 ウェブで調べたら導入できる。
628:まちがって名前消しちゃいました。
09/05/21 06:22:37
>>625
全然C言語の問題ではない。
だが簡単でいいから初歩のコマンドラインでの操作を
出来るようにしておいた方が、この後 色々やりやすいかと。
629:625
09/05/21 13:09:48
ありがとうございます。m(__)m
書籍名間違ってました。「cの入門の入門」誤 → 正「C入門の入門(翔泳社)」
BCC developerていうのを初めて聞きました。帰宅後に調べてみます。
ありがとうございました。m(__)m
630:まちがって名前消しちゃいました。
09/05/21 16:18:23
>>623
比較回数って、ソートするべき値(data[j] と data[j-1] )の比較を何回やったかを知りたいんだよね。
だったら、whileの前に置いた比較回数固定が正しいんじゃないの。
そのソースでは、データ数が同じなら比較回数は変動しないよ。
頭からケツまで丁寧に全比較だもん。
631:まちがって名前消しちゃいました。
09/05/22 23:10:41
すみません。
構造体の先頭アドレスから、その構造体の最初のメンバのアドレスを取得する方法はないでしょうか?
632:まちがって名前消しちゃいました。
09/05/23 10:51:04
>>631
構造体のポインタとその最初のメンバのポインタの値は同じ。
633:まちがって名前消しちゃいました。
09/05/24 17:22:56
>>632
ありがとう。
でも型が違うから、そのまま流用しようとすると当然エラーになる。…。
634:まちがって名前消しちゃいました。
09/05/25 11:03:06
>>633
どういう風に流用するつもりなの?
乱暴な答えはキャストだけど。
635:まちがって名前消しちゃいました。
09/05/26 23:43:17
>>634
重ね重ねありがとうございます。
単純にchar型でキャストすれば良かったのか…!
そもそもは、構造体の各々のメンバ(すべて同一サイズのchar型)に対して、
妙な値が入っていないか確認したかったのです。
ただ、メンバの数がかなり多くて、ひとつひとつメンバ名を書くのが手間でした。
なので、for文か何かでまわす方法が無いか探してました。
最初のメンバのポインタが指定できれば、あとは1メンバごとに
メンバのバイト数分インクリメントしていけば指定できるので。
636:まちがって名前消しちゃいました。
09/05/27 03:19:01
「%5.2f とあったら表示する桁数は全部で(少数点も含めて)5桁
少数点以下は2桁です。1.26は1.26と表示されます。
全部で5桁なのでまだ1桁あまっています。」
とテキストに表示されてるのですが、
1.26は3桁なので2桁あまってると思うのですが、
「何故1桁あまる」のが正解なのか分かりません。
教えて下さい。
637:まちがって名前消しちゃいました。
09/05/27 05:13:24
↑の質問した者です。
「1.26」の小数点も桁に含むから4桁と解釈するのでしょうか?
638:まちがって名前消しちゃいました。
09/05/27 11:02:42
>>635
charでキャストはない。*charならありえるが。
>最初のメンバのポインタが指定できれば、あとは1メンバごとに
>メンバのバイト数分インクリメントしていけば指定できるので。
パディングがある可能性があるからそれはダメだ。
現状の
struct s{ char hoge[10]; char fuga[10]; ...
を
struct s{ char A[N][10];};
と変更すればいいと思うが。
今のデータ構造は二次元配列とみなせるんでしょ?
639:まちがって名前消しちゃいました。
09/05/27 22:51:40
>>638
パディング…!
今のテーブルを2次元配列で宣言しなおし、
s.A[0]や、s.A[1]とメンバを指定すればいいということですか?
それならうまくいきそうです。
ですが…。この構造体、メンバ名を使っていろんなところで呼ばれているのです。
構造体を宣言しなおすとなると、結局ソース全部を手作業修正→ミス発生の可能性が高くなります。
大人しくメンバ名を書き並べて言ったほうが安全な気がしてきました。
アドバイスありがとう orz
640:まちがって名前消しちゃいました。
09/06/11 07:09:04
test
641:まちがって名前消しちゃいました。
09/06/13 11:41:50
映画ターミネーター見た?
始まりのところに、C言語ソースプログラム 映ってるよね。
642:まちがって名前消しちゃいました。
09/06/15 21:52:24
float a,b;
a=6.8;
b=2.3;
printf("%f", a * b * 2.0);
結果
31.280001
最後の1が気持ち悪いんですが
なんでこうなってしまうんでしょうか?
実数の複雑な計算をする時は
どう回避するんでしょう??
643:まちがって名前消しちゃいました。
09/06/15 22:29:10
>>642
精度の問題。
>実数の複雑な計算をする時は
>どう回避するんでしょう??
完全な回避は無理。
擬似的に精度をむっちゃくちゃ上げてごまかすしかない。
とりあえず君の場合
float a,b;
を
double a,b;
と書き換えてみて。
644:642
09/06/15 23:48:27
>>643
ありがとうごさいます。
こういうものなんですね。
自分のコンパイラが壊れてるのかと不安でした。。
645:まちがって名前消しちゃいました。
09/06/16 05:20:01
>>644
大丈夫、初心者のうちはコンパイラのせいなんてことはまずないから。
言語の仕様の問題。
どーかんがえてもコンパイラのせいだろ!と思っても突き詰めてみると
自分の知識不足だったりする。
・・・もっとも、さらに高度になってくると本当にコンパイラのせいだったり
するのだがね。
646:まちがって名前消しちゃいました。
09/07/17 03:05:53
アクションゲームプログラミングって本を参考に
プログラミングしようと思ってるんですけど
ひとつ疑問が、
Directx SDKのバージョンが違うんですけど
最新版でも問題はありませんか?
647:まちがって名前消しちゃいました。
09/07/17 15:54:30
>>646
アクションゲームプログラミングって本をしらないからなぁ。
みんな
古いバージョンの仕様に依存するコードなら大いに問題あり、
古いバージョンの仕様に依存しないコードなら全く問題ない
っていう通り一遍の解答以外はできないだろうな。
648:まちがって名前消しちゃいました。
09/07/27 00:09:26 FPCfIowr
a→b→a→a→c→d→b→c→c→d
のようなリストがあるときに、a,b,c,dの出現回数を調べたいときは
どうやるといいですか?
649:まちがって名前消しちゃいました。
09/07/27 11:01:16
>>648
グローバル変数に
unsigned int a_count = 0;
unsigned int b_count = 0;
unsigned int c_count = 0;
unsigned int d_count = 0;
としておいて、見つける度にその数を増やす。
なれてきたらグローバル変数じゃなくし、
unsigned int count[4]={0,0,0,0};
とした方が楽かもしれないけど。
650:まちがって名前消しちゃいました。
09/07/27 11:02:31
>>648
こいつはマルチなんで相手にしないように。
651:まちがって名前消しちゃいました。
09/08/05 03:03:17
ビルドしようとしたら
cl.exeを起動しようとしてエラーが発生しましたと出て、失敗しました。
何度やっても一部を除いてビルドできません、
原因分かりますか?
652:まちがって名前消しちゃいました。
09/08/09 22:43:46
#include <stdio.h>
int main()
{
char str[] = "AXMDOBERSDULLPQ";
char *ptr = str;
while (*ptr) {
*ptr = *ptr - ('A' - 'a');
ptr++;
}
printf("%s\n", str);
return 0;
}
参考書見て勉強しているんですが解説が無いのでわかりません。
whileを抜けるのは
ptr++を続けていくうちに*ptrでは無くなった→ループ終了。
という解釈でいいですか?
お願いします。
653:まちがって名前消しちゃいました。
09/08/10 09:12:37
文字列の終わりには\0がついてるから
654:まちがって名前消しちゃいました。
09/08/10 20:54:00
なるほど。
ありがとうございます。
655:まちがって名前消しちゃいました。
09/08/10 20:57:41
本当に分かってる?
大丈夫?
君の言う
> *ptrでは無くなった
の意味は分かってるかい?
656:このプログラム作ってください!( >_ < )
09/08/11 03:17:34 3VO0IOXx
1. 以下のプログラムは、勝ち数と負け数を入力して勝率
(= 勝ち数 / ( 勝ち数 + 負け数) )を計算するプログラムである。
勝ち数、負け数に負の値が入力された場合は入力をやり直させ、
勝ち数+負け数が0 の場合は勝率計算が不能であることを表示する。
ただし、このプログラムはバグを含んでおり正しく動作しない。
デバックを行って正常動作するようにせよ。
修正したソースプログラムと実行結果を示すこと。
657:このプログラム作ってください!( >_ < )
09/08/11 03:19:38 3VO0IOXx
#include <stdio.h>
int main(void){
int nwin, nlose;
do
printf("勝ち数を入力してください:");
scanf("%d",nwin);
if (nwin<0)
puts("負の値を入力しないでください!");
while(nwin<0);
do
printf("負け数を入力してください:");
scanf("%d",nlose);
if (nwin<0)
puts("負の値を入力しないでください!");
while(nlose<0)
total = nwin + nlose;
if (total = 0)
puts("勝率を計算できません。");
else
printf("勝率は%dです。\n",nwin/total );
return(0);
}
658:このプログラム作ってください!( >_ < )
09/08/11 03:20:18 3VO0IOXx
2.半径(cm)と中心角(度)(いずれも整数値)を入力して扇形の面積を計算する
プログラムを作成せよ。円周率の小数点以下桁数は任意に決めてもよい。
ただし、入力値に以下の処理を加えること。
・半径に負の値が入力された場合、入力をやり直させる。
・中心角の入力値は以下のように処理する。
i. 0~359の場合はそのまま使う。
ii. 負の値の場合、0か正の数になるまで繰り返し360を
加えた値を中心角とする。
(例: -30 -> 330, -450 -> 270 )
iii.360以上の場合、360で割った剰余を中心角とする。
3.正の整数を繰り返し入力し、0 か負の数が入力されたらそこで入力を打ち切り、
そこまでの合計と平均を計算するプログラムを作成せよ。
最後に入力した負の数は計算に入れないようにせよ。
また、平均は小数点以下まで算出せよ。
すいません、明日までにお願いできますか?
659:まちがって名前消しちゃいました。
09/08/11 08:57:25
>>657
エラーが出るからデバッグする
660:まちがって名前消しちゃいました。
09/08/11 10:33:34
>>657
はマルチなんで相手にしないように。
661:まちがって名前消しちゃいました。
09/08/11 21:36:06
もっとヒネった問題だしてよ
662:652
09/08/12 16:14:40
>>655
おそらく理解できていると思います。
文字列の最後尾にあるのは\0→whileが0(偽)になったのでループ終了。
ということではないでしょうか?
663:655
09/08/12 17:59:48
>>662
ああ分かってるっぽいね。
それでOKです。
664:まちがって名前消しちゃいました。
09/08/26 19:15:05
Cで作ったものはどのOSでも正常に動くんですか?
665:まちがって名前消しちゃいました。
09/08/26 23:05:54
ポインタのポインタに入っている関数にはどうやってアクセスするのでしょうか?
AAA a
AAA* b
AAA** c
b=&a
c=b
c(ここがわかりません)d()
666:まちがって名前消しちゃいました。
09/08/26 23:31:07
>>665
> c=b
ここがおかしいでしょ。
667:まちがって名前消しちゃいました。
09/08/27 05:59:52
>>664
むしろ動かない。
Cで書いたプログラムはそのコンパイルされたPC上でのみ動く。
・・・だが実際にはちょっとくらい違うPCでも動いたりする。
例)同じWindows XPのSPの差など
動かない例は
例)Windows XP と Linuxなど
668:まちがって名前消しちゃいました。
09/09/04 22:27:09
電卓とカレンダー作りができる程度の初心者です。
基礎学習になるようなプログラムを組みたいのですが、何かおすすめの題材はありますか?
また、ゲーム作りに興味があるのですが、少し調べてみたところ基礎的な学習とは方向性が違うように感じ、
基礎が身に付くまでは汎用的な学習がしたいと考えているのでチャレンジするかどうか迷っています。
ゲーム作りはC言語の基礎学習になるのでしょうか?この点についてもアドバイスをもらえたら嬉しく思います。
よろしくお願いします。
669:まちがって名前消しちゃいました。
09/09/04 23:32:14
>>668
このスレは結構過疎ってるから
スレリンク(tech板)
で質問するのがよいかと。
その質問はここでは取り下げてから
じゃないとマルチポスト扱いにされちゃうから注意。
670:まちがって名前消しちゃいました。
09/09/05 00:22:58
>>669
親切に誘導していただき、どうもありがとうございます。
助かりました!
では、>>668の質問取り下げさせていただきます。
671:まちがって名前消しちゃいました。
09/10/19 21:11:00
テンプレあるかワカランが
c言語ってなにの初心者
なにからすべき?
672:まちがって名前消しちゃいました。
09/10/19 22:13:43
>>671
このスレは結構過疎ってるから
スレリンク(tech板)
で質問するのがよいかと。
その質問はここでは取り下げてから
じゃないとマルチポスト扱いにされちゃうから注意。
673:まちがって名前消しちゃいました。
09/10/19 22:14:33
いや
C言語なら俺に聞け(入門篇) Part 54
スレリンク(tech板)
だったか。
674:まちがって名前消しちゃいました。
09/10/19 23:07:19
トンクス
とりあえずROMっとく
675:まちがって名前消しちゃいました。
09/10/20 21:11:20
C言語でなにするの?
あらかじめ文つくって全自動で友人とチャットをかってにやってくれたりできるの?
676:皐
09/10/27 02:55:52
{
do c = *p++ & 0xff;
while (isspace(c));
return c;
}
ってどういう意味ですか?
教えてください!!
677:まちがって名前消しちゃいました。
09/10/27 21:54:34
p が指し示すアドレスから、最初に出現する空白文字でない文字の値を返す
678:まちがって名前消しちゃいました。
09/11/06 01:31:37
すいません
動的に確保したポインタの配列(2次元配列として使いたい)にデータを代入しようとするとwarningがでます。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char **arr;
int i,j;
arr = malloc(3 * sizeof(char *));
for(i=0; i<3; i++) arr[i] = malloc(3 * sizeof(char));
strcpy(arr[0],"aa");
printf("%s\n",arr[0]);
return 0;
}
a.c: In function ‘main’:
a.c:12: 警告: incompatible implicit declaration of built-in function ‘strcpy’
この理由と回避策を教えていただきたいです
679:まちがって名前消しちゃいました。
09/11/07 03:49:00
>>678
#include "string.h" が抜けてるぞ
680:まちがって名前消しちゃいました。
09/11/07 03:49:46
#include <string.h> だった
681:まちがって名前消しちゃいました。
10/02/28 14:02:33 TxQW20L4
C言語はじめたいと思ってて本屋で教則本を買うつもりなんだが
オススメはある?
それともネットに書いてあることで充分?
682:まちがって名前消しちゃいました。
10/02/28 18:04:53 QdaXrY5s
>>678
12行目: 警告: incompatible implicit declaration
#include <string.h>
683:まちがって名前消しちゃいました。
10/04/21 00:10:26
>>681
URLリンク(www.amazon.co.jp)
684:入門者
10/04/30 17:51:39
変数に代入するっていう文が判らない・・
たとえば、10という数値を変数に代入
この場合は「int」でいいのかな?
685:側近中の側近 ◆0351148456
10/04/30 19:11:52 nG26dHWY
>>684
(っ´▽`)っ
int i;
i=10;
686:側近中の側近 ◆0351148456
10/04/30 19:13:31 nG26dHWY
>>678
(っ´▽`)っ mallocしたらfreeするのを忘れずにね☆
687:まちがって名前消しちゃいました。
10/04/30 21:49:14
ありがとう!
ちなみに画面表示する が抜けてた
#include<stdio.h>
main()
{
int a = 1;
printf("10\n",a);
unsigned short b = 65000;
printf("65000\n",b);
return (0);
}
こうでいいのかな?
688:まちがって名前消しちゃいました。
10/05/01 01:11:12
> printf("65000\n",b);
( ゚д゚ )
689:まちがって名前消しちゃいました。
10/05/01 10:56:33
違うのか・・・・
どう書くの??
690:まちがって名前消しちゃいました。
10/05/02 14:50:15
> printf("\65,000on",b);
こう書くんだよ!!
691:まちがって名前消しちゃいました。
10/05/02 14:53:11
> printf("\65,000 oz",b);
このほうが読みやすいな!!
692:まちがって名前消しちゃいました。
10/05/04 08:26:42
>>687
#include<stdio.h>
int main()
{
int a = 1;
unsigned short b = 65000;
printf("%d\n",a);
printf("%d\n",b);
return 0;
}
693:プログラミングがわからない(泣)
10/05/05 13:18:13 luKjT0L8
誰か教えてくれ(;;)
1: 生徒データの入力
2: 平均身長の表示
3: 平均体重の表示
4: データ表の表示
5: データの全消去
0: プログラムの終了
入力された番号: 1
これは 1 人目の生徒です(5人まで)
名前を入力してください(10文字以内)
入力された名前: q
身長を入力してください
入力された身長: 134
体重を入力してください
入力された体重: 33
1: 生徒データの入力
2: 平均身長の表示
3: 平均体重の表示
4: データ表の表示
5: データの全消去
0: プログラムの終了
入力された番号:
というようなものを実行するためのプログラミングはどうしたらいいんだ~
694:まちがって名前消しちゃいました。
10/05/06 15:17:42
とりあえず、フローを書いてみたらいいと思うよ
695:まちがって名前消しちゃいました。
10/05/13 09:25:44
>>693
一応それっぽいの書いてみたけど、までここ見てるかなあ・・・。
URLリンク(codepad.org)