トップページ⇒tech
843コメント229KB

C言語の第一歩

■ このスレッドは過去ログ倉庫に格納されています
0001美歩路NGNG
C言語を勉強しようと思うのですが、
何からやっていいのかわかりません。
そこで、C言語をいじったことのある人は
まず最初になにをやったかを
教えていただけたら、と思います。
よろしくお願いします。

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

終了
0005フレッシャーズNGNG
printf文
for文
if文
0006デフォルトの名無しさんNGNG
はろーわーるど
0007デフォルトの名無しさんNGNG
言語記号のC性から勉強しなさい
0008デフォルトの名無しさんNGNG
>>1
まず本買ってきて読め。
当たり前だろ?!
0009デフォルトの名無しさんNGNG
>>1
C++からどうぞ。
0010デフォルトの名無しさんNGNG
printf文とか言っているあたりだめな気がする。
0011美歩路NGNG
>>7
C性ってなんですか?
すみません。わかんないです。

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

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

これからだな。
コンパイルして実行。
終了
0013美歩路NGNG
>>12
Illegal Charaterがどうとかって言われます。
0014デフォルトの名無しさんNGNG
雑誌でも講読すれば?

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

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

int main( ) {
  int i

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

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

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

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

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

>>42
まじッスか!?(w
0044デフォルトの名無しさんNGNG
(´-`).。oO(Cの前にPerlとかやると (以下自粛) );
0045フレッシャーズNGNG
/*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*/// こんなプログラムはどうだ!デクリメント使っていることは、気にしない気にしない
0046フレッシャーズNGNG
うっ、字下げが反映されなかった・・・鬱
その為にコメント入れたつもりだったのに駄目なのね。
  試 試
0047デフォルトの名無しさんNGNG
#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;
  }
}

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

0048デフォルトの名無しさんNGNG
hoge=func?
0049デフォルトの名無しさんNGNG
hoge==func
0050デフォルトの名無しさんNGNG
/*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;
}
0051デフォルトの名無しさんNGNG
&nbsp;
   ^
0052デフォルトの名無しさんNGNG
あげ
0053デフォルトの名無しさんNGNG
単発質問に答えてはいけません。
単発厨に示しがつきません。
また調子に乗って厨が同じようなスレを立て始めます。
単発質問スレは他のスレへ誘導するか無視してください。
0054デフォルトの名無しさんNGNG
まずは写真だな。うぷしる!
0055OPENFILENAME ofn;NGNG
char s[];
s=ofn.lpstrFile;

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

と怒られるんですが,いろいろキャストしてもダメ.
sへ代入するにはどうしたら?
0056デフォルトの名無しさんNGNG
>>55
こっちで聞け

http://pc3.2ch.net/test/read.cgi/tech/1031340950/l50
0057デフォルトの名無しさんNGNG
つうか、もうこのスレ削除依頼出した方がいいんじゃない?
明らかに単発質問スレだし・・・
0058デフォルトの名無しさんNGNG
age
0059デフォルトの名無しさんNGNG
>>58
sine
0060デフォルトの名無しさんNGNG
配列とポインタ♪
0061デフォルトの名無しさんNGNG
IC 1ピンのCSをHからLにしたいのですがどうかけばいいですか。
パラレルポートを使って
温度センサーを使って画面に気温を表示したいのですが A/Dコンバータは製作しました。

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

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

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

本物のスレは↓こちら。

http://pc3.2ch.net/test/read.cgi/tech/1038405432/l50
C言語のことは俺に聞け<45>
0077デフォルトの名無しさんNGNG
>>76
削除依頼出てないけど。
0078デフォルトの名無しさんNGNG
>>77
かまうな。そこらじゅうでコピペしてるアフォだよ。
0079デフォルトの名無しさんNGNG
ネタ無しage
0080デフォルトの名無しさんNGNG
むしろC#からやるのも(以下略)
0081デフォルトの名無しさんNGNG
モナーって最初耳丸かったよね?よね?よね?
0082IP記録実験NGNG
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を提出することがある。
0083デフォルトの名無しさんNGNG
>>443
できないです>責任逃れ
0084デフォルトの名無しさんNGNG
>>104
IP保存しちゃ匿名性が保たれないだろう。
0085デフォルトの名無しさんNGNG
>>138は弐編君
0086デフォルトの名無しさんNGNG
======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
────────────────────────────
0087デフォルトの名無しさんNGNG
qb
削除整理、削除要請、削除議論、批判要望

live2
ニュース速報

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

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

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

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

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

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






とりあえず記念コキカ
0103デフォルトの名無しさんNGNG
自由の意味がわかってない人間が多すぎるぞ、日本は
0104デフォルトの名無しさんNGNG
======2==C==H======================================================

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

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

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

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

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

んじゃ!

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

逝け逝け!消えろ。>>キラー
石川の恥バーカ!
0116デフォルトの名無しさんNGNG
 
0117デフォルトの名無しさんNGNG
800!!
0118山崎渉NGNG
(^^)
0119デフォルトの名無しさんNGNG
前スレ上げちまったから
こっち上げるぞ。
0120山崎渉NGNG
(^^)
0121山崎渉NGNG
(^^)
0122デフォルトの名無しさんNGNG
こういう人がいるから、しょぼいプログラマでも給料がもらえるんだな
0123123NGNG
今日はじめて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乗ともなると、答えがおかしくなります。
どこを修正したらよいでしょうか?
0124デフォルトの名無しさんNGNG
>>123
UBASIC使え
0125デフォルトの名無しさんNGNG
int h,i,j;
int k=1;
の方が見やすくない?
0126デフォルトの名無しさんNGNG
1週間後、ゲーセンの入学式です!!
プログラムコースのボクは、何と「プラグラムって何?」って感じです!!
オススメの本って何ですか?
今すぐ教えてください!!!!!
あと1週間死に物狂いで勉強します!!!
ヤベー
ヤベー
睡眠時間は3時間で、残りの21時間を勉強に当てます!!!
0127デフォルトの名無しさんNGNG
うわーレスがついてない!!!
こうなったら、適当に本買って熟読します!!!
ミスったーーーーー
皆、きっとある程度はプログラムが組める奴等なんだろうなぁ
俺だけ何もできねーよ!!!
ちくしょう!ちなみに、学校で勉強するのはC言語ってやつらしいです!!!

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

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

ネタと認定していいですか ?
0140137NGNG
いいですよ
0141137NGNG
>>139
ただし、そこらじゅうのサイトでネタとして使われてますが
いいですか??
0142デフォルトの名無しさんNGNG
>>137
イギリス紳士も裸足で逃げ出して、ギャフンと言う
スーパージェントルメェンの私が指摘してしんぜませう。

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

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

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;
}
0144137NGNG
>>142
いやいや、間違えたのはモレだけじゃなかったんだと
少し安心しただけです・・。 ”フィナボッチ数列”単発単語検索
ですた・・。もっと勉強します。。
>>143
参考になります。サンクスコ
m(。_。;))m ペコペコ…
0145137NGNG
ttp://www.niit.ac.jp/ieehtml/nakajima/eoc/ex5-0.htm
↑自信満々です・・。
0146デフォルトの名無しさんNGNG
>>1は底引き網のベテランだな
0147デフォルトの名無しさんNGNG
>>146は魚だな
モレもか
0148お願いします。NGNG
スレ違いでしたら誘導お願いします。
これの実行結果を書き込んでくれませんか?
コード見直しても間違いはないみたいです。入門書との実行結果が違うので確かめたいです。
お願いします。
#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]);
}
0149デフォルトの名無しさんNGNG
この関数の実行結果は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;
}
0150デフォルトの名無しさんNGNG
for(i=1;i<=y;i++){
dt = dt * x;  
}
これは何なの? 同じことを何回も繰り返してさ。
読みにくいプログラムだな。 

0151デフォルトの名無しさんNGNG
>>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
釣れそうですか ?
0152デフォルトの名無しさんNGNG
for(i=1;i<=y;i++){
dt += dt * x;  
}
0153デフォルトの名無しさんNGNG
for(i=1;i<=y;i++){
dt *= x;
}
0154デフォルトの名無しさんNGNG
http://www.yahoo2003.com/betu/linkvp2/linkvp.html
0155デフォルトの名無しさんNGNG
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だな。
}
0156デフォルトの名無しさんNGNG
xに2を、yに-2を与えたら0.25が返るはずだけど返らないね。
0157デフォルトの名無しさんNGNG
>beki関数のxの値には何が入ってるのかもわからないし
2を渡してるんだから、2でしょが。

単に勉強不足だろ、君。
終了だな。
0158デフォルトの名無しさんNGNG
2chで質問すると逆に混乱する罠。
0159bloomNGNG
http://homepage.mac.com/ayaya16/
0160デフォルトの名無しさんNGNG
あややだって。
0161デフォルトの名無しさんNGNG
bloomってポルノサイトだな。
しかもブスだらけだ。
0162デフォルトの名無しさんNGNG
>>151 155
ありがとうございます。
最初のdtが1になる理由はわかりました。

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

それさえ理解できれば多分
この問題に関しては理解できたと思うんで、
たびたびすいませんがそれだけでもお答えいただけませんか?
0163デフォルトの名無しさんNGNG
いやです。
0164デフォルトの名無しさんNGNG
162=1
0165151NGNG
すいませんと思うなら、聞くなよ。
0166デフォルトの名無しさんNGNG

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

いいんです。

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


0167148NGNG
あ・・・できました。 "" じゃなくて ''で囲まなきゃ・・・あぁw

0168デフォルトの名無しさんNGNG
#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;
}
0169デフォルトの名無しさんNGNG
改行有りのprintfと改行なしのputsがないのは作者があほだからですか?
0170デフォルトの名無しさんNGNG
fputs()
0171デフォルトの名無しさんNGNG
>>169
printf("...\n") とか、fputs() を覚えることのできないアフォを排除するための仕様です。
0172デフォルトの名無しさんNGNG
printfがあるならprint(const char *s)も作れよ。って話だろ。
0173デフォルトの名無しさんNGNG
>>172
飛躍しすぎ。
0174山崎渉NGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0175デフォルトの名無しさんNGNG
>>1
三十路には無理
0176デフォルトの名無しさんNGNG
/*最初はこんなことやりましょう*/
#include <stdio.h>
#include <stdlib.h>

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

sprintf(buf, "start %s", argv[0]);
return system(buf);
}
0177デフォルトの名無しさんNGNG
>>176
動きませんでつた。

$ gcc a.c
$ ./a.out
sh: start: command not found
0178デフォルトの名無しさんNGNG
K&Rってよくみるんですけど、その本は実際はなんていう本のことなのですか?
0179デフォルトの名無しさんNGNG
>>177
どんなファイルができているの。ls してくれ。
0180デフォルトの名無しさんNGNG
>>178
ちゃうよ。会社の名前だ。
http://www.knrgroup.com/
0181デフォルトの名無しさんNGNG
>>179
a.c  a.out
0182デフォルトの名無しさんNGNG
>>177
ある意味動いてると思うが?
0183デフォルトの名無しさんNGNG
age
0184デフォルトの名無しさんNGNG
>>182のいうとおり、動いているからそういうメッセージが出たわけで。
0185デフォルトの名無しさんNGNG
>>182,184
目からフェイズシフト装甲が落ちますた。
0186ゆみNGNG
Cで「CSVファイル」の 「行」 と 「列」 を入れ替えたいのですが
サンプルプログラム等をご存知の方いらっしゃいましたら是非教えてください。
よろしくお願いいたします。
0187ゆみNGNG
 こんばんは。C言語初心者のゆみこと申します。
Cを使って「CSVファイル」の 「行」 と 「列」 を入れ替えたいのですが
サンプルプログラム等をご存知の方いらっしゃいましたら是非教えてください。
よろしくお願いいたします。
0188デフォルトの名無しさんNGNG
あー、はいはい。
0189デフォルトの名無しさんNGNG
あー、チェンジ!
0190デフォルトの名無しさんNGNG
しるかアホアホ
0191デフォルトの名無しさんNGNG
>>185
PSダウンはマズイ。
Nジャマーキャンセラーを搭載しる!
0192デフォルトの名無しさんNGNG
とりあえず,2分木を使ったソートプログラムをつくれ
勉強になると思う。
0193デフォルトの名無しさんNGNG
こんにちは世界と100回唱えた。
0194デフォルトの名無しさんNGNG
望洋タンの本の入門編読む。
↓
ポインタのこみいった部分が良く分からんかったので
前橋タンの「ポインタ完全制覇」でわからんところを読む。
↓
基本は分かった。
↓
K&RとC言語FAQを見つつ、
「プログラミング作法」
の問題を解く。

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

0195デフォルトの名無しさんNGNG
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/
0196デフォルトの名無しさんNGNG
誰か超初心者のための入門書を紹介して下さい
0197Kusakabe YoichiNGNG
「作ってわかるCプログラミング」という
大変すばらしい本がありますよ。
0198デフォルトの名無しさんNGNG
>197
ありがとー。探してみますね!
0199デフォルトの名無しさんNGNG
C言語って、累乗の記号が無いから不便だな。
0200デフォルトの名無しさんNGNG
>>199
お前VBプログラマか?
演算子と言ってください
0201デフォルトの名無しさんNGNG
pow使え
0202デフォルトの名無しさんNGNG
はじ めの はじ めの だい いっ ぽ
0203山崎 渉NGNG
(^^)
0204山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0205デフォルトの名無しさんNGNG
age
0206デフォルトの名無しさんNGNG
倉薫氏のC言語1の文をそのままコピーして勉強していたら、以下のプログラムの
なかほどにillegal characterがあると返ってきました。どこが間違っているのか
教えてください。
 /* 成人かどうかを判定するプログラム */

#include<stdio.h>

main()
{
int age;

age = 22;

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

0207デフォルトの名無しさんNGNG
あ最後が間違ってた。
0208デフォルトの名無しさんNGNG
自問自答 最後は間違っていない。どこも間違っていない?
0209デフォルトの名無しさんNGNG
>>206
>   if(age>=20)
ifの左側に全角空白があるからじゃねーの?
コンパイル、実行できたぞ
0210デフォルトの名無しさんNGNG
>209
ありがとう。全角空白を無くしてみたら、コンパイルできました。ほんのちょっと
したことも、許されないのですね。わたしはアバウトな人間ですから、これから
たいへんです。
0211デフォルトの名無しさんNGNG
だれか、Cでパターンマッチングをどうやるか教えてください。簡単なプログラムを載せてくれるとありがたいです。
0212デフォルトの名無しさんNGNG
>>210
なんかずれたコメントだな……。
0213デフォルトの名無しさんNGNG
>>210
アバウトというよりただのマヌケ。
0214デフォルトの名無しさんNGNG
くやしいから言うけど、みんなはじめは素人だというでしょう。   あのう、英検1級です。
0215デフォルトの名無しさんNGNG
くやしいから言うけど、みんなはじめは素人だというでしょう。
   あのう、ハーバード大学院卒です。
0216デフォルトの名無しさんNGNG
くやしいから言うけど、みんなはじめは素人だというでしょう。
   あのう、どどど童貞ちゃうわっ
0217デフォルトの名無しさんNGNG
くやしいから言うけど、みんなはじめは素人だというでしょう。
   あのう、宇宙人です
0218デフォルトの名無しさんNGNG
藻前ら面白すぎ
0219デフォルトの名無しさんNGNG
>>209
あー、なるほど。
そういうことか…。
>206を自分で打ってコンパイルしたから分からなかったわ…。
0220デフォルトの名無しさんNGNG
ageすまそ…
0221デフォルトの名無しさんNGNG
--- 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行のダブルチェックが意味をなしません。
これはどう書いたらいいんでしょうか。
0222デフォルトの名無しさんNGNG
#include <stdio.h>
main()
{
printf("マンコ\n");
return 0;
}
0223デフォルトの名無しさんNGNG
保守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");
}
0224デフォルトの名無しさんNGNG
保守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");
}
0225くぉおNGNG
はじめまして、Cを覚えたいんですが、無料で使えるコンパイラでおすすめを教えてください。
チャットの、補助ソフトを作りたいんですが、コンパイラ以外に何が必要ですか?
(入室の監視や、プロフを参照して自動書き込みするような・・・)
0226デフォルトの名無しさんNGNG
>>225
GCC、有料の開発環境
0227デフォルトの名無しさんNGNG
今日からアスキーの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"
0228デフォルトの名無しさんNGNG
「名前を付けて保存」ができるなら、その説明の通りやればええやん
0229デフォルトの名無しさんNGNG
>227
http://www.cmagazine.jp/setbcc.html
0230デフォルトの名無しさんNGNG
>229
ありがとうございます。

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

俺はこの本持ってて、すげー勉強になった
0238デフォルトの名無しさんNGNG
>>42
なかなか実行するのは難しいな
0239デフォルトの名無しさんNGNG
>>235
僕もコレでマスターしたクチです。
0240名無し@沢村NGNG
おまいらよ、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シーケンサーを学ぶおまいらにとてもためになるものだから、ちょっと見てみろ!?
0241デフォルトの名無しさんは ◆NULLPOmvRA NGNG
javaとCの路線が違いすぎ。
javaは洗脳だし・・・。
でもそれがベストかも。
よよよょょょ......(涙
・・・・。
キュピーン!
アーッヒャッヒャッヒャ......。
0242デフォルトの名無しさんNGNG
c言語の第1歩といえば

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

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

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

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


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

この場合の「return 0;」はプログラムの終了を意味する。return(0);でも可。
ちなみに、
int main()→void main()の場合「0」は不要。(むしろ「0」を入れてはだめ)
また中括弧内部の最後にあるreturnも不要。(これはあってもなくても良い)
0266デフォルトの名無しさんNGNG
>>265
糞Qに答えてくれてありがとう!勉強になりました!
0267初心者NGNG
C言語プログラミング 始めるには WINDOWS OSインストールされたパソコンがあれば十分なのでしょうか?
プログラムを組むために必要なソフトウエアは無償のモノがあるのでしょうか?
0268デフォルトの名無しさんNGNG
ttp://pc2.2ch.net/test/read.cgi/tech/1054390397/
ttp://pc2.2ch.net/test/read.cgi/tech/1035882599/
ttp://pc2.2ch.net/test/read.cgi/tech/1077102238/
ttp://pc2.2ch.net/test/read.cgi/tech/1069530956/
0269デフォルトの名無しさんNGNG
>>267
Windowsなら
http://cygwin.com/
とか.
0270デフォルトの名無しさんNGNG
WindowsならふつうSFUをインストールするだろ ぼけ
0271デフォルトの名無しさんNGNG
>>270 >267に必要なのはコンパイラだと思うが?
0272デフォルトの名無しさんNGNG
ヴぃずあlC++を買って
わけのわからなさに
陥ってCをあきらめるのが一番の早道でつ。
0273デフォルトの名無しさんNGNG
>>267
http://pc5.2ch.net/test/read.cgi/tech/1083037891/2
0274デフォルトの名無しさんNGNG
>>272
WinアプリなんてCとかC++とか関係無いところだと思うけどな。
0275デフォルトの名無しさんNGNG
未経験者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/
0276デフォルトの名無しさんNGNG
未経験者がいきなりCか・・・

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

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

生が一番
0282デフォルトの名無しさんNGNG
純情
0283デフォルトの名無しさんNGNG
コンパイラとエディタという、二つの必須アイテムがない人は

きときと CPad

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

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

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

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



0316デフォルトの名無しさんNGNG
>>309

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

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

#include <stdio.h>

int main()
{
int i = 0;

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

return 0;
}

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

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

ちなみに C++ では、main() の return を省略できる。
その場合、return 0 されたものと扱われる。
0341デフォルトの名無しさんNGNG
>>339
親プロセスで返り値を見ることができる。
0342デフォルトの名無しさんNGNG
>>340
通常EXIT_SUCCESSかEXIT_FAILUREを返せばよい
0343デフォルトの名無しさんNGNG
PICでの極々簡単なメカ制御がしたくて勉強始めたんだけど、なんかprintfとかの実例ばっかりで、現実感が沸きません。勉強の方向性まちがってますかね?
0344デフォルトの名無しさんNGNG
ボーランドC++のコンパイラ入れたんですけど、テキストはCです。
都合悪いでしょうか?
0345デフォルトの名無しさんNGNG
モウマンタイ
0346 ◆FIcNi4f8js NGNG
>>343
参考書の選択を間違ったんじゃない?
0347344NGNG
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を実行すると、ちゃんと表示されます。
この警告って無視っていいのでしょうか?
0348 ◆FIcNi4f8js NGNG
#include <stdio.h>
main()
{
printf("おはようございます。\n");
printf("Good Morning\n");
printf("GOOD MORNING\n");
printf(" \n");
printf("123456\n");
return 0;
}
0349344NGNG
>>348さま
ありがとうございます。警告出なくなりました。
テキストにはreturn 0は載ってなかったな。
これってCとC++の違いなのでしょうか?
0350 ◆FIcNi4f8js NGNG
C++でも警告出るよ。

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

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

void main()
{
...
}

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

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

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

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

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

char buf[256];

等を用意しておいて、

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

とする。

0361デフォルトの名無しさんNGNG
えと、C言語勉強中だけど、一つ質問です。

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

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

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

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

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

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

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

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

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

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

ではいけないような気がします。
0371366NGNG
>>370
()でくくればOK。

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

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

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

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

0378いなむらきよしNGNG
「はじめてのC」を読んだ方がいいキケー!
0379デフォルトの名無しさんNGNG
> ()でくくればOK。

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

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

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

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

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

そうではない! > ぼけ

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

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

その本の題名をさらせ!
0384デフォルトの名無しさんNGNG
ポインタってのがやっと分かったと思ったら、もっと分からない構造体ってのが出てきちゃった。
0385 ◆FIcNi4f8js NGNG
ポインタより構造体の方がはるかに分かりやすいが
0386デフォルトの名無しさんNGNG
はっきり言ってどっちもオナニーより簡単
0387デフォルトの名無しさんNGNG
C++のテキストは何がいいんでしょうか?
0388デフォルトの名無しさんNGNG
>>387
私の経緯から考えるとC++のテキストは一冊では全く事足りない。
最低5冊は読まないとダメかもよ
0389デフォルトの名無しさんNGNG
文法事項はその辺の参考書で事足りるだろうけど、使いこなそうと思ったら
最低EffectiveC++, MoreEffectiveC++
STLを使うならEffectiveSTL
Templateを使うならModernC++Design
参考としてExceptionalC++等々
あとオブジェクト指向の解説本も入れたら出費が(´Д`)
0390デフォルトの名無しさんNGNG
>>389
EffectiveSTL、EffectiveC++は個人的に好きじゃない…
人の勝手だろ、っていうところまで書いていたりするから。
0391デフォルトの名無しさんNGNG
age
0392デフォルトの名無しさんNGNG
>>389
初心者にそこまでやらせるのは酷だろ。
PerlとかRubyでプログラムそのものに慣れさせてから
改めてC++に触れさせればいいのに。
0393デフォルトの名無しさんNGNG
プログラミング言語を何も知らずに
「C言語をマスターするぜ!!」ってのは、難しいから

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

自分はそんな感じですた
0394デフォルトの名無しさんNGNG
時代はベーシックですよ。
0395デフォルトの名無しさんNGNG
型を身に着けるべきだと思う。
ほとんどの処理は、型があるから、それを覚えてしまえば、それなりの物は書ける。
自分も初心者です。がんばりましょう。
0396デフォルトの名無しさんNGNG
型から入って失敗した奴を何人も知っている
0397デフォルトの名無しさんNGNG
>>396
じゃあ、どうすりゃいいのさ?
0398デフォルトの名無しさんNGNG
age
0399デフォルトの名無しさんNGNG
基本書読むだろ?ポインタが理解出来るくらいにまでなる。
で、なにか簡単なプログラムのソースを見るんだよ。俺の場合は雑誌に付いてたメモ帳だった気がする。
見ながらいじってみて変化を確認して。みたいな感じで覚えていくんだよ。
なれてきたら自分で作るものにあわせて、中級〜上級者向けの本読むとかすればいい。
0400デフォルトの名無しさんNGNG
今日からC勉強しようと思うのですが。なにかいい参考書ってありますか?
もししっているのならば教えてもらいたいのですが・・・。
なにぶん初心者なので、わかりやすいけど、内容が深いものがいいです。
0401デフォルトの名無しさんNGNG
>>400
倉薫 著
C言語 (全2巻)
がわかりやすかった。プログラミング初心者向け。
0402デフォルトの名無しさんNGNG
>>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に関しての説明が充実しているらしい。
0403デフォルトの名無しさんNGNG
>>401.402
ありがとうございました!
0404デフォルトの名無しさんNGNG
>>403
必ず立ち読みして、自分にあっているかどうかを確かめたほうが良い。
0405デフォルトの名無しさんNGNG
http://www.amazon.co.jp/exec/obidos/ASIN/477411328X/
0406デフォルトの名無しさんNGNG
>>405
読んだことないけど、全くの初心者なら倉薫の方がいいんじゃないかな?
初心者向きじゃないって言うレビューもあるし。
0407デフォルトの名無しさんNGNG
保守
0408デフォルトの名無しさんNGNG
ポインタ配列というのがイマイチ理解できない。
例えば
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文字分進めたアドレス?)

エロイ人、教えてください。
0409デフォルトの名無しさんNGNG
>>408
その1:されていません
その2:後者
0410デフォルトの名無しさんNGNG
みんなCをマスターレベルになるまでどれくらいの時間かかったの?
0411デフォルトの名無しさんNGNG
>>410
私はドクターですが、4年かかりました。
0412408NGNG
>409
ありがとう
0413デフォルトの名無しさんNGNG
何度も聞かれて、うんざりかも知れませんが
「初めに勉強するのはC言語で良いのですか?」
Cは難しいと聞きますが、やり始めたらある程度までやる自身はあります。
ただ、無駄になるのが怖いのです。

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

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

char x[10];

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

char x;

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

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

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

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

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


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



}

40÷13を計算し、式と商と余りを表示するプログラムをつくりたいのにできない。
答えはわかってるんだけどなんでこれでできないのかわからないです。
教えてえろい人
0441デフォルトの名無しさん05/01/26 22:36:21
printf("%d / %d = %d ... %d\n", 40, 13, 40 / 13, 40 % 13);
0442デフォルトの名無しさん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);
0443デフォルトの名無しさん05/01/26 23:14:57
改行くらいしろよ
0444デフォルトの名無しさん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
にしたいのですが・・・

無理ですかね?
0445デフォルトの名無しさん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;
0446デフォルトの名無しさん05/01/27 11:30:15
int型の配列を返す関数ってできますか?
できる場合って、return (?)にすればいいんでしょうか?
0447デフォルトの名無しさん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);を忘れずに。
0448デフォルトの名無しさん05/01/27 15:56:53
やっとクイックソートが組めました
0449デフォルトの名無しさん05/01/27 19:15:29
Cの入門ウェブページとして
「猫でもわかるプログラミング」が有名ですが

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

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

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

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

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

でいいのでしょうか?

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







>指示すポインタ
0459デフォルトの名無しさん05/02/05 18:16:49
int *p[10];   int型(4バイト)のポインタ配列要素数10
0460デフォルトの名無しさん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まで確保したところで止まるのですが、インクリメント回数は表示されません。
まだ確保出来ると処理を続けているのでしょうか?
0461デフォルトの名無しさん05/02/05 18:22:57
>>460
こうすべき。
while(1)
{
p=(int *)malloc(sizeof(int));
if(p==(int*)NULL)
{
break;
}
p++,i++;
}
0462デフォルトの名無しさん05/02/05 18:23:32
>>460
何よりも先にエラー処理だよ。
0463デフォルトの名無しさん05/02/05 18:39:17
pをインクリメントすることに何か意味があるのか?
0464デフォルトの名無しさん05/02/05 18:39:38
おお!表示されました。
132378282回でした。
これでfreeする場合は、
p=startで代入して最初に持ってきて、
p++で2回目のmallocを探せるのでしょうか?
0465デフォルトの名無しさん05/02/05 20:35:13
んなあほな。
0466デフォルトの名無しさん05/02/06 17:21:48
freeしたければexitしろ
0467デフォルトの名無しさん05/02/07 14:30:45
質問です。
初心者レベルですがJavaについての知識はあります。
これからVS.netでC++を学んでみたいのですが、言語の文法を学ぶ場合、
はじめに、Cを学んでからステップアップしてC++を学ぶべきですか?
それとも、いきなりC++から学んでもいいのでしょうか。
0468デフォルトの名無しさん05/02/07 14:50:04
>>467
私はこのスレでならCを学べと答える。
046946705/02/07 15:01:42
>>468
レスありがとうございます。
この場合のCから始めるメリットとは何ですか?
047046805/02/07 15:48:05
>>469
Javaとの違いをはっきり認識するため。
047146705/02/08 11:55:11
>>470
なるほど!
ありがとうございました。
0472デフォルトの名無しさん05/02/09 04:16:10
質問させて下さい。

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

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

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

としたらどうなるんですか?
0476デフォルトの名無しさん05/02/10 02:53:05
>>475
例えば
char hage[10];
char * hoge = & hage[1];
ならば
hoge[-1]はhage[0]と同意です。
しかし、
char hoge[10];
に対していきなり
if (hoge[-1])
などとしてはいけません。
0477デフォルトの名無しさん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 になってから探すようにするんですね。
ありがとうございます。
0478デフォルトの名無しさん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);
と書くとコンパイルされないんですが
どうしてなんでしょう・・・
0479デフォルトの名無しさん05/02/11 03:25:34
>>478
BASICやってたの?
0480デフォルトの名無しさん05/02/11 04:08:45
while(dat<9 || dat>9);
0481デフォルトの名無しさん05/02/14 14:18:08
strlen関数で、intにキャストしてる例を見たんですけど、普通なんでしょうか。
はじめてのC読んだら、size_tはプラスの値ならどうのこうのってあるんです
けど、strlenでマイナスの値になる事ってあるんですか?
0482デフォルトの名無しさん05/02/15 03:15:14
>>481
>strlen関数で、intにキャストしてる例を見たんですけど、普通なんでしょうか。
普通じゃないと思う。

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

fp_data=fopen(hogehoge,"a");

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

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

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

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

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

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

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

その答えがおまえの質問の答えだ
0537デフォルトの名無しさん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,´`ヽ;;;、,,,,,,___,) ヽ'-゙'"
                       (`ー':;;;;;;;;;;;;;;;ノ
                       ``''''''``'''''´  
0538デフォルトの名無しさん2005/04/16(土) 14:46:22
>>535
俺はのこぎりを使えるプログラマだけど
プログラマとして就職していない
0539デフォルトの名無しさん2005/04/16(土) 23:34:52
使えないプログラマをのこぎりで切っていいですか?
0540デフォルトの名無しさん2005/04/16(土) 23:37:08
使えないプログラマはC言語で切ってください
0541デフォルトの名無しさん2005/04/16(土) 23:47:26
むしろC++でぶっちぎっちゃって下さい。
0542デフォルトの名無しさん2005/04/17(日) 00:14:10
Oをのこぎりで切って血が噴き出した様子がC++
0543デフォルトの名無しさん2005/05/04(水) 21:27:20
それに絆創膏貼れば、C#か?
05445422005/05/04(水) 23:14:56
>>543
うまい。座布団1枚!!!
0545デフォルトの名無しさん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);
としても何も表示されないんですが、どうしたら表示されるようになるでしょうか?
0546デフォルトの名無しさん2005/05/26(木) 20:54:32
>>545
int hogehoge(char **array)
{
    *array = malloc();
    strcpy(*array, foo);
    return 0;
}

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

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

#include <stdio.h>

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

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

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

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

として黒い画面を出してるんだけど、もっとスマートな方法ありませんかね?
0560デフォルトの名無しさん2005/05/29(日) 13:56:20
>>559
普通にコマンドプロンプトから起動すればいいだろ?
0561デフォルトの名無しさん2005/05/29(日) 17:51:30
#include <stdlib.h>
system("pause");
0562デフォルトの名無しさん2005/05/29(日) 18:17:02
>>559
C言語なのにiostreamを使うとは勇気のある奴だなお前・・・
0563デフォルトの名無しさん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の方がいいんでしょうか?
断片化も起きないし…
0564デフォルトの名無しさん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);
0565デフォルトの名無しさん2005/05/30(月) 22:51:39
>>563
無駄なコードを書かなければ面倒じゃない

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

第一最初の malloc で 1バイトしか確保しないのがバカバカしい
stdin だったら 32-128 バイトくらい確保していれば滅多なのことでは
realloc する事はないだろう
0566デフォルトの名無しさん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);
こんな感じでどうでしょう?
0567デフォルトの名無しさん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++;
}
0568デフォルトの名無しさん2005/05/31(火) 20:29:53
「はじめてのC」の内容を9割がた理解できるようになりました。
ぼちぼち次のことをはじめようと思っているのですが、どういう事をすればいいでしょうか。
オススメの書籍などもあれば教えて下さい。

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

ここでも見てテトリスを作ってみたら?
0572デフォルトの名無しさん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に失敗 */
0573デフォルトの名無しさん2005/06/05(日) 15:42:14
俺の方法がわるいのかもしれないのだが、
reallocがmallocの代わりに使えないのだが。

char *hoge;

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

こうすると実行できない。なぜっすか?
0574デフォルトの名無しさん2005/06/05(日) 15:47:17
char *hoge=NULL;
0575デフォルトの名無しさん2005/06/05(日) 18:31:42
>>573
hogeが初期化されずに無効な領域を指しているから。
0576デフォルトの名無しさん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);
ならできてしまうというのもよくわからないです。
うまい解説下さい。よろしくおねがいします。
0577デフォルトの名無しさん2005/06/05(日) 20:48:52
>>576
realloc()は規格で最初の引数にNULLを渡しても問題なく動かなければならないと決められているから。
その最初の引数がNULLではない場合はmalloc()/calloc()/realloc()で呼び出したポインタを渡さなければならないと決められているから。
0578デフォルトの名無しさん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() が失敗した場合には、元のブロックは変更されない。
つまり、解放されたり移動されたりはしない。
0579デフォルトの名無しさん2005/06/05(日) 22:44:51
C言語厨って、なんであんなにポインタが大好きなの?
俺としては、使わないですむなら極力ポインタを使わないでほしい・・・
0580デフォルトの名無しさん2005/06/06(月) 00:45:17
Cでポインタ使わないなんて、ちと想像できない。
最近の言語はオブジェクトを新規に生成する場合にはポインタという概念ではないが、
理論的に考えてすっきりするのはアドレスであり、それを扱うポインタが一番しっくり来
るのだが。もう古いのかな?
0581デフォルトの名無しさん2005/06/06(月) 23:24:29
あー、Javaの参照型ってきっとポインタっぽいんだろうなーと想像。
Javaは明示的なポインタはないし、System.gc()で簡単に片付けられるから便利だよなーって思うけど、もっさりしてるのがやだな。
0582デフォルトの名無しさん2005/06/06(月) 23:26:06
NullPointerExceptionもJava発祥。
0583デフォルトの名無しさん2005/06/07(火) 18:15:31
>>583
ガッ
0584デフォルトの名無しさん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行以上表示できる方法を
知りたいのですが教えていただけないでしょうか?
0585デフォルトの名無しさん2005/06/23(木) 09:24:05
少し変わったようだが、相変わらずそのままコンパイルできないコード乙。
つーか、puts()を並べるかループにしろと言う指摘は黙殺か?
0586デフォルトの名無しさん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;
}
0587デフォルトの名無しさん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;
}

こんなとこじゃないかなあ。
0588デフォルトの名無しさん2005/07/07(木) 15:56:44
c言語で1000以下の素数を二つ足し合わせて1000になるプログラムってどうすればいいんですか?わかる方いましたらお願いします。できるだけ初心者でも理解できるものでお願いします。
0589デフォルトの名無しさん2005/07/07(木) 17:53:10
>>588
ポインタスレでも同じ質問してたろ。
マルチするやつには教えるかよ。
0590デフォルトの名無しさん2005/07/07(木) 18:53:16
>>588
http://pc8.2ch.net/test/read.cgi/tech/1120522752/
0591デフォルトの名無しさん2005/07/07(木) 19:07:23
はい、すいません。書き込みしたりするの初めてだったのでしりませんでした、本当にすいません。
590 今回掲示板をみたのも初めてだったので一応はじめに検索したのですがあれだと授業でやってないことが多かったので聞かせてもらいました。わざわざリンクはって頂いたのにすいませんでした。
0592デフォルトの名無しさん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;
}
まだ試してみてないっす。
05935922005/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次元配列に突っ込んでいってもいいと思われ。
0594デフォルトの名無しさん2005/07/07(木) 20:56:23
ありがとうございます。ってか今度から本当に気をつけます。
0595デフォルトの名無しさん2005/07/09(土) 15:46:38
C言語の第一歩はアセンブリにすべきだな。それがだめならJAVAとかに行く。
0596デフォルトの名無しさん2005/07/16(土) 19:54:12
  /* とりあえず2で割り切れるようだと0を返す */
  if( num % 2 == 0 ){
    return 0;
  }


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

}
0619クレヨ( ゚д゚)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回繰り返しました…。

何度考えてもわかりません。
分かる方教えて下さいませ。
0620デフォルトの名無しさん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 自体を操作したら、動作は変わってきちゃうよね?
0621デフォルトの名無しさん2006/02/14(火) 19:10:31
C言語でゲームを作る方法を教えてください。
0622クレヨ( ゚д゚)2006/02/14(火) 21:56:26
>>620さん!!
なるほど!!ご丁寧にありがとうございました!!

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

途中で投げ出さないで最後まで頑張りたいと思います。
本当にありがとうございました!!
0623デフォルトの名無しさん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 という制御文をどうにかして
使いたいからもってきた、ってカンジ〜?ミタイナー。
0624デフォルトの名無しさん2006/02/18(土) 00:34:33
>623
投げやりだけど丁寧で萌えス
0625デフォルトの名無しさん2006/03/04(土) 07:38:58
printfは文でない
0626たけし2006/03/09(木) 15:25:28
scanfとprintfが使えるようになりました。
やっとコンピューターを知ってきました。優秀なプログラマの姿がようやく見えてきました!がんばるぞ!
0627デフォルトの名無しさん2006/03/10(金) 03:15:58
>やっとコンピューターを知ってきました。
日本語でどうぞ。
0628デフォルトの名無しさん2006/03/10(金) 08:14:43
日本語の不自由な方ですか?
0629デフォルトの名無しさん2006/03/10(金) 10:30:18
>>627 >>628
<丶`∀´>ウリを馬鹿にするものには謝罪と賠償を請求するニダ
0630デフォルトの名無しさん2006/03/12(日) 15:45:17
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。

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

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

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

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

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

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

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

/* hello.c */

#include <stdio.h>

int main()
{

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

それなら、どうすればウィンドウが残るかを考えて見るのが次のステップ。
ヒント >>645
06486442006/03/15(水) 13:28:20
>>647
わざわざありがとうございます。いろいろ試行錯誤して見ます
0649デフォルトの名無しさん2006/03/15(水) 13:32:57
printf("Hello World!\n");
getch(); /* リターン押されるまで待機 */
return 0;
06506442006/03/15(水) 13:37:56
>>649
いやぁ、答えそのものまで…未熟な俺でスミマセン
0651デフォルトの名無しさん2006/03/15(水) 16:00:24
>>649
getch()なんて関数あったっけ?
getchar()ならわかるんだけど。もし>>649で動かなかったら、
getchをgetcharに変えてごらん。自分でなんとかしようとする、
その姿勢はよし。頑張れ〜
0652デフォルトの名無しさん2006/03/15(水) 17:18:07
確かconio.hをインクルードしないとgetchは無理なような気がした
06536442006/03/15(水) 18:13:15
なんとか例のプログラムを動作させることができました。
少しずつ難しいプログラムにもチャレンジしていきたいと思います。
ありがとうございました
0654デフォルトの名無しさん2006/03/16(木) 20:08:09
話題がちょっと高度になりすぎたのでこちらに移動してください。
ぱっと見て「ヘタだなぁ」と思うコード
http://pc8.2ch.net/test/read.cgi/tech/1141867015/
0655デフォルトの名無しさん2006/03/16(木) 21:21:26
で
>アドレスとポインタの差
差は何だったんだ?
違いだとか定義だとか機能なんて、判らないほうがどうかしてると思うんだが、差ってなによ
0656デフォルトの名無しさん2006/03/17(金) 03:03:41
まったくのゼロからC言語を勉強している者です。現在、10日でおぼえるという本を半分程度までやり終えたところです。
これが終わったらWindowsゲームプログラミングに移ろうかと考えていたのですが、
その前に「独習C」の方もやったほうがよろしいのでしょうか?教えてください。
0657デフォルトの名無しさん2006/03/17(金) 04:48:44
>>656
やったほうがいいです
そして次の本へいくまえにアルゴリズムとデータ構造について学んでください
0658デフォルトの名無しさん2006/03/17(金) 05:10:41
ソート(他のアルゴリズムでも)の解説を聞いて
「何でこんなことするんだ」と言ってるレベルなら
10日で…を繰り返しやった方が
慣れるまで時間がかかる
0659デフォルトの名無しさん2006/03/17(金) 05:13:54
>>657
わかりました。できれば具体的な書籍名など挙げていただけると助かります。>アルゴリズムとデータ構造
0660デフォルトの名無しさん2006/03/17(金) 05:19:44
>>659
http://www.amazon.co.jp/exec/obidos/ASIN/4797324198/
0661デフォルトの名無しさん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;
}
06626612006/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言語入門用の本から抜き出したサンプルプログラムをちょこっといじったもの
0663http://www.vector.co.jp/soft/win95/util/se072729.html2006/03/18(土) 19:05:52
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
0664デフォルトの名無しさん2006/03/18(土) 19:08:51
>>663
死ねカス
0665デフォルトの名無しさん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;
}
0666デフォルトの名無しさん2006/03/19(日) 20:51:01
#include<stdio.h>

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

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

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

char *i = "2ch";

こういうのを例題とかで見るんですけど、配列との違いがいまいち理解できない・・・
0670デフォルトの名無しさん 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;っていう風に書くのであーる
0671デフォルトの名無しさん2006/03/20(月) 03:14:23
ありがとうございます。なんとなくわかりました。
0672デフォルトの名無しさん2006/03/20(月) 08:20:18
>>670
ところがどっこいC++ではchar* iと書きたくなる。
少なくとも俺はそうだった。
0673デフォルトの名無しさん2006/03/21(火) 10:51:36
そうだったのであ〜る
0674デフォルトの名無しさん2006/05/17(水) 08:46:40
問題文:「異なるn個の物からr個とる組合せ」をすべて表示し 
さらに、その順列(並び替え?)を組み合わせごとにすべて表示するプログラムを作れ 

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

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

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

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

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

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

#include "stdio.h"

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

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

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

とりあえず

set

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

X^2+3X+2=0のような方程式を解く関数を作りたい。
引数には、X^2の係数、Xの係数、数、の3つを入れる。
この関数の戻り値はどのようなものにすればよいか。
また、この関数を作れ。
0698デフォルトの名無しさん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);
}
0699デフォルトの名無しさん2006/07/31(月) 05:06:25
複素数でも答え出るといいな
0700デフォルトの名無しさん2006/09/29(金) 17:23:29
たまにはage
0701デフォルトの名無しさん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");
}
0702デフォルトの名無しさん2006/10/14(土) 04:17:35
問題

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

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

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

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

みたいなことやってる
0717デフォルトの名無しさん2006/12/07(木) 09:09:43
>>715
四捨五入なんだし、誤差の範囲ないで問題ない。
気になるなら有効数字を一つ増やしてくれ
07187152006/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;
}
0719デフォルトの名無しさん2006/12/24(日) 04:27:01
保守しとくか。
0720デフォルトの名無しさん2007/02/01(木) 00:21:22
hosyu
0721デフォルトの名無しさん2007/02/24(土) 13:08:55
保守
0722デフォルトの名無しさん2007/03/05(月) 14:50:46
今C言語を使って住所録のようなものを作っているのですが
あるところで手詰まってしまいました。

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

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

このような仕様で作っていこうと思っていたのですが
削除と編集がうまくいかなく、困っています。
07237222007/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の内容が全部でません。
お前なんか勘違いしてんぞ?ってところがありましたらご指導ください。
0724デフォルトの名無しさん2007/03/05(月) 15:54:03
連続したダブルクオートはどう解釈されるのでしょうか?
char *s = "Hello ""World";
printf( "Minasan ""konnitiwa\n" );
はそれぞれ、
char *s = "Hello World";
printf( "Minasan konnitiwa\n" );
と同じになる様ですが、どういった規約でそうなるのでしょうか?
0725デフォルトの名無しさん2007/03/05(月) 16:01:22
>>724
うん
0726デフォルトの名無しさん2007/03/05(月) 16:22:09
連続した文字列リテラルは連結されるという規則がある。
const char *s = "hello, " "world";
⇒const char *s = "hello, world";
07277242007/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); の様に文字数を制限するべき。
0728852007/03/08(木) 10:50:42
>>727
fseek関数で解決しました。
今度は削除ですが、削除したいデータを次のデータで上書きする
といった感じでやとうと思ったのですが、それだと最後のデータを削除できません。
何かいい方法ないですか?
0729デフォルトの名無しさん2007/03/08(木) 11:10:35
>>728
上書きというより改変コピーしてるだけだぜ
一時ファイルを使って作業して、最後に元のファイルと置き換えると吉
0730852007/03/08(木) 15:49:04
んーとまず、削除したいデータを受け取って
そのデータのレコードに来るまで、元のデータを出力していき
削除したいデータのレコードと重なったら、そいつを飛ばして
次のデータから出力していけばいいって事かな?
0731デフォルトの名無しさん2007/05/22(火) 03:10:25
まだこのスレ生きてるの?
0732デフォルトの名無しさん2007/05/22(火) 19:53:49
さあ?
0733デフォルトの名無しさん2007/06/10(日) 23:36:39
死んでるな
0734デフォルトの名無しさん2007/07/26(木) 02:52:46
5年前のスレか・・・
>>1は今何をしているのだろう。
>>2は? >>3は?>>4は?
何をしているんだろう?
0735デフォルトの名無しさん2007/08/25(土) 20:34:12
わけもなく切なくなるじゃないか。
0736デフォルトの名無しさん2007/08/25(土) 21:11:19
でもそんなの関係ねぇ!
そんなの関係ねぇ!
0737デフォルトの名無しさん2007/09/11(火) 18:06:45
C言語で何かアプリケーションを作成したい時、ソフトは何を使えばいいですか?
ちなみにOSはWindowsXPを使っています
0738デフォルトの名無しさん2007/09/11(火) 18:35:24
誤爆・・・
0739デフォルトの名無しさん2007/09/11(火) 19:06:59
ニート向けの入門プログラムを思いついた
// C言語
#include<stdio.h>
int main(){
printf("Hallo Work!");
return 0;
}
// BASIC
GOTO HALLOWORK
0740デフォルトの名無しさん2007/09/13(木) 13:20:01
halloかよ!
0741デフォルトの名無しさん2007/09/18(火) 00:57:16
環境はWindows Vista
Borland C++ コンパイラ 5.5
BCC Developer なんですが

コンパイルしても実行ファイルができません。
cppファイルがオープン出来ないと出ます。
PATHが取得できないと設定の時点で出ていたのですが
それが原因でしょうか?
初心者すぎて自害したいくらいですが誰か助けてください。
0742デフォルトの名無しさん2007/09/20(木) 04:39:23
>>741
PATHの設定をして下さい
0743デフォルトの名無しさん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 指令の位置が誤っている
みたいなエラーがでました。
わかる方いたら宜しくお願いします。
07447412007/09/23(日) 22:03:47
どうやらVistaではBorland C++ Compilerは使えないようです。
とりあえずありがとうございました。
0745デフォルトの名無しさん2007/09/23(日) 22:11:00
>>744
13年前のソフトは動くのに数年前のコンパイラは動かないのか
0746デフォルトの名無しさん2007/09/24(月) 22:02:47
BCCとVistaでググってたら
BCCはVistaでうまく設定出来ないからC++ Express Edition使えって
文書があった。
0747デフォルトの名無しさん2007/09/26(水) 20:00:20
Visualを省略するなw
0748デフォルトの名無しさん2007/10/18(木) 01:37:46
ポインタが全然理解できません。
0749デフォルトの名無しさん2007/10/18(木) 01:39:40
そうですか
0750デフォルトの名無しさん2007/10/18(木) 02:35:14
説明するのも難しいですポインタ…
しいていうならメモリ上でデータを記憶している場所を指すものです。
ただ、普通一般のコンピュータはデータとプログラムが同じメモリ上に記録
されているから扱いを間違えると大変なことになる。
(プログラムやOSの一部を書き換えると大変なことになりかねない)
0751デフォルトの名無しさん2007/10/18(木) 18:59:10
流石に今時のまともなOSなら、本当にだめなとこを触ろうとすると拒否してくる。
0752デフォルトの名無しさん2007/10/18(木) 19:01:52
流石に今時のまともなOSなら、本当にだめなとこを触ろうとすると拒否してくる。
0753デフォルトの名無しさん2007/10/18(木) 19:06:08
流石に今時のまともなOLなら、本当にだめなとこを触ろうとすると拒否してくる。
0754デフォルトの名無しさん2007/10/18(木) 22:11:15
ポインタは単純だぞ
ただ使われ方が単純じゃないだけだが
0755デフォルトの名無しさん2007/10/19(金) 21:26:51
float a;
a=1;
でaをプリントすると
1072693248っていう数がでてくる。
これってどういうこと?
0756デフォルトの名無しさん2007/10/19(金) 21:36:53
>>755
バグをバグと認めなさいということ
0757デフォルトの名無しさん2007/10/20(土) 00:35:58
> aをプリント
どうやってる?
(そこに間違いがある)
0758デフォルトの名無しさん2007/10/20(土) 00:41:42
>>753

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

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

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

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

素直にググリましょう。

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

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

飾り
0775デフォルトの名無しさん2007/11/05(月) 15:30:03
固定文字列なら puts() で書けよ。
0776デフォルトの名無しさん2007/11/06(火) 15:47:46
次は
0777デフォルトの名無しさん2007/11/06(火) 15:48:34
777ゲット!
0778デフォルトの名無しさん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を戻り値にする)。また関数は、もし交点が
有限個存在するならばそれらの交点の座標値をメイン関数に渡す。メイン関数は関数
から得たこれらの情報を得て、交点の個数を画面に表示し、さらにもし交点が有限個
存在するならばそれらの座標値を画面に表示する。そのようなプログラムを作成せよ。


プログラミングさっぱりわからん・・・
0779デフォルトの名無しさん2007/11/13(火) 17:12:29
>>778スレチ
http://pc11.2ch.net/test/read.cgi/tech/1194262698/
0780デフォルトの名無しさん2007/11/13(火) 17:25:45
わかんないのはプログラミングだけ?
0781デフォルトの名無しさん2007/11/13(火) 22:13:37
>>779
こんなスレがあるとは・・・誘導サンクス
0782デフォルトの名無しさん2007/11/30(金) 17:06:47
文字列を逆にして返す関数を作りたいのですが
どうやったら逆にコピーできるんですか?
誰か教えてください
0783デフォルトの名無しさん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;
}

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

と思ったけどブラウザで開いたら解った
C/C++の宿題を片付けます 99代目
せっかく書いたのでこのまま送信
0785デフォルトの名無しさん2008/05/10(土) 04:35:18
kaiware
0786デフォルトの名無しさん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--:
}
0787デフォルトの名無しさん2008/07/23(水) 07:17:49
すいませんスレチかもしれないですが質問させて下さい。
今年で21になるのですが今から専門学校に通ったりしてプログラムの
勉強を始めるのは遅すぎるでしょうか?
1からのスタートになるのでどうしようか迷っています。
0788デフォルトの名無しさん2008/07/23(水) 08:28:14
プログラムを勉強するのに専門学校は必要ない
独学で十分
0789デフォルトの名無しさん2008/07/23(水) 10:40:25
>>787
間に合わない事はない。
ただ、専門学校行くかどうかは別として基本情報技術者程度の知識は持っておけ。
0790デフォルトの名無しさん2008/07/24(木) 11:04:57
IT関連の専門学校の実態は、学生と講師の只の既成事実作成だからなぁ。
0791デフォルトの名無しさん2008/07/25(金) 01:55:41
>>787
遅くはないし、けど専門学校に通うほどのもんではない。
ただ、学習だけに時間をさけて、質問すれば確実に答えを
返してくれる環境というのはうらやましいような気も。

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

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

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

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

0801デフォルトの名無しさん2008/10/14(火) 23:13:43
つif
つelse
つ<=
つprintf
0802デフォルトの名無しさん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と付けてくれるの
0803デフォルトの名無しさん2008/10/15(水) 09:24:31
コマンドラインはmain関数に渡される
int main(int argc, char *:argv) { ... }
0804デフォルトの名無しさん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]);
}
0805デフォルトの名無しさん2008/10/16(木) 19:52:15
>>804
キモ過ぎるwww
0806デフォルトの名無しさん2008/10/16(木) 22:03:48
いや、漏れマジでこういうソース書いたことある。
0807デフォルトの名無しさん2008/10/16(木) 22:22:24
まあ、速度稼ぐために表引きにすることはあるな。

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

そんで実行時に下限が違うところだけ
表を修正すればもっと速くなるぞw
0809デフォルトの名無しさん2009/06/06(土) 11:28:31
こんな規模のソース書いてるスキルで速度なんか気にするなよ
0810デフォルトの名無しさん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);
}
0811デフォルトの名無しさん2009/06/15(月) 03:14:05
"DCBA"[rank] とかやらないの?w
0812デフォルトの名無しさん2009/06/15(月) 04:52:19
最近知ったばかりか。自慢したくなるのも無理はない。
そんなのGNUのなんか(サウンド関係だった気がする)のソースで見て以来いくつかの糞本で何度か見かけたくらいだよ。

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

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

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

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

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

http://windows.microsoft.com/ja-JP/windows-vista/Command-Prompt-frequently-asked-questions
0836デフォルトの名無しさん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");
0837デフォルトの名無しさん2012/01/28(土) 02:03:05.16
console.jsをスタートにドラッグしてドロップ
スタートから選択すればコマンドプロンプトがでる
0838デフォルトの名無しさん2012/01/30(月) 19:47:53.43
>>834
つ[getchar();]

gets()を使うのはお勧めできない。
0839デフォルトの名無しさん2012/01/31(火) 21:24:43.10
putsってなんかエロいな
0840デフォルトの名無しさん2012/03/01(木) 23:42:12.92
stdio.hをstudio.hだと思ってた香具師(´・ω・`)ノ挙手
0841デフォルトの名無しさん2012/03/02(金) 20:22:40.27
ノシ
一番最初にCのソース見たときだけだけど
0842デフォルトの名無しさん2012/03/03(土) 21:59:16.39
Cより先に他の言語でSTDINやSTDOUTって単語を見てたから、最初から「ああ両方纏めたのね」だったな
まあでもstudioっぽいとは思ったw
0843デフォルトの名無しさん2012/03/20(火) 07:15:57.90
【世論調査】 「戦争放棄」憲法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
■ このスレッドは過去ログ倉庫に格納されています