C言語を勉強しようと思うのですが、
何からやっていいのかわかりません。
そこで、C言語をいじったことのある人は
まず最初になにをやったかを
教えていただけたら、と思います。
よろしくお願いします。
まず、2ゲトをやりませう。
3 :
デフォルトの名無しさん:02/09/07 14:04
3333333333333333
printf文
for文
if文
6 :
デフォルトの名無しさん:02/09/07 14:08
はろーわーるど
言語記号のC性から勉強しなさい
printf文とか言っているあたりだめな気がする。
>>7 C性ってなんですか?
すみません。わかんないです。
>>8 本はなんか用語だらけでちょっと…って感じなんですが。
やっぱり本しかないんかなぁ。
12 :
デフォルトの名無しさん:02/09/07 14:14
#include <stdio.h>
int main( ) {
printf("Hello World\n");
return 0;
}
これからだな。
コンパイルして実行。
終了
>>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の雑誌はないと思われ。
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
24 :
デフォルトの名無しさん:02/09/07 14:21
むしろC#からやるのも(以下略)
25 :
フレッシャーズ:02/09/07 14:23
「C言語なら、俺に聞け! <31> 」
出来ていたのですね。
26 :
デフォルトの名無しさん:02/09/07 14:23
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
まず全裸になり、自分の尻を両手でバンバン叩きながら白目をむき
「びっくりするほどC言語!びっくりするほどC言語!」
とハイトーンで連呼しながらベットを昇り降りする
これを10分程続けると妙な脱力感に襲われ、Cがわかった気分に浸れる
わわっ…
この前買ったCの本を読んでるうちに
こんなにレスが…
みなさま、ありがとうございます!
>>39 とりあえずガラナ飲みましたが。
活性化!活性化!!
>>42 まじッスか!?(w
(´-`).。oO(Cの前にPerlとかやると (以下自粛) );
/*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*/// こんなプログラムはどうだ!デクリメント使っていることは、気にしない気にしない
うっ、字下げが反映されなかった・・・鬱
その為にコメント入れたつもりだったのに駄目なのね。
  試 試
#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;
^
あげ
単発質問に答えてはいけません。
単発厨に示しがつきません。
また調子に乗って厨が同じようなスレを立て始めます。
単発質問スレは他のスレへ誘導するか無視してください。
まずは写真だな。うぷしる!
55 :
OPENFILENAME ofn;:02/09/08 22:54
char s[];
s=ofn.lpstrFile;
'char *' から 'char []' に変換することはできません。(新しい動作 ; ヘルプを参照)
と怒られるんですが,いろいろキャストしてもダメ.
sへ代入するにはどうしたら?
つうか、もうこのスレ削除依頼出した方がいいんじゃない?
明らかに単発質問スレだし・・・
age
配列とポインタ♪
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
>>77 かまうな。そこらじゅうでコピペしてるアフォだよ。
79 :
デフォルトの名無しさん:02/12/14 19:41
ネタ無しage
むしろC#からやるのも(以下略)
モナーって最初耳丸かったよね?よね?よね?
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を提出することがある。
>>104 IP保存しちゃ匿名性が保たれないだろう。
======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
ロビー、なんでもあり、厨房、最悪、学歴、人権問題
関係ない人からばっかりかかってくるよ!
無償コンパイラーが使えないっす
産経新聞には「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!!
(^^)
前スレ上げちまったから
こっち上げるぞ。
(^^)
(^^)
122 :
デフォルトの名無しさん:03/02/23 11:16
こういう人がいるから、しょぼいプログラマでも給料がもらえるんだな
今日はじめて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乗ともなると、答えがおかしくなります。
どこを修正したらよいでしょうか?
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禁止とか、グローバル変数止めるとか・・・。
まー、今だから言えることは、
変数と配列の概念を覚えて次はポインタとの違いをきちんと把握する。
後は場数だ。小ネタでも良いからコード書きまくるのだ。
他人のソース見るのもいいぞ。
(^^)
ゲー専出身より、ゲー先いかずにフリーでソフト公開してる奴の方が使ってくれるよ
フリーでソフト公開する方がずっと大変だから当然でしょう。
135 :
デフォルトの名無しさん:03/05/02 19:48
お勧めのアセンブラはなんですか?
TASM
”while ”を用いたフィナボッチ数列。
最大値は最初にキーボードより入力
の模範解答キボンヌ。
最適な代入演算式がかけないモレは馬鹿。
フィナボッチ数列を表示する
コードって事でおながいします。
いいですよ
>>139 ただし、そこらじゅうのサイトでネタとして使われてますが
いいですか??
>>137 イギリス紳士も裸足で逃げ出して、ギャフンと言う
スーパージェントルメェンの私が指摘してしんぜませう。
イタリアンの”FIBONACCI”の著書の出てきたのが語源。
FIBONACCIの名を挙げ、フィボナッチ数列と呼んでるサイトは多々あるが
FIBONACCIの名とフィナボッチ数列の呼び方のサイトは
我輩のgoogle術ではたったの2件しかヒットしなかった。
よもや単発単語検索で”そこらじゅうのサイト”と言うのではあるまいな?
動くかどうか調べてない&初項と次項はループ外
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;
}
>>142 いやいや、間違えたのはモレだけじゃなかったんだと
少し安心しただけです・・。 ”フィナボッチ数列”単発単語検索
ですた・・。もっと勉強します。。
>>143 参考になります。サンクスコ
m(。_。;))m ペコペコ…
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で質問すると逆に混乱する罠。
159 :
bloom: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
すいませんと思うなら、聞くなよ。
>ところで、このソースはある本のものなんですが、
beki関数のyの値にはmain関数のiの値が
入ってるということでいいんですよね?
いいんです。
その本は捨てた方がいいね。K&Rに汁!
あ・・・できました。 "" じゃなくて ''で囲まなきゃ・・・あぁ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)も作れよ。って話だろ。
∧_∧
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
175 :
デフォルトの名無しさん:03/06/02 19:38
/*最初はこんなことやりましょう*/
#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 してくれ。
age
184 :
デフォルトの名無しさん:03/06/21 19:00
>>182のいうとおり、動いているからそういうメッセージが出たわけで。
>>182,184
目からフェイズシフト装甲が落ちますた。
Cで「CSVファイル」の 「行」 と 「列」 を入れ替えたいのですが
サンプルプログラム等をご存知の方いらっしゃいましたら是非教えてください。
よろしくお願いいたします。
こんばんは。C言語初心者のゆみこと申します。
Cを使って「CSVファイル」の 「行」 と 「列」 を入れ替えたいのですが
サンプルプログラム等をご存知の方いらっしゃいましたら是非教えてください。
よろしくお願いいたします。
あー、はいはい。
あー、チェンジ!
しるかアホアホ
>>185 PSダウンはマズイ。
Nジャマーキャンセラーを搭載しる!
とりあえず,2分木を使ったソートプログラムをつくれ
勉強になると思う。
こんにちは世界と100回唱えた。
194 :
デフォルトの名無しさん:03/07/16 02:45
望洋タンの本の入門編読む。
↓
ポインタのこみいった部分が良く分からんかったので
前橋タンの「ポインタ完全制覇」でわからんところを読む。
↓
基本は分かった。
↓
K&RとC言語FAQを見つつ、
「プログラミング作法」
の問題を解く。
こんな感じで勉強した。
我ながら中々無駄の無い勉強をしたと思う。
プログラミングなんてしたことなかったが
とりあえず常識は身についたか。
196 :
デフォルトの名無しさん:03/07/16 08:31
誰か超初心者のための入門書を紹介して下さい
「作ってわかるCプログラミング」という
大変すばらしい本がありますよ。
>197
ありがとー。探してみますね!
199 :
デフォルトの名無しさん:03/07/19 11:48
C言語って、累乗の記号が無いから不便だな。
200 :
デフォルトの名無しさん:03/07/19 11:50
>>199 お前VBプログラマか?
演算子と言ってください
pow使え
はじ めの はじ めの だい いっ ぽ
(^^)
(⌒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でパターンマッチングをどうやるか教えてください。簡単なプログラムを載せてくれるとありがたいです。
くやしいから言うけど、みんなはじめは素人だというでしょう。 あのう、英検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");
}
はじめまして、Cを覚えたいんですが、無料で使えるコンパイラでおすすめを教えてください。
チャットの、補助ソフトを作りたいんですが、コンパイラ以外に何が必要ですか?
(入室の監視や、プロフを参照して自動書き込みするような・・・)
今日からアスキーの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言語専門課程とかいう(うろ覚え)本があったからそれを買いなさい。
立ち読みしたらなかなかよかったから。
234 :
デフォルトの名無しさん:03/09/19 12:06
>>42 おかげでC言語をマスターできました
マジでありがとう
>>42 C言語はコレなしでは語れないね
僕もコレでマスターしたクチです。
238 :
デフォルトの名無しさん:03/10/10 05:11
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 もう少し日本語やコンピュータを勉強しようね。
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関数学びなさい.
>>247 ついでにいうとGDIで基本的なことはサポートされている(Bezier曲線とか図形など)
数学の知識があればある程度自由に書ける.
ただし, 正確さや簡素さを求めるとマッピングモードだったり余計なことが混ざるから
結局は基本的なwin32の知識が必要になってくるかもしれない.
3次元や動的なGraphics表現したいならDirectX使うしか道は無いな.
おせっかいかもしれないが,一応言っておくと
「静的な表現だけでいい」 -> 簡単なwin32本(なんでもいいかも)
「もっと極めたい」 -> win32 && C++ && DirectX
後者はとてつもなく茨の道だが, やりたいのならガッツリやっていくしかないな.
win32マジメにやりたいならpetzoldのプログラミングwindowsがお勧め.
クリックしても何にも起こんないか、
エラーが出るかのどっちかなんだよ。
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に答えてくれてありがとう!勉強になりました!
C言語プログラミング 始めるには WINDOWS OSインストールされたパソコンがあれば十分なのでしょうか?
プログラムを組むために必要なソフトウエアは無償のモノがあるのでしょうか?
269 :
デフォルトの名無しさん:04/04/08 22:11
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
276 :
デフォルトの名無しさん:04/05/07 03:00
未経験者がいきなりCか・・・
いきなり難解な物やらせて「即挫折」より
ひまわりとかHSPに誘導した方がいいんじゃねーの?
277 :
デフォルトの名無しさん:04/05/07 03:04
いまさらCやってもな。C++にしとけ。
未経験者がいきなりC++か・・・
いきなり難解な物やらせて「即挫折」より
ひまわりとかHSPに誘導した方がいいんじゃねーの?
むしろインタープリタなぱぁるとかが吉
280 :
デフォルトの名無しさん:04/05/07 03:10
>まず最初になにをやったかを
生が一番
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つすすんだんだけど常識?
配列の配列だし?
\_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
すみません、構造体に関数って含めますか?
同時並行で色々勉強しなきゃいけなくて、頭が混乱気味です。
関数ポインタをメンバに持たせることはできる。
なんか、見て面白いプログラムないですか?
アニメーションで、歩いてる人がパッタとこけるとか・・・・
ちょっと笑いがとれそうなやつ★
簡単なやつでもなんでもいいんで
298 :
デフォルトの名無しさん:04/06/27 18:05
299 :
デフォルトの名無しさん:04/06/27 18:07
>>297 IOCCCのページに行って
anderson.c を拾ってくるといいよ。
>>296 ああ、関数ポインタをメンバに。
そっか。ありがとうございます!
301 :
デフォルトの名無しさん:04/06/27 22:02
>>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のプログラミング成功しましたです。^^
>306
...MS-Windowsだったのか
308 :
デフォルトの名無しさん:04/08/12 04:55
いや〜しかし、C言語とても面白いですね。
まだ3つしかやってませんがとても面白くてはまってしまいました。
みなさんは入門書などを一通りやった後は
どのようなこと、どのようなもので
知識や技術を増やしていったんでしょうか?
よろしければ教えてください
作りたいものを作った。
特に作りたいわけじゃないものを作って金をもらった。
その過程で知識は勝手についてくるものだ。
>>1 ただ質問をするだけにスレを立てるのはスレが乱立して非常に迷惑になるんだが。
質問なら既存のスレがいくらでもあると思うんだが、
それには目を通してみたのか?
スゲー俺も2年前のレスにマジレスしてーよー
315 :
デフォルトの名無しさん:04/08/13 00:08
316 :
デフォルトの名無しさん:04/08/13 01:12
>>309 ポインタと構造体で確実につまずくから、
それにもめげずにがんばってくれ。
317 :
デフォルトの名無しさん:04/08/13 04:47
ポインタと構造体ですかぁ。今は何をいっているかわからないのですが
この2日間で覚えた関数は2つだけでしてprinftとscanfです。
これで電卓みたいな事ができてとても感激しています。
,これ一つ入れなかっただけでエラー起こしたりして大変でしたがとても面白いと思います。
ポインタと構造体もがんばってやってみたいと思います。
スゲー俺も自作自演のレスにマジレスしてーよー
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ならなんでも出来るんでしょ?
笑っていると、痛い目にあいますよ。
ぬるぽウイルスって何
ここは初心者の館だな
#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
とりあえず死ねよ
336 :
デフォルトの名無しさん:04/10/04 19:50:33
CとC++ってどう違うのですか?
「はじめてのC」で勉強はじめようと思っていたのですが。
Cなんて覚える必要ないよ
初心者ならC++からで
>>336 C :手続き指向
C++:オブジェクト指向
ただC++はCを元にしているので当然C++で手続き指向のプログラムを作れるし、
〜指向ってのは物事の考え方に過ぎないからCでオブジェクト指向プログラミングをする事もできる。
339 :
デフォルトの名無しさん:04/10/04 23:06:40
すいませんよく分からないので質問。
よくプログラムの最後に return 0; とつけるけど0になんの意味があるの?9とか8とかほかの数字や文字や関数をつけたらどうなる?
>>339 最後の 0 は、大抵の OS では「正常終了」を意味すると合意が得られている(らしい)。
8 や 9 を返した場合、何が起こるかは、その戻り値を使うアプリに依存。
文字、例えば 'a' を返すと、きっと外部に 0x61 を渡す事が出来るかもね。
文字列を返そうとすると、コンパイラに弾かれないかな?
よしんば return (int)"hoge"; としても、外部アプリには "hoge" は届かないはず。
return func(); とすれば、func() の結果が返る。
ちなみに C++ では、main() の return を省略できる。
その場合、return 0 されたものと扱われる。
>>339 親プロセスで返り値を見ることができる。
342 :
デフォルトの名無しさん:04/10/04 23:30:42
>>340 通常EXIT_SUCCESSかEXIT_FAILUREを返せばよい
343 :
デフォルトの名無しさん:04/10/04 23:48:58
PICでの極々簡単なメカ制御がしたくて勉強始めたんだけど、なんかprintfとかの実例ばっかりで、現実感が沸きません。勉強の方向性まちがってますかね?
ボーランドC++のコンパイラ入れたんですけど、テキストはCです。
都合悪いでしょうか?
モウマンタイ
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を実行すると、ちゃんと表示されます。
この警告って無視っていいのでしょうか?
#include <stdio.h>
main()
{
printf("おはようございます。\n");
printf("Good Morning\n");
printf("GOOD MORNING\n");
printf(" \n");
printf("123456\n");
return 0;
}
>>348さま
ありがとうございます。警告出なくなりました。
テキストにはreturn 0は載ってなかったな。
これってCとC++の違いなのでしょうか?
C++でも警告出るよ。
戻り値の型を省略すると、
int main()
{
...
}
にしたのと同じ。
どうしても return 使いたくなければ、
void main()
{
...
}
>>350さま
テキストはC++じゃなくCなんですが、コンパイラはボーランドC++なんです。
で、return 0入れて、警告出ないのがC++コンパイラだと思っておりました。
(テキストではreturn 0なんてなかったですし、エラーなんて出ておりませ
んでしたので。)
ちなみに今日の夕方から情報集めてボーランドC++いれて
Cの勉強はじめております。いつ一冊終わるかなぁ。とりあえず、
何も考えずにやってみよっと。
で、戻り値とかよくわかんないっす。int も void もまだわからんす。
明日の勉強で追いつけるかどうかわかんないですけど、頑張り松。
BCBのコンパイラではPICのクロスコンパイルはできませんよ。
353 :
困りん坊主:04/10/05 14:01:26
キーボードからいくつかの整数を読み込み、棒グラフを作成するプログラムをどなたか作ってください。
*配列も使ってください。
データを入力してください:10 ←数の入力中
データを入力してください:5
データを入力してください:-1 ←マイナスの数を入力すると終了
2つのデータが入力されました。
棒グラフを作成します。
データ1 10 |**********
データ2 5 |*****
頼みますm(_ _)m
スレ違い
この板に宿題やってあげるスレがあったからそこ行け
355 :
困りん坊主:04/10/05 15:41:27
scanfで文字連続入力が出来ません。
fflush(stdin)をどこかのサイトで間違ってるけれど、最初はこれでもOKなんて書いてありました。
何をどうしているのでしょうか???
>>357 書式に合わない部分がバッファに残って誤動作するから scanf は使わない方が良い。
代わりに自前のバッファに一旦読み込んでからsscanfで処理する。具体的には、
char buf[256];
等を用意しておいて、
fgets(buf, 256, stdin);
sscanf(buf, "フォーマット文字列", &xx, &yy, &zz, ....);
とする。
えと、C言語勉強中だけど、一つ質問です。
:とか;とか,とかの使い方の法則ってあるでしょうか?
なんでswitchには:なの?とか
printfには;なのに、ifには何もつかないの?とか
疑問です。
362 :
デフォルトの名無しさん:04/10/17 04:58:33
; 文の終わりに付ける。
: ラベル名の後ろにつける。
ifは制御文なので後ろの文と合わせて1つの文となるからifの直後には何も付けない。
363 :
デフォルトの名無しさん:04/10/17 05:01:18
if(...){
}else{
};
↑ここの;がいらないのはなぜか?っていう意味かな?
>>361 while(...){...}
これは;不要
do{...}while(...);
これは;必要
365 :
デフォルトの名無しさん:04/10/17 06:02:13
>>363 そういう意味なら
{ 〜 } を ; が付いていないけどCでは複文という文の一種として扱われているから、が答えになる。
366 :
デフォルトの名無しさん:04/10/17 06:56:11
>>365 struct {
int a;
}
これでエラーになりましたが、なぜでしょう。。
int nen;
だと;が必要なのに、関数
int get_price(int nen)
{
}
だとなぜ;がいらないのでしょう?
>>366 { }にセミコロンが必要なんじゃなくて、structの宣言の終端にセミコロンが必要だから。
{ }に対してセミコロンが必要かどうか と勘違いしてないか?
>>365氏が言うように、{〜}は複数の文をまとめただけのものだから、
どこに使われるかでセミコロンが必要になるかは変わってくる。
原則としてCでは文の終端にセミコロンが必要だけど、例外として
制御文や関数等には必要ない。
それはC言語の構文規則でそう定義されているからで、
そういうものだと覚えるしかないと思う。
>>368 ネタにマジレス、お疲れ様です。
てか、こんなところに来てる暇あったら
「プログラミング言語C」でも読めよ。>質問者
条件を書く時ので困ってます。
例えばこんなかんじで。
「もし、2<x<5 または 9<x<100 の時」
ってどう書けばいいのでしょうか?
if(x>2 && x<5 || x>9 && x<100)
{〜}
ではいけないような気がします。
>>370 ()でくくればOK。
if((x>2 && x<5) || (x>9 && x<100))
{〜}
372 :
デフォルトの名無しさん:04/10/17 11:42:14
if(a==b)
hogehoge ←ここに;つけない
else
fugafuga; ←ここには;つける(文の終わりだから)
っていう言語もあったような?
>>370 if(!(x <= 2 || (x >= 5 && x <= 9) || x >= 100))
{〜}
371さま、373さま、回答ありがとうございます。
要はわかんなかった事が、ifの()の中をさらに()でくくる事ができるという事を知らなかったという事でした。
持ってるテキストに載ってなかったもので(^^;)
それにしても:やら;やらややこしいですね。
仕様だと思ってとりあえず丸覚えしていって、そのうち法則みたいなのがわかるようになるでしょうか?
>>374 そのテキスト捨てた方が良い
タイトル言ってみ?
C言語超入門
セミコロン( ; )を文の終わりにつけるというより、構文的にはこう決められているからとしか言えない。
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
ポインタってのがやっと分かったと思ったら、もっと分からない構造体ってのが出てきちゃった。
ポインタより構造体の方がはるかに分かりやすいが
はっきり言ってどっちもオナニーより簡単
C++のテキストは何がいいんでしょうか?
>>387 私の経緯から考えるとC++のテキストは一冊では全く事足りない。
最低5冊は読まないとダメかもよ
文法事項はその辺の参考書で事足りるだろうけど、使いこなそうと思ったら
最低EffectiveC++, MoreEffectiveC++
STLを使うならEffectiveSTL
Templateを使うならModernC++Design
参考としてExceptionalC++等々
あとオブジェクト指向の解説本も入れたら出費が(´Д`)
>>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
型を身に着けるべきだと思う。
ほとんどの処理は、型があるから、それを覚えてしまえば、それなりの物は書ける。
自分も初心者です。がんばりましょう。
型から入って失敗した奴を何人も知っている
397 :
デフォルトの名無しさん:04/11/28 13:40:14
398 :
デフォルトの名無しさん:04/11/28 17:48:11
age
基本書読むだろ?ポインタが理解出来るくらいにまでなる。
で、なにか簡単なプログラムのソースを見るんだよ。俺の場合は雑誌に付いてたメモ帳だった気がする。
見ながらいじってみて変化を確認して。みたいな感じで覚えていくんだよ。
なれてきたら自分で作るものにあわせて、中級〜上級者向けの本読むとかすればいい。
今日からC勉強しようと思うのですが。なにかいい参考書ってありますか?
もししっているのならば教えてもらいたいのですが・・・。
なにぶん初心者なので、わかりやすいけど、内容が深いものがいいです。
>>400 倉薫 著
C言語 (全2巻)
がわかりやすかった。プログラミング初心者向け。
>>403 必ず立ち読みして、自分にあっているかどうかを確かめたほうが良い。
405 :
デフォルトの名無しさん:04/11/29 23:35:49
>>405 読んだことないけど、全くの初心者なら倉薫の方がいいんじゃないかな?
初心者向きじゃないって言うレビューもあるし。
407 :
デフォルトの名無しさん:04/12/05 01:50:57
保守
ポインタ配列というのがイマイチ理解できない。
例えば
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文字分進めたアドレス?)
エロイ人、教えてください。
みんなCをマスターレベルになるまでどれくらいの時間かかったの?
>>410 私はドクターですが、4年かかりました。
>409
ありがとう
何度も聞かれて、うんざりかも知れませんが
「初めに勉強するのはC言語で良いのですか?」
Cは難しいと聞きますが、やり始めたらある程度までやる自身はあります。
ただ、無駄になるのが怖いのです。
使用目的はプログラムをある程度かじってから考える・・・、では駄目ですかね?
>>413 Cが難しいと言う人は単にコンピュータ言語そのものに慣れていないだけです。
コンピュータ言語それぞれの違いというのは些細なものですし、仮に、もし何か一つ
だけ覚えるなら何が良いか、と聞かれたら、私なら「Cが適当」(場合によってC++)
と答えるでしょう。
そして、もし2番目を選べるならLispでしょう。
それらはコンピュータ言語で良くあるタイプの、非常に良いコンビネーション、
手続き型と関数型、と言えます。
2つ以上の言語を覚えると、新たな言語を覚えるのは軽い気持ちで覚えられるでしょう。
コンピュータ言語の文法の複雑さはたかが知れているので、慣れてくると、一つの
ケースとして、あなたが見た事があるだろう言語はほとんど覚えているということ
もありえます。
>>414 ありがとうございます。
早速C言語から学んでみたいと思います。
416 :
デフォルトの名無しさん:04/12/19 07:34:29
Rubyだけで必要十分
417 :
デフォルトの名無しさん:04/12/27 00:27:54
age
とりあえずC言語に挑戦しようかと思うんですがメモ帳使えばいいんですか?
ゴバーク
メモ帳よりはサクラエディタが便利どす。
>>418 emacsに慣れた方がいいよ。
はっきりいって、全てemacs内で完結できるし。
windowsならmeadowかな。
xyzzyがおすすめですよ。
>>423 xyzzyは、meadowよりもWindowsに密着している風だから、使いやすいのだけど、
問題はemacs-lispの資産が使えないこと。
独自のlispを採用しているから、移植が面倒。
プログラミングを知らない人は使いたいスクリプトを移植することもできないだろう。
その点meadowはemacs-lispのスクリプトがそのまま動くから、emacsとほとんど同じ
ように使える。
結論として、meadowの方が良いと思う。
ここで秀丸とか言うと、
総叩きにあいそうだから黙っておくか
(⌒∧_∧ ,//∧_∧
バキィ!ヽ( ・∀・) :(⌒ミ( //(´∀` )
バキィ!!ヽ l| |l(:;;:( ドガァ!!///ヽ、 _`ヽゴスッ!!
('⌒;ヾ / '/ li| l!グシャァ!!\从从///'ミ_/ヽドゴッ!!
(⌒)y'⌒;ヾ从从(⌒〜∵;)´⌒`つ,;(´(´⌒;"'ボキボキボキッ
(´⌒ー- ;:#∧_;/// 彡(:::゜;。(;;;)、⌒从;;ノ・`⌒);
(´;⌒(´⌒;;' ~ヽと;;;;。#;;、ミ,,:,,;;;ヽ/ノ:#`""^ヾ⌒));
 ̄ ̄(´⌒;,(´,(゙゙゙'゛""゙゙)゙'';"(´⌒;,(´,(´⌒;)
↑
>>425
ホントにされるとは思わなんだ
xyzzy使いにも二通りあって、emacs使いの系統の人とマウス使いな人に分かれる。
後者は驚いたことに、殆ど全ての操作をマウスのみで行なっていた。
#いや、勿論入力はキーだが。カーソル移動もスクロールもマウスな訳だ。
charって
char x[10];
とか宣言するところですが、
char x;
ってやったらどうなるんですか?
一文字分の領域が確保される
なんかchar=文字列の格納場所というようにしてるけど
charに数字を入れたらバカにされた・・・
別に良いじゃん、仕事じゃ普通にやるし。
char=1バイトの領域としてみれば文字じゃなくても良いじゃん。
組み込み系では文字なんてあんまり扱わなかったんだよ。
・・・馬鹿にされてちょいと凹む今日この頃
>>432 確かに8ビットCPUなら常套手段だが、最近の32ビットCPUの場合速度的にもサイズ的にも却って不利だ。
char型文字列からchar型ポインタに文字列をコピーするにはどうしたらいいのでしょうか?
>>434 char型には文字列は入れられません。
char型ポインタにも文字列は入れられません。
俺語で語らずに用語を正しく。
>>435 翻訳してやろう。
char型配列に格納されている文字列を、char*型ポインタの示す先にコピーするには
どうしたら良いのでしょうか?
>>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を計算し、式と商と余りを表示するプログラムをつくりたいのにできない。
答えはわかってるんだけどなんでこれでできないのかわからないです。
教えてえろい人
printf("%d / %d = %d ... %d\n", 40, 13, 40 / 13, 40 % 13);
int a,b,c,d;
a = 40;
b = 13;
c = 40 / 13;
d = 40 % 13;
printf("%d ÷ %d = %d ・・・%d",a,b,c,d);
改行くらいしろよ
charの領域に4byte単位でデータを書き込みたいのですがよい方法はありますか?
例:
char data_byte[4] = { 0x11, 0x22, 0x33, 0x44};
long data_long = 0x88776655;
data_longをdata_byteに書き込んでdata_byteを
0x88, 0x77, 0x66, 0x55
にしたいのですが・・・
無理ですかね?
>>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;
int型の配列を返す関数ってできますか?
できる場合って、return (?)にすればいいんでしょうか?
>446
このスレはsage放置してください。
#include<malloc.h>
int* f(int n){
int*p=(int*)malloc(n*sizeof(int));
return p;
}
後でfree(p);を忘れずに。
やっとクイックソートが組めました
猫よりはどっちも良い感じ
sage放置にご協力を
452 :
デフォルトの名無しさん:05/01/28 19:09:56
猫が猿を教える時代だからな
すんません ちと初歩的な質問なんですが、、、
C言語って「文字列」を格納する変数のデータ型ってないんでしょうか?
文字型の配列
age
>>453 454の言う通り
char x[];
で格納できるよ
そのうち配列を覚えれば分かるようになると思うよ。
ちなみに、%sは文字列の出力は%s
ex.
printf("%s", "abc");
int *p[10]; int型(4バイト)を指示すポインタ配列要素数10
int (*p)[10]; int型配列要素数10(40バイト)を指示すポインタ
でいいのでしょうか?
int *p[10]; int型(4バイト)のポインタ配列要素数10
#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まで確保したところで止まるのですが、インクリメント回数は表示されません。
まだ確保出来ると処理を続けているのでしょうか?
>>460 こうすべき。
while(1)
{
p=(int *)malloc(sizeof(int));
if(p==(int*)NULL)
{
break;
}
p++,i++;
}
pをインクリメントすることに何か意味があるのか?
おお!表示されました。
132378282回でした。
これでfreeする場合は、
p=startで代入して最初に持ってきて、
p++で2回目のmallocを探せるのでしょうか?
んなあほな。
freeしたければexitしろ
質問です。
初心者レベルですがJavaについての知識はあります。
これからVS.netでC++を学んでみたいのですが、言語の文法を学ぶ場合、
はじめに、Cを学んでからステップアップしてC++を学ぶべきですか?
それとも、いきなりC++から学んでもいいのでしょうか。
>>468 レスありがとうございます。
この場合のCから始めるメリットとは何ですか?
>>469 Javaとの違いをはっきり認識するため。
質問させて下さい。
if(n>=3 && n<3)
と書いてしまった場合の処理はどうなるのでしょうか?
なんか普通に処理が進んでるんですけど・・・
>>472 常に偽ではあるが、問題なし。コンパイラと警告レベルによっては警告してくれないかな。
>>472 ただ単に if文が実行されず、常に飛ばされてるだけですよ。
char 型配列があったとして
if ( hoge[-1] == 'a' ){
・
・
・
}
としたらどうなるんですか?
>>475 例えば
char hage[10];
char * hoge = & hage[1];
ならば
hoge[-1]はhage[0]と同意です。
しかし、
char hoge[10];
に対していきなり
if (hoge[-1])
などとしてはいけません。
うーん、だったらじゃあ、特定の文字列(ここではbaka)を探したい時に、
if(hoge[n-3]=='b' && hoge[n-2]=='a' && hoge[n-1]=='k' && hoge[n]=='a')
{
return -1;
}
とかするときは、n >= 3 になってから探すようにするんですね。
ありがとうございます。
初歩的な質問ですが教えてください
#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);
と書くとコンパイルされないんですが
どうしてなんでしょう・・・
while(dat<9 || dat>9);
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したらちゃんと文字まで表示されてるし。
>>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型なのでしょうか?
a = a + 1; とか書く人ですか?
490 :
デフォルトの名無しさん:05/02/16 08:16:57
>>488 >なぜstrlenはエラーを返せないsize_t型なのでしょうか?
(´・ω・`)知らんがな。
strlenにC言語の文字配列を渡したらエラーにならんがな。
シグナルや例外はエラーとは違うがな。
>>488 まず strlen の「エラー」とは
どういう状況をいうのかを
考えてから書き込め。
バッファオーバーランとか
ぬるぽとか
なぜそういう仕様になっているのでしょうか?
495 :
デフォルトの名無しさん:05/02/16 10:47:02
ここで聞いたのが間違いだったなw
なぜ人間は空気がないと生きられないようになっているのでしょうか?
>>497 空気があることが前提のなって作られたからだろうな。
>>497 憶測で質問をするな。
本当に人間は空気がないと生きられないのか、
自分で実験したことでもあるのか?
501 :
デフォルトの名無しさん:05/02/17 14:53:49
未だにfopenのモードで r+ と w+ の使い方がわからないんですが。
"w+" ファイルを作成し、読み込み/書き込みの両方のモードで開きます
ファイルが存在している場合はその内容を破壊します
---------------------------------------------------------------------
"a+" 読み込み/書き込みモードの両方のモードで開きます
ファイルが存在する場合は追加、無い場合は作成します
んー、そうすると w と w+ は一緒ですか?
"w" 書き込みモードでファイルを開きます
ファイルがない場合は新しく作成し、存在している場合はその内容を破壊します
マニュアルなり仕様書なり、調べれば判ることをぐだぐだなにやってんねん。
保守します?
507 :
デフォルトの名無しさん:05/03/05 02:50:25
ほしゅしとく。
bcc使ってるんですが、関数を別々のファイルにわけてまとめてコンパイルする方法がわかりません。
>>508 bcc32 -ehoge *.h *.c
512 :
デフォルトの名無しさん:05/03/07 23:36:25
明日提出の課題あるんですけど、力になってもらえませんか?
514 :
デフォルトの名無しさん:05/03/16 04:21:22
保守。
515 :
デフォルトの名無しさん:05/03/17 18:50:15
保守
517 :
デフォルトの名無しさん:05/03/17 22:14:39
1から100までの自然数を素因数に分解して出力しなさい
誰かC言語でプログラム書いてもらえませんか?
嫌
519 :
デフォルトの名無しさん:05/03/19 18:16:42
本屋でみた「やさしいC」が入門書として良さそうだった。
完全に初めてで、挫折したくないという人には厚みが抵抗感ありそう。
ごく薄い入門本→「やさしいC」→何か作る が良さそう。
参考書的に「はじめてのC」使う。
520 :
ビギナー:05/03/19 18:24:35
良いC言語のエディタ無いですかね?無料で使いやすいのがいいです。
漏れはサクラエディタ使ってる。
>>520 vimとかカーソル移動とかページ送ったりするのが楽チンなのが良い
漏れはXyzzyを使っている。
お勧めは寧ろPeggy。
>>520 VisualStudio.net C++
初心者にはcpadが楽じゃないかな?
カンパウェアだけど。
526 :
デフォルトの名無しさん:int 2ch =05/04/01(金) 22:00:01
age
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分
531 :
529:2005/04/14(木) 21:09:51
>>530 そんなもんなんですか。
趣味として(独学なら大体そうなのかな)ですか?
532 :
デフォルトの名無しさん:2005/04/14(木) 22:56:09
C言語を扱えればプログラマーとして就職できますか?
>>532 のこぎりを扱えれば大工として就職できますか?
この質問に Yes/No で答えろ
その答えがおまえの質問の答えだ
534 :
532:2005/04/15(金) 07:06:40
明らかにNOですね。
アルゴリズムやハード・ソフトも必要だという事か
のこぎりが使えればプログラマーとして就職できますか?
536 :
デフォルトの名無しさん:2005/04/16(土) 00:47:01
>>535 C言語を扱えればプログラマーとして就職できますか?
この質問に Yes/No で答えろ
その答えがおまえの質問の答えだ
\
お そ .い ヽ
か の や |
し り ` ,. -──- 、
い .く / /⌒ i'⌒iヽ、
つ / ,.-'ゝ__,.・・_ノ-、ヽ
は i ‐'''ナ''ー-- ● =''''''リ _,....:-‐‐‐-.、
l -‐i''''~ニ-‐,....!....、ー`ナ `r'=、-、、:::::::ヽr_
 ̄ \ヽー' !. t´ r''"´、_,::、::::} ノ` ,.i'・ ,!_`,!::::::::::::ヽ
ヾ、 ゝゝ、,,ニ=====ニ/r'⌒; rー`ー' ,! リ::::::::::::ノ
i`''''y--- (,iテ‐,'i~´,ゝ'´  ̄ ̄ヽ` :::::::::::ノ
.| !、,............, i }'´ _ 、ー_',,...`::::ィ'
●、_!,ヽ-r⌒i-、ノ-''‐、 ゝ`ーt---''ヽ'''''''|`ーt-'つ
( `ーイ ゙i 丿 ;'-,' ,ノー''''{`' !゙ヽノ ,ヽ,
`ー--' --'` ̄ `ー't,´`ヽ;;;、,,,,,,___,) ヽ'-゙'"
(`ー':;;;;;;;;;;;;;;;ノ
``''''''``'''''´
>>535 俺はのこぎりを使えるプログラマだけど
プログラマとして就職していない
使えないプログラマをのこぎりで切っていいですか?
使えないプログラマはC言語で切ってください
むしろC++でぶっちぎっちゃって下さい。
Oをのこぎりで切って血が噴き出した様子がC++
543 :
デフォルトの名無しさん:2005/05/04(水) 21:27:20
それに絆創膏貼れば、C#か?
544 :
542:2005/05/04(水) 23:14:56
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);
としても何も表示されないんですが、どうしたら表示されるようになるでしょうか?
>>545 int hogehoge(char **array)
{
*array = malloc();
strcpy(*array, foo);
return 0;
}
あるいは戻り値を使っていないのならchar *を返す方法もある。
547 :
545:2005/05/26(木) 21:09:51
>>546 引数にどんなデータ型の配列も放り込めるようにするにはどうすればいいでしょうか?
そして任意のデータ型に変換して代入する、とか。。。
>>547 void **を引数にとるかvoid *を返すかする。
549 :
デフォルトの名無しさん:2005/05/26(木) 22:45:22
BCC Developer 使用
#include <stdio.h>
main()
{
printf("This is a test");
}
って打って コンパイルして メイクしてEXE作ると黒い画面が出て
すぐ終了してしまう・・・。 WHY?
↑やっぱ無視して
VC++とかBorland C++でCプログラムはコンパイルできますか?
>>551 両者とも出来る。
拡張子によってCとC++と切り替えてくれる。
554 :
デフォルトの名無しさん:2005/05/28(土) 17:31:13
いちいちインクルードする関数えらぶの面倒なんで
どんなプログラム作るときもとりあえず主要なの全部インクルードするようにしたらなんか不都合ある?
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
・
・
・
こんな感じで。
>>554 良んじゃね?
VCなんかでウィザード使うとそういうことするよ。
556 :
デフォルトの名無しさん:2005/05/28(土) 18:32:28
>>554 コンパイルに多少余計な時間がかかるようになるけどそれでもよければ。
558 :
デフォルトの名無しさん:2005/05/28(土) 18:43:53
自分もBCC使ってて
>>549の症状になったから
main()
{
printf("This is a test");
int i;
cin >>i;
return 0;
}
として黒い画面を出してるんだけど、もっとスマートな方法ありませんかね?
>>559 普通にコマンドプロンプトから起動すればいいだろ?
#include <stdlib.h>
system("pause");
>>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の方がいいんでしょうか?
断片化も起きないし…
>>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);
>>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);
こんな感じでどうでしょう?
>>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
>>568 俺はほぼ全関数のサンプル書いて実験した
それはそれは勉強になりました
>>567 realloc 失敗したときにリークしないか?
#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';
こうすると実行できない。なぜっすか?
char *hoge=NULL;
>>573 hogeが初期化されずに無効な領域を指しているから。
>>574>>575 ありがとうございました。
hogeが初期化されずに無効な領域を指しているというのがよくわかったようなわからないような。
確かに
char *hoge = NULL;
してからreallocするとエラー出ませんでした。
これは「 charへのポインタhogeはどこも指していませんよ」
っていう解釈でいいのでしょうか。
それに対してreallocして領域確保できるっていうのも不思議なんですが。
ちなみに、
char *hoge;
hoge = malloc(1);
hoge = realloc( hoge, 10);
ならできてしまうというのもよくわからないです。
うまい解説下さい。よろしくおねがいします。
>>576 realloc()は規格で最初の引数にNULLを渡しても問題なく動かなければならないと決められているから。
その最初の引数がNULLではない場合はmalloc()/calloc()/realloc()で呼び出したポインタを渡さなければならないと決められているから。
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() が失敗した場合には、元のブロックは変更されない。
つまり、解放されたり移動されたりはしない。
C言語厨って、なんであんなにポインタが大好きなの?
俺としては、使わないですむなら極力ポインタを使わないでほしい・・・
Cでポインタ使わないなんて、ちと想像できない。
最近の言語はオブジェクトを新規に生成する場合にはポインタという概念ではないが、
理論的に考えてすっきりするのはアドレスであり、それを扱うポインタが一番しっくり来
るのだが。もう古いのかな?
あー、Javaの参照型ってきっとポインタっぽいんだろうなーと想像。
Javaは明示的なポインタはないし、System.gc()で簡単に片付けられるから便利だよなーって思うけど、もっさりしてるのがやだな。
NullPointerExceptionもJava発祥。
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行以上表示できる方法を
知りたいのですが教えていただけないでしょうか?
少し変わったようだが、相変わらずそのままコンパイルできないコード乙。
つーか、puts()を並べるかループにしろと言う指摘は黙殺か?
>>585 ネタにマジレスか(ry
>>584 #include <stdio.h>
int main(void) {
int i;
for (i = 0; i < 10; ++i) puts("C language");
return 0;
}
>>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になるプログラムってどうすればいいんですか?わかる方いましたらお願いします。できるだけ初心者でも理解できるものでお願いします。
>>588 ポインタスレでも同じ質問してたろ。
マルチするやつには教えるかよ。
591 :
デフォルトの名無しさん:2005/07/07(木) 19:07:23
はい、すいません。書き込みしたりするの初めてだったのでしりませんでした、本当にすいません。
590 今回掲示板をみたのも初めてだったので一応はじめに検索したのですがあれだと授業でやってないことが多かったので聞かせてもらいました。わざわざリンクはって頂いたのにすいませんでした。
>>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;
}
まだ試してみてないっす。
593 :
592: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
ありがとうございます。ってか今度から本当に気をつけます。
C言語の第一歩はアセンブリにすべきだな。それがだめならJAVAとかに行く。
/* とりあえず2で割り切れるようだと0を返す */
if( num % 2 == 0 ){
return 0;
}
"2"の立場はどうする?
C言語ってなに?
2も素数だし。てか何で
>for( cnt = 3; cnt < num/2 ; cnt += 2 ){
そんなに大量に調べるんだ。
あ〜、あと1は素数“じゃない”から。
素数のヤシはとりあえず「エラトステネスのふるい」でググってこい
やだ
>>595 おれもはるか昔の話だけど、C始めたときはポケコンで
ハンドアセンブルでプログラム動かしたことがあったら、
何も困らんかったよ。
604 :
592:2005/07/17(日) 11:23:27
>>601 調べてきました。
なるほど。
昔の人の優れたアルゴリズムがあったわけですね。
あと1は素数じゃないとか2は素数だとかもそういえばそうでした。
ありがとうございました。
高速はアルゴリズムは決定性アルゴリズムでは今のところ皆無。
606 :
デフォルトの名無しさん:2005/10/11(火) 15:06:11
とりあえずC言語を一通りできるようになったのですが、このあとどんな言語をやればいいですか?
それともこのままC言語を極めたほうがいいですか?
>>606 ふーん。で、いままでCでどんなプログラム書いたの?
608 :
606:2005/10/12(水) 02:17:26
書いたプログラムはそんなたいした物じゃなくて入門書にのってたやつとそれを改変してみたやつとかです。
ただ、一通り本を読んだら今度は何を勉強すればいいのかよく分からなくなったので質問させてもらいました。
>>608 入門書レベルだと、ソースの規模も小さいだろうから、もうすこし大きな物をCで書いてみることを
お勧めする。題材は色々あるだろうが、身近に使っているものを再現するようなものが、最初の
ステップとしてはいいかもしれない。
仕事では、既にある物を作り直すのはあまり良くないことだが、学習中はどんどんやったほうがいい。
610 :
606:2005/10/12(水) 18:55:23
レスありがとうございます。
さっそくいろいろ書いてみます。
>>610 モジュール分割と、ヘッダの使用法を身につけな。
それが実用上の最低限のやり方だよ。あまり入門書には書いてないけれどね。
Windowsのフォームを使わない常駐アプリを作りたいのですが、参考になるサイトなどあれば
教えてください。
つ[google]
>>613 Windows系のプログラミングスレで聞いたほうがいいよ。
616 :
デフォルトの名無しさん:2005/12/18(日) 03:24:19
あげ
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");}
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++;}
}
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回繰り返しました…。
何度考えてもわかりません。
分かる方教えて下さいませ。
>>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 自体を操作したら、動作は変わってきちゃうよね?
C言語でゲームを作る方法を教えてください。
>>620さん!!
なるほど!!ご丁寧にありがとうございました!!
今日でc言語を勉強し始めてちょうど10日目くらいになります。
途中で投げ出さないで最後まで頑張りたいと思います。
本当にありがとうございました!!
>>617-619 マジで釣りじゃないのか・・・
とりあえず、
int x;
for( x = 0; x < 5; x++ ){
printf( "hoge\n" );
}
ほれ、forブロックの中で x 使ってないけど
hoge
hoge
hoge
hoge
hoge
って表示されたでしょ。x は for という制御文をどうにかして
使いたいからもってきた、ってカンジ〜?ミタイナー。
>623
投げやりだけど丁寧で萌えス
printfは文でない
626 :
たけし:2006/03/09(木) 15:25:28
scanfとprintfが使えるようになりました。
やっとコンピューターを知ってきました。優秀なプログラマの姿がようやく見えてきました!がんばるぞ!
>やっとコンピューターを知ってきました。
日本語でどうぞ。
日本語の不自由な方ですか?
630 :
デフォルトの名無しさん:2006/03/12(日) 15:45:17
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
http://pc8.2ch.net/test/read.cgi/prog/1140616676/
>アドレスとポインタの差
なんか、深い探求をしているんだなw
哲学的・・・
最新科学は、哲学との融合を始めたというが
C言語もその境地に達したか・・・
別に難しいことはないだろ。
ポインタ変数はあるが、アドレス変数はない。
ポインタが保持するのはアドレスだが、アドレスが保持するのはポインタじゃない。
ではアドレスが保持するのは何だろう?
アドレスは保持される情報(データ)であって、何かを保持するものではない。
アドレス(空間)には電位が保持される、じゃだめかな。
で、結局のところ、”差”はどうなるってーのよ
ポインタ「○○○が俺と貴様の差なのだ」
アドレス「グゥ」
みたいに説明しとくれよ、おまいさん
何かを指し示す(ポイントする)ものがポインタ。
メモリ上の場所を表す言わば住所のようなものがアドレス。
Cの場合、大抵のアーキテクチャではポインタを実装するのに、アドレス値をそのまま利用している。
アドレスは一意に定まるからポインタとして使うのに都合が良いからだ。
逆に言えばアドレスでなくとも何か一意に定まるものがあれば、それでポインタは実装できる。
言わばポインタはメモリアドレスの「場所を表す」という機能を抽象化したものだと言えるかもしれない。
少なくともCのポインタは生のアドレスと比べると、
アドレス値という具体的な数値は消え(必要なら使えるが)、型というメタ情報が付いている。
>>638 俺はポインタを、テキストエディタのカーソルみたいなもんかという
イメージやったんだが、おまいの説明で、それで合ってるなと思った。
サンクス。
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
|
文字列で表現された2つの日付の差を求めるのはどうやりますか?
まずは文字列を日付型(time_tとか)に変換するのが先だなー。
"明治六年元日"と"明治三年閏十月"の引き算みたいな面倒な話はシラネ
644 :
デフォルトの名無しさん:2006/03/15(水) 12:31:12
俺もうすぐ工房のプログラマー志望の人間なのだが、C言語の一番簡単で
入門用のプログラム「Hello World」を書いてコンパイルしてできた.exe
のファイルを開いても、コマンドプロンプトが一瞬でてすぐに消えるという
状態になっています。よく目を凝らしてそのコマンドプロンプトをみると
「Hello World」と書かれている気がしないでもありません。
このプログラムは成功なのでしょうか?
使用コンパイラはBorland社のBorland C++ Compilerです
getch();でも最後に置いとけ
646 :
644:2006/03/15(水) 12:41:56
とりあえずソースファイルをうp
/* hello.c */
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
>>644 成功してるよ。
ウィンドウズのコンソールはプログラムの実行終了と同時に閉じる仕様に
なっている。
それなら、どうすればウィンドウが残るかを考えて見るのが次のステップ。
ヒント
>>645
648 :
644:2006/03/15(水) 13:28:20
>>647 わざわざありがとうございます。いろいろ試行錯誤して見ます
printf("Hello World!\n");
getch(); /* リターン押されるまで待機 */
return 0;
650 :
644:2006/03/15(水) 13:37:56
>>649 いやぁ、答えそのものまで…未熟な俺でスミマセン
>>649 getch()なんて関数あったっけ?
getchar()ならわかるんだけど。もし
>>649で動かなかったら、
getchをgetcharに変えてごらん。自分でなんとかしようとする、
その姿勢はよし。頑張れ〜
確かconio.hをインクルードしないとgetchは無理なような気がした
653 :
644:2006/03/15(水) 18:13:15
なんとか例のプログラムを動作させることができました。
少しずつ難しいプログラムにもチャレンジしていきたいと思います。
ありがとうございました
で
>アドレスとポインタの差
差は何だったんだ?
違いだとか定義だとか機能なんて、判らないほうがどうかしてると思うんだが、差ってなによ
656 :
デフォルトの名無しさん:2006/03/17(金) 03:03:41
まったくのゼロからC言語を勉強している者です。現在、10日でおぼえるという本を半分程度までやり終えたところです。
これが終わったらWindowsゲームプログラミングに移ろうかと考えていたのですが、
その前に「独習C」の方もやったほうがよろしいのでしょうか?教えてください。
>>656 やったほうがいいです
そして次の本へいくまえにアルゴリズムとデータ構造について学んでください
ソート(他のアルゴリズムでも)の解説を聞いて
「何でこんなことするんだ」と言ってるレベルなら
10日で…を繰り返しやった方が
慣れるまで時間がかかる
>>657 わかりました。できれば具体的な書籍名など挙げていただけると助かります。>アルゴリズムとデータ構造
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;
}
662 :
661: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言語入門用の本から抜き出したサンプルプログラムをちょこっといじったもの
663 :
http://www.vector.co.jp/soft/win95/util/se072729.html:2006/03/18(土) 19:05:52
TextSS のWindowsXP(Professional)64bit化おながいします
もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
>>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;
}
#include<stdio.h>
main()
{
char *i;
scanf("%s",i);
printf(i);
}
これ文字列の制限あるのはなぜなんですか?制限なしに出来ますか?
>>666 そもそも i は正しいメモリ領域を指していないので、動くこと自体が偶然。
i を配列にすれば正しいプログラムになり、そして配列の大きさまで平気になる。
本当にどこまでも文字列を受け付けるようにしたいなら、動的メモリ確保を使う。
だが、結構面倒だし、普通はそんなことをせず、適当に制限を設けてしまうのが普通。
>>666 これ、実行できても
エラーで止まるだろ
表示されたらすげーコンパイラだよ
普通にBCCですが、表示出来ました。
char *i = "2ch";
こういうのを例題とかで見るんですけど、配列との違いがいまいち理解できない・・・
>>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;っていう風に書くのであーる
ありがとうございます。なんとなくわかりました。
>>670 ところがどっこいC++ではchar* iと書きたくなる。
少なくとも俺はそうだった。
そうだったのであ〜る
674 :
デフォルトの名無しさん:2006/05/17(水) 08:46:40
問題文:「異なるn個の物からr個とる組合せ」をすべて表示し
さらに、その順列(並び替え?)を組み合わせごとにすべて表示するプログラムを作れ
4月からCを学び始めたもので全然プログラムが組めません。
関数(comb)?再帰? 参考になりそうなものも見つかったのですが理解できませんでした。
>>674 昔、n個の中からかぶらないランダムなm個の順列とかいう関数を組んでみた
事あるけど、それに似てるかな。
配列を可変長にする必要があるのでポインタを扱わなければなりません。
関数化はもちろん必要ですが、再帰は効率を求めるならともかく、使わないで
おこうと思えば使わずに済むと思います。
ただの数学なので、頭の中でどう計算して並べるかをプログラムするだけです。
676 :
デフォルトの名無しさん:2006/05/24(水) 22:04:03
CUIのプログラムで
○(円)を指定した縦行横行内を動かして壁(指定行外)などに当たって跳ね返り
運動し続けるプログラムを作りたいのですが
なにかヒントというかきっかけになるものを教えていただけ無いでしょうか
サンプルプログラムなどがあれば教えてください
CUIでアニメーションするときはカーソルの移動方法をどうするかを決めないとアドバイスしようがないな
質問なんですがC言語も
javaと同じ用にPATHの設定を
するんですか??
初心者ですいません
679 :
676:2006/05/25(木) 14:11:43
>>677 カーソルの移動方法ですねちょっと調べてきます
>>678 そういうものもあるし、そうでないものもある。
選んだコンパイラ次第。
あ、かぶった。
>同じ用に
同じ様に
684 :
デフォルトの名無しさん:2006/05/27(土) 18:16:26
C言語おぼえてなにになるんですか?
おぼえてみればわかるよ
かけない
687 :
デフォルトの名無しさん:2006/06/03(土) 01:37:54
f (x) = cos (x) - x2 = 0 の根のうち、0 < x < 1 を満たすものを2分法で求める
初期値 a, b が入力でき、 6桁推定された解と関数 f (x) を呼びだした回数を出力する方法を教えてください。
690 :
デフォルトの名無しさん:2006/07/26(水) 11:58:26
インクルードファイル 'stdio.h' をオープンできない
っていうエラーが出るんですけど、どうしたらいいんでしょうか・・・
超初心者ですみません><
>>690 Borand C++なら、Readme.txtに書いてある。
>>691 >>690はマルチの悪寒
690がちゃんと設定を済ませてるなら
#include "stdio.h"
って書いてる可能性もあるかとw
>>692 そう書いてあってもコンパイル通るよ。
"" の場合は単にソースのフォルダが優先されるだけで、見つからなかったら
<> と同じ動作をするよ。
#include 'stdio.h'
#include <stdudio.h>
本当にファイルが無いのかも知れない
環境くらい書けば教えてもらえるかも知れない
とりあえず
set
これを実行して結果をここに晒せ
問題。
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);
}
複素数でも答え出るといいな
700 :
デフォルトの名無しさん:2006/09/29(金) 17:23:29
たまにはage
/*円の面積と円周の計算*/
#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
そうですか。新しい本買って出直します。
707 :
名無しさん:2006/11/12(日) 12:20:47
ポインターとダブルポインターがわからないぞ
708 :
デフォルトの名無しさん:2006/11/12(日) 12:32:39
710 :
デフォルトの名無しさん:2006/11/22(水) 23:04:43
オレの母は昔から体が弱くて、それが理由かは知らないが、
母の作る弁当はお世辞にも華やかとは言えない質素で見映えの悪い物ばかりだった。
友達に見られるのが恥ずかしくて、毎日食堂へ行き、お弁当はゴミ箱へ捨てていた。
ある朝母が嬉しそうに「今日は〇〇の大好きな海老入れといたよ」とオレに言ってきた。
オレは生返事でそのまま高校へ行き、こっそり中身を確認した。
すると確に海老が入っていたが殻剥きもめちゃくちゃだし
彩りも悪いし、とても食べられなかった。
家に帰ると母はオレに「今日の弁当美味しかった?」としつこく尋ねてきた。
オレはその時イライラしていたし、いつもの母の弁当に対する鬱憤も溜っていたので
「うるさいな!あんな汚い弁当捨てたよ!もう作らなくていいから」とついきつく言ってしまった。
母は悲しそうに「気付かなくてごめんね…」と言いそれから弁当を作らなくなった。
それから半年後、母は死んだ。オレの知らない病気だった。母の遺品を整理していたら、日記が出てきた。
中を見ると弁当のことばかり書いていた。
「手の震えが止まらず上手く卵が焼けない」 日記はあの日で終わっていた。
>>704 その本なんていう本?
一応C言語にも if とか for とかの分岐のための命令(?)はあるよ。
命令とは言わないのかなこれ(ステートメント? キーワード?)。
それに変数宣言や関数宣言とかの宣言は関数じゃない。
typedef も関数じゃない。
ifとかforは文の一種。
Haskellかなにかと勘違いしてるのかな。
純粋なCでみなさんにおたずねしたいのですが。
Cでは四捨五入はどのようにやられているのでしょうか?
0.5をたしてINTでキャストとかじゃ、対象のデータが
浮動少数の場合に誤差がでます。
>>715 floor (num * 10 + 0.5) / 10; /* 小数点以下1位に丸める */
floor (num * 100 + 0.5) / 100; /* 同2位に丸める */
みたいなことやってる
>>715 四捨五入なんだし、誤差の範囲ないで問題ない。
気になるなら有効数字を一つ増やしてくれ
718 :
715: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で名前を検索していき、行数指定で一人分のデータを出力
このような仕様で作っていこうと思っていたのですが
削除と編集がうまくいかなく、困っています。
723 :
722: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の内容が全部でません。
お前なんか勘違いしてんぞ?ってところがありましたらご指導ください。
連続したダブルクオートはどう解釈されるのでしょうか?
char *s = "Hello ""World";
printf( "Minasan ""konnitiwa\n" );
はそれぞれ、
char *s = "Hello World";
printf( "Minasan konnitiwa\n" );
と同じになる様ですが、どういった規約でそうなるのでしょうか?
連続した文字列リテラルは連結されるという規則がある。
const char *s = "hello, " "world";
⇒const char *s = "hello, world";
727 :
724: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); の様に文字数を制限するべき。
728 :
85:2007/03/08(木) 10:50:42
>>727 fseek関数で解決しました。
今度は削除ですが、削除したいデータを次のデータで上書きする
といった感じでやとうと思ったのですが、それだと最後のデータを削除できません。
何かいい方法ないですか?
>>728 上書きというより改変コピーしてるだけだぜ
一時ファイルを使って作業して、最後に元のファイルと置き換えると吉
730 :
85:2007/03/08(木) 15:49:04
んーとまず、削除したいデータを受け取って
そのデータのレコードに来るまで、元のデータを出力していき
削除したいデータのレコードと重なったら、そいつを飛ばして
次のデータから出力していけばいいって事かな?
731 :
デフォルトの名無しさん:2007/05/22(火) 03:10:25
まだこのスレ生きてるの?
さあ?
死んでるな
734 :
デフォルトの名無しさん:2007/07/26(木) 02:52:46
わけもなく切なくなるじゃないか。
でもそんなの関係ねぇ!
そんなの関係ねぇ!
737 :
デフォルトの名無しさん:2007/09/11(火) 18:06:45
C言語で何かアプリケーションを作成したい時、ソフトは何を使えばいいですか?
ちなみにOSはWindowsXPを使っています
誤爆・・・
ニート向けの入門プログラムを思いついた
// C言語
#include<stdio.h>
int main(){
printf("Hallo Work!");
return 0;
}
// BASIC
GOTO HALLOWORK
halloかよ!
環境はWindows Vista
Borland C++ コンパイラ 5.5
BCC Developer なんですが
コンパイルしても実行ファイルができません。
cppファイルがオープン出来ないと出ます。
PATHが取得できないと設定の時点で出ていたのですが
それが原因でしょうか?
初心者すぎて自害したいくらいですが誰か助けてください。
742 :
デフォルトの名無しさん:2007/09/20(木) 04:39:23
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 指令の位置が誤っている
みたいなエラーがでました。
わかる方いたら宜しくお願いします。
744 :
741:2007/09/23(日) 22:03:47
どうやらVistaではBorland C++ Compilerは使えないようです。
とりあえずありがとうございました。
>>744 13年前のソフトは動くのに数年前のコンパイラは動かないのか
BCCとVistaでググってたら
BCCはVistaでうまく設定出来ないからC++ Express Edition使えって
文書があった。
Visualを省略するなw
748 :
デフォルトの名無しさん:2007/10/18(木) 01:37:46
ポインタが全然理解できません。
そうですか
説明するのも難しいですポインタ…
しいていうならメモリ上でデータを記憶している場所を指すものです。
ただ、普通一般のコンピュータはデータとプログラムが同じメモリ上に記録
されているから扱いを間違えると大変なことになる。
(プログラムやOSの一部を書き換えると大変なことになりかねない)
流石に今時のまともなOSなら、本当にだめなとこを触ろうとすると拒否してくる。
流石に今時のまともなOSなら、本当にだめなとこを触ろうとすると拒否してくる。
流石に今時のまともなOLなら、本当にだめなとこを触ろうとすると拒否してくる。
ポインタは単純だぞ
ただ使われ方が単純じゃないだけだが
755 :
デフォルトの名無しさん:2007/10/19(金) 21:26:51
float a;
a=1;
でaをプリントすると
1072693248っていう数がでてくる。
これってどういうこと?
> aをプリント
どうやってる?
(そこに間違いがある)
>>753 必ずしも板読んでいる人の開発環境がWindowsや最新のものではないかもしれない…
Dosという場合も…
自分の学校だって1年入学が早かったら286マシン&TurboCでの開発環境だった…
1年ではFORTRANで5'ディスクを学習のために「自腹」で買わされた…
ポインタをアドレスだと説明するやつは、まだポインタを知らない。
もう1つ大事な「型」について、そっくり抜けてるから。
760 :
デフォルトの名無しさん:2007/10/20(土) 12:23:18
>>759 ポインタの型っていうのは、
int *p;
の「int」が何なのかってことだよな?
もしそうなら、それはそのポインタを介して一度にどれくらいのデータをやり取りするかを意味してるんだよな。
だから「int *」型だと、一度にsizeof(int)バイトのデータをやり取りするっていうこと。
ポインタはただのアドレスの入れ物で一々型キャストするのは面倒だし型の静的チェックも出来ないから明示的に初期化しようってだけのことだろ?
久々の日本語でおk
文章まずったかな
ポインタはただのアドレスの入れ物で(参照するのに)一々型キャストするのは面倒だし(参照先の)型の静的チェックも出来ないから
(参照先の型を予め決めておいてポインタを)明示的に初期化しようってだけのことだろ?
「初期化」の俺定義、いりません。
「定義」か
「俺定義」な
767 :
デフォルトの名無しさん:2007/10/20(土) 18:04:03
質問です。
大きな整数を扱うプログラムが書きたいため、
多倍長演算について学びたいのですが、資料がなかなか見つかりません。
どなたか良い本、サイト、ご存知ないでしょうか?
769 :
767:2007/10/21(日) 00:43:07
770 :
デフォルトの名無しさん:2007/10/22(月) 21:13:25
float a;
a=1;
print("%d",a);
を実行すると
1072693248っていう数がでてくる。
これってどういうこと?
>>770 float型の1をint型として読み取ったときに1072693248っていうint型の値と等しいってこと
マルチうざい
printf("-----------\n");
これってどういう意味??
固定文字列なら puts() で書けよ。
次は
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 こんなスレがあるとは・・・誘導サンクス
文字列を逆にして返す関数を作りたいのですが
どうやったら逆にコピーできるんですか?
誰か教えてください
>>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;
}
んな事をするしかない。
>>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--:
}
すいませんスレチかもしれないですが質問させて下さい。
今年で21になるのですが今から専門学校に通ったりしてプログラムの
勉強を始めるのは遅すぎるでしょうか?
1からのスタートになるのでどうしようか迷っています。
プログラムを勉強するのに専門学校は必要ない
独学で十分
>>787 間に合わない事はない。
ただ、専門学校行くかどうかは別として基本情報技術者程度の知識は持っておけ。
IT関連の専門学校の実態は、学生と講師の只の既成事実作成だからなぁ。
>>787 遅くはないし、けど専門学校に通うほどのもんではない。
ただ、学習だけに時間をさけて、質問すれば確実に答えを
返してくれる環境というのはうらやましいような気も。
C、VB、Java、Oracleあたりをガンガンいじって
JavaでStrutsあたり使ってSNS作ってみたりするのはいいかと思う。
ただ教えられるがままじゃだめかと。
常に授業より先行しておいて自分で何かどんどん作るように。
>>787 高校レベルの数学で苦手意識があるならかなり険しい道になると思われ。
逆に高校レベルの数学を普通にこなせるならまあ、いけるんじゃないか。
793 :
デフォルトの名無しさん:2008/07/31(木) 10:55:49
Borland C++Compiler 5.5をダウンロードしてfreecommandlinetools.exeを実行したいのですがパスワードが必要で先に進めないのですがどうすればいいのですか?
>>793 お答えするためにはパスワードが必要です
んなバカな
パスワードの薄幸にはパスワードが必要です。
醗酵しそうだな。
醗酵にはパスワードが必要です。
800 :
デフォルトの名無しさん:2008/10/14(火) 22:56:24
成績をつけるプログラムを教えてほしいです。
80点以上100点以内 A
65点以上80点未満 B
50点以上65点未満 C
0点以上50点未満 D
それ以外の整数に対しては「ありえない」と出す
つif
つelse
つ<=
つprintf
じゃあ、引数とかで可変にするばあいは?
> rank.exe 100 80 65 50 30
などとすると自動的に 100〜80A、80〜65:B、65〜50:C、50〜30:D、30以下:Eと付けてくれるの
コマンドラインはmain関数に渡される
int main(int argc, char *:argv) { ... }
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]);
}
いや、漏れマジでこういうソース書いたことある。
まあ、速度稼ぐために表引きにすることはあるな。
>>804 デフォで h[101:76] が 'A' とか表埋めとけよ。
そんで実行時に下限が違うところだけ
表を修正すればもっと速くなるぞw
こんな規模のソース書いてるスキルで速度なんか気にするなよ
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);
}
"DCBA"[rank] とかやらないの?w
最近知ったばかりか。自慢したくなるのも無理はない。
そんなのGNUのなんか(サウンド関係だった気がする)のソースで見て以来いくつかの糞本で何度か見かけたくらいだよ。
それでどうやってエラー処理するんだ。
rankは"DCBA"の有効なアドレスを参照するインデックスであるのか。
むしろrank["DCBA"]とかにして読みにくくしないの。
argv[0]は、アレだよ。
>810はどうしようもないな。argvの仕様を全く判っちゃいない。
つーか、100点はありえないのかよw
ケツの穴の狭い奴らだな…
文句言う前にもっといいコード出せばいいのに。
もっといいコードって言ってもなぁ。
argvのインデックスを1からに変えて、aとの比較を等号つきに変えるくらいだからねぇ。
この手の課題っぽいプログラムでI/Fを凝っても仕方ないし。
得点圏を固定にして、データを引数で指定するように出来ない?
できるできる
にゃん
821 :
デフォルトの名無しさん:2009/09/01(火) 02:46:04
わん
822 :
デフォルトの名無しさん:2009/09/01(火) 11:34:36
キャイ〜ン
823 :
デフォルトの名無しさん:2010/05/08(土) 12:29:07
わおーn
( ゚д゚ )ニャー
825 :
デフォルトの名無しさん:2010/08/11(水) 11:26:46
nullpo
gaslighting
#include <stdio.h>
8年前のスレ・・・・・
Rubyバカにしてる子ってさ
変数に$ついてる言語触ってるって事だよね
いちいちSHIFT+4キーおして $ 打ちまくってる感触はどう?
830 :
デフォルトの名無しさん:2011/11/20(日) 14:27:58.47
どう?
831 :
デフォルトの名無しさん:2011/11/29(火) 01:19:16.57
分からん
>315 :デフォルトの名無しさん:2009/02/12(木) 18:34:06
アホw
833 :
デフォルトの名無しさん:2012/01/25(水) 02:58:43.77
埋め
bccでコンソールでCを勉強しています。
>>12 のように書くと、Dos窓が出てきて速攻閉じてしまいます。
で、gets(szBuf);を最後に追加して
ウインドウを保持しています。
ネットソースでは自分の環境ではこの現象が起きます。
スマートなウインドウ保持はどのようにするのでしょうか?
OS vista
// あらかじめ、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");
console.jsをスタートにドラッグしてドロップ
スタートから選択すればコマンドプロンプトがでる
>>834 つ[getchar();]
gets()を使うのはお勧めできない。
putsってなんかエロいな
stdio.hをstudio.hだと思ってた香具師(´・ω・`)ノ挙手
ノシ
一番最初にCのソース見たときだけだけど
Cより先に他の言語でSTDINやSTDOUTって単語を見てたから、最初から「ああ両方纏めたのね」だったな
まあでもstudioっぽいとは思ったw