C言語の第一歩

このエントリーをはてなブックマークに追加
1美歩路
C言語を勉強しようと思うのですが、
何からやっていいのかわかりません。
そこで、C言語をいじったことのある人は
まず最初になにをやったかを
教えていただけたら、と思います。
よろしくお願いします。

まず、2ゲトをやりませう。
3デフォルトの名無しさん:02/09/07 14:04
3333333333333333
まずは検索能力を身に付けましょう
http://www.google.com

終了
5フレッシャーズ:02/09/07 14:07
printf文
for文
if文
6デフォルトの名無しさん:02/09/07 14:08
はろーわーるど
言語記号のC性から勉強しなさい
>>1
まず本買ってきて読め。
当たり前だろ?!
>>1
C++からどうぞ。
printf文とか言っているあたりだめな気がする。
11美歩路:02/09/07 14:13
>>7
C性ってなんですか?
すみません。わかんないです。

>>8
本はなんか用語だらけでちょっと…って感じなんですが。
やっぱり本しかないんかなぁ。
12デフォルトの名無しさん:02/09/07 14:14
#include <stdio.h>

int main( ) {
  printf("Hello World\n");
  return 0;
}

これからだな。
コンパイルして実行。
終了
13美歩路:02/09/07 14:15
>>12
Illegal Charaterがどうとかって言われます。
雑誌でも講読すれば?

と、書きながら、初心者にとって真に上質なCの雑誌って、あるだろーかとふと悩む
15デフォルトの名無しさん:02/09/07 14:18
ちなみに上のは全角でインデントつけてるから
printf行とreturn行の全角を半角に直すかなんかする。

コメント以外の全角文字はたいていのコンパイラじゃ
エラーになるから注意必要NE
16デフォルトの名無しさん:02/09/07 14:18
みほろはだまってろ
17デフォルトの名無しさん:02/09/07 14:19
本当に初心者には真に上質なCの雑誌はないと思われ。
C言語なら、俺に聞け! <31>
http://pc3.2ch.net/test/read.cgi/tech/1031340950/
19フレッシャーズ:02/09/07 14:19
#include <stdio.h>

int main( ) {
  int i

  for(i=0; i<10; i++)
   printf(" %d ",i);

  return 0;
}
こんなのは?
>>14
CマガジンのC講座はかなり初心者向けだね。
でもmallocの紹介は早すぎた気がする・・・
内容より紙質
22デフォルトの名無しさん:02/09/07 14:20
(・∀・)イイ!
23デフォルトの名無しさん:02/09/07 14:21
もしくはここなんかお勧めだ
http://www.atmarkit.co.jp/
24デフォルトの名無しさん:02/09/07 14:21
むしろC#からやるのも(以下略)
25フレッシャーズ:02/09/07 14:23
「C言語なら、俺に聞け! <31> 」
出来ていたのですね。
26デフォルトの名無しさん:02/09/07 14:23
ちなみにCマガジン
http://www.cmagazine.jp/
27デフォルトの名無しさん:02/09/07 14:24
↑初心者にはちときつい
単発スレに一生懸命コピペしてご苦労なこった
>>27
C言語講座は初心者向けだと思うけど、それだけのために毎月1200円(?)ってのもなー
結論=引き篭もってネット漁る
#include <stdio.h>
int main()
{
printf("いい加減、Hello worldは飽きた。\n");
return 34;
}
とりあえずJavaやっといて、あとでポインタとか補完すれば
いいような気もする
Javaの方が難しいYO!
34デフォルトの名無しさん:02/09/07 14:32
#include <stdio.h>

int main()
{
printf(">>31文字列ソートでもやってなさい。\n");
return -1;
}
オブジェクト指向からはいるのも悪くないな
フツーの言語なら、文字列を手軽にいじくって遊べるような気がするが、
C言語だとかなりつらい罠。
37デフォルトの名無しさん:02/09/07 14:35
何を最初にやるって本読むとかWEB漁るくらいしかやることはなかろう
C覚えるのにまず体鍛える人とかダイエットする人とかいないだろ?
>>37
まずは最後までやりとげるための精神力を養いますね。
いや案外、フィジカルにこだわるのも悪くない。
糖分やカフェインで頭を活性化しておくといいかもしれない
こんにちは世界と100回唱えた。
41デフォルトの名無しさん:02/09/07 15:03
>>38-39
なるほどね〜
物は考えようだな
まず全裸になり、自分の尻を両手でバンバン叩きながら白目をむき
「びっくりするほどC言語!びっくりするほどC言語!」
とハイトーンで連呼しながらベットを昇り降りする

これを10分程続けると妙な脱力感に襲われ、Cがわかった気分に浸れる
43美歩路:02/09/07 16:30
わわっ…
この前買ったCの本を読んでるうちに
こんなにレスが…
みなさま、ありがとうございます!

>>39
とりあえずガラナ飲みましたが。
活性化!活性化!!

>>42
まじッスか!?(w
(´-`).。oO(Cの前にPerlとかやると (以下自粛) );
45フレッシャーズ:02/09/07 18:32
/*01*///2002年9月7日 ローマ字・アスキーコード出力 作成者:フレッシャーズ
/*02*/#include <stdio.h>
/*03*/
/*04*/int main( ) {
/*05*/ int i;
/*06*/
/*07*/ for(i='Z'; i>='A'; i--) /* LOOP */
/*08*/ printf("%c%03d.",i,i);
/*09*/ printf("\n");
/*10*/ for(i='a'; i<='z'; i++) /* LOOP */
/*11*/ printf("%c%03d.",i,i);
/*12*/
/*13*/ return 0;
/*14*/}
/*15*/// こんなプログラムはどうだ!デクリメント使っていることは、気にしない気にしない
46フレッシャーズ:02/09/07 18:39
うっ、字下げが反映されなかった・・・鬱
その為にコメント入れたつもりだったのに駄目なのね。
  試 試
#include <stdio.h>

int main(){
  int i;
  printf("%d\n",func(5));
  return 0;
}

int hoge(int n)
{
  if ( n > 0 ) {
    return hoge ( n - 1 ) * n;
  } else {
    return 1;
  }
}

改行はされるがコンパイルはとおらん(藁

hoge=func?
hoge==func
/*n!を求める再帰関数*/
#include <stdio.h>

double func(double n){
  if ( n > 0 ) {
    return func ( n - 1 ) * n;
  } else {
    return 1;
  }
}

int main(){
  int n;
  scanf("%d",&n);
  printf("%.0f\n",func(n));
  return 0;
}
&nbsp;
   ^
あげ
単発質問に答えてはいけません。
単発厨に示しがつきません。
また調子に乗って厨が同じようなスレを立て始めます。
単発質問スレは他のスレへ誘導するか無視してください。
まずは写真だな。うぷしる!
55OPENFILENAME ofn;:02/09/08 22:54
char s[];
s=ofn.lpstrFile;

'char *' から 'char []' に変換することはできません。(新しい動作 ; ヘルプを参照)

と怒られるんですが,いろいろキャストしてもダメ.
sへ代入するにはどうしたら?
つうか、もうこのスレ削除依頼出した方がいいんじゃない?
明らかに単発質問スレだし・・・
age
>>58
sine
配列とポインタ♪
IC 1ピンのCSをHからLにしたいのですがどうかけばいいですか。
パラレルポートを使って
温度センサーを使って画面に気温を表示したいのですが A/Dコンバータは製作しました。

単発スレに一生懸命コピペしてご苦労なこった
>>62
こんな糞スレを今更あげてるお前も同レベルだな。
むしろC#からやるのも(以下略)
OO 最強!!
66デフォルトの名無しさん:02/11/29 16:57
Ruby!
67デフォルトの名無しさん:02/12/03 12:00
>>45EBCDICで期待通り動かないんだけど責任取ってくれる?
68デフォルトの名無しさん:02/12/03 12:16
無償コンパイラーが使えないっす
69デフォルトの名無しさん:02/12/03 12:19
自動セットsetbccのstep3のパス優先度の選択の現在のパス設定に\command;がなぜかないのが原因っぽいっす
70デフォルトの名無しさん:02/12/03 12:23
C++Builder5,5です
71デフォルトの名無しさん:02/12/03 12:58
C++Builderのスレ見つけたスマソ
72デフォルトの名無しさん:02/12/03 13:22
<stdio.h>と"stdio.h"って何で二つの書き方があるのどっちがいいの?
お好きな方を
>>72
<>:標準ライブラリとかそのへん
"":自作のヘッダとか

ということになってる
>>72
""はまず#includeしているファイルのディレクトリから探す。
だから>74のような使い分けになる。
76デフォルトの名無しさん:02/12/08 16:38
このスレは冗談で作られたネタスレです。

すでに削除依頼済ですので、今後は書き込まないようにお願いします。

本物のスレは↓こちら。

http://pc3.2ch.net/test/read.cgi/tech/1038405432/l50
C言語のことは俺に聞け<45>
>>76
削除依頼出てないけど。
>>77
かまうな。そこらじゅうでコピペしてるアフォだよ。
79デフォルトの名無しさん:02/12/14 19:41
ネタ無しage
むしろC#からやるのも(以下略)
モナーって最初耳丸かったよね?よね?よね?
82IP記録実験:03/01/09 01:42
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
>>443
できないです>責任逃れ
>>104
IP保存しちゃ匿名性が保たれないだろう。
>>138は弐編君
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
qb
削除整理、削除要請、削除議論、批判要望

live2
ニュース速報

tmp
ニュース極東、バカニュース、ちくり裏事情、違反の潰し方、薬・違法
少年犯罪、政治思想、ゴーマニズム、ペット苦手、download
ロビー、なんでもあり、厨房、最悪、学歴、人権問題
>>552
ご愁傷様。
関係ない人からばっかりかかってくるよ!
>>792
ラウンジに行けばわかる
無償コンパイラーが使えないっす
産経新聞には「2ちゃんねる」と出ました。

http://www.sankei.co.jp/news/030107/0107sha095.htm
「小学生殺す」と書き込み

 インターネットで不特定多数が書き込む掲示板に「埼玉県の小学生を始業式で殺す」という書き込みがあり、
埼玉県教育委員会は7日までに、教職員らによる登下校の指導などを市町村教育委員会などに通知した。
 県によると、ほとんどの学校の始業式は7〜8日だが、これまで異変は起きていない。県警は悪質ないたず
らとみて調べている。

 県教委によると、書き込まれたのは掲示板「2ちゃんねる」で、昨年12月27日夜、「始業式に乱入してぶっ
殺してやる」「埼玉県の小学生だ」などのメッセージが書き込まれ、閲覧した人が県にメールで連絡した。
県は「いたずらと思うが、念のために対応を指示した」としている。
こえぇ〜(゚Д゚ )ポカーン 
俺には特に影響はないが、まわりがどうなるかだなあ・・・

535と531のID...
大阪キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
全鯖投入か。
今年はしょっぱなからでかい動きがあるな。
IP取ろうが取らなかろうが
捕まるときは捕まるだろ?
↑縦読み不可
君の責任です
では、お言葉に甘えまして。

削除系の板は今までも(恐らくリモホ表示以前から)
SETTING.TXTの設定でIPを記録していましたが、何か?
>>100
前々からIPが思いっきり表示されてると思ったが?
祭り板から来たんだども・・・。






とりあえず記念コキカ
自由の意味がわかってない人間が多すぎるぞ、日本は
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
これでも犯罪予告するバカはいるんだろうな
エアーH”ならバレにくいのかな?
ZDNetは2chネタ好きだからな
逸脱が増えた?ふーん、どこでそんなこと聞いてきたの?w
残念ながら、2chは匿名性以外にも存在価値ができてしまったインターネットです。
8 名前: ひろゆき@管直人 投稿日: 2000/04/07(金) 07:20
おぉーついに…
でも全員が閲覧できるわけじゃないから
ヤバイこと書き込まなきゃOKなんでしょ?
だから?(^_^;)
IP IPって大騒ぎ  多分9割は説明出来ないで騒いでいる
これで荒らしが消えるならいくらでもやってくれ
漏れは悪いことしないので全然OK
結局氏ね−じゃん。
気弱なのにでたらめな事書くんじゃねーよ!(糞

逝け逝け!消えろ。>>キラー
石川の恥バーカ!
 
800!!
118山崎渉:03/01/13 18:53
(^^)
前スレ上げちまったから
こっち上げるぞ。
120山崎渉:03/01/15 18:07
(^^)
121山崎渉:03/01/23 22:15
(^^)
122デフォルトの名無しさん:03/02/23 11:16
こういう人がいるから、しょぼいプログラマでも給料がもらえるんだな
123123:03/04/04 17:10
今日はじめてCをやってみました。
とりあえず累乗計算をやってみました。

#include <stdio.h>
main()
{
int h;
int i;
int j;
int k = 1;

printf("累乗計算プログラム。\n");
printf("元の数字を入力してください。\n");
scanf("%d", &i);
printf("指数を入力してください。\n",i);
scanf("%d", &j);
for(h=1;h<=j;h++)
k = k * i;

printf("結果 %d",k);
}

5の2乗とかはちゃんとした答えが出たのですが、10の10乗ともなると、答えがおかしくなります。
どこを修正したらよいでしょうか?
>>123
UBASIC使え
int h,i,j;
int k=1;
の方が見やすくない?
126デフォルトの名無しさん:03/04/08 20:35
1週間後、ゲーセンの入学式です!!
プログラムコースのボクは、何と「プラグラムって何?」って感じです!!
オススメの本って何ですか?
今すぐ教えてください!!!!!
あと1週間死に物狂いで勉強します!!!
ヤベー
ヤベー
睡眠時間は3時間で、残りの21時間を勉強に当てます!!!
127デフォルトの名無しさん:03/04/08 20:43
うわーレスがついてない!!!
こうなったら、適当に本買って熟読します!!!
ミスったーーーーー
皆、きっとある程度はプログラムが組める奴等なんだろうなぁ
俺だけ何もできねーよ!!!
ちくしょう!ちなみに、学校で勉強するのはC言語ってやつらしいです!!!

これからたった1週間で何ができるって感じだけど
死ぬ気で勉強するぜ!!!!
ちくしょう!!!!もっと早く勉強しとけばよかった!!!
糞!糞!糞!
なんってこった!!!!!
うわわわわんn
128デフォルトの名無しさん:03/04/08 20:44
>>126
後輩だな。ゲー専はいるとは死んだもどうぜん。
とにかく就職はアフォみたいに難しいぞ。他の専門よりもだ。
129デフォルトの名無しさん:03/04/08 20:48
>>126
もうひとつ言うと大手ゲーム会社はほとんどが中途採用だ。
新卒はないに等しい。つまり即戦力になるヤシしかとらないわけだ。
おまえがそこまで出来るのかしらないが頑張ってくれ。
俺はそこまでの能力がなかったから情報処理に逃げた。
ただゲームPGというのはホントにプログラムを組むのが好きな奴じゃ
ないと務まらないらしい。恐ろしい環境で仕事しているみたいだ。
>1
スレは読んでないけど、僕はBASICが最初。
次がC。
BASIC->Cの概念変更さえ済ませれば割とできる。
Goto禁止とか、グローバル変数止めるとか・・・。

まー、今だから言えることは、
変数と配列の概念を覚えて次はポインタとの違いをきちんと把握する。
後は場数だ。小ネタでも良いからコード書きまくるのだ。
他人のソース見るのもいいぞ。
>>130
構造体も覚えろよ。
132山崎渉:03/04/17 15:35
(^^)
ゲー専出身より、ゲー先いかずにフリーでソフト公開してる奴の方が使ってくれるよ
フリーでソフト公開する方がずっと大変だから当然でしょう。
135デフォルトの名無しさん:03/05/02 19:48
お勧めのアセンブラはなんですか?
TASM
”while ”を用いたフィナボッチ数列。
最大値は最初にキーボードより入力
の模範解答キボンヌ。
最適な代入演算式がかけないモレは馬鹿。
138137:03/05/02 21:30
フィナボッチ数列を表示する
コードって事でおながいします。
>>137-138
> フィナボッチ

ネタと認定していいですか ?
140137:03/05/02 23:17
いいですよ
141137:03/05/02 23:19
>>139
ただし、そこらじゅうのサイトでネタとして使われてますが
いいですか??
>>137
イギリス紳士も裸足で逃げ出して、ギャフンと言う
スーパージェントルメェンの私が指摘してしんぜませう。

イタリアンの”FIBONACCI”の著書の出てきたのが語源。
FIBONACCIの名を挙げ、フィボナッチ数列と呼んでるサイトは多々あるが
FIBONACCIの名とフィナボッチ数列の呼び方のサイトは
我輩のgoogle術ではたったの2件しかヒットしなかった。

よもや単発単語検索で”そこらじゅうのサイト”と言うのではあるまいな?
1433分プログラム:03/05/03 05:53
動くかどうか調べてない&初項と次項はループ外

int main(void)
{
int num;
int pf, f1, f2;
int in = 0;

while(!in)
{
num = 0;
printf("最大数入力\n");
scanf("%d", &num);
if (num > 0) in = 1;
}

pf = f1 = 0;
printf("%d\n", f1);
f2 = 1;
printf("%d\n", f2);

while(pf < num)
{
pf = f1 + f2;
f1 = f2;
f2 = pf;
printf("%d\n", pf);
}

return 0;
}
144137:03/05/03 14:11
>>142
いやいや、間違えたのはモレだけじゃなかったんだと
少し安心しただけです・・。 ”フィナボッチ数列”単発単語検索
ですた・・。もっと勉強します。。
>>143
参考になります。サンクスコ
m(。_。;))m ペコペコ…
145137:03/05/03 14:18
>>1は底引き網のベテランだな
>>146は魚だな
モレもか
148お願いします。:03/05/05 18:09
スレ違いでしたら誘導お願いします。
これの実行結果を書き込んでくれませんか?
コード見直しても間違いはないみたいです。入門書との実行結果が違うので確かめたいです。
お願いします。
#include <stdio.h>

int main(void)

{
char string[5] = "ABC0";

printf("No.0 is %x\n", string[0]);
printf("No.1 is %x\n", string[1]);
printf("No.2 is %x\n", string[2]);
printf("No.3 is %x\n", string[3]);
printf("No.4 is %x\n", string[4]);
}
149デフォルトの名無しさん:03/05/05 18:26
この関数の実行結果は1、2,4,8、16,32なのですが
この過程がわからないので
どなたかおわかりでしたらお教えください。
beki関数のxの値には何が入ってるのかもわからないし、
実行結果が1になる過程がさっぱりわかりません。
(2×iで答えは0になるんじゃないかと思ってるんですが。)
よろしくお願いします。

#include<stdio.h>
int beki(int x,int y);

main(){
int i;
int dt;

for(i=0;i<=5;i++){
dt=beki(2,i);
printf("%d\n",dt);
}
}


int beki(int x,int y)
{
int i;
int dt=1;

for(i=1;i<=y;i++){
dt = dt * x;
}
return dt;
}
150デフォルトの名無しさん:03/05/05 18:43
for(i=1;i<=y;i++){
dt = dt * x;  

これは何なの? 同じことを何回も繰り返してさ。
読みにくいプログラムだな。 

>>148
> 入門書との実行結果が違うので確かめたいです。

と書いときながら、肝心の実行結果が書かれていないとこみるとなんとなく釣りっぽいんだが...。
とりあえず実行環境は ?

>>149
とりあえず i = 0 の時...

x = 2, y = 0, dt = ??, i = ?? ← beki(x, y)
x = 2, y = 0, dt = 1, i = ?? ← dt = 1
x = 2, y = 0, dt = 1, i = 1 ← for(i = 1;
x = 2, y = 0, dt = 1, i = 1 ← for(...; i <= y;
 → 条件不成立、ループから抜ける。
x = 2, y = 0, dt = 1, i = 1 ← return dt;

となって、1 が返る。1つ1つ追っていけば、難しくないでしょ ?
(と言うかなに使ってるか知らないけど、デバッガのステップ実行について調べるといいと思うよ。)

>>150
釣れそうですか ?
152デフォルトの名無しさん:03/05/05 18:47
for(i=1;i<=y;i++){
dt += dt * x;  

153デフォルトの名無しさん:03/05/05 18:51
for(i=1;i<=y;i++){
dt *= x;

154デフォルトの名無しさん:03/05/05 19:00
155デフォルトの名無しさん:03/05/05 19:03
int beki(int x,int y)
{
int i;
int dt=1;

for(i=1;i<=y;i++){ //ここではじめy==0なんだから、i<=yは偽
dt = dt * x;    //だからここは、はじめは実行されないジャン。
}
return dt;  したがって、1だな。
}
xに2を、yに-2を与えたら0.25が返るはずだけど返らないね。
>beki関数のxの値には何が入ってるのかもわからないし
2を渡してるんだから、2でしょが。

単に勉強不足だろ、君。
終了だな。
158デフォルトの名無しさん:03/05/05 19:12
2chで質問すると逆に混乱する罠。
159bloom:03/05/05 19:13
160デフォルトの名無しさん:03/05/05 19:22
あややだって。
bloomってポルノサイトだな。
しかもブスだらけだ。
162デフォルトの名無しさん:03/05/05 19:51
>>151 155
ありがとうございます。
最初のdtが1になる理由はわかりました。

ところで、このソースはある本のものなんですが、
beki関数のyの値にはmain関数のiの値が
入ってるということでいいんですよね?

それさえ理解できれば多分
この問題に関しては理解できたと思うんで、
たびたびすいませんがそれだけでもお答えいただけませんか?
いやです。
164デフォルトの名無しさん:03/05/05 19:58
162=1
165151:03/05/05 20:04
すいませんと思うなら、聞くなよ。

>ところで、このソースはある本のものなんですが、
beki関数のyの値にはmain関数のiの値が
入ってるということでいいんですよね?

いいんです。

その本は捨てた方がいいね。K&Rに汁!


167148:03/05/06 22:22
あ・・・できました。 "" じゃなくて ''で囲まなきゃ・・・あぁw

#include <stdio.h>

int f(int, int);

int
main(int argc, char *argv[])
{
f(0, atoi(argv[1]));
printf("\n");
return 0;
}

int
f(int n, int g)
{
while (g>=1 && f(0, g-1)) {
return printf("%d ", f(g, 0));
}
while (n>=3) {
return f(n-1, 0) + f(n-2, 0);
}
return 1;
}
改行有りのprintfと改行なしのputsがないのは作者があほだからですか?
fputs()
>>169
printf("...\n") とか、fputs() を覚えることのできないアフォを排除するための仕様です。
printfがあるならprint(const char *s)も作れよ。って話だろ。
>>172
飛躍しすぎ。
174山崎渉:03/05/28 13:07
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
175デフォルトの名無しさん:03/06/02 19:38
>>1
三十路には無理
/*最初はこんなことやりましょう*/
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
char buf[1024];

sprintf(buf, "start %s", argv[0]);
return system(buf);
}
>>176
動きませんでつた。

$ gcc a.c
$ ./a.out
sh: start: command not found
178デフォルトの名無しさん:03/06/04 03:58
K&Rってよくみるんですけど、その本は実際はなんていう本のことなのですか?
179デフォルトの名無しさん:03/06/04 04:02
>>177
どんなファイルができているの。ls してくれ。
>>178
ちゃうよ。会社の名前だ。
http://www.knrgroup.com/
>>179
a.c  a.out
>>177
ある意味動いてると思うが?
age
184デフォルトの名無しさん:03/06/21 19:00
>>182のいうとおり、動いているからそういうメッセージが出たわけで。
>>182,184
目からフェイズシフト装甲が落ちますた。
186ゆみ:03/06/22 00:22
Cで「CSVファイル」の 「行」 と 「列」 を入れ替えたいのですが
サンプルプログラム等をご存知の方いらっしゃいましたら是非教えてください。
よろしくお願いいたします。
187ゆみ:03/06/22 00:23
 こんばんは。C言語初心者のゆみこと申します。
Cを使って「CSVファイル」の 「行」 と 「列」 を入れ替えたいのですが
サンプルプログラム等をご存知の方いらっしゃいましたら是非教えてください。
よろしくお願いいたします。
あー、はいはい。
あー、チェンジ!
しるかアホアホ
>>185
PSダウンはマズイ。
Nジャマーキャンセラーを搭載しる!
とりあえず,2分木を使ったソートプログラムをつくれ
勉強になると思う。
こんにちは世界と100回唱えた。
194デフォルトの名無しさん:03/07/16 02:45
望洋タンの本の入門編読む。

ポインタのこみいった部分が良く分からんかったので
前橋タンの「ポインタ完全制覇」でわからんところを読む。

基本は分かった。

K&RとC言語FAQを見つつ、
「プログラミング作法」
の問題を解く。

こんな感じで勉強した。
我ながら中々無駄の無い勉強をしたと思う。
プログラミングなんてしたことなかったが
とりあえず常識は身についたか。

K&Rってのは、この本を書いた人(カーニハンとリッチーの2人)のことです。

プログラミング言語C(日本語:Amazon.com)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/249-3363573-0743526

The C Programming Language, Second Edition(英語)
http://cm.bell-labs.com/cm/cs/cbook

転じて、この本のことを K&R と呼ぶこともあります。

Brian Kernighan のページ
http://cm.bell-labs.com/cm/cs/who/bwk/

Dennis M. Ritchie のページ
http://www.cs.bell-labs.com/who/dmr/
196デフォルトの名無しさん:03/07/16 08:31
誰か超初心者のための入門書を紹介して下さい
197Kusakabe Yoichi:03/07/16 10:31
「作ってわかるCプログラミング」という
大変すばらしい本がありますよ。
>197
ありがとー。探してみますね!
199デフォルトの名無しさん:03/07/19 11:48
C言語って、累乗の記号が無いから不便だな。
200デフォルトの名無しさん:03/07/19 11:50
>>199
お前VBプログラマか?
演算子と言ってください
pow使え
はじ めの はじ めの だい いっ ぽ
203山崎 渉:03/08/02 02:32
(^^)
204山崎 渉:03/08/15 17:02
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
205デフォルトの名無しさん:03/08/21 03:42
age
206デフォルトの名無しさん:03/08/21 11:11
倉薫氏のC言語1の文をそのままコピーして勉強していたら、以下のプログラムの
なかほどにillegal characterがあると返ってきました。どこが間違っているのか
教えてください。
 /* 成人かどうかを判定するプログラム */

#include<stdio.h>

main()
{
int age;

age = 22;

   if(age>=20)
{
puts("今夜はとことん飲みましょう!");
}
else
{
puts("ウーロン茶で乾杯ですかね.....");
}
}

207デフォルトの名無しさん:03/08/21 11:18
あ最後が間違ってた。
自問自答 最後は間違っていない。どこも間違っていない?
209デフォルトの名無しさん:03/08/21 12:12
>>206
>   if(age>=20)
ifの左側に全角空白があるからじゃねーの?
コンパイル、実行できたぞ
>209
ありがとう。全角空白を無くしてみたら、コンパイルできました。ほんのちょっと
したことも、許されないのですね。わたしはアバウトな人間ですから、これから
たいへんです。
211デフォルトの名無しさん:03/08/21 15:29
だれか、Cでパターンマッチングをどうやるか教えてください。簡単なプログラムを載せてくれるとありがたいです。
>>210
なんかずれたコメントだな……。
>>210
アバウトというよりただのマヌケ。
くやしいから言うけど、みんなはじめは素人だというでしょう。   あのう、英検1級です。
くやしいから言うけど、みんなはじめは素人だというでしょう。
   あのう、ハーバード大学院卒です。
くやしいから言うけど、みんなはじめは素人だというでしょう。
   あのう、どどど童貞ちゃうわっ
くやしいから言うけど、みんなはじめは素人だというでしょう。
   あのう、宇宙人です
藻前ら面白すぎ
219デフォルトの名無しさん:03/08/21 18:03
>>209
あー、なるほど。
そういうことか…。
>206を自分で打ってコンパイルしたから分からなかったわ…。
ageすまそ…
--- include file ---------------------
20:typedef unsigned char BYTE;
21:struct sPort { BYTE B0:1; BYTE B1:1; ... BYTE B7:7 };
22:#ifdef PORTB
23: extern sPort PB;
24: #pragma locate PB 6
25:#endif
--- program file --------------------
01:#define SW_BIT1 PB.B0
02:#define SW_BIT2 PB.B1
03:
04:BYTE sw_read( BYTE sw ) {
05: if( sw ){ // 入力有り?
06: wait10msec(); // 少しまつ
07: if( sw ) return 1; // 確かに入力有り
08: }
09: return 0; // 入力は無い
10:}
11:
12:void main( void ) {
13: if( sw_read(SW_BIT1) ) ...
14: if( sw_read(SW_BIT2) ) ...
15:}
--------------------------------------
場違いのような気もしますがPICです。
04行で渡ってくるswがこれでは定数なので
05行と07行のダブルチェックが意味をなしません。
これはどう書いたらいいんでしょうか。
#include <stdio.h>
main()
{
printf("マンコ\n");
return 0;
}
223デフォルトの名無しさん:03/08/31 00:26
保守age

#define AFO ">>%d ←ガッ\n"

#include<stdio.h>

main()
{
int afo = 1;
char buff[20];

while ( afo <= 222 ) {

sprintf( buff, AFO, afo++ );
printf( buff );
}
printf("( ゚Д゚)糞して寝ろヴォケ!\n");
}
224デフォルトの名無しさん:03/08/31 00:27
保守age

#define AFO ">>%d ←ガッ\n"

#include<stdio.h>

main()
{
int afo = 1;
char buff[20];

while ( afo <= 222 ) {

sprintf( buff, AFO, afo++ );
printf( buff );
}
printf("( ゚Д゚)糞して寝ろヴォケ!\n");
}
225くぉお:03/09/03 00:07
はじめまして、Cを覚えたいんですが、無料で使えるコンパイラでおすすめを教えてください。
チャットの、補助ソフトを作りたいんですが、コンパイラ以外に何が必要ですか?
(入室の監視や、プロフを参照して自動書き込みするような・・・)
>>225
GCC、有料の開発環境
今日からアスキーのC言語やりはじめたのですが、最初からつまずきました。
Borland c++compiler5.5インストール後、パスの追加はできましたがコンパイラオプションとリンカオプションの追加ができません。(意味すらわからない)
検索して、らしきものがあったにはあったのですが、
以下のファイルを作成しろっていわれても・・・
ファイルったって、「名前を付けて保存」でしか作ったことないのでわかるようにおしえていただけるとありがたいのですが。

【3】準備作業
(1) c:\borland\bcc55\bin に、以下の2つのファイルを作成します。


bcc32.cfg -w
-I"c:\borland\bcc55\include"
-L"c:\borland\bcc55\lib;c:\borland\bcc55\lib\psdk"

ilink32.cfg -x -Gn
-L"c:\borland\bcc55\lib;c:\borland\bcc55\lib\psdk"
「名前を付けて保存」ができるなら、その説明の通りやればええやん
>229
ありがとうございます。

これからはかたっぱしにgoogleしてみます。
とりあえずお礼まで。
231デフォルトの名無しさん:03/09/16 21:58
カニ飯&ライオネル・リッチーの本はむずい。
>>231
C言語専門課程とかいう(うろ覚え)本があったからそれを買いなさい。
立ち読みしたらなかなかよかったから。
>>232
さんくす。
234デフォルトの名無しさん:03/09/19 12:06
>>42
おかげでC言語をマスターできました
マジでありがとう
これでも使ってなさいってこった。
ttp://edu.stackart.net/c/c_seihin.html
>>42
C言語はコレなしでは語れないね
僕もコレでマスターしたクチです。
>>231
>>232
「Cプログラミング専門課程」だけど、ちょびっとだけwebで公開されてるよ
http://www.pro.or.jp/~fuji/mybooks/cpro/index.html

俺はこの本持ってて、すげー勉強になった
238デフォルトの名無しさん:03/10/10 05:11
>>42
なかなか実行するのは難しいな
>>235
僕もコレでマスターしたクチです。
240名無し@沢村:03/10/11 21:20
おまいらよ、TSXBINって知ってるか?
これは土屋秀雄というガキがつくったバイナリエディタだが、ただのバイナリエディタではなく、いろいろなファイルをそのファイルのフォーマット解説つきでバイナリ表示&編集できるというなかなかのすぐれものバイナリエディタよ。
で、ファイルを開いたときに、フォーマット解説を表示するためには、そのフォーマットを記述したマクロファイルを定義しなければならないわけだが、最初からおまけでついているものは、BMP、GIF、JPG、ICO、LZHなどだよ。
つまり実際はBMP、GIF、JPG、ICO、LZHファイルに限ってフォーマット解説が見れるわけだな。
おまいらよ、おれはこのTSXBIN用のマクロとして、MIDとMLD用のやつをつくったからちょっと見てみろ?
つまりこのマクロがあると、パソコン用のMIDIファイルと携帯DoCoMo用のMfiファイルがフォーマット解説つきでバイナリ表示できるぞ。
ここ↓からダウンロードしてみろ?
http://hp.vector.co.jp/authors/VA015412/
おまいらよ、これはMIDIシーケンサーを学ぶおまいらにとてもためになるものだから、ちょっと見てみろ!?
javaとCの路線が違いすぎ。
javaは洗脳だし・・・。
でもそれがベストかも。
よよよょょょ......(涙
・・・・。
キュピーン!
アーッヒャッヒャッヒャ......。
242デフォルトの名無しさん:03/10/22 18:30
c言語の第1歩といえば

そもそもc言語は最初からpcに入ってますか
>>242
もう少し日本語やコンピュータを勉強しようね。
>>42
正論!
245デフォルトの名無しさん:03/10/24 19:41
>>42
おかげで半日でポインタが理解できた気になりました
>>245
俺はそんなことしなくても5秒でポインタ理解できたぞ。
247デフォルトの名無しさん:03/10/26 00:14
Cでグラフィック作りたいんですがどんな書籍ありますか?
ポインタや配列がある程度理解できるレベルなんですが。
>>247
グラフィックってなに?
Windowsアプリ?
それともゲームみたいの?
どっちにしても標準のCでおもしろものはできないと思うよ。やったことないけど。
C++でやればいいのでわ?
249デフォルトの名無しさん:03/10/26 00:36
関数組んでその軌跡を表示するやつです。サイクロイドとか高校数学程度のものを表示してみたいです。
そういう書籍探してるのですがないんですよ〜(TT)
>>249
オレはそういうの詳しくないけど、Cでグラフィック関係の書籍ってのは少ないと思う。
もしくはアルゴリズムの本に載ってるかもね。アルゴの本なら大抵Cで書いてるし。
251デフォルトの名無しさん:03/10/26 00:41
アルゴリズムの本ですか〜。それは見てませんでした。明日(今日)見てみますわ。
数学的図形ってキレイ好きなんです。(理系大学ではないんですけど)
わざわざレスありがとね(・∀・)
>>247
Graphicsやるんだったら将来的にもWinやっておいたほうがいいんじゃないか?
なにか表示したいだけならそこらへんのwin32API本でも買ってGDI関数学びなさい.
253252:03/10/26 17:33
>>247
ついでにいうとGDIで基本的なことはサポートされている(Bezier曲線とか図形など)
数学の知識があればある程度自由に書ける.
ただし, 正確さや簡素さを求めるとマッピングモードだったり余計なことが混ざるから
結局は基本的なwin32の知識が必要になってくるかもしれない.

3次元や動的なGraphics表現したいならDirectX使うしか道は無いな.

おせっかいかもしれないが,一応言っておくと
「静的な表現だけでいい」 -> 簡単なwin32本(なんでもいいかも)
「もっと極めたい」 -> win32 && C++ && DirectX

後者はとてつもなく茨の道だが, やりたいのならガッツリやっていくしかないな.
win32マジメにやりたいならpetzoldのプログラミングwindowsがお勧め.
 >>234
 ワロタ。
C言語学ぶために、
BorlandでBorland C++ Compiler 5.5を
ダウンロードしようと思ったんだけど、
http://www.borland.co.jp/cppbuilder/freecompiler/bcc55download.html
このページにいってから何すればいいのか全然わかんない。
どうすればいいか教えてください。
>>255
FTPをクリック。
257255:04/02/13 20:33
クリックしても何にも起こんないか、
エラーが出るかのどっちかなんだよ。
>>257
パソコン初心者板総合質問スレッドVol.627
http://pc2.2ch.net/test/read.cgi/pcqa/1076671439/
259デフォルトの名無しさん:04/03/09 22:25
くやしいから言うけど、みんなはじめは素人だというでしょう。
最後のreturn 0;ってどういう意味?
呪術
main関数 さん に 0 を返してあげて  
main(){
printf("増田○奈 たむ!!");}
>261
以下のようなプログラムがあったとする。


プリプロッセッサその他の処理
int main()
{
  なんらかの処理
return 0;
}

この場合の「return 0;」はプログラムの終了を意味する。return(0);でも可。
ちなみに、
int main()→void main()の場合「0」は不要。(むしろ「0」を入れてはだめ)
また中括弧内部の最後にあるreturnも不要。(これはあってもなくても良い)
>>265
糞Qに答えてくれてありがとう!勉強になりました!
267初心者:04/03/19 12:43
C言語プログラミング 始めるには WINDOWS OSインストールされたパソコンがあれば十分なのでしょうか?
プログラムを組むために必要なソフトウエアは無償のモノがあるのでしょうか?
269デフォルトの名無しさん:04/04/08 22:11
>>267
Windowsなら
http://cygwin.com/
とか.
270デフォルトの名無しさん:04/04/10 23:09
WindowsならふつうSFUをインストールするだろ ぼけ
>>270 >267に必要なのはコンパイラだと思うが?
272デフォルトの名無しさん:04/04/10 23:15
ヴぃずあlC++を買って
わけのわからなさに
陥ってCをあきらめるのが一番の早道でつ。
273デフォルトの名無しさん:04/05/05 15:21
>>272
WinアプリなんてCとかC++とか関係無いところだと思うけどな。
275デフォルトの名無しさん:04/05/06 00:21
未経験者OKを謳っておきながら、MS-DOSやコンパイラの説明すら載っていない入門書って何なんだ?
いや、普通わかるだろってのはチョットかじったことのある奴だからで、
まさにそれすらわからんから「未経験者」なのであり、「入門書」が必要なのであり…

とりあえず、知識ゼロの未経験者はこのあたりから読んでみるといい。
・C言語〈1〉はじめてのCプログラミング
・C言語 (2)
http://www.amazon.co.jp/exec/obidos/ASIN/488135843X/
http://www.amazon.co.jp/exec/obidos/ASIN/4881358448/

ここにも目を通しておくといい。
ttp://www2.wbs.ne.jp/~dskoba/database/prog.htm

わからん単語が出てきたらここで調べろ。
http://e-words.jp/
276デフォルトの名無しさん:04/05/07 03:00
未経験者がいきなりCか・・・

いきなり難解な物やらせて「即挫折」より
ひまわりとかHSPに誘導した方がいいんじゃねーの?
277デフォルトの名無しさん:04/05/07 03:04
いまさらCやってもな。C++にしとけ。
未経験者がいきなりC++か・・・

いきなり難解な物やらせて「即挫折」より
ひまわりとかHSPに誘導した方がいいんじゃねーの?
むしろインタープリタなぱぁるとかが吉
280デフォルトの名無しさん:04/05/07 03:10
>>278
すれ違い。
>まず最初になにをやったかを

生が一番
282デフォルトの名無しさん:04/05/08 21:12
純情
コンパイラとエディタという、二つの必須アイテムがない人は

きときと CPad

でググってみたら。
K&R、演習全部やってたら遅々として進まないんですが・・
>>284
漏れも2週間くらいかかって50ページしか進んでないよ。
入力中の異なる文字をヒストグラムにするってやつに
4日かかった。
286デフォルトの名無しさん:04/06/04 16:01
char a[3][3];
で宣言して
a++;
ってしたらアドレスが3つすすんだんだけど常識?
配列の配列だし?
>>286
常識というより、仕様通りですが。
\_WWWWWWWWWWWWWWWW/
≫  ぬるぽぉぉぉぉぉぉー!  ≪
/MMM| /MMMMMMMMMMM、\
     |/
''''''─- .....,,,_        __人_人,_从人_.人_从._,人_人_
 ̄"゙'"''''''─‐- ゙"ニ ─__ )
 r──---   ...___    ) 待ちやがれ!
 三 /レi ニ |   ニ ≡ )  頭叩かせろ!
 .ニ ( ´∀)|  ニ  |!カ_ ろ   待ってくれー!!
 | /  つ つ Lニ-‐′´   )/⌒Y⌒Y⌒l/⌒Y⌒Y⌒Y⌒
 '''''゙゙゙゙゙ ̄  _,, -‐'''∧_∧ っ ゚
--─="゙ ̄    ⊂(Д´;) ゜ {三}
ニ─        _,.. ゝ、 つ===回
      _,.. -‐'"   しへ ヽ  .{三}
__,, -‐''"         ,  ゙ー'
            , '    /

'''''|  | .....,,,_
 ̄|  |''''''─‐- ゙"ニ ─__
  |  |─ガッ-   ...___
  |  |/レi ニ |   ニ ≡
  |  |`Д)|  ニ  |!カ_
  |  | つ つ Lニ-‐′´
 ''|  |゙゙ ̄  _,, -‐'''
--|  |"゙ ̄
ニ|  |      _,.
  |  |  _,.. -‐'"
__,,|  |''"
  |  |
仕様でつか・・・(´・ω・`)
291デフォルトの名無しさん:04/06/22 03:06
 そもそもC言語てどこに売ってるの?
ビックカメラ
コンビニでみかけたよ
リスト構造や二分木の実装でセグメントエラーが出まくって泣けます。
295デフォルトの名無しさん:04/06/27 17:28
すみません、構造体に関数って含めますか?
同時並行で色々勉強しなきゃいけなくて、頭が混乱気味です。
関数ポインタをメンバに持たせることはできる。
297ぷち:04/06/27 17:44
なんか、見て面白いプログラムないですか?
アニメーションで、歩いてる人がパッタとこけるとか・・・・
ちょっと笑いがとれそうなやつ★
簡単なやつでもなんでもいいんで
298デフォルトの名無しさん:04/06/27 18:05
>>295
含めますよ。
299デフォルトの名無しさん:04/06/27 18:07
>>297
IOCCCのページに行って
anderson.c を拾ってくるといいよ。
>>296
ああ、関数ポインタをメンバに。
そっか。ありがとうございます!
301デフォルトの名無しさん:04/06/27 22:02
>>300
素直にC++
>>297
面白いプログラムって言うと
「このグローバル変数どこで使ってるの…(検索)…って、使ってないじゃんか」とか
「flgHogeって、Hogeじゃないって意味なのかよ」とか
「どう考えてもこのifの後は流れないんだけど、本当にテストしたの?」とか
「この関数事態仕様と違うのはおくとしても、どこからも呼ばれてねぇじゃん。
 あいつ(すでに契約切れでいないPG)一体なにしとったんや」とか
「なんかおかしいと思ったら、インデントが嘘ついとんのかよ」とか
「せめてGet関数では更新は止めてくれ」とか
そういうプログラムのことだよね!
ちょっとどころじゃない笑いがとれますぜ。人は普通それを失笑と呼びますが。
303へぼプログラマー:04/06/28 10:58
>>302
アドレスを指定していないポインタ変数とかもね。。。
304デフォルトの名無しさん:04/08/12 02:25
すみません。今日からC言語やったものなんですが買ってきた本の通りに
あるプログラムを打ち込み付属のCD-ROMにあったあるソフトの「ビルド」って
とこを押すように書いてあったんで押しました。そしたらエラー0警告0で
成功したのですがHellow Worldと表示されるプログラムなのに何も出てきません。
どうやったら表示させることができるでしょうか?
初心者すぎですみませんです。
>304
OSとかは何だ?
306デフォルトの名無しさん:04/08/12 03:18
すみません<_ _>
ビルドとコンパイル間違えていました。
ソフトの一番上の所にある、
ファイル 編集 表示 挿入 プロジェクト ビルド... ヘルプ

のところのビルドから"コンパイル"を押していました。
今ここのビルドから"ビルド"を押しましたら見事にexeが作成されました。
この作成されたexeをダブルクリックしても何もでてこなかったので
コマンドプロントに放り込んでみると見事にHellow Wordと表示されました。
これで記念すべき第1のプログラミング成功しましたです。^^
307304:04/08/12 03:25
>306

...MS-Windowsだったのか
308デフォルトの名無しさん:04/08/12 04:55
http://homepage3.nifty.com/aokura/phoebe/phoebe.htm
調べていましたらここにもっとよさそうな物がありましたです^^
305さんお世話になりましたっす^^
いや〜しかし、C言語とても面白いですね。
まだ3つしかやってませんがとても面白くてはまってしまいました。
みなさんは入門書などを一通りやった後は
どのようなこと、どのようなもので
知識や技術を増やしていったんでしょうか?
よろしければ教えてください
作りたいものを作った。
特に作りたいわけじゃないものを作って金をもらった。
その過程で知識は勝手についてくるものだ。
 
313一星 ◆Cppn/.YI3. :04/08/13 00:03
>>1
ただ質問をするだけにスレを立てるのはスレが乱立して非常に迷惑になるんだが。
質問なら既存のスレがいくらでもあると思うんだが、
それには目を通してみたのか?
スゲー俺も2年前のレスにマジレスしてーよー
315デフォルトの名無しさん:04/08/13 00:08
>310
Winなら、WindowsAPI
http://www.ascii.co.jp/pb/msp/36001/36001.htm
を読めば、窓が出せるようになる。



316デフォルトの名無しさん:04/08/13 01:12
>>309

ポインタと構造体で確実につまずくから、
それにもめげずにがんばってくれ。
317デフォルトの名無しさん:04/08/13 04:47
ポインタと構造体ですかぁ。今は何をいっているかわからないのですが
この2日間で覚えた関数は2つだけでしてprinftとscanfです。
これで電卓みたいな事ができてとても感激しています。
,これ一つ入れなかっただけでエラー起こしたりして大変でしたがとても面白いと思います。
ポインタと構造体もがんばってやってみたいと思います。
>>314 == >>313
自作自演厨うざい
このスレはスルーで自然消滅するからいいのに・・・
スゲー俺も自作自演のレスにマジレスしてーよー
320デフォルトの名無しさん:04/08/13 21:50
おまえらのやりとりわらった!
321デフォルトの名無しさん:04/08/15 23:45
>>317
printfとscanfで喜べるようなら、
ポインタとか構造体とか後回しで for とか if とかやったほうが、
モチベーションあがるよーな気がします。

forで俺がうれしかったのは100ぐらいまでの素数をずらっと表示させたときかなw
ifでは心理テストを作ったときかな。cでやるようなことじゃねーけどw
C言語でAIを作る方法を教えて下さい
コンピューターウイルスが作りたくて勉強始めました。
ぬるぽウイルスを作りたいと思っています。頑張ります。
Cでウイルスって( ´,_ゝ`)プッ
>>324
Cならなんでも出来るんでしょ?
笑っていると、痛い目にあいますよ。
ぬるぽウイルスって何
327aho ◆9Ce54OonTI :04/08/22 09:24
ここは初心者の館だな

#include <stdio.h>

int main()
{
int i = 0;

for(; i > -1 ; i++)
printf("お前はバカ %d 回目", i);

return 0;
}

これでCは完璧
C言語初心者ですが、javaのeclipseみたいなc言語用の開発ツールは
どういうものがあり、一番使いやすいものはどれになりますでしょうか?

freeソフトでも有料ソフトでもよいので教えてください。よろしくお願いします
>>327
スレタイ見ろよ
第一歩は誰でもこんなもん
330デフォルトの名無しさん:04/09/02 22:25
scanf標準関数を使わずに、同じ機能を実装せよ。
#include <stdio.h>
#include <stdarg.h>
int scanf(const char *format, ...)
{
 va_list arg;
 va_start(arg, format);
 return vfscanf(stdin, format, arg);
}
>331
こんな感じで v〜 関数を流用する時、va_end() は要らないんだっけ?
333デフォルトの名無しさん:04/09/06 20:56
とりあえず死ねよ
>>328
VC++, BCB...etc
>>328
CDT
336デフォルトの名無しさん:04/10/04 19:50:33
CとC++ってどう違うのですか?
「はじめてのC」で勉強はじめようと思っていたのですが。
337デフォルトの名無しさん:04/10/04 20:27:40
Cなんて覚える必要ないよ
初心者ならC++からで
338デフォルトの名無しさん:04/10/04 21:33:10
>>336
C  :手続き指向
C++:オブジェクト指向
ただC++はCを元にしているので当然C++で手続き指向のプログラムを作れるし、
〜指向ってのは物事の考え方に過ぎないからCでオブジェクト指向プログラミングをする事もできる。
339デフォルトの名無しさん:04/10/04 23:06:40
すいませんよく分からないので質問。
よくプログラムの最後に return 0; とつけるけど0になんの意味があるの?9とか8とかほかの数字や文字や関数をつけたらどうなる?
340デフォルトの名無しさん:04/10/04 23:21:50
>>339
最後の 0 は、大抵の OS では「正常終了」を意味すると合意が得られている(らしい)。
8 や 9 を返した場合、何が起こるかは、その戻り値を使うアプリに依存。
文字、例えば 'a' を返すと、きっと外部に 0x61 を渡す事が出来るかもね。
文字列を返そうとすると、コンパイラに弾かれないかな?
よしんば return (int)"hoge"; としても、外部アプリには "hoge" は届かないはず。
return func(); とすれば、func() の結果が返る。

ちなみに C++ では、main() の return を省略できる。
その場合、return 0 されたものと扱われる。
341デフォルトの名無しさん:04/10/04 23:25:17
>>339
親プロセスで返り値を見ることができる。
342デフォルトの名無しさん:04/10/04 23:30:42
>>340
通常EXIT_SUCCESSかEXIT_FAILUREを返せばよい
343デフォルトの名無しさん:04/10/04 23:48:58
PICでの極々簡単なメカ制御がしたくて勉強始めたんだけど、なんかprintfとかの実例ばっかりで、現実感が沸きません。勉強の方向性まちがってますかね?
344デフォルトの名無しさん:04/10/04 23:51:22
ボーランドC++のコンパイラ入れたんですけど、テキストはCです。
都合悪いでしょうか?
345デフォルトの名無しさん:04/10/05 00:04:06
モウマンタイ
346 ◆FIcNi4f8js :04/10/05 00:41:37
>>343
参考書の選択を間違ったんじゃない?
347344:04/10/05 01:21:47
C言語超入門っていうテキストとりあえずはじめてます。
コンパイラはボーランドC++です。

で、
#include <stdio.h>
main()
{
printf("おはようございます。\n");
printf("Good Morning\n");
printf("GOOD MORNING\n");
printf(" \n");
printf("123456\n");
}

こんなやつをとりあえずコンパイルしてみました。
すると

警告 W8070 hello3.c 9: 関数は値を返すべき(関数 main )

って出てきました。コンパイル自体はできたみたいで、
hello3.exeを実行すると、ちゃんと表示されます。
この警告って無視っていいのでしょうか?
348 ◆FIcNi4f8js :04/10/05 01:58:15
#include <stdio.h>
main()
{
printf("おはようございます。\n");
printf("Good Morning\n");
printf("GOOD MORNING\n");
printf(" \n");
printf("123456\n");
return 0;
}
349344:04/10/05 02:36:00
>>348さま
ありがとうございます。警告出なくなりました。
テキストにはreturn 0は載ってなかったな。
これってCとC++の違いなのでしょうか?
350 ◆FIcNi4f8js :04/10/05 02:39:16
C++でも警告出るよ。

戻り値の型を省略すると、
int main()
{
...
}
にしたのと同じ。

どうしても return 使いたくなければ、

void main()
{
...
}

351344:04/10/05 02:59:20
>>350さま
テキストはC++じゃなくCなんですが、コンパイラはボーランドC++なんです。
で、return 0入れて、警告出ないのがC++コンパイラだと思っておりました。
(テキストではreturn 0なんてなかったですし、エラーなんて出ておりませ
んでしたので。)

ちなみに今日の夕方から情報集めてボーランドC++いれて
Cの勉強はじめております。いつ一冊終わるかなぁ。とりあえず、
何も考えずにやってみよっと。

で、戻り値とかよくわかんないっす。int も void もまだわからんす。
明日の勉強で追いつけるかどうかわかんないですけど、頑張り松。
352デフォルトの名無しさん:04/10/05 10:54:00
BCBのコンパイラではPICのクロスコンパイルはできませんよ。
353困りん坊主:04/10/05 14:01:26
キーボードからいくつかの整数を読み込み、棒グラフを作成するプログラムをどなたか作ってください。
*配列も使ってください。
データを入力してください:10 ←数の入力中
データを入力してください:5
データを入力してください:-1 ←マイナスの数を入力すると終了
2つのデータが入力されました。
棒グラフを作成します。
データ1 10 |**********
データ2  5 |*****
頼みますm(_ _)m
354デフォルトの名無しさん:04/10/05 15:37:20
スレ違い
この板に宿題やってあげるスレがあったからそこ行け
355困りん坊主:04/10/05 15:41:27
 
356 ◆FIcNi4f8js :04/10/05 21:27:05
>>352
誰に言ってるの?
357デフォルトの名無しさん:04/10/14 00:04:08
scanfで文字連続入力が出来ません。
fflush(stdin)をどこかのサイトで間違ってるけれど、最初はこれでもOKなんて書いてありました。
何をどうしているのでしょうか???
358デフォルトの名無しさん:04/10/14 00:57:42
>>357
何が言いたいのかさっぱり分からん…
359デフォルトの名無しさん:04/10/14 10:54:07
>>357
s
f


SFについて知りたいならSF板に行くといいと思うよ
http://book3.2ch.net/sf/
360デフォルトの名無しさん:04/10/15 07:02:01
>>357
書式に合わない部分がバッファに残って誤動作するから scanf は使わない方が良い。

代わりに自前のバッファに一旦読み込んでからsscanfで処理する。具体的には、

char buf[256];

等を用意しておいて、

fgets(buf, 256, stdin);
sscanf(buf, "フォーマット文字列", &xx, &yy, &zz, ....);

とする。

361デフォルトの名無しさん:04/10/17 04:01:12
えと、C言語勉強中だけど、一つ質問です。

:とか;とか,とかの使い方の法則ってあるでしょうか?
なんでswitchには:なの?とか
printfには;なのに、ifには何もつかないの?とか
疑問です。
362デフォルトの名無しさん:04/10/17 04:58:33
; 文の終わりに付ける。
: ラベル名の後ろにつける。
ifは制御文なので後ろの文と合わせて1つの文となるからifの直後には何も付けない。
363デフォルトの名無しさん:04/10/17 05:01:18
if(...){
}else{
};
 ↑ここの;がいらないのはなぜか?っていう意味かな?
364デフォルトの名無しさん:04/10/17 05:26:12
>>361

while(...){...}
これは;不要

do{...}while(...);
これは;必要
365デフォルトの名無しさん:04/10/17 06:02:13
>>363
そういう意味なら
{ 〜 } を ; が付いていないけどCでは複文という文の一種として扱われているから、が答えになる。
366デフォルトの名無しさん:04/10/17 06:56:11
>>365
struct {
int a;
}

これでエラーになりましたが、なぜでしょう。。
367デフォルトの名無しさん:04/10/17 07:48:48
int nen;
だと;が必要なのに、関数
int get_price(int nen)
{
}
だとなぜ;がいらないのでしょう?
368デフォルトの名無しさん:04/10/17 07:52:23
>>366
{ }にセミコロンが必要なんじゃなくて、structの宣言の終端にセミコロンが必要だから。

{ }に対してセミコロンが必要かどうか と勘違いしてないか?
>>365氏が言うように、{〜}は複数の文をまとめただけのものだから、
どこに使われるかでセミコロンが必要になるかは変わってくる。

原則としてCでは文の終端にセミコロンが必要だけど、例外として
制御文や関数等には必要ない。

それはC言語の構文規則でそう定義されているからで、
そういうものだと覚えるしかないと思う。
369366:04/10/17 08:31:04
>>368
ネタにマジレス、お疲れ様です。

てか、こんなところに来てる暇あったら
「プログラミング言語C」でも読めよ。>質問者
370デフォルトの名無しさん:04/10/17 09:22:38
条件を書く時ので困ってます。
例えばこんなかんじで。

「もし、2<x<5 または 9<x<100 の時」
ってどう書けばいいのでしょうか?

if(x>2 && x<5 || x>9 && x<100)
{〜}

ではいけないような気がします。
371366:04/10/17 09:31:34
>>370
()でくくればOK。

if((x>2 && x<5) || (x>9 && x<100))
{〜}
372デフォルトの名無しさん:04/10/17 11:42:14
if(a==b)
hogehoge ←ここに;つけない
else
fugafuga; ←ここには;つける(文の終わりだから)

っていう言語もあったような?
373デフォルトの名無しさん:04/10/17 11:45:23
>>370
if(!(x <= 2 || (x >= 5 && x <= 9) || x >= 100))
{〜}
374デフォルトの名無しさん:04/10/17 11:57:32
371さま、373さま、回答ありがとうございます。
要はわかんなかった事が、ifの()の中をさらに()でくくる事ができるという事を知らなかったという事でした。
持ってるテキストに載ってなかったもので(^^;)

それにしても:やら;やらややこしいですね。
仕様だと思ってとりあえず丸覚えしていって、そのうち法則みたいなのがわかるようになるでしょうか?
375デフォルトの名無しさん:04/10/17 12:00:26
>>374
そのテキスト捨てた方が良い
タイトル言ってみ?
376デフォルトの名無しさん:04/10/17 12:04:37
C言語超入門
377デフォルトの名無しさん:04/10/18 17:10:02
セミコロン( ; )を文の終わりにつけるというより、構文的にはこう決められているからとしか言えない。

if文はif(制御式) 文 else 文 (else以降は省略可)
文には式文、複文、ラベル付文、制御文があり、
複文とは"{"と"}"の間に任意の数の宣言(省略可)とそれに続いて任意の数の文(これも省略可)を並べた物。
式文とは式に";"を付けた物。
ラベル付文とは文の手前にラベルに続けて":"を付けた物。
(制御文は省略。if文、for文などのこと)

378いなむらきよし:04/10/24 13:28:08
「はじめてのC」を読んだ方がいいキケー!
379デフォルトの名無しさん:04/10/24 16:35:46
> ()でくくればOK。

ぼけ! 括弧つけなくてもつけても同じだ!

if (2 < x && x < 5 || 9 < x && x < 100)

380デフォルトの名無しさん:04/10/24 16:37:37
> 原則としてCでは文の終端にセミコロンが必要だけど、例外として
> 制御文や関数等には必要ない。

ぼけ! いいかげんなことを言うな。制御分にも関数呼び出しにも必要だ!

printf("hello");
return 0;
381デフォルトの名無しさん:04/10/24 16:39:25
> {〜}は複数の文をまとめただけのものだから、
> どこに使われるかでセミコロンが必要になるかは

そうではない! > ぼけ

「どこでつかわれるかで複数の文をまとめたものかどうかは変わる」んだ。
382デフォルトの名無しさん:04/10/24 16:40:24
> なんでswitchには:なの?

switchじゃなくてgotoでも「:」だ > ラベル
383デフォルトの名無しさん:04/10/24 16:41:05
>>349
> テキストにはreturn 0は載ってなかったな。

その本の題名をさらせ!
384デフォルトの名無しさん:04/10/25 00:34:15
ポインタってのがやっと分かったと思ったら、もっと分からない構造体ってのが出てきちゃった。
385 ◆FIcNi4f8js :04/10/25 01:54:16
ポインタより構造体の方がはるかに分かりやすいが
386デフォルトの名無しさん:04/10/25 09:06:01
はっきり言ってどっちもオナニーより簡単
387デフォルトの名無しさん:04/10/26 04:53:00
C++のテキストは何がいいんでしょうか?
388デフォルトの名無しさん:04/10/26 11:40:30
>>387
私の経緯から考えるとC++のテキストは一冊では全く事足りない。
最低5冊は読まないとダメかもよ
389デフォルトの名無しさん:04/10/26 12:54:56
文法事項はその辺の参考書で事足りるだろうけど、使いこなそうと思ったら
最低EffectiveC++, MoreEffectiveC++
STLを使うならEffectiveSTL
Templateを使うならModernC++Design
参考としてExceptionalC++等々
あとオブジェクト指向の解説本も入れたら出費が(´Д`)
390デフォルトの名無しさん:04/10/26 19:32:14
>>389
EffectiveSTL、EffectiveC++は個人的に好きじゃない…
人の勝手だろ、っていうところまで書いていたりするから。
391デフォルトの名無しさん:04/11/27 11:54:35
age
392デフォルトの名無しさん:04/11/27 12:48:46
>>389
初心者にそこまでやらせるのは酷だろ。
PerlとかRubyでプログラムそのものに慣れさせてから
改めてC++に触れさせればいいのに。
393デフォルトの名無しさん:04/11/27 22:11:06
プログラミング言語を何も知らずに
「C言語をマスターするぜ!!」ってのは、難しいから

HTMLでも扱ってメモ帳などを開くクセを付けて、
CGIに用いられるPERL言語から始めるのもGOOD

自分はそんな感じですた
394デフォルトの名無しさん:04/11/27 23:09:27
時代はベーシックですよ。
395デフォルトの名無しさん:04/11/28 00:52:43
型を身に着けるべきだと思う。
ほとんどの処理は、型があるから、それを覚えてしまえば、それなりの物は書ける。
自分も初心者です。がんばりましょう。
396デフォルトの名無しさん:04/11/28 13:34:00
型から入って失敗した奴を何人も知っている
397デフォルトの名無しさん:04/11/28 13:40:14
>>396
じゃあ、どうすりゃいいのさ?
398デフォルトの名無しさん:04/11/28 17:48:11
age
399デフォルトの名無しさん:04/11/28 19:30:20
基本書読むだろ?ポインタが理解出来るくらいにまでなる。
で、なにか簡単なプログラムのソースを見るんだよ。俺の場合は雑誌に付いてたメモ帳だった気がする。
見ながらいじってみて変化を確認して。みたいな感じで覚えていくんだよ。
なれてきたら自分で作るものにあわせて、中級〜上級者向けの本読むとかすればいい。
400デフォルトの名無しさん:04/11/28 20:18:44
今日からC勉強しようと思うのですが。なにかいい参考書ってありますか?
もししっているのならば教えてもらいたいのですが・・・。
なにぶん初心者なので、わかりやすいけど、内容が深いものがいいです。
401デフォルトの名無しさん:04/11/28 20:43:16
>>400
倉薫 著
C言語 (全2巻)
がわかりやすかった。プログラミング初心者向け。
402デフォルトの名無しさん:04/11/28 20:44:54
>>400
内容が深いかどうかはわからないけど、
Amazon.co.jp: 本: C言語〈1〉はじめてのCプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/488135843X/
Amazon.co.jp: 本: C言語 (2)
http://www.amazon.co.jp/exec/obidos/ASIN/4881358448/
enumに関しての説明が充実しているらしい。
403デフォルトの名無しさん:04/11/28 20:52:55
>>401.402
ありがとうございました!
404デフォルトの名無しさん:04/11/28 21:39:52
>>403
必ず立ち読みして、自分にあっているかどうかを確かめたほうが良い。
405デフォルトの名無しさん:04/11/29 23:35:49
406デフォルトの名無しさん:04/11/30 02:47:55
>>405
読んだことないけど、全くの初心者なら倉薫の方がいいんじゃないかな?
初心者向きじゃないって言うレビューもあるし。
407デフォルトの名無しさん:04/12/05 01:50:57
保守
408デフォルトの名無しさん:04/12/14 18:40:49
ポインタ配列というのがイマイチ理解できない。
例えば
char s[1];
s[0] = "foo";
s[1] = "bar";
とした時に、
確認したいのは…
1.s[0]は"foo"の先頭文字('f')のアドレスを指していて、s[1]は"bar"の先頭文字('b')の先頭文字のアドレスを指している
2.変数名は配列の先頭アドレスになるので、*s {配列sの先頭アドレスを参照} は s[0] {配列sの先頭要素}と等価である
3.*(s+1) {配列sの先頭アドレスを1要素分進めたアドレスを参照} は s[1] {配列sの2番目の要素} と等価になる

で、疑問
その1:
メモリ内で、"foo"と"bar"が必ずしも順番に並ぶとは限らない?
(必ず |f|o|o|\0|b|a|r|\0| になるとは保証されていないのか。)
その2:
*s + 1 という式の「1」が意味するところ
(s[0]に格納されているアドレスを 1番地 進めたアドレス? or char1文字分進めたアドレス?)

エロイ人、教えてください。
409デフォルトの名無しさん:04/12/14 20:50:26
>>408
その1:されていません
その2:後者
410デフォルトの名無しさん:04/12/15 02:11:57
みんなCをマスターレベルになるまでどれくらいの時間かかったの?
411デフォルトの名無しさん:04/12/15 03:34:43
>>410
私はドクターですが、4年かかりました。
412408:04/12/15 09:26:09
>409
ありがとう
413デフォルトの名無しさん:04/12/18 19:08:44
何度も聞かれて、うんざりかも知れませんが
「初めに勉強するのはC言語で良いのですか?」
Cは難しいと聞きますが、やり始めたらある程度までやる自身はあります。
ただ、無駄になるのが怖いのです。

使用目的はプログラムをある程度かじってから考える・・・、では駄目ですかね?
414デフォルトの名無しさん:04/12/18 23:15:28
>>413
Cが難しいと言う人は単にコンピュータ言語そのものに慣れていないだけです。
コンピュータ言語それぞれの違いというのは些細なものですし、仮に、もし何か一つ
だけ覚えるなら何が良いか、と聞かれたら、私なら「Cが適当」(場合によってC++)
と答えるでしょう。
そして、もし2番目を選べるならLispでしょう。
それらはコンピュータ言語で良くあるタイプの、非常に良いコンビネーション、
手続き型と関数型、と言えます。

2つ以上の言語を覚えると、新たな言語を覚えるのは軽い気持ちで覚えられるでしょう。
コンピュータ言語の文法の複雑さはたかが知れているので、慣れてくると、一つの
ケースとして、あなたが見た事があるだろう言語はほとんど覚えているということ
もありえます。
415デフォルトの名無しさん:04/12/19 00:10:14
>>414
ありがとうございます。
早速C言語から学んでみたいと思います。
416デフォルトの名無しさん:04/12/19 07:34:29
Rubyだけで必要十分
417デフォルトの名無しさん:04/12/27 00:27:54
age
418デフォルトの名無しさん:05/01/12 21:46:46
とりあえずC言語に挑戦しようかと思うんですがメモ帳使えばいいんですか?
419デフォルトの名無しさん:05/01/12 21:47:33
ゴバーク
420デフォルトの名無しさん:05/01/22 07:11:55
メモ帳よりはサクラエディタが便利どす。
421デフォルトの名無しさん:05/01/22 09:07:48
>>420
そういう貴方もさくらなんでしょ?
422デフォルトの名無しさん:05/01/22 09:08:50
>>418
emacsに慣れた方がいいよ。
はっきりいって、全てemacs内で完結できるし。
windowsならmeadowかな。
423デフォルトの名無しさん:05/01/22 13:29:40
xyzzyがおすすめですよ。
424デフォルトの名無しさん:05/01/22 18:56:17
>>423
xyzzyは、meadowよりもWindowsに密着している風だから、使いやすいのだけど、
問題はemacs-lispの資産が使えないこと。
独自のlispを採用しているから、移植が面倒。
プログラミングを知らない人は使いたいスクリプトを移植することもできないだろう。
その点meadowはemacs-lispのスクリプトがそのまま動くから、emacsとほとんど同じ
ように使える。
結論として、meadowの方が良いと思う。
425デフォルトの名無しさん:05/01/22 21:57:51
ここで秀丸とか言うと、
総叩きにあいそうだから黙っておくか
426デフォルトの名無しさん:05/01/22 22:14:04
     (⌒∧_∧          ,//∧_∧
  バキィ!ヽ( ・∀・)  :(⌒ミ(  //(´∀` )
   バキィ!!ヽ  l| |l(:;;:( ドガァ!!///ヽ、  _`ヽゴスッ!!
  ('⌒;ヾ / '/ li| l!グシャァ!!\从从///'ミ_/ヽドゴッ!!
   (⌒)y'⌒;ヾ从从(⌒〜∵;)´⌒`つ,;(´(´⌒;"'ボキボキボキッ
  (´⌒ー-   ;:#∧_;/// 彡(:::゜;。(;;;)、⌒从;;ノ・`⌒);
(´;⌒(´⌒;;' ~ヽと;;;;。#;;、ミ,,:,,;;;ヽ/ノ:#`""^ヾ⌒));
 ̄ ̄(´⌒;,(´,(゙゙゙'゛""゙゙)゙'';"(´⌒;,(´,(´⌒;)
               ↑>>425
427デフォルトの名無しさん:05/01/22 22:21:32
ホントにされるとは思わなんだ
428デフォルトの名無しさん:05/01/22 23:15:11
xyzzy使いにも二通りあって、emacs使いの系統の人とマウス使いな人に分かれる。
後者は驚いたことに、殆ど全ての操作をマウスのみで行なっていた。
#いや、勿論入力はキーだが。カーソル移動もスクロールもマウスな訳だ。
429デフォルトの名無しさん:05/01/24 01:06:40
 
430デフォルトの名無しさん:05/01/24 01:09:16
charって

char x[10];

とか宣言するところですが、

char x;

ってやったらどうなるんですか?
431デフォルトの名無しさん:05/01/24 08:58:46
一文字分の領域が確保される
432デフォルトの名無しさん:05/01/24 20:08:21
なんかchar=文字列の格納場所というようにしてるけど
charに数字を入れたらバカにされた・・・

別に良いじゃん、仕事じゃ普通にやるし。
char=1バイトの領域としてみれば文字じゃなくても良いじゃん。

組み込み系では文字なんてあんまり扱わなかったんだよ。

・・・馬鹿にされてちょいと凹む今日この頃
433デフォルトの名無しさん:05/01/24 22:05:56
>>432
確かに8ビットCPUなら常套手段だが、最近の32ビットCPUの場合速度的にもサイズ的にも却って不利だ。
434デフォルトの名無しさん:05/01/25 20:24:17
char型文字列からchar型ポインタに文字列をコピーするにはどうしたらいいのでしょうか?
435デフォルトの名無しさん:05/01/26 00:39:00
>>434
char型には文字列は入れられません。
char型ポインタにも文字列は入れられません。

俺語で語らずに用語を正しく。
436デフォルトの名無しさん:05/01/26 00:44:28
>>435
翻訳してやろう。
char型配列に格納されている文字列を、char*型ポインタの示す先にコピーするには
どうしたら良いのでしょうか?
437デフォルトの名無しさん:05/01/26 00:48:07
>>436
strcpy()
ただし、ポインタの先は適当な領域であること。
438デフォルトの名無しさん:05/01/26 19:39:11
439デフォルトの名無しさん:05/01/26 19:39:47
440デフォルトの名無しさん:05/01/26 21:52:44
#include<stdio.h>


int main(void)
{
printf("%d / %d = %d ... %d\n",40,13);



}

40÷13を計算し、式と商と余りを表示するプログラムをつくりたいのにできない。
答えはわかってるんだけどなんでこれでできないのかわからないです。
教えてえろい人
441デフォルトの名無しさん:05/01/26 22:36:21
printf("%d / %d = %d ... %d\n", 40, 13, 40 / 13, 40 % 13);
442デフォルトの名無しさん:05/01/26 22:38:20
int a,b,c,d;

a = 40;
b = 13;

c = 40 / 13;
d = 40 % 13;

printf("%d ÷ %d = %d ・・・%d",a,b,c,d);
443デフォルトの名無しさん:05/01/26 23:14:57
改行くらいしろよ
444デフォルトの名無しさん:05/01/27 00:54:07
charの領域に4byte単位でデータを書き込みたいのですがよい方法はありますか?

例:
char data_byte[4] = { 0x11, 0x22, 0x33, 0x44};
long data_long = 0x88776655;

data_longをdata_byteに書き込んでdata_byteを
0x88, 0x77, 0x66, 0x55
にしたいのですが・・・

無理ですかね?
445デフォルトの名無しさん:05/01/27 06:44:43
>>444

data_byte[0] = ((unsigned) data_long) >> 24;
data_byte[1] = ((unsigned) data_long) >> 16;
data_byte[2] = ((unsigned) data_long) >> 8;
data_byte[3] = (unsigned) data_long;
446デフォルトの名無しさん:05/01/27 11:30:15
int型の配列を返す関数ってできますか?
できる場合って、return (?)にすればいいんでしょうか?
447デフォルトの名無しさん:05/01/27 12:33:16
>446
このスレはsage放置してください。
#include<malloc.h>
int* f(int n){
int*p=(int*)malloc(n*sizeof(int));
return p;
}
後でfree(p);を忘れずに。
448デフォルトの名無しさん:05/01/27 15:56:53
やっとクイックソートが組めました
449デフォルトの名無しさん:05/01/27 19:15:29
Cの入門ウェブページとして
「猫でもわかるプログラミング」が有名ですが

苦しんで覚えるC言語入門
ttp://homepage3.nifty.com/mmgames/c_guide/
や、
目指せプログラマー!
ttp://hp.vector.co.jp/authors/VA000124/index.htm

とかって有名なのでしょか?
450デフォルトの名無しさん:05/01/27 21:19:41
猫よりはどっちも良い感じ
451デフォルトの名無しさん:05/01/28 15:04:53
sage放置にご協力を
452デフォルトの名無しさん:05/01/28 19:09:56
猫が猿を教える時代だからな
453デフォルトの名無しさん:05/02/03 01:51:35
すんません ちと初歩的な質問なんですが、、、

C言語って「文字列」を格納する変数のデータ型ってないんでしょうか?
454デフォルトの名無しさん:05/02/03 09:28:03
文字型の配列
455デフォルトの名無しさん:05/02/03 14:20:43
age
456デフォルトの名無しさん:05/02/04 00:59:25
>>453
454の言う通り
char x[];
で格納できるよ

そのうち配列を覚えれば分かるようになると思うよ。

ちなみに、%sは文字列の出力は%s
ex.
printf("%s", "abc");
457デフォルトの名無しさん:05/02/05 11:51:26
int *p[10];   int型(4バイト)を指示すポインタ配列要素数10
int (*p)[10];  int型配列要素数10(40バイト)を指示すポインタ

でいいのでしょうか?

458デフォルトの名無しさん:05/02/05 13:16:03
>>457
ダメ







>指示すポインタ
459デフォルトの名無しさん:05/02/05 18:16:49
int *p[10];   int型(4バイト)のポインタ配列要素数10
460デフォルトの名無しさん:05/02/05 18:19:43
#include <stdio.h>
#include <stdlib.h>

void main (void)
{
int *p;
int *start;
int i=0;

start=p;

while(1)
{
p=(int *)malloc(sizeof(int));
p++,i++;
if(p==(int*)NULL)
{
break;
}
}

printf("インクリメント回数%d",i);

return;
}
メモリー2.27Gまで確保したところで止まるのですが、インクリメント回数は表示されません。
まだ確保出来ると処理を続けているのでしょうか?
461デフォルトの名無しさん:05/02/05 18:22:57
>>460
こうすべき。
while(1)
{
p=(int *)malloc(sizeof(int));
if(p==(int*)NULL)
{
break;
}
p++,i++;
}
462デフォルトの名無しさん:05/02/05 18:23:32
>>460
何よりも先にエラー処理だよ。
463デフォルトの名無しさん:05/02/05 18:39:17
pをインクリメントすることに何か意味があるのか?
464デフォルトの名無しさん:05/02/05 18:39:38
おお!表示されました。
132378282回でした。
これでfreeする場合は、
p=startで代入して最初に持ってきて、
p++で2回目のmallocを探せるのでしょうか?
465デフォルトの名無しさん:05/02/05 20:35:13
んなあほな。
466デフォルトの名無しさん:05/02/06 17:21:48
freeしたければexitしろ
467デフォルトの名無しさん:05/02/07 14:30:45
質問です。
初心者レベルですがJavaについての知識はあります。
これからVS.netでC++を学んでみたいのですが、言語の文法を学ぶ場合、
はじめに、Cを学んでからステップアップしてC++を学ぶべきですか?
それとも、いきなりC++から学んでもいいのでしょうか。
468デフォルトの名無しさん:05/02/07 14:50:04
>>467
私はこのスレでならCを学べと答える。
469467:05/02/07 15:01:42
>>468
レスありがとうございます。
この場合のCから始めるメリットとは何ですか?
470468:05/02/07 15:48:05
>>469
Javaとの違いをはっきり認識するため。
471467:05/02/08 11:55:11
>>470
なるほど!
ありがとうございました。
472デフォルトの名無しさん:05/02/09 04:16:10
質問させて下さい。

if(n>=3 && n<3)

と書いてしまった場合の処理はどうなるのでしょうか?
なんか普通に処理が進んでるんですけど・・・
473デフォルトの名無しさん:05/02/09 04:27:54
>>472
常に偽ではあるが、問題なし。コンパイラと警告レベルによっては警告してくれないかな。
474デフォルトの名無しさん:05/02/09 19:01:00
>>472
ただ単に if文が実行されず、常に飛ばされてるだけですよ。
475デフォルトの名無しさん:05/02/10 02:47:32
char 型配列があったとして

if ( hoge[-1] == 'a' ){
 ・
 ・
 ・
}

としたらどうなるんですか?
476デフォルトの名無しさん:05/02/10 02:53:05
>>475
例えば
char hage[10];
char * hoge = & hage[1];
ならば
hoge[-1]はhage[0]と同意です。
しかし、
char hoge[10];
に対していきなり
if (hoge[-1])
などとしてはいけません。
477デフォルトの名無しさん:05/02/10 06:55:47
うーん、だったらじゃあ、特定の文字列(ここではbaka)を探したい時に、


if(hoge[n-3]=='b' && hoge[n-2]=='a' && hoge[n-1]=='k' && hoge[n]=='a')
{
   return -1;
}

とかするときは、n >= 3 になってから探すようにするんですね。
ありがとうございます。
478デフォルトの名無しさん:05/02/11 03:00:08
初歩的な質問ですが教えてください

#include <stdio.h>

int main(void)

{

/*変数の宣言*/
int dat; /*キー入力した値*/

/*9が入力されるまで、キー入力*/
do
{
printf("整数を入力...");
scanf("%d",&dat);
}
while(dat!=9);

return 0;

}

上記のソースで
while(dat!=9);
の部分を
while(dat<>9);
と書くとコンパイルされないんですが
どうしてなんでしょう・・・
479デフォルトの名無しさん:05/02/11 03:25:34
>>478
BASICやってたの?
480デフォルトの名無しさん:05/02/11 04:08:45
while(dat<9 || dat>9);
481デフォルトの名無しさん:05/02/14 14:18:08
strlen関数で、intにキャストしてる例を見たんですけど、普通なんでしょうか。
はじめてのC読んだら、size_tはプラスの値ならどうのこうのってあるんです
けど、strlenでマイナスの値になる事ってあるんですか?
482デフォルトの名無しさん:05/02/15 03:15:14
>>481
>strlen関数で、intにキャストしてる例を見たんですけど、普通なんでしょうか。
普通じゃないと思う。

>けど、strlenでマイナスの値になる事ってあるんですか?
size_tが符号無し整数型で引き数がNULLの時に(size_t)-1が返るような実装でも無いと思う。
(int)(size_t)-1はマイナスの値になると思うが…
483デフォルトの名無しさん:05/02/15 23:10:53
なんで getchar の return は int 型なんでしょうか。
しかもこれでprintfしたらちゃんと文字まで表示されてるし。
484デフォルトの名無しさん:05/02/16 00:26:33
>>483
文字しか返せないとエラーを返せないから。 c faqに出てないかな?
485デフォルトの名無しさん:05/02/16 01:24:10
EOF(-1)と(char)255の区別がつかなくなるから。
486デフォルトの名無しさん:05/02/16 01:41:44
char型文字列hogehogeに 例えば data.txt と書かれていて、

fp_data=fopen(hogehoge,"a");

というのはできるでしょうか?data.txtを開きたいとして。
487デフォルトの名無しさん:05/02/16 01:53:27
試せば分かることをいちいち聞くな。
488デフォルトの名無しさん:05/02/16 02:10:27
>485
なぜstrlenはエラーを返せないsize_t型なのでしょうか?
489デフォルトの名無しさん:05/02/16 02:25:55
a = a + 1; とか書く人ですか?
490デフォルトの名無しさん:05/02/16 08:16:57
>>488
>なぜstrlenはエラーを返せないsize_t型なのでしょうか?
(´・ω・`)知らんがな。
strlenにC言語の文字配列を渡したらエラーにならんがな。
シグナルや例外はエラーとは違うがな。
491デフォルトの名無しさん:05/02/16 09:09:12
>>488
まず strlen の「エラー」とは
どういう状況をいうのかを
考えてから書き込め。
492デフォルトの名無しさん:05/02/16 09:52:36
バッファオーバーランとか
ぬるぽとか
493デフォルトの名無しさん:05/02/16 10:39:22
>>488

仕 様 だ か ら
494デフォルトの名無しさん:05/02/16 10:40:57
なぜそういう仕様になっているのでしょうか?
495デフォルトの名無しさん:05/02/16 10:47:02
>>494
作った香具師に聞け
496デフォルトの名無しさん:05/02/16 11:03:53
ここで聞いたのが間違いだったなw
497デフォルトの名無しさん:05/02/16 11:22:59
なぜ人間は空気がないと生きられないようになっているのでしょうか?
498デフォルトの名無しさん:05/02/16 15:16:19
>>497
作った香具師に聞け
499デフォルトの名無しさん:05/02/16 20:42:33
>>497
空気があることが前提のなって作られたからだろうな。
500デフォルトの名無しさん:05/02/16 21:50:48
>>497
憶測で質問をするな。

本当に人間は空気がないと生きられないのか、
自分で実験したことでもあるのか?
501デフォルトの名無しさん:05/02/17 14:53:49
未だにfopenのモードで r+ と w+ の使い方がわからないんですが。
502デフォルトの名無しさん:05/02/17 15:00:38
"w+" ファイルを作成し、読み込み/書き込みの両方のモードで開きます
    ファイルが存在している場合はその内容を破壊します
---------------------------------------------------------------------
"a+" 読み込み/書き込みモードの両方のモードで開きます
    ファイルが存在する場合は追加、無い場合は作成します
503デフォルトの名無しさん:05/02/17 16:01:56
んー、そうすると w と w+ は一緒ですか?
504デフォルトの名無しさん:05/02/17 16:12:34
"w" 書き込みモードでファイルを開きます
   ファイルがない場合は新しく作成し、存在している場合はその内容を破壊します
505デフォルトの名無しさん:05/02/17 21:58:36
マニュアルなり仕様書なり、調べれば判ることをぐだぐだなにやってんねん。
506デフォルトの名無しさん:05/02/25 02:48:01
保守します?
507デフォルトの名無しさん:05/03/05 02:50:25
ほしゅしとく。
508デフォルトの名無しさん:05/03/05 04:12:21
bcc使ってるんですが、関数を別々のファイルにわけてまとめてコンパイルする方法がわかりません。
509デフォルトの名無しさん:05/03/05 06:47:33
>>508
bcc32 -ehoge *.h *.c
510デフォルトの名無しさん:05/03/05 12:01:31
>>509
おいおい…
511デフォルトの名無しさん:05/03/07 21:25:26
>>508
インクルードすればいいんじゃねぇの?
512デフォルトの名無しさん:05/03/07 23:36:25
明日提出の課題あるんですけど、力になってもらえませんか?
513デフォルトの名無しさん:05/03/08 09:47:10
>>512
宿題スレ行け
514デフォルトの名無しさん:05/03/16 04:21:22
保守。
515デフォルトの名無しさん:05/03/17 18:50:15
保守
516デフォルトの名無しさん:05/03/17 19:49:15
>>1

汗水垂らしてアセンブラでもやりませう
517デフォルトの名無しさん:05/03/17 22:14:39
1から100までの自然数を素因数に分解して出力しなさい

誰かC言語でプログラム書いてもらえませんか?
518デフォルトの名無しさん:05/03/18 00:28:28
519デフォルトの名無しさん:05/03/19 18:16:42
本屋でみた「やさしいC」が入門書として良さそうだった。
完全に初めてで、挫折したくないという人には厚みが抵抗感ありそう。

ごく薄い入門本→「やさしいC」→何か作る  が良さそう。
参考書的に「はじめてのC」使う。
520ビギナー:05/03/19 18:24:35
良いC言語のエディタ無いですかね?無料で使いやすいのがいいです。
521デフォルトの名無しさん:05/03/19 18:53:46
漏れはサクラエディタ使ってる。
522デフォルトの名無しさん:05/03/19 19:54:26
>>520
vimとかカーソル移動とかページ送ったりするのが楽チンなのが良い
523デフォルトの名無しさん:05/03/19 19:56:31
漏れはXyzzyを使っている。
お勧めは寧ろPeggy。
524デフォルトの名無しさん:05/03/19 21:20:31
>>520
VisualStudio.net C++
525デフォルトの名無しさん:2005/03/21(月) 11:05:16
初心者にはcpadが楽じゃないかな?
カンパウェアだけど。
526デフォルトの名無しさん:int 2ch =05/04/01(金) 22:00:01
age
527デフォルトの名無しさん:2005/04/06(水) 06:33:43
BCC Developer
528デフォルトの名無しさん:2005/04/13(水) 17:51:50
保守
529デフォルトの名無しさん:2005/04/14(木) 18:10:21
皆さんは一日の時間をどれくらいC言語やプログラミングの勉強に使っていますか?
530デフォルトの名無しさん:2005/04/14(木) 20:39:43
寝る前の30分
531529:2005/04/14(木) 21:09:51
>>530
そんなもんなんですか。
趣味として(独学なら大体そうなのかな)ですか?
532デフォルトの名無しさん:2005/04/14(木) 22:56:09
C言語を扱えればプログラマーとして就職できますか?
533デフォルトの名無しさん:2005/04/14(木) 23:38:33
>>532
のこぎりを扱えれば大工として就職できますか?
この質問に Yes/No で答えろ

その答えがおまえの質問の答えだ
534532:2005/04/15(金) 07:06:40
明らかにNOですね。
アルゴリズムやハード・ソフトも必要だという事か
535デフォルトの名無しさん:2005/04/16(土) 00:39:10
のこぎりが使えればプログラマーとして就職できますか?
536デフォルトの名無しさん:2005/04/16(土) 00:47:01
>>535
C言語を扱えればプログラマーとして就職できますか?
この質問に Yes/No で答えろ

その答えがおまえの質問の答えだ
537デフォルトの名無しさん:2005/04/16(土) 06:03:35

       \
 お そ .い ヽ
 か の や  |
 し  り  `  ,. -──- 、
 い .く   /   /⌒ i'⌒iヽ、
    つ /   ,.-'ゝ__,.・・_ノ-、ヽ
    は i ‐'''ナ''ー-- ● =''''''リ      _,....:-‐‐‐-.、
      l -‐i''''~ニ-‐,....!....、ー`ナ      `r'=、-、、:::::::ヽr_
 ̄ \ヽー' !. t´ r''"´、_,::、::::} ノ`     ,.i'・ ,!_`,!::::::::::::ヽ
    ヾ、 ゝゝ、,,ニ=====ニ/r'⌒;    rー`ー' ,! リ::::::::::::ノ
       i`''''y--- (,iテ‐,'i~´,ゝ'´     ̄ ̄ヽ` :::::::::::ノ
       .|  !、,............, i }'´    _   、ー_',,...`::::ィ'
     ●、_!,ヽ-r⌒i-、ノ-''‐、    ゝ`ーt---''ヽ'''''''|`ーt-'つ
        (  `ーイ  ゙i  丿   ;'-,' ,ノー''''{`'    !゙ヽノ ,ヽ,
        `ー--' --'` ̄       `ー't,´`ヽ;;;、,,,,,,___,) ヽ'-゙'"
                       (`ー':;;;;;;;;;;;;;;;ノ
                       ``''''''``'''''´  
538デフォルトの名無しさん:2005/04/16(土) 14:46:22
>>535
俺はのこぎりを使えるプログラマだけど
プログラマとして就職していない
539デフォルトの名無しさん:2005/04/16(土) 23:34:52
使えないプログラマをのこぎりで切っていいですか?
540デフォルトの名無しさん:2005/04/16(土) 23:37:08
使えないプログラマはC言語で切ってください
541デフォルトの名無しさん:2005/04/16(土) 23:47:26
むしろC++でぶっちぎっちゃって下さい。
542デフォルトの名無しさん:2005/04/17(日) 00:14:10
Oをのこぎりで切って血が噴き出した様子がC++
543デフォルトの名無しさん:2005/05/04(水) 21:27:20
それに絆創膏貼れば、C#か?
544542:2005/05/04(水) 23:14:56
>>543
うまい。座布団1枚!!!
545デフォルトの名無しさん:2005/05/26(木) 19:00:56
質問させていただきます。

int hogehoge( void array, int n){
  char foo[] = "たらば蟹";

switch( n ){
case 1:
     (char*)array = (char*)malloc(sizeof(char) * length);
     strcpy( (char*)array, foo);
break;

      ・
}
    ・
    ・
    ・
  return 0;
}

このようにしてmain関数から
prinft(" %s\n", array);
としても何も表示されないんですが、どうしたら表示されるようになるでしょうか?
546デフォルトの名無しさん:2005/05/26(木) 20:54:32
>>545
int hogehoge(char **array)
{
    *array = malloc();
    strcpy(*array, foo);
    return 0;
}

あるいは戻り値を使っていないのならchar *を返す方法もある。
547545:2005/05/26(木) 21:09:51
>>546

引数にどんなデータ型の配列も放り込めるようにするにはどうすればいいでしょうか?
そして任意のデータ型に変換して代入する、とか。。。
548デフォルトの名無しさん:2005/05/26(木) 21:29:32
>>547
void **を引数にとるかvoid *を返すかする。
549デフォルトの名無しさん:2005/05/26(木) 22:45:22
BCC Developer 使用

#include <stdio.h>

main()
{
printf("This is a test");
}

って打って コンパイルして メイクしてEXE作ると黒い画面が出て
すぐ終了してしまう・・・。 WHY?
550デフォルトの名無しさん:2005/05/26(木) 22:50:07
↑やっぱ無視して
551デフォルトの名無しさん:2005/05/27(金) 22:22:09
VC++とかBorland C++でCプログラムはコンパイルできますか?
552デフォルトの名無しさん:2005/05/27(金) 22:40:37
>>551
両者とも出来る。
拡張子によってCとC++と切り替えてくれる。
553デフォルトの名無しさん:2005/05/27(金) 22:46:36
>>552
ありがとうございます。
554デフォルトの名無しさん:2005/05/28(土) 17:31:13
いちいちインクルードする関数えらぶの面倒なんで
どんなプログラム作るときもとりあえず主要なの全部インクルードするようにしたらなんか不都合ある?

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
   ・
   ・
   ・

こんな感じで。
555デフォルトの名無しさん:2005/05/28(土) 17:33:59
>>554
良んじゃね?
VCなんかでウィザード使うとそういうことするよ。
556デフォルトの名無しさん:2005/05/28(土) 18:32:28
>>555
557デフォルトの名無しさん:2005/05/28(土) 18:36:41
>>554
コンパイルに多少余計な時間がかかるようになるけどそれでもよければ。
558デフォルトの名無しさん:2005/05/28(土) 18:43:53
>>42
お前の一言で俺の人生が変わった
559デフォルトの名無しさん:2005/05/29(日) 13:09:06
自分もBCC使ってて>>549の症状になったから
main()
{
printf("This is a test");
int i;
cin >>i;
return 0;
}

として黒い画面を出してるんだけど、もっとスマートな方法ありませんかね?
560デフォルトの名無しさん:2005/05/29(日) 13:56:20
>>559
普通にコマンドプロンプトから起動すればいいだろ?
561デフォルトの名無しさん:2005/05/29(日) 17:51:30
#include <stdlib.h>
system("pause");
562デフォルトの名無しさん:2005/05/29(日) 18:17:02
>>559
C言語なのにiostreamを使うとは勇気のある奴だなお前・・・
563デフォルトの名無しさん:2005/05/30(月) 20:30:01
char *temp;
int count;

count = 1;
temp = (char*)malloc( sizeof(char) );
while( (temp[count - 1] = (char)fgetc( stdin ) ) =! '\n'){
count++;
temp = (char*)realloc( temp , sizeof(char) * count );
}
buffer[count] = '\0';

こういうめんどくさい事するぐらいならfgetsの方がいいんでしょうか?
断片化も起きないし…
564デフォルトの名無しさん:2005/05/30(月) 22:48:04
>>563
reallocの最初の引数にはNULLを渡せるからこう書ける。
char *temp = NULL;
int count = 1;
while (((temp = realloc(temp, count))[count] = getchar()) != '\n')
    count++;
temp[count] = '\0';
sizeof (char)は常に1なので省略させてもらった。

ちなみにこれがC++だとたったこれだけで済む。
std::string temp;
std::getline(std::cin, temp);
565デフォルトの名無しさん:2005/05/30(月) 22:51:39
>>563
無駄なコードを書かなければ面倒じゃない

sizeof(char) は初心者しか書かない(って書くと厨が騒ぐが…)
毎回 realloc なんてするからメモリが断片化しやすい
vector とかは一般的にサイズを 2倍していくぞ

第一最初の malloc で 1バイトしか確保しないのがバカバカしい
stdin だったら 32-128 バイトくらい確保していれば滅多なのことでは
realloc する事はないだろう
566デフォルトの名無しさん:2005/05/31(火) 18:51:06
#define MOJIRETU 32
int count;
int count2;

temp = (char*)malloc( MOJIRETU );
count = 0;
count2 = 1;
while( ( temp[count] = ( char )fgetc( stdin )) != '\n' ){
if( count % MOJIRETU == 0 && count != 0){
count2++;
temp = (char*)realloc( temp, MOJIRETU * count2 );
}
count++ ;
}
temp[count] = '\0' ;

temp = (char*)realloc( temp, count);
こんな感じでどうでしょう?
567デフォルトの名無しさん:2005/05/31(火) 19:17:54
>>566
fgets使えよ
#define NUM 32
char *pInput = NULL;
int Count = 0;
while ((pInput = realloc(pInput, (Count + 1) * Num)) != NULL)
{
    char *p;
    if (!fgets(pInput + Count * NUM, NUM, stdin))
        break;
    p = strchr(pInput + Count * NUM, '\n');
    if (p)
    {
        *p = '\0';
        break;
    }
    Count++;
}
568デフォルトの名無しさん:2005/05/31(火) 20:29:53
「はじめてのC」の内容を9割がた理解できるようになりました。
ぼちぼち次のことをはじめようと思っているのですが、どういう事をすればいいでしょうか。
オススメの書籍などもあれば教えて下さい。

CUIでなら、はじめてのCレベルではぼちぼち自分で考えたものを作っています。
http://www.bohyoh.com/CandCPP/C/Library/hindex.html
↑にあるような標準関数はほとんどわからないんで、説明を読んでは関数の動作確認したりするのがいいのでしょうか?
569デフォルトの名無しさん:2005/05/31(火) 22:49:04
>>568
俺はほぼ全関数のサンプル書いて実験した
それはそれは勉強になりました
570デフォルトの名無しさん:2005/05/31(火) 22:51:40
>>567 realloc 失敗したときにリークしないか?
571デフォルトの名無しさん:2005/06/05(日) 10:02:16
http://www.nhk.or.tv/kow/program/index.php

ここでも見てテトリスを作ってみたら?
572デフォルトの名無しさん:2005/06/05(日) 12:27:15
#define NUM 32
char *pInput = NULL;
char *pBuf = NULL;
int Count = 0;
while ((pBuf = realloc(pInput, (Count + 1) * Num)) != NULL)
{
    char *p;
    pInput = pBuf;
    if (!fgets(pInput + Count * NUM, NUM, stdin))
        break;
    p = strchr(pInput + Count * NUM, '\n');
    if (p)
    {
        *p = '\0';
        break;
    }
    Count++;
}

/* pBufがNULLの時はreallocに失敗 */
573デフォルトの名無しさん:2005/06/05(日) 15:42:14
俺の方法がわるいのかもしれないのだが、
reallocがmallocの代わりに使えないのだが。

char *hoge;

hoge = realloc( hoge, 10);
hoge[0] = 'a';
hoge[1] = 'b';
hoge[2] = '\0';

こうすると実行できない。なぜっすか?
574デフォルトの名無しさん:2005/06/05(日) 15:47:17
char *hoge=NULL;
575デフォルトの名無しさん:2005/06/05(日) 18:31:42
>>573
hogeが初期化されずに無効な領域を指しているから。
576デフォルトの名無しさん:2005/06/05(日) 20:37:59
>>574>>575
ありがとうございました。
hogeが初期化されずに無効な領域を指しているというのがよくわかったようなわからないような。

確かに
char *hoge = NULL;
してからreallocするとエラー出ませんでした。
これは「 charへのポインタhogeはどこも指していませんよ」
っていう解釈でいいのでしょうか。
それに対してreallocして領域確保できるっていうのも不思議なんですが。

ちなみに、

char *hoge;
hoge = malloc(1);
hoge = realloc( hoge, 10);
ならできてしまうというのもよくわからないです。
うまい解説下さい。よろしくおねがいします。
577デフォルトの名無しさん:2005/06/05(日) 20:48:52
>>576
realloc()は規格で最初の引数にNULLを渡しても問題なく動かなければならないと決められているから。
その最初の引数がNULLではない場合はmalloc()/calloc()/realloc()で呼び出したポインタを渡さなければならないと決められているから。
578デフォルトの名無しさん:2005/06/05(日) 21:48:29
void *realloc(void *ptr, size_t size);

ptr が NULL の場合には malloc(size) と等価である。
size が 0 の場合には free(ptr) と等価である。
ptr が NULL 以外の場合、 ptr は以前に呼び出された malloc(), calloc(), realloc() のいずれかが返した値でなければならない。
ptr が指す領域が移動されていた場合は free(ptr) が実行される。

realloc() が失敗した場合には、元のブロックは変更されない。
つまり、解放されたり移動されたりはしない。
579デフォルトの名無しさん:2005/06/05(日) 22:44:51
C言語厨って、なんであんなにポインタが大好きなの?
俺としては、使わないですむなら極力ポインタを使わないでほしい・・・
580デフォルトの名無しさん:2005/06/06(月) 00:45:17
Cでポインタ使わないなんて、ちと想像できない。
最近の言語はオブジェクトを新規に生成する場合にはポインタという概念ではないが、
理論的に考えてすっきりするのはアドレスであり、それを扱うポインタが一番しっくり来
るのだが。もう古いのかな?
581デフォルトの名無しさん:2005/06/06(月) 23:24:29
あー、Javaの参照型ってきっとポインタっぽいんだろうなーと想像。
Javaは明示的なポインタはないし、System.gc()で簡単に片付けられるから便利だよなーって思うけど、もっさりしてるのがやだな。
582デフォルトの名無しさん:2005/06/06(月) 23:26:06
NullPointerExceptionもJava発祥。
583デフォルトの名無しさん:2005/06/07(火) 18:15:31
>>583
ガッ
584デフォルトの名無しさん:2005/06/23(木) 01:27:50
include<stdio.h>
int main(void)
{

char buf[80];

printf("string=C language");
gets(buf);
puts(buf);
puts(buf);
printf("%s\n",buf);
printf("%s\n",buf);


return 0;
}


上記のやり方でC languageを10行以上表示できる方法を
知りたいのですが教えていただけないでしょうか?
585デフォルトの名無しさん:2005/06/23(木) 09:24:05
少し変わったようだが、相変わらずそのままコンパイルできないコード乙。
つーか、puts()を並べるかループにしろと言う指摘は黙殺か?
586デフォルトの名無しさん:2005/06/23(木) 10:26:42
>>585
ネタにマジレスか(ry

>>584
#include <stdio.h>
int main(void) {
    int i;
    for (i = 0; i < 10; ++i) puts("C language");
    return 0;
}
587デフォルトの名無しさん:2005/06/24(金) 22:56:22
>>584

マジレス。
最初にchar型配列bufを宣言して、その配列の中に"C Language"を入れた後に
10行以上表示したかった?

gets(buf)があるという事は、"C Language"を手入力したかった?

という事で、

#include<stdio.h>
int main( void ){
  char buf[80];
  int i;

  prinft("C languageと入力して下さい : ");
  gets( buf );
  for( i = 0; i < 10; i++ ){
    printf( "%s\n", buf );
  }

  return 0;
}

こんなとこじゃないかなあ。
588デフォルトの名無しさん:2005/07/07(木) 15:56:44
c言語で1000以下の素数を二つ足し合わせて1000になるプログラムってどうすればいいんですか?わかる方いましたらお願いします。できるだけ初心者でも理解できるものでお願いします。
589デフォルトの名無しさん:2005/07/07(木) 17:53:10
>>588
ポインタスレでも同じ質問してたろ。
マルチするやつには教えるかよ。
590デフォルトの名無しさん:2005/07/07(木) 18:53:16
591デフォルトの名無しさん:2005/07/07(木) 19:07:23
はい、すいません。書き込みしたりするの初めてだったのでしりませんでした、本当にすいません。
590 今回掲示板をみたのも初めてだったので一応はじめに検索したのですがあれだと授業でやってないことが多かったので聞かせてもらいました。わざわざリンクはって頂いたのにすいませんでした。
592デフォルトの名無しさん:2005/07/07(木) 20:17:07
>>588
俺も初心者だが、考えてみる。

とりあえず必要そうなものは、ある数が素数かどうか判定する関数。
int sosu_hantei( int num );
素数だったら 1、そうでなければ 0 を返す。

int sosu_hantei( int num ){
  int cnt;
  int hantei;

  /* とりあえず2で割り切れるようだと0を返す */
  if( num % 2 == 0 ){
    return 0;
  }
  /* 引数が1だったら1を返す。 */
  if( num == 1){
    return 1;
  }
  /* 奇数だけを調べる。引数の半分までを調べる。 */
  for( cnt = 3; cnt < num/2 ; cnt += 2 ){
    if( num % cnt == 0 ){
      hantei = 0;
      break;
    }else{
      hantei = 1;
    }
  }

  return hantei;
}
まだ試してみてないっす。
593592:2005/07/07(木) 20:29:00
int main( void ){
  int x;
  int flag_x;
  int flag_y;
  
  for( x = 1; x <= 500; x++){
    flag_x = sosu_hantei( x );
    flag_y = sosu_hantei( 1000 - x );
    if( flag_x == 1 && flag_y == 1){
      printf("( x , y ) = ( %3d , %3d )\n", x, 1000 - x );
    }
  }

  return 0;
}

これは表示させて終わってるけど、後でその素数の組み合わせを利用したいんだったら、要素数1000とかの1次元配列か、要素数100ぐらいの2次元配列に突っ込んでいってもいいと思われ。
594デフォルトの名無しさん:2005/07/07(木) 20:56:23
ありがとうございます。ってか今度から本当に気をつけます。
595デフォルトの名無しさん:2005/07/09(土) 15:46:38
C言語の第一歩はアセンブリにすべきだな。それがだめならJAVAとかに行く。
596デフォルトの名無しさん:2005/07/16(土) 19:54:12
  /* とりあえず2で割り切れるようだと0を返す */
  if( num % 2 == 0 ){
    return 0;
  }


"2"の立場はどうする?
597デフォルトの名無しさん:2005/07/16(土) 19:55:40
C言語ってなに?
598デフォルトの名無しさん:2005/07/16(土) 20:59:05
>>596
何か問題でも?
599デフォルトの名無しさん:2005/07/16(土) 21:06:08
2も素数だし。てか何で
>for( cnt = 3; cnt < num/2 ; cnt += 2 ){
そんなに大量に調べるんだ。
600デフォルトの名無しさん:2005/07/16(土) 21:15:49
あ〜、あと1は素数“じゃない”から。
601デフォルトの名無しさん:2005/07/17(日) 01:20:31
素数のヤシはとりあえず「エラトステネスのふるい」でググってこい
602デフォルトの名無しさん:2005/07/17(日) 10:28:40
やだ
603デフォルトの名無しさん:2005/07/17(日) 10:38:27
>>595
おれもはるか昔の話だけど、C始めたときはポケコンで
ハンドアセンブルでプログラム動かしたことがあったら、
何も困らんかったよ。
604592:2005/07/17(日) 11:23:27
>>601
調べてきました。
なるほど。
昔の人の優れたアルゴリズムがあったわけですね。
あと1は素数じゃないとか2は素数だとかもそういえばそうでした。
ありがとうございました。
605デフォルトの名無しさん:2005/07/17(日) 16:18:03
高速はアルゴリズムは決定性アルゴリズムでは今のところ皆無。
606デフォルトの名無しさん:2005/10/11(火) 15:06:11
とりあえずC言語を一通りできるようになったのですが、このあとどんな言語をやればいいですか?
それともこのままC言語を極めたほうがいいですか?
607デフォルトの名無しさん:2005/10/11(火) 15:29:45
>>606
ふーん。で、いままでCでどんなプログラム書いたの?
608606:2005/10/12(水) 02:17:26
書いたプログラムはそんなたいした物じゃなくて入門書にのってたやつとそれを改変してみたやつとかです。
ただ、一通り本を読んだら今度は何を勉強すればいいのかよく分からなくなったので質問させてもらいました。
609デフォルトの名無しさん:2005/10/12(水) 18:29:11
>>608
入門書レベルだと、ソースの規模も小さいだろうから、もうすこし大きな物をCで書いてみることを
お勧めする。題材は色々あるだろうが、身近に使っているものを再現するようなものが、最初の
ステップとしてはいいかもしれない。
仕事では、既にある物を作り直すのはあまり良くないことだが、学習中はどんどんやったほうがいい。
610606:2005/10/12(水) 18:55:23
レスありがとうございます。
さっそくいろいろ書いてみます。
611デフォルトの名無しさん:2005/10/14(金) 00:14:45
>>610
頑張れよ。
612デフォルトの名無しさん:2005/11/16(水) 03:16:10
>>610
モジュール分割と、ヘッダの使用法を身につけな。
それが実用上の最低限のやり方だよ。あまり入門書には書いてないけれどね。
613デフォルトの名無しさん:2005/11/25(金) 13:46:57
Windowsのフォームを使わない常駐アプリを作りたいのですが、参考になるサイトなどあれば
教えてください。
614デフォルトの名無しさん:2005/11/25(金) 23:06:08
つ[google]
615デフォルトの名無しさん:2005/11/26(土) 00:01:37
>>613
Windows系のプログラミングスレで聞いたほうがいいよ。
616デフォルトの名無しさん:2005/12/18(日) 03:24:19
あげ
617クレヨ( ゚д゚):2006/02/14(火) 15:07:11
for文のことでわからない事があるので教えて下さい。

僕の読んだ本によると、
例えば↓
int i;
for(i=0;i<5;i++){
printf("%d",i);}
はまずi=0を実行しi<5を判定し真なら条件式に当てはまっている為
ブロックの中身printf("%d",i);を実行すると書いてありました。

でもこのジャンケンゲーム↓
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

main(){

int computer,x,player = 0,p_win = 0,p_lose = 0,draw = 0,c_win = 0;

printf("【ジャンケンゲーム!!】\n");
srand(time(NULL));

for(x = 0; x<5; x++){
printf("ジャンケン…(プレイヤーは「1:ぐー、2:チョキ、3:パー」を入力)>");
scanf("%d",&player);
while(getchar() != '\n');
if(player == 1){printf("プレイヤーはグー!!\n");}
else if(player == 2){printf("プレイヤーはチョキ!!\n");}
else if(player == 3){printf("プレイヤーはパー!!\n");}
else{printf("※プレイヤーは不正な手を入力しました\n");}
618クレヨ( ゚д゚):2006/02/14(火) 15:08:35
computer = rand()%3+1;
printf("コンピュータは");
if(computer == 1){printf("グー!\n");}
else if(computer == 2){printf("チョキ!\n");}
else if(computer == 3){printf("パー!\n");}


if(player == 1 && computer == 2){printf("プレイヤーの勝ち!!\n");
p_win++;}
else if(player == 2 && computer == 3){printf("プレイヤーの勝ち!!\n");
p_win++;}
else if(player == 3 && computer == 1){printf("プレイヤーの勝ち!!\n");
p_win++;}
else if(player == computer){printf("あいこ!!\n");
draw++;}
else{printf("コンピュータの勝ち!!\n");
c_win++;}

}
619クレヨ( ゚д゚):2006/02/14(火) 15:09:15
printf("%d勝 %d負 %d分",p_win,c_win,draw);

if(p_win>c_win){printf("プレイヤーの勝ち☆\n");}
else if(p_win<c_win){printf("プレイヤーの負け★\n");}
else{printf("引き分け☆★\n");}



return 0;
}
は先ほどの
int i;
for(i=0;i<5;i++){
printf("%d",i);}
のように
for(x = 0; x<5; x++)以降に変数xが一度も使われていないのに
ちゃんと5回繰り返しました…。

何度考えてもわかりません。
分かる方教えて下さいませ。
620デフォルトの名無しさん:2006/02/14(火) 15:27:40
>>617>>619
釣りじゃないよね。 釣じゃないって言って。 お願い。
釣じゃないこと前提にマジレスする。
for(i=0 ; i<5 ; i++){ /* ブロックの中身 */ }
が5回ループするのは、ブロックの中身に何が書いてあるかには 「 原則として 」 関係ないんだ。
for(式1 ; 式2 ; 式3)の動作は、
初回:式1を実行する。 式2を評価して真なら、(for文の)次の文を実行して、またfor文に戻る。
2回目以降:式3を実行する。 式2を評価して(以下、初回と同じ)
いずれの場合も、式2の評価結果が偽なら、for文終了。
すなわち、for(i=0;i<5;i++) の部分に、5回ループの仕組みは全て備わってるの。
もちろん、for文に引き続く(ループさせる)文のなかで変数 i 自体を操作したら、動作は変わってきちゃうよね?
621デフォルトの名無しさん:2006/02/14(火) 19:10:31
C言語でゲームを作る方法を教えてください。
622クレヨ( ゚д゚):2006/02/14(火) 21:56:26
>>620さん!!
なるほど!!ご丁寧にありがとうございました!!

今日でc言語を勉強し始めてちょうど10日目くらいになります。

途中で投げ出さないで最後まで頑張りたいと思います。
本当にありがとうございました!!
623デフォルトの名無しさん:2006/02/18(土) 00:31:20
>>617-619
マジで釣りじゃないのか・・・

とりあえず、

int x;
for( x = 0; x < 5; x++ ){
printf( "hoge\n" );
}

ほれ、forブロックの中で x 使ってないけど
hoge
hoge
hoge
hoge
hoge
って表示されたでしょ。x は for という制御文をどうにかして
使いたいからもってきた、ってカンジ〜?ミタイナー。
624デフォルトの名無しさん:2006/02/18(土) 00:34:33
>623
投げやりだけど丁寧で萌えス
625デフォルトの名無しさん:2006/03/04(土) 07:38:58
printfは文でない
626たけし:2006/03/09(木) 15:25:28
scanfとprintfが使えるようになりました。
やっとコンピューターを知ってきました。優秀なプログラマの姿がようやく見えてきました!がんばるぞ!
627デフォルトの名無しさん:2006/03/10(金) 03:15:58
>やっとコンピューターを知ってきました。
日本語でどうぞ。
628デフォルトの名無しさん:2006/03/10(金) 08:14:43
日本語の不自由な方ですか?
629デフォルトの名無しさん:2006/03/10(金) 10:30:18
>>627 >>628
<丶`∀´>ウリを馬鹿にするものには謝罪と賠償を請求するニダ
630デフォルトの名無しさん:2006/03/12(日) 15:45:17
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。

http://pc8.2ch.net/test/read.cgi/prog/1140616676/
631デフォルトの名無しさん:2006/03/12(日) 21:13:53
>アドレスとポインタの差

なんか、深い探求をしているんだなw
632デフォルトの名無しさん:2006/03/12(日) 23:17:16
哲学的・・・
最新科学は、哲学との融合を始めたというが
C言語もその境地に達したか・・・
633デフォルトの名無しさん:2006/03/12(日) 23:59:58
別に難しいことはないだろ。

ポインタ変数はあるが、アドレス変数はない。
ポインタが保持するのはアドレスだが、アドレスが保持するのはポインタじゃない。
634デフォルトの名無しさん:2006/03/13(月) 14:52:06
ではアドレスが保持するのは何だろう?
635デフォルトの名無しさん:2006/03/13(月) 15:22:30
アドレスは保持される情報(データ)であって、何かを保持するものではない。
636デフォルトの名無しさん:2006/03/13(月) 22:23:41
アドレス(空間)には電位が保持される、じゃだめかな。
637デフォルトの名無しさん:2006/03/14(火) 21:01:46
で、結局のところ、”差”はどうなるってーのよ
ポインタ「○○○が俺と貴様の差なのだ」
アドレス「グゥ」
みたいに説明しとくれよ、おまいさん
638デフォルトの名無しさん:2006/03/14(火) 22:33:51
何かを指し示す(ポイントする)ものがポインタ。
メモリ上の場所を表す言わば住所のようなものがアドレス。

Cの場合、大抵のアーキテクチャではポインタを実装するのに、アドレス値をそのまま利用している。
アドレスは一意に定まるからポインタとして使うのに都合が良いからだ。
逆に言えばアドレスでなくとも何か一意に定まるものがあれば、それでポインタは実装できる。

言わばポインタはメモリアドレスの「場所を表す」という機能を抽象化したものだと言えるかもしれない。
少なくともCのポインタは生のアドレスと比べると、
アドレス値という具体的な数値は消え(必要なら使えるが)、型というメタ情報が付いている。
639デフォルトの名無しさん:2006/03/15(水) 00:40:18
>>638

俺はポインタを、テキストエディタのカーソルみたいなもんかという
イメージやったんだが、おまいの説明で、それで合ってるなと思った。
サンクス。
640デフォルトの名無しさん:2006/03/15(水) 01:15:49
Excelのセルに例えばB1セルに"=A1"と書けばそれがポインタだ。
と言った香具師がいた。
更にC1セルに"=B1"と書けばポインタのポインタだ。
と言うので、
そしてA1セルに"=B1"と書けば循環参照だな。
と言ってやった。
641デフォルトの名無しさん :2006/03/15(水) 04:17:36
ポインタは色々と例えれそうだな
例えば指し棒。
int型なら先っぽがint型の指し棒。
指し棒だから、最初は何も指していない。
int a,*b;
b = &a;
int型の指し棒をつくり,aのおいてある。それにaの置いてあるアドレスを指す。
    アドレス空間    |
               |
               |
指し棒bーーーーー【 &a |a
               |
642デフォルトの名無しさん:2006/03/15(水) 07:47:49
文字列で表現された2つの日付の差を求めるのはどうやりますか?
643デフォルトの名無しさん:2006/03/15(水) 07:56:57
まずは文字列を日付型(time_tとか)に変換するのが先だなー。
"明治六年元日"と"明治三年閏十月"の引き算みたいな面倒な話はシラネ
644デフォルトの名無しさん:2006/03/15(水) 12:31:12
俺もうすぐ工房のプログラマー志望の人間なのだが、C言語の一番簡単で
入門用のプログラム「Hello World」を書いてコンパイルしてできた.exe
のファイルを開いても、コマンドプロンプトが一瞬でてすぐに消えるという
状態になっています。よく目を凝らしてそのコマンドプロンプトをみると
「Hello World」と書かれている気がしないでもありません。
このプログラムは成功なのでしょうか?

使用コンパイラはBorland社のBorland C++ Compilerです
645デフォルトの名無しさん:2006/03/15(水) 12:34:16
getch();でも最後に置いとけ
646644:2006/03/15(水) 12:41:56
とりあえずソースファイルをうp

/* hello.c */

#include <stdio.h>

int main()
{

printf("Hello World!\n");
return 0;
}
647デフォルトの名無しさん:2006/03/15(水) 12:49:33
>>644
成功してるよ。
ウィンドウズのコンソールはプログラムの実行終了と同時に閉じる仕様に
なっている。

それなら、どうすればウィンドウが残るかを考えて見るのが次のステップ。
ヒント >>645
648644:2006/03/15(水) 13:28:20
>>647
わざわざありがとうございます。いろいろ試行錯誤して見ます
649デフォルトの名無しさん:2006/03/15(水) 13:32:57
printf("Hello World!\n");
getch(); /* リターン押されるまで待機 */
return 0;
650644:2006/03/15(水) 13:37:56
>>649
いやぁ、答えそのものまで…未熟な俺でスミマセン
651デフォルトの名無しさん:2006/03/15(水) 16:00:24
>>649
getch()なんて関数あったっけ?
getchar()ならわかるんだけど。もし>>649で動かなかったら、
getchをgetcharに変えてごらん。自分でなんとかしようとする、
その姿勢はよし。頑張れ〜
652デフォルトの名無しさん:2006/03/15(水) 17:18:07
確かconio.hをインクルードしないとgetchは無理なような気がした
653644:2006/03/15(水) 18:13:15
なんとか例のプログラムを動作させることができました。
少しずつ難しいプログラムにもチャレンジしていきたいと思います。
ありがとうございました
654デフォルトの名無しさん:2006/03/16(木) 20:08:09
話題がちょっと高度になりすぎたのでこちらに移動してください。
ぱっと見て「ヘタだなぁ」と思うコード
http://pc8.2ch.net/test/read.cgi/tech/1141867015/
655デフォルトの名無しさん:2006/03/16(木) 21:21:26

>アドレスとポインタの差
差は何だったんだ?
違いだとか定義だとか機能なんて、判らないほうがどうかしてると思うんだが、差ってなによ
656デフォルトの名無しさん:2006/03/17(金) 03:03:41
まったくのゼロからC言語を勉強している者です。現在、10日でおぼえるという本を半分程度までやり終えたところです。
これが終わったらWindowsゲームプログラミングに移ろうかと考えていたのですが、
その前に「独習C」の方もやったほうがよろしいのでしょうか?教えてください。
657デフォルトの名無しさん:2006/03/17(金) 04:48:44
>>656
やったほうがいいです
そして次の本へいくまえにアルゴリズムとデータ構造について学んでください
658デフォルトの名無しさん:2006/03/17(金) 05:10:41
ソート(他のアルゴリズムでも)の解説を聞いて
「何でこんなことするんだ」と言ってるレベルなら
10日で…を繰り返しやった方が
慣れるまで時間がかかる
659デフォルトの名無しさん:2006/03/17(金) 05:13:54
>>657
わかりました。できれば具体的な書籍名など挙げていただけると助かります。>アルゴリズムとデータ構造
660デフォルトの名無しさん:2006/03/17(金) 05:19:44
661デフォルトの名無しさん:2006/03/17(金) 21:31:33
>>1>>644>>656に練習問題。これをデバッグしなさい
#include <stdio.h>
#include <float.h>
int main()
{
double pai = 3.14159265358979;
int mon = 3;
float flt = 1.2f;
printf("%5.2hf\n", flt);
printf("%-5.2f\n", flt);
printf("%05.2f\n", flt);
printf("%+08.2f\n", flt);
printf("%-08.2f\n", flt);
printf("%d\n", mon = 3);
printf("%e\n", pai);
printf("%08.2f\n", pai);
printf("%05d\n", mon);
printf("円周率は%fです\n", pai);
printf("円周率は%lfです\n", pai);
printf("もう少し詳しい値は%10.8lfです\n", pai);
printf("もう少し詳しい値は%15.13lfです\n",pai);
printf("もう少し詳しい値は20.18fです\n",pai);
printf("円周率は%010.2f\n", pai);
printf("円周率は%-10.2f\n", pai);
printf("円周率は%10.2f\n", pai);
return 0;
}
662661:2006/03/17(金) 21:32:46
デバッグに成功するとこう表示されるはずです。
1.20
1.20
01.20
+0001.20
1.20
3
3.141593e+000
00003.14
0003
円周率は3.141593です
円周率は3.141593です
もう少し詳しい値は3.14159265です
もう少し詳しい値は3.1415926535898です
もう少し詳しい値は3.141592653589790000です
円周率は0000003.14
円周率は3.14
円周率は   3.14

とあるC言語入門用の本から抜き出したサンプルプログラムをちょこっといじったもの
663http://www.vector.co.jp/soft/win95/util/se072729.html:2006/03/18(土) 19:05:52
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
664デフォルトの名無しさん:2006/03/18(土) 19:08:51
>>663
死ねカス
665デフォルトの名無しさん:2006/03/18(土) 23:11:59
>>662
こうかな?
#include <stdio.h>
#include <float.h>
int main()
{
double pai = 3.14159265358979;
int mon = 3;
float flt = 1.2f;
printf("%4.2hf\n", flt);
printf("%-5.2f\n", flt);
printf("%05.2f\n", flt);
printf("%+08.2f\n", flt);
printf("%-08.2f\n", flt);
printf("%d\n", mon = 3);
printf("%e\n", pai);
printf("%08.2f\n", pai);
printf("%04d\n", mon);
printf("円周率は%fです\n", pai);
printf("円周率は%lfです\n", pai);
printf("もう少し詳しい値は%10.8lfです\n", pai);
printf("もう少し詳しい値は%15.13lfです\n",pai);
printf("もう少し詳しい値は%20.18fです\n",pai);
printf("円周率は%010.2f\n", pai);
printf("円周率は%-10.2f\n", pai);
printf("円周率は%10.2f\n", pai);
return 0;
}
666デフォルトの名無しさん:2006/03/19(日) 20:51:01
#include<stdio.h>

main()
{
char *i;
scanf("%s",i);
printf(i);
}

これ文字列の制限あるのはなぜなんですか?制限なしに出来ますか?
667デフォルトの名無しさん:2006/03/19(日) 21:40:35
>>666
そもそも i は正しいメモリ領域を指していないので、動くこと自体が偶然。
i を配列にすれば正しいプログラムになり、そして配列の大きさまで平気になる。

本当にどこまでも文字列を受け付けるようにしたいなら、動的メモリ確保を使う。
だが、結構面倒だし、普通はそんなことをせず、適当に制限を設けてしまうのが普通。
668デフォルトの名無しさん :2006/03/19(日) 23:28:20
>>666
これ、実行できても
エラーで止まるだろ
表示されたらすげーコンパイラだよ
669デフォルトの名無しさん:2006/03/20(月) 00:46:01
普通にBCCですが、表示出来ました。

char *i = "2ch";

こういうのを例題とかで見るんですけど、配列との違いがいまいち理解できない・・・
670デフォルトの名無しさん :2006/03/20(月) 01:40:48
>>669
それはだ
"2ch"っていうのが、文字列リテラルというもので
char *i = "2ch";
というのはchar型のポインタiに"2ch"という文字列リテラルの先頭アドレス
をわたしてるということになるのです。
じゃぁ、"2ch"ってアドレスのどこにあるの?って言われると
アドレスのどっかとしか言えない。
しかし、printf("%p",i);ってすれば、言わずもがな"2ch"の先頭アドレスが表示され
例えば、printf(i);ってしたら2chって表示される。
もっと言えば、char array[] = "fuckin world!!";って宣言して
printf(array);ってすれば、fuckin world!!って表示される。
それと、宣言時
char *i = "2ch";っていうのは*iに"2ch"を代入してるように見えるけど
char* i="2ch"ってすればわかりやすいと思うが、char型のポインタとしてiを
宣言し、そのiに"2ch"というアドレスを渡してると思えば良いと思うよ
実際char* i = "2ch";ってしても問題無いし、実際の所こっちの方がわかりが良い
ただ、char* i,d,c;ってすると最初のiだけがchar型のポインタとして宣言したことになり
以降のd,cは普通のchar型の変数としてみなされる。
だから、char *i;っていう風に書くのであーる
671デフォルトの名無しさん:2006/03/20(月) 03:14:23
ありがとうございます。なんとなくわかりました。
672デフォルトの名無しさん:2006/03/20(月) 08:20:18
>>670
ところがどっこいC++ではchar* iと書きたくなる。
少なくとも俺はそうだった。
673デフォルトの名無しさん:2006/03/21(火) 10:51:36
そうだったのであ〜る
674デフォルトの名無しさん:2006/05/17(水) 08:46:40
問題文:「異なるn個の物からr個とる組合せ」をすべて表示し 
さらに、その順列(並び替え?)を組み合わせごとにすべて表示するプログラムを作れ 

4月からCを学び始めたもので全然プログラムが組めません。 
関数(comb)?再帰? 参考になりそうなものも見つかったのですが理解できませんでした。 
675デフォルトの名無しさん:2006/05/20(土) 23:25:21
>>674
昔、n個の中からかぶらないランダムなm個の順列とかいう関数を組んでみた
事あるけど、それに似てるかな。

配列を可変長にする必要があるのでポインタを扱わなければなりません。
関数化はもちろん必要ですが、再帰は効率を求めるならともかく、使わないで
おこうと思えば使わずに済むと思います。

ただの数学なので、頭の中でどう計算して並べるかをプログラムするだけです。
676デフォルトの名無しさん:2006/05/24(水) 22:04:03
CUIのプログラムで
○(円)を指定した縦行横行内を動かして壁(指定行外)などに当たって跳ね返り
運動し続けるプログラムを作りたいのですが
なにかヒントというかきっかけになるものを教えていただけ無いでしょうか
サンプルプログラムなどがあれば教えてください
677デフォルトの名無しさん:2006/05/24(水) 23:14:19
CUIでアニメーションするときはカーソルの移動方法をどうするかを決めないとアドバイスしようがないな
678デフォルトの名無しさん:2006/05/25(木) 01:45:16
質問なんですがC言語も
javaと同じ用にPATHの設定を
するんですか??
初心者ですいません
679676:2006/05/25(木) 14:11:43
>>677
カーソルの移動方法ですねちょっと調べてきます
680デフォルトの名無しさん:2006/05/25(木) 18:08:00
>>678
そういうものもあるし、そうでないものもある。
選んだコンパイラ次第。
681デフォルトの名無しさん:2006/05/25(木) 18:08:13
>>678
コンパイラの?
682デフォルトの名無しさん:2006/05/25(木) 18:11:23
あ、かぶった。
683デフォルトの名無しさん:2006/05/25(木) 18:27:16
>同じ用に

同じ様に
684デフォルトの名無しさん:2006/05/27(土) 18:16:26
C言語おぼえてなにになるんですか?
685デフォルトの名無しさん:2006/05/27(土) 19:00:53
おぼえてみればわかるよ
686デフォルトの名無しさん:2006/05/28(日) 11:33:44
かけない
687デフォルトの名無しさん:2006/06/03(土) 01:37:54
f (x) = cos (x) - x2 = 0 の根のうち、0 < x < 1 を満たすものを2分法で求める  
初期値 a, b が入力でき、 6桁推定された解と関数 f (x) を呼びだした回数を出力する方法を教えてください。  
688デフォルトの名無しさん:2006/06/03(土) 02:17:46
C/C++の宿題を片付けます 65代目
http://pc8.2ch.net/test/read.cgi/tech/1147908265/
689デフォルトの名無しさん:2006/06/08(木) 20:41:13
>>687
そのまんま。
690デフォルトの名無しさん:2006/07/26(水) 11:58:26
インクルードファイル 'stdio.h' をオープンできない

っていうエラーが出るんですけど、どうしたらいいんでしょうか・・・
超初心者ですみません><
691デフォルトの名無しさん:2006/07/26(水) 12:46:15
>>690
Borand C++なら、Readme.txtに書いてある。
692デフォルトの名無しさん:2006/07/30(日) 01:13:26
>>691
>>690はマルチの悪寒

690がちゃんと設定を済ませてるなら

#include "stdio.h"

って書いてる可能性もあるかとw
693デフォルトの名無しさん:2006/07/30(日) 01:50:13
>>692
そう書いてあってもコンパイル通るよ。

"" の場合は単にソースのフォルダが優先されるだけで、見つからなかったら
<> と同じ動作をするよ。
694デフォルトの名無しさん:2006/07/30(日) 03:38:25
#include 'stdio.h'
695デフォルトの名無しさん:2006/07/30(日) 04:33:43
#include <stdudio.h>
696デフォルトの名無しさん:2006/07/30(日) 11:16:30
本当にファイルが無いのかも知れない

環境くらい書けば教えてもらえるかも知れない

とりあえず

set

これを実行して結果をここに晒せ
697デフォルトの名無しさん:2006/07/31(月) 01:29:03
問題。

X^2+3X+2=0のような方程式を解く関数を作りたい。
引数には、X^2の係数、Xの係数、数、の3つを入れる。
この関数の戻り値はどのようなものにすればよいか。
また、この関数を作れ。
698デフォルトの名無しさん:2006/07/31(月) 02:07:17
>>697
デバッグと判別式は自分でやってくれ。
#include<stdio.h>
#include<math.h>
struct niji func(double, double, double);
struct niji {
double plus;
double minus;
};

struct niji func(double a, double b, double c) {
struct niji ret;
ret.plus = (-b + sqrt(b * b -4 * a * c)) / 2 * a;
ret.minus = (-b - sqrt(b * b - 4 * a * c)) / 2 * a;

return ret;
}
int main(){
double a, b, c;
struct niji ans;

scanf("%lf", &a);
scanf("%lf", &b);
scanf("%lf", &c);
ans = func(a, b, c);

printf("%lf & %lf\n", ans.plus, ans.minus);
}
699デフォルトの名無しさん:2006/07/31(月) 05:06:25
複素数でも答え出るといいな
700デフォルトの名無しさん:2006/09/29(金) 17:23:29
たまにはage
701デフォルトの名無しさん:2006/10/05(木) 01:10:03
/*円の面積と円周の計算*/
#include <stdio.h>
#define PI 3.14159265

main()
{
float r;
float menseki,enshuu;

printf("え、円の半径を入力しなさいよっ!\n");
scanf("%f",&r);
menseki=PI*r*r;
enshuu=2*PI*r;
printf("半径は %f でいいのね!?\n",r);
printf("それだと円の面積と円周の長さは\n");
printf("%f と %f よっ!\n",menseki,enshuu);
printf("べ、別にアンタのために計算してあげたんじゃないんだからっ!\n");
printf("次からはこれくらい自分でやらなきゃ駄目なんだからねっ!\n");
}
702デフォルトの名無しさん:2006/10/14(土) 04:17:35
問題

>>697のような関数を、任意のn次で解ける関数を作れ
703デフォルトの名無しさん:2006/11/01(水) 17:03:59
あげ
704デフォルトの名無しさん:2006/11/12(日) 10:56:24
本にC言語には関数だけで他の言語のような命令は存在しないと書いてあったのですが、関数と命令の違いって何なんですか?
どうしても同じに思えるんです。
705デフォルトの名無しさん:2006/11/12(日) 11:14:38
>>704
その本、だめかもね
706デフォルトの名無しさん:2006/11/12(日) 11:23:08
そうですか。新しい本買って出直します。
707名無しさん:2006/11/12(日) 12:20:47
ポインターとダブルポインターがわからないぞ
708デフォルトの名無しさん:2006/11/12(日) 12:32:39
>>707
古いマシンじゃなければ大ジョブだよ
709デフォルトの名無しさん:2006/11/19(日) 14:11:30
710デフォルトの名無しさん:2006/11/22(水) 23:04:43
オレの母は昔から体が弱くて、それが理由かは知らないが、
母の作る弁当はお世辞にも華やかとは言えない質素で見映えの悪い物ばかりだった。
友達に見られるのが恥ずかしくて、毎日食堂へ行き、お弁当はゴミ箱へ捨てていた。
ある朝母が嬉しそうに「今日は〇〇の大好きな海老入れといたよ」とオレに言ってきた。
オレは生返事でそのまま高校へ行き、こっそり中身を確認した。
すると確に海老が入っていたが殻剥きもめちゃくちゃだし
彩りも悪いし、とても食べられなかった。
家に帰ると母はオレに「今日の弁当美味しかった?」としつこく尋ねてきた。
オレはその時イライラしていたし、いつもの母の弁当に対する鬱憤も溜っていたので
「うるさいな!あんな汚い弁当捨てたよ!もう作らなくていいから」とついきつく言ってしまった。
母は悲しそうに「気付かなくてごめんね…」と言いそれから弁当を作らなくなった。
それから半年後、母は死んだ。オレの知らない病気だった。母の遺品を整理していたら、日記が出てきた。
中を見ると弁当のことばかり書いていた。
「手の震えが止まらず上手く卵が焼けない」 日記はあの日で終わっていた。
711デフォルトの名無しさん:2006/11/23(木) 00:36:28
>>710
母さん、恋しいよう
712デフォルトの名無しさん:2006/11/28(火) 13:35:30
>>704
その本なんていう本?

一応C言語にも if とか for とかの分岐のための命令(?)はあるよ。
命令とは言わないのかなこれ(ステートメント? キーワード?)。
それに変数宣言や関数宣言とかの宣言は関数じゃない。
typedef も関数じゃない。
713デフォルトの名無しさん:2006/11/28(火) 16:55:34
ifとかforは文の一種。
714デフォルトの名無しさん:2006/12/01(金) 18:05:36
Haskellかなにかと勘違いしてるのかな。
715デフォルトの名無しさん:2006/12/06(水) 20:13:46
純粋なCでみなさんにおたずねしたいのですが。

Cでは四捨五入はどのようにやられているのでしょうか?

0.5をたしてINTでキャストとかじゃ、対象のデータが
浮動少数の場合に誤差がでます。
716デフォルトの名無しさん:2006/12/06(水) 23:46:46
>>715
floor (num * 10 + 0.5) / 10;  /* 小数点以下1位に丸める */
floor (num * 100 + 0.5) / 100; /* 同2位に丸める */

みたいなことやってる
717デフォルトの名無しさん:2006/12/07(木) 09:09:43
>>715
四捨五入なんだし、誤差の範囲ないで問題ない。
気になるなら有効数字を一つ増やしてくれ
718715:2006/12/07(木) 09:25:44
/* こうですか(>_<) わかりません!            */

#include <stdio.h>

int round(double value)
{
 int sign = value > 0 ? 1 : -1;

 value /= sign;

 if (value - (int)value < 0.5) return (int)value * sign;
 if (value - (int)value > 0.5) return ((int)value + 1) * sign;
 if ((int)value % 2 == 0) return (int)value * sign;
 return ((int)value + 1) * sign;
}

double half_adjust(double value, double digit)
{
 return round(value / digit / 10.0) * digit * 10.0;
}
719デフォルトの名無しさん:2006/12/24(日) 04:27:01
保守しとくか。
720デフォルトの名無しさん:2007/02/01(木) 00:21:22
hosyu
721デフォルトの名無しさん:2007/02/24(土) 13:08:55
保守
722デフォルトの名無しさん:2007/03/05(月) 14:50:46
今C言語を使って住所録のようなものを作っているのですが
あるところで手詰まってしまいました。

まず、自分が作ろうとしている住所録の仕様は
登録、編集、削除、参照を行えるプログラム
登録は一人ずつファイル出力を行う。
  
  名前
  住所
  電話番号
  メールアドレス
            これで一人分のデータ。(構造体で領域確保)

編集は編集したい行数を受け取り(複数行は考えないものとする)、新しい文字列に差し替える。
削除は次の人のデータを上書きして、消す。
参照はstrcmpで名前を検索していき、行数指定で一人分のデータを出力

このような仕様で作っていこうと思っていたのですが
削除と編集がうまくいかなく、困っています。
723722:2007/03/05(月) 14:55:33
取り合えず編集だけ
printf("編集するのは何行目?:");scanf("%s",&gyo);gyo=-1;
fp=fopen("address.txt","r");
j=0;
while(fgets(buf[j],80,fp)!=NULL){j++;}
printf("どのように編集しますか?\n");
scanf("%s",str); //編集文字str
fclose(fp);
fp=fopen("address.txt","w");
max=j;j=0;
while(1){
if(j!=gyo){ //編集する行の前まで普通に出力
fprintf(fp,"%s",buf[j]);
j++;
}
else{ //編集する行になったら挿入
fprintf(fp,"%s",str);
gyo=-1; //gyoをマイナスし指定行数の先を出力させる
}
if(j>max)break; //全部出力し終わったらbreak
}
fclose(fp); //ファイルを閉じる

という感じでやっているのですが、指定してる行数に出力されないどころか、編集文字strの内容が全部でません。
お前なんか勘違いしてんぞ?ってところがありましたらご指導ください。
724デフォルトの名無しさん:2007/03/05(月) 15:54:03
連続したダブルクオートはどう解釈されるのでしょうか?
char *s = "Hello ""World";
printf( "Minasan ""konnitiwa\n" );
はそれぞれ、
char *s = "Hello World";
printf( "Minasan konnitiwa\n" );
と同じになる様ですが、どういった規約でそうなるのでしょうか?
725デフォルトの名無しさん:2007/03/05(月) 16:01:22
>>724
うん
726デフォルトの名無しさん:2007/03/05(月) 16:22:09
連続した文字列リテラルは連結されるという規則がある。
const char *s = "hello, " "world";
⇒const char *s = "hello, world";
727724:2007/03/06(火) 13:45:49
>>726
ありがとうございます。

>>723
1行目:scanf("%s",&gyo);gyo=-1;
%s は文字列読み込み。 gyo=-1 は gyou-=1 では?
6行目:scanf("%s",str);
str は充分な文字数を確保してありますか?充分な文字数を確保しても危険で、
scanf("%60s",str); の様に文字数を制限するべき。
72885:2007/03/08(木) 10:50:42
>>727
fseek関数で解決しました。
今度は削除ですが、削除したいデータを次のデータで上書きする
といった感じでやとうと思ったのですが、それだと最後のデータを削除できません。
何かいい方法ないですか?
729デフォルトの名無しさん:2007/03/08(木) 11:10:35
>>728
上書きというより改変コピーしてるだけだぜ
一時ファイルを使って作業して、最後に元のファイルと置き換えると吉
73085:2007/03/08(木) 15:49:04
んーとまず、削除したいデータを受け取って
そのデータのレコードに来るまで、元のデータを出力していき
削除したいデータのレコードと重なったら、そいつを飛ばして
次のデータから出力していけばいいって事かな?
731デフォルトの名無しさん:2007/05/22(火) 03:10:25
まだこのスレ生きてるの?
732デフォルトの名無しさん:2007/05/22(火) 19:53:49
さあ?
733デフォルトの名無しさん:2007/06/10(日) 23:36:39
死んでるな
734デフォルトの名無しさん:2007/07/26(木) 02:52:46
5年前のスレか・・・
>>1は今何をしているのだろう。
>>2は? >>3は?>>4は?
何をしているんだろう?
735デフォルトの名無しさん:2007/08/25(土) 20:34:12
わけもなく切なくなるじゃないか。
736デフォルトの名無しさん:2007/08/25(土) 21:11:19
でもそんなの関係ねぇ!
そんなの関係ねぇ!
737デフォルトの名無しさん:2007/09/11(火) 18:06:45
C言語で何かアプリケーションを作成したい時、ソフトは何を使えばいいですか?
ちなみにOSはWindowsXPを使っています
738デフォルトの名無しさん:2007/09/11(火) 18:35:24
誤爆・・・
739デフォルトの名無しさん:2007/09/11(火) 19:06:59
ニート向けの入門プログラムを思いついた
// C言語
#include<stdio.h>
int main(){
printf("Hallo Work!");
return 0;
}
// BASIC
GOTO HALLOWORK
740デフォルトの名無しさん:2007/09/13(木) 13:20:01
halloかよ!
741デフォルトの名無しさん:2007/09/18(火) 00:57:16
環境はWindows Vista
Borland C++ コンパイラ 5.5
BCC Developer なんですが

コンパイルしても実行ファイルができません。
cppファイルがオープン出来ないと出ます。
PATHが取得できないと設定の時点で出ていたのですが
それが原因でしょうか?
初心者すぎて自害したいくらいですが誰か助けてください。
742デフォルトの名無しさん:2007/09/20(木) 04:39:23
>>741
PATHの設定をして下さい
743デフォルトの名無しさん:2007/09/21(金) 22:24:35
borland使用で"params.h"がインクルードできません。
探してみるとIncludeフォルダの中にparams.hが見つからなかったので、
ttp://mccammon.ucsd.edu/isim/html/params_8h-source.html
このソースコードをIncludeフォルダに入れてみたけれど
エラー E2141 C:\borland\bcc55\Include\Params.h 68: 宣言の構文エラー
エラー E2147 C:\borland\bcc55\Include\Params.h 70: 引数宣言は 'params' で始められない
エラー E2147 C:\borland\bcc55\Include\Params.h 72: 引数宣言は 'params' で始められない
エラー E2056 C:\borland\bcc55\Include\Params.h 75: endif 指令の位置が誤っている
みたいなエラーがでました。
わかる方いたら宜しくお願いします。
744741:2007/09/23(日) 22:03:47
どうやらVistaではBorland C++ Compilerは使えないようです。
とりあえずありがとうございました。
745デフォルトの名無しさん:2007/09/23(日) 22:11:00
>>744
13年前のソフトは動くのに数年前のコンパイラは動かないのか
746デフォルトの名無しさん:2007/09/24(月) 22:02:47
BCCとVistaでググってたら
BCCはVistaでうまく設定出来ないからC++ Express Edition使えって
文書があった。
747デフォルトの名無しさん:2007/09/26(水) 20:00:20
Visualを省略するなw
748デフォルトの名無しさん:2007/10/18(木) 01:37:46
ポインタが全然理解できません。
749デフォルトの名無しさん:2007/10/18(木) 01:39:40
そうですか
750デフォルトの名無しさん:2007/10/18(木) 02:35:14
説明するのも難しいですポインタ…
しいていうならメモリ上でデータを記憶している場所を指すものです。
ただ、普通一般のコンピュータはデータとプログラムが同じメモリ上に記録
されているから扱いを間違えると大変なことになる。
(プログラムやOSの一部を書き換えると大変なことになりかねない)
751デフォルトの名無しさん:2007/10/18(木) 18:59:10
流石に今時のまともなOSなら、本当にだめなとこを触ろうとすると拒否してくる。
752デフォルトの名無しさん:2007/10/18(木) 19:01:52
流石に今時のまともなOSなら、本当にだめなとこを触ろうとすると拒否してくる。
753デフォルトの名無しさん:2007/10/18(木) 19:06:08
流石に今時のまともなOLなら、本当にだめなとこを触ろうとすると拒否してくる。
754デフォルトの名無しさん:2007/10/18(木) 22:11:15
ポインタは単純だぞ
ただ使われ方が単純じゃないだけだが
755デフォルトの名無しさん:2007/10/19(金) 21:26:51
float a;
a=1;
でaをプリントすると
1072693248っていう数がでてくる。
これってどういうこと?
756デフォルトの名無しさん:2007/10/19(金) 21:36:53
>>755
バグをバグと認めなさいということ
757デフォルトの名無しさん:2007/10/20(土) 00:35:58
> aをプリント
どうやってる?
(そこに間違いがある)
758デフォルトの名無しさん:2007/10/20(土) 00:41:42
>>753

必ずしも板読んでいる人の開発環境がWindowsや最新のものではないかもしれない…
Dosという場合も…

自分の学校だって1年入学が早かったら286マシン&TurboCでの開発環境だった…
1年ではFORTRANで5'ディスクを学習のために「自腹」で買わされた…
759デフォルトの名無しさん:2007/10/20(土) 10:49:01
ポインタをアドレスだと説明するやつは、まだポインタを知らない。
もう1つ大事な「型」について、そっくり抜けてるから。
760デフォルトの名無しさん:2007/10/20(土) 12:23:18
>>759
ポインタの型っていうのは、
int *p;
の「int」が何なのかってことだよな?

もしそうなら、それはそのポインタを介して一度にどれくらいのデータをやり取りするかを意味してるんだよな。
だから「int *」型だと、一度にsizeof(int)バイトのデータをやり取りするっていうこと。
761デフォルトの名無しさん:2007/10/20(土) 13:01:22
ポインタはただのアドレスの入れ物で一々型キャストするのは面倒だし型の静的チェックも出来ないから明示的に初期化しようってだけのことだろ?
762デフォルトの名無しさん:2007/10/20(土) 13:21:15
久々の日本語でおk
763デフォルトの名無しさん:2007/10/20(土) 13:38:47
文章まずったかな

ポインタはただのアドレスの入れ物で(参照するのに)一々型キャストするのは面倒だし(参照先の)型の静的チェックも出来ないから
(参照先の型を予め決めておいてポインタを)明示的に初期化しようってだけのことだろ?
764デフォルトの名無しさん:2007/10/20(土) 16:31:09
「初期化」の俺定義、いりません。
765デフォルトの名無しさん:2007/10/20(土) 16:32:46
「定義」か
766デフォルトの名無しさん:2007/10/20(土) 16:35:58
「俺定義」な
767デフォルトの名無しさん:2007/10/20(土) 18:04:03
質問です。
大きな整数を扱うプログラムが書きたいため、
多倍長演算について学びたいのですが、資料がなかなか見つかりません。
どなたか良い本、サイト、ご存知ないでしょうか?
768デフォルトの名無しさん:2007/10/20(土) 20:12:46
>>767

素直にググリましょう。

検索Topで次のページがかかったよ
http://idm.s9.xrea.com/factorization/multiprec/multiprec.html
769767:2007/10/21(日) 00:43:07
ありがとうございました >>768
770デフォルトの名無しさん:2007/10/22(月) 21:13:25
float a;
a=1;
print("%d",a);
を実行すると
1072693248っていう数がでてくる。
これってどういうこと?
771デフォルトの名無しさん:2007/10/22(月) 21:16:08
>>770
float型の1をint型として読み取ったときに1072693248っていうint型の値と等しいってこと
772デフォルトの名無しさん:2007/10/22(月) 23:03:04
マルチうざい
773プリンがー:2007/10/27(土) 22:58:43
printf("-----------\n");

これってどういう意味??
774デフォルトの名無しさん:2007/11/05(月) 01:41:17
>>773

飾り
775デフォルトの名無しさん:2007/11/05(月) 15:30:03
固定文字列なら puts() で書けよ。
776デフォルトの名無しさん:2007/11/06(火) 15:47:46
次は
777デフォルトの名無しさん:2007/11/06(火) 15:48:34
777ゲット!
778デフォルトの名無しさん:2007/11/13(火) 16:06:12
暇な人がいたら代わりに解いてください・・・

メイン関数において、2つの放物線
 y=ax2+bx+c
 y=px2+qx+r
の係数a、b、c、p、q、rをキーボードから入力し、その数値を関数に引数として渡す。
関数はその数値を用いて2曲線の交点の有無を調べ、その交点の個数を戻り値とし
てメイン関数に渡す(交点が無い場合は0、交点が1つの場合は1、交点が2つの場
合は2、交点が無限に存在する場合はー1を戻り値にする)。また関数は、もし交点が
有限個存在するならばそれらの交点の座標値をメイン関数に渡す。メイン関数は関数
から得たこれらの情報を得て、交点の個数を画面に表示し、さらにもし交点が有限個
存在するならばそれらの座標値を画面に表示する。そのようなプログラムを作成せよ。


プログラミングさっぱりわからん・・・
779デフォルトの名無しさん:2007/11/13(火) 17:12:29
780デフォルトの名無しさん:2007/11/13(火) 17:25:45
わかんないのはプログラミングだけ?
781デフォルトの名無しさん:2007/11/13(火) 22:13:37
>>779
こんなスレがあるとは・・・誘導サンクス
782デフォルトの名無しさん:2007/11/30(金) 17:06:47
文字列を逆にして返す関数を作りたいのですが
どうやったら逆にコピーできるんですか?
誰か教えてください
783デフォルトの名無しさん:2007/11/30(金) 22:40:29
>>782
同じサイズの配列を確保してfor文回せばいいじゃん。
それをやりたくないなら、

char foo;

for( i = 0; i < sizeof( array ); i++ ){
  foo = array[ i ];
  for( j = 1; j < sizeof( array ); j++ ){
    array[ j - 1] = array[j];
  }
  array[ sizeof( array ) - 1 - i ] = foo;
}

んな事をするしかない。
784デフォルトの名無しさん:2008/01/15(火) 05:17:46
>>779の次スレってどこにあります
dat落ちしててスレタイも解らない

と思ったけどブラウザで開いたら解った
C/C++の宿題を片付けます 99代目
せっかく書いたのでこのまま送信
785デフォルトの名無しさん:2008/05/10(土) 04:35:18
kaiware
786デフォルトの名無しさん:2008/07/22(火) 22:51:34
上書きしていいならこれでどうよ?
lengthは文字列長

int i = 0;
int j = length - 1;

while (i < j)
{
char tmp = str[i];
str[i] = str[j];
str[j] = tmp;

i++;
j--:
}
787デフォルトの名無しさん:2008/07/23(水) 07:17:49
すいませんスレチかもしれないですが質問させて下さい。
今年で21になるのですが今から専門学校に通ったりしてプログラムの
勉強を始めるのは遅すぎるでしょうか?
1からのスタートになるのでどうしようか迷っています。
788デフォルトの名無しさん:2008/07/23(水) 08:28:14
プログラムを勉強するのに専門学校は必要ない
独学で十分
789デフォルトの名無しさん:2008/07/23(水) 10:40:25
>>787
間に合わない事はない。
ただ、専門学校行くかどうかは別として基本情報技術者程度の知識は持っておけ。
790デフォルトの名無しさん:2008/07/24(木) 11:04:57
IT関連の専門学校の実態は、学生と講師の只の既成事実作成だからなぁ。
791デフォルトの名無しさん:2008/07/25(金) 01:55:41
>>787
遅くはないし、けど専門学校に通うほどのもんではない。
ただ、学習だけに時間をさけて、質問すれば確実に答えを
返してくれる環境というのはうらやましいような気も。

C、VB、Java、Oracleあたりをガンガンいじって
JavaでStrutsあたり使ってSNS作ってみたりするのはいいかと思う。

ただ教えられるがままじゃだめかと。
常に授業より先行しておいて自分で何かどんどん作るように。
792デフォルトの名無しさん:2008/07/28(月) 23:27:38
>>787
高校レベルの数学で苦手意識があるならかなり険しい道になると思われ。
逆に高校レベルの数学を普通にこなせるならまあ、いけるんじゃないか。
793デフォルトの名無しさん:2008/07/31(木) 10:55:49
Borland C++Compiler 5.5をダウンロードしてfreecommandlinetools.exeを実行したいのですがパスワードが必要で先に進めないのですがどうすればいいのですか?
794デフォルトの名無しさん:2008/07/31(木) 22:21:24
>>793
お答えするためにはパスワードが必要です
795デフォルトの名無しさん:2008/08/02(土) 22:08:19
んなバカな
796デフォルトの名無しさん:2008/08/03(日) 00:44:31
パスワードの薄幸にはパスワードが必要です。
797デフォルトの名無しさん:2008/08/05(火) 12:02:44
醗酵しそうだな。
798デフォルトの名無しさん:2008/08/05(火) 22:24:12
醗酵にはパスワードが必要です。
799デフォルトの名無しさん:2008/08/10(日) 13:17:04
>>793
digital marsでもつかってろ
http://www.digitalmars.com/
800デフォルトの名無しさん:2008/10/14(火) 22:56:24
成績をつけるプログラムを教えてほしいです。

80点以上100点以内 A
65点以上80点未満  B
50点以上65点未満  C
0点以上50点未満   D

それ以外の整数に対しては「ありえない」と出す

801デフォルトの名無しさん:2008/10/14(火) 23:13:43
つif
つelse
つ<=
つprintf
802デフォルトの名無しさん:2008/10/15(水) 08:06:56
じゃあ、引数とかで可変にするばあいは?
> rank.exe 100 80 65 50 30
などとすると自動的に 100〜80A、80〜65:B、65〜50:C、50〜30:D、30以下:Eと付けてくれるの
803デフォルトの名無しさん:2008/10/15(水) 09:24:31
コマンドラインはmain関数に渡される
int main(int argc, char *:argv) { ... }
804デフォルトの名無しさん:2008/10/16(木) 09:22:01
int main(int argc, char **argv){

char h[101];
int a, b, c, d, s;
double tokuten = 29;//得点

puts("rank Aの下限 Bの下限 Cの下限 Dの下限");

a = atoi(argv[1]);
b = atoi(argv[2]);
c = atoi(argv[3]);
d = atoi(argv[4]);

for(s=100; s >= a;s--) h[s] = 'A';
for(s=a; s >= b;s--) h[s] = 'B';
for(s=b; s >= c;s--) h[s] = 'C';
for(s=c; s >= d;s--) h[s] = 'D';

printf("得点=%d ランク=%c\n\n", tokuten, h[tokuten]);
}
805デフォルトの名無しさん:2008/10/16(木) 19:52:15
>>804
キモ過ぎるwww
806デフォルトの名無しさん:2008/10/16(木) 22:03:48
いや、漏れマジでこういうソース書いたことある。
807デフォルトの名無しさん:2008/10/16(木) 22:22:24
まあ、速度稼ぐために表引きにすることはあるな。

808デフォルトの名無しさん:2009/05/29(金) 15:11:04
>>804
デフォで h[101:76] が 'A' とか表埋めとけよ。

そんで実行時に下限が違うところだけ
表を修正すればもっと速くなるぞw
809デフォルトの名無しさん:2009/06/06(土) 11:28:31
こんな規模のソース書いてるスキルで速度なんか気にするなよ
810デフォルトの名無しさん:2009/06/06(土) 11:57:11
int main(int argc, char **argv)
{
int a, b, c, d, e;
int tokuten = 29;//得点
char rank;

a = atoi(argv[0]);
b = atoi(argv[1]);
c = atoi(argv[2]);
d = atoi(argv[3]);
e = atoi(argv[4])
if((b<=tokuten)&&(tokuten<a)) rank = 'A';
else if((c<=tokuten)&&(tokuten<b)) rank = 'B';
else if((d<=tokuten)&&(tokuten<c)) rank = 'C';
else if((0<=tokuten)&&(tokuten<d)) rank = 'D';
else {printf("ありえない\n");}
printf("得点=%d ランク=%c\n\n", tokuten, rank);
}
811デフォルトの名無しさん:2009/06/15(月) 03:14:05
"DCBA"[rank] とかやらないの?w
812デフォルトの名無しさん:2009/06/15(月) 04:52:19
最近知ったばかりか。自慢したくなるのも無理はない。
そんなのGNUのなんか(サウンド関係だった気がする)のソースで見て以来いくつかの糞本で何度か見かけたくらいだよ。

それでどうやってエラー処理するんだ。
rankは"DCBA"の有効なアドレスを参照するインデックスであるのか。
むしろrank["DCBA"]とかにして読みにくくしないの。
813デフォルトの名無しさん:2009/06/15(月) 07:18:02
argv[0]は、アレだよ。
814デフォルトの名無しさん:2009/06/15(月) 09:21:38
>810はどうしようもないな。argvの仕様を全く判っちゃいない。
つーか、100点はありえないのかよw
815デフォルトの名無しさん:2009/06/15(月) 21:43:44
ケツの穴の狭い奴らだな…
816デフォルトの名無しさん:2009/06/15(月) 21:57:11
文句言う前にもっといいコード出せばいいのに。
817デフォルトの名無しさん:2009/06/16(火) 09:48:45
もっといいコードって言ってもなぁ。
argvのインデックスを1からに変えて、aとの比較を等号つきに変えるくらいだからねぇ。
この手の課題っぽいプログラムでI/Fを凝っても仕方ないし。
818デフォルトの名無しさん:2009/06/16(火) 18:59:43
得点圏を固定にして、データを引数で指定するように出来ない?
819デフォルトの名無しさん:2009/06/16(火) 19:38:29
できるできる
820デフォルトの名無しさん:2009/06/20(土) 14:47:57
にゃん
821デフォルトの名無しさん:2009/09/01(火) 02:46:04
わん
822デフォルトの名無しさん:2009/09/01(火) 11:34:36
キャイ〜ン
823デフォルトの名無しさん:2010/05/08(土) 12:29:07
わおーn
824デフォルトの名無しさん:2010/05/08(土) 13:48:00
( ゚д゚ )ニャー
825デフォルトの名無しさん:2010/08/11(水) 11:26:46
nullpo
826デフォルトの名無しさん:2010/11/13(土) 15:58:15
gaslighting
827デフォルトの名無しさん:2010/11/13(土) 18:33:57
#include <stdio.h>
828デフォルトの名無しさん:2011/05/04(水) 19:34:17.92
8年前のスレ・・・・・
829天使 ◆uL5esZLBSE :2011/07/01(金) 22:27:43.63
Rubyバカにしてる子ってさ
変数に$ついてる言語触ってるって事だよね

いちいちSHIFT+4キーおして $ 打ちまくってる感触はどう?
830デフォルトの名無しさん:2011/11/20(日) 14:27:58.47
どう?
831デフォルトの名無しさん:2011/11/29(火) 01:19:16.57
分からん
832デフォルトの名無しさん:2011/12/21(水) 01:20:17.28

>315 :デフォルトの名無しさん:2009/02/12(木) 18:34:06

アホw
833デフォルトの名無しさん:2012/01/25(水) 02:58:43.77
埋め
834デフォルトの名無しさん:2012/01/27(金) 09:05:45.54
bccでコンソールでCを勉強しています。
>>12
のように書くと、Dos窓が出てきて速攻閉じてしまいます。
で、gets(szBuf);を最後に追加して
ウインドウを保持しています。
ネットソースでは自分の環境ではこの現象が起きます。
スマートなウインドウ保持はどのようにするのでしょうか?
OS vista
835デフォルトの名無しさん:2012/01/28(土) 01:48:30.40
コマンド プロンプトを使用するにはどうすればいいですか。

[コマンド プロンプト] ウィンドウを開くには、[スタート] ボタン [スタート] ボタンの画像 をクリックし、[すべてのプログラム]、[アクセサリ]、[コマンド プロンプト] の順にクリックします。

http://windows.microsoft.com/ja-JP/windows-vista/Command-Prompt-frequently-asked-questions
836デフォルトの名無しさん:2012/01/28(土) 02:00:28.66
// あらかじめ、workというフォルダを用意しておく
// console.jsの名前で保存してから、エクスプローラでconsole.jsをダブルクリック
// Microsoft (R) Windows Script Host Version 5.6
directory = "C:/work/";
o = WScript.CreateObject("WScript.Shell");
o.CurrentDirectory = directory;
o.Run("cmd");
837デフォルトの名無しさん:2012/01/28(土) 02:03:05.16
console.jsをスタートにドラッグしてドロップ
スタートから選択すればコマンドプロンプトがでる
838デフォルトの名無しさん:2012/01/30(月) 19:47:53.43
>>834
つ[getchar();]

gets()を使うのはお勧めできない。
839デフォルトの名無しさん:2012/01/31(火) 21:24:43.10
putsってなんかエロいな
840デフォルトの名無しさん:2012/03/01(木) 23:42:12.92
stdio.hをstudio.hだと思ってた香具師(´・ω・`)ノ挙手
841デフォルトの名無しさん:2012/03/02(金) 20:22:40.27
ノシ
一番最初にCのソース見たときだけだけど
842デフォルトの名無しさん:2012/03/03(土) 21:59:16.39
Cより先に他の言語でSTDINやSTDOUTって単語を見てたから、最初から「ああ両方纏めたのね」だったな
まあでもstudioっぽいとは思ったw
843デフォルトの名無しさん
【世論調査】 「戦争放棄」憲法9条廃止=54% 日本の右傾化が明らかに。
http://engawa.2ch.net/test/read.cgi/poverty/1332079527/


 読売新聞社の全国世論調査(2月25〜26日実施、面接方式)で、憲法を「改正する方がよい」と答えた人は54%となり、
昨年9月調査(43%)から11ポイント上昇した。「改正しない方がよい」は30%(昨年39%)に下がった。

 支持政党別でみると、改正賛成派は無党派層で55%(同40%)、民主支持層で51%(同45%)、自民支持層でも53%(同51%)に上がった。

(2012年3月18日22時27分 読売新聞)
http://www.yomiuri.co.jp/politics/news/20120318-OYT1T00619.htm