- 1 :美歩路:02/09/07 14:03
- C言語を勉強しようと思うのですが、
何からやっていいのかわかりません。
そこで、C言語をいじったことのある人は
まず最初になにをやったかを
教えていただけたら、と思います。
よろしくお願いします。 - 2 :デフォルトの名無しさん:02/09/07 14:04
- まず、2ゲトをやりませう。
- 9 :デフォルトの名無しさん:02/09/07 14:11
- >>1
C++からどうぞ。 - 42 :デフォルトの名無しさん:02/09/07 16:20
- まず全裸になり、自分の尻を両手でバンバン叩きながら白目をむき
「びっくりするほどC言語!びっくりするほどC言語!」
とハイトーンで連呼しながらベットを昇り降りする
これを10分程続けると妙な脱力感に襲われ、Cがわかった気分に浸れる - 85 :デフォルトの名無しさん:03/01/09 03:37
- >>138は弐編君
- 123 :123:03/04/04 17:10
- 今日はじめてCをやってみました。
とりあえず累乗計算をやってみました。
#include <stdio.h>
main()
{
int h;
int i;
int j;
int k = 1;
printf("累乗計算プログラム。\n");
printf("元の数字を入力してください。\n");
scanf("%d", &i);
printf("指数を入力してください。\n",i);
scanf("%d", &j);
for(h=1;h<=j;h++)
k = k * i;
printf("結果 %d",k);
}
5の2乗とかはちゃんとした答えが出たのですが、10の10乗ともなると、答えがおかしくなります。
どこを修正したらよいでしょうか? - 137 :デフォルトの名無しさん:03/05/02 21:26
- ”while ”を用いたフィナボッチ数列。
最大値は最初にキーボードより入力
の模範解答キボンヌ。
最適な代入演算式がかけないモレは馬鹿。 - 138 :137:03/05/02 21:30
- フィナボッチ数列を表示する
コードって事でおながいします。 - 176 :デフォルトの名無しさん:03/06/02 21:32
- /*最初はこんなことやりましょう*/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char buf[1024];
sprintf(buf, "start %s", argv[0]);
return system(buf);
} - 177 :デフォルトの名無しさん:03/06/02 21:56
- >>176
動きませんでつた。
$ gcc a.c
$ ./a.out
sh: start: command not found - 182 :デフォルトの名無しさん:03/06/09 12:23
- >>177
ある意味動いてると思うが? - 206 :デフォルトの名無しさん:03/08/21 11:11
- 倉薫氏のC言語1の文をそのままコピーして勉強していたら、以下のプログラムの
なかほどにillegal characterがあると返ってきました。どこが間違っているのか
教えてください。
/* 成人かどうかを判定するプログラム */
#include<stdio.h>
main()
{
int age;
age = 22;
if(age>=20)
{
puts("今夜はとことん飲みましょう!");
}
else
{
puts("ウーロン茶で乾杯ですかね.....");
}
} - 209 :デフォルトの名無しさん:03/08/21 12:12
- >>206
> if(age>=20)
ifの左側に全角空白があるからじゃねーの?
コンパイル、実行できたぞ - 231 :デフォルトの名無しさん:03/09/16 21:58
- カニ飯&ライオネル・リッチーの本はむずい。
- 247 :デフォルトの名無しさん:03/10/26 00:14
- Cでグラフィック作りたいんですがどんな書籍ありますか?
ポインタや配列がある程度理解できるレベルなんですが。 - 344 :デフォルトの名無しさん:04/10/04 23:51:22
- ボーランドC++のコンパイラ入れたんですけど、テキストはCです。
都合悪いでしょうか? - 363 :デフォルトの名無しさん:04/10/17 05:01:18
- if(...){
}else{
};
??↑ここの;がいらないのはなぜか?っていう意味かな? - 365 :デフォルトの名無しさん:04/10/17 06:02:13
- >>363
そういう意味なら
{ ?? } を ; が付いていないけどCでは複文という文の一種として扱われているから、が答えになる。 - 366 :デフォルトの名無しさん:04/10/17 06:56:11
- >>365
struct {
int a;
}
これでエラーになりましたが、なぜでしょう。。 - 370 :デフォルトの名無しさん:04/10/17 09:22:38
- 条件を書く時ので困ってます。
例えばこんなかんじで。
「もし、2<x<5 または 9<x<100 の時」
ってどう書けばいいのでしょうか?
if(x>2 && x<5 || x>9 && x<100)
{??}
ではいけないような気がします。 - 400 :デフォルトの名無しさん:04/11/28 20:18:44
- 今日からC勉強しようと思うのですが。なにかいい参考書ってありますか?
もししっているのならば教えてもらいたいのですが・・・。
なにぶん初心者なので、わかりやすいけど、内容が深いものがいいです。 - 408 :デフォルトの名無しさん:04/12/14 18:40:49
- ポインタ配列というのがイマイチ理解できない。
例えば
char s[1];
s[0] = "foo";
s[1] = "bar";
とした時に、
確認したいのは…
1.s[0]は"foo"の先頭文字('f')のアドレスを指していて、s[1]は"bar"の先頭文字('b')の先頭文字のアドレスを指している
2.変数名は配列の先頭アドレスになるので、*s {配列sの先頭アドレスを参照} は s[0] {配列sの先頭要素}と等価である
3.*(s+1) {配列sの先頭アドレスを1要素分進めたアドレスを参照} は s[1] {配列sの2番目の要素} と等価になる
で、疑問
その1:
メモリ内で、"foo"と"bar"が必ずしも順番に並ぶとは限らない?
(必ず |f|o|o|\0|b|a|r|\0| になるとは保証されていないのか。)
その2:
*s + 1 という式の「1」が意味するところ
(s[0]に格納されているアドレスを 1番地 進めたアドレス? or char1文字分進めたアドレス?)
エ□イ人、教えてください。 - 467 :デフォルトの名無しさん:05/02/07 14:30:45
- 質問です。
初心者レベルですがJavaについての知識はあります。
これからVS.netでC++を学んでみたいのですが、言語の文法を学ぶ場合、
はじめに、Cを学んでからステップアップしてC++を学ぶべきですか?
それとも、いきなりC++から学んでもいいのでしょうか。 - 468 :デフォルトの名無しさん:05/02/07 14:50:04
- >>467
私はこのスレでならCを学べと答える。 - 469 :467:05/02/07 15:01:42
- >>468
レスありがとうございます。
この場合のCから始めるメリットとは何ですか? - 470 :468:05/02/07 15:48:05
- >>469
Javaとの違いをはっきり認識するため。 - 485 :デフォルトの名無しさん:05/02/16 01:24:10
- EOF(-1)と(char)255の区別がつかなくなるから。
- 488 :デフォルトの名無しさん:05/02/16 02:10:27
- >485
なぜstrlenはエラーを返せないsize_t型なのでしょうか? - 545 :デフォルトの名無しさん:2005/05/26(木) 19:00:56
- 質問させていただきます。
int hogehoge( void array, int n){
char foo[] = "たらば蟹";
switch( n ){
case 1:
(char*)array = (char*)malloc(sizeof(char) * length);
strcpy( (char*)array, foo);
break;
・
・
}
・
・
・
return 0;
}
このようにしてmain関数から
prinft(" %s\n", array);
としても何も表示されないんですが、どうしたら表示されるようになるでしょうか? - 546 :デフォルトの名無しさん:2005/05/26(木) 20:54:32
- >>545
int hogehoge(char **array)
{
?? ?? *array = malloc();
?? ?? strcpy(*array, foo);
?? ?? return 0;
}
あるいは戻り値を使っていないのならchar *を返す方法もある。 - 588 :デフォルトの名無しさん:2005/07/07(木) 15:56:44
- c言語で1000以下の素数を二つ足し合わせて1000になるプログラムってどうすればいいんですか?わかる方いましたらお願いします。できるだけ初心者でも理解できるものでお願いします。
- 606 :デフォルトの名無しさん:2005/10/11(火) 15:06:11
- とりあえずC言語を一通りできるようになったのですが、このあとどんな言語をやればいいですか?
それともこのままC言語を極めたほうがいいですか? - 617 :クレヨ( ゜д゜):2006/02/14(火) 15:07:11
- for文のことでわからない事があるので教えて下さい。
僕の読んだ本によると、
例えば↓
int i;
for(i=0;i<5;i++){
printf("%d",i);}
はまずi=0を実行しi<5を判定し真なら条件式に当てはまっている為
ブロックの中身printf("%d",i);を実行すると書いてありました。
でもこのジャンケンゲーム↓
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main(){
int computer,x,player = 0,p_win = 0,p_lose = 0,draw = 0,c_win = 0;
printf("【ジャンケンゲーム!!】\n");
srand(time(NULL));
for(x = 0; x<5; x++){
printf("ジャンケン…(プレイヤーは「1:ぐー、2:チョキ、3:パー」を入力)>");
scanf("%d",&player);
while(getchar() != '\n');
if(player == 1){printf("プレイヤーはグー!!\n");}
else if(player == 2){printf("プレイヤーはチョキ!!\n");}
else if(player == 3){printf("プレイヤーはパー!!\n");}
else{printf("※プレイヤーは不正な手を入力しました\n");} - 644 :デフォルトの名無しさん:2006/03/15(水) 12:31:12
- 俺もうすぐ工房のプログラマー志望の人間なのだが、C言語の一番簡単で
入門用のプログラム「Hello World」を書いてコンパイルしてできた.exe
のファイルを開いても、コマンドプロンプトが一瞬でてすぐに消えるという
状態になっています。よく目を凝らしてそのコマンドプロンプトをみると
「Hello World」と書かれている気がしないでもありません。
このプログラムは成功なのでしょうか?
使用コンパイラはBorland社のBorland C++ Compilerです - 649 :デフォルトの名無しさん:2006/03/15(水) 13:32:57
- printf("Hello World!\n");
getch(); /* リターン押されるまで待機 */
return 0; - 656 :デフォルトの名無しさん:2006/03/17(金) 03:03:41
- まったくのゼロからC言語を勉強している者です。現在、10日でおぼえるという本を半分程度までやり終えたところです。
これが終わったらWindowsゲームプログラミングに移ろうかと考えていたのですが、
その前に「独習C」の方もやったほうがよろしいのでしょうか?教えてください。 - 657 :デフォルトの名無しさん:2006/03/17(金) 04:48:44
- >>656
やったほうがいいです
そして次の本へいくまえにアルゴリズムとデータ構造について学んでください - 690 :デフォルトの名無しさん:2006/07/26(水) 11:58:26
- インクルードファイル 'stdio.h' をオープンできない
っていうエラーが出るんですけど、どうしたらいいんでしょうか・・・
超初心者ですみません>< - 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の内容が全部でません。
お前なんか勘違いしてんぞ?ってところがありましたらご指導ください。 - 724 :デフォルトの名無しさん:2007/03/05(月) 15:54:03
- 連続したダブルクオートはどう解釈されるのでしょうか?
char *s = "Hello ""World";
printf( "Minasan ""konnitiwa\n" );
はそれぞれ、
char *s = "Hello World";
printf( "Minasan konnitiwa\n" );
と同じになる様ですが、どういった規約でそうなるのでしょうか? - 726 :デフォルトの名無しさん:2007/03/05(月) 16:22:09
- 連続した文字列リテラルは連結されるという規則がある。
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); の様に文字数を制限するべき。 - 767 :デフォルトの名無しさん:2007/10/20(土) 18:04:03
- 質問です。
大きな整数を扱うプログラムが書きたいため、
多倍長演算について学びたいのですが、資料がなかなか見つかりません。
どなたか良い本、サイト、ご存知ないでしょうか? - 829 :天使 ◆uL5esZLBSE :2011/07/01(金) 22:27:43.63
- Rubyバカにしてる子ってさ
変数に$ついてる言語触ってるって事だよね
いちいちSHIFT+4キーおして $ 打ちまくってる感触はどう?
http://hibari.2ch.net/test/read.cgi/tech/1031374980/l50人気ブログランキングへ