今日のC言語

119日目 C引数付き置換マクロで作る、擬似timesメソッド(Ruby)

Rubyのtimesメソッドがうらやましくなってマクロで遊んでみました。 Ruby 3.times { puts "hello" } C #include <stdio.h> #define times(N) for(num = 0; num < N; num++) int main() { int num; times(3) printf("hello\n"); return 0; } 次に、times(num, 3)と書け</stdio.h>…

113日目 等差数列の和

まず末項を計算させる #include <stdio.h> /* arithmetic progression (print last term)*/ #include <stdlib.h> int main(int argc, char *argv[]) { int i, sum; int first = atoi(argv[1]), diff = atoi(argv[2]), num = atoi(argv[3]); for (i = 1, sum = first; i < num; i</stdlib.h></stdio.h>…

112日目 整数の乗除を加減記号で実装(途中ww)

パズルみたいで面白かったけれども実用とかけ離れてるwww 注1:コマンドライン引数を使用してます 注2:めちゃめちゃですww 割られる数<割る数でもオッケー、ただし両方10のn乗 #include <stdio.h> /* division, if(a < b, both a and b included in pow(10,x))*/ #i</stdio.h>…

103日目 第4章 逆ポーランド記法型電卓プログラム

本文のソースを参考に、とりあえずわかるところまでやってみた。 //main() MAXOP, NUMBER // getop() NUMBER // getch() // !isdigit() <ctype.h> // ungetch() BUFSIZE // !atof() <stdlib.h> // push() MAXVAL // pop() // !printf() <stdio.h> #include<ctype.h> #include<stdio.h> #include<stdlib.h> #include<math.h> //</math.h></stdlib.h></stdio.h></ctype.h></stdio.h></stdlib.h></ctype.h>…

102日目 これは遅延評価勉強法なのか

僕は理解が遅い。 というか、理解しようと思い立つまでが遅い。 専門分野の勉強でも、わからないことはわからないままに放置プレイ。 一ヶ月二ヶ月たってふと思い出したように調べ始める。だから試験では悲惨な点を取ることがままある。そうやって寝かせてお…

98日目 文字コードを表示

#include <stdio.h> // ASCIIコードの表示 int main() { int i; int str[128]; for(i=0; i<128; i++) { // 普通の文字だけ出力させたいなら(i=32; i<128; i++) if(i%16 == 0) printf("\n"); str[i] = i; if(i >= 8 && i <= 13) // 8〜13に対応する文字を用いると表示</stdio.h>…

97日目 K&R 1.9 文字配列 をふたたび

日本語版p.37、getline()のサンプルプログラムが奇妙に思えてずっと手を出しかねてた。 その違和感を少しだけ解消できたのでメモっとく。 どういうことかっていうと、 for(初期化式;条件式;式1実行後に行う事) 式1; これがわかってなかった。 あとs[i]=c; ++…

89日目 標準偏差のプログラム書いてました

もうすぐ医療統計学のテストなもんで。 #include <stdio.h> #include <math.h> #define MAXDATA 25 // ここが直打ちなのでなんとかしたいですね main() { int i; double data[MAXDATA], sum, average, deviate[MAXDATA], us; sum = 0; for (i = 0; i < MAXDATA; i++) { scanf_</math.h></stdio.h>…

75日目 printf("a:%a\n", EOF);〜printf("z:%z\n", EOF);

ひさしぶりに何も用事のない穏やかな休日だったので遊んでみた。 #include <stdio.h> int main() { printf("a:%a\n", EOF); printf("b:%b\n", EOF); printf("c:%c\n", EOF); printf("d:%d\n", EOF); printf("e:%e\n", EOF); printf("f:%f\n", EOF); printf("g:%g\n", </stdio.h>…

75日目 K&R3.3と格闘中

なんか基本をおざなりにしたまま進んでしまった感がある… とりあえずbinsearch()を使える形にしてみた。 array[]の要素とsを、自分で入力した値でできるように修正しないといけないね。 // from K&R p.58 (Japansese p.70) #include <stdio.h> int binsearch(int x, i</stdio.h>…

65日目 FizzBuzzと文字列ポインタ

いまさらFizzBuzzなど - hogelogの日記 - ハチロク世代 ずいぶん昔に*1id:hogelogにif分岐無しでFizzBuzz教えてもらったのだが、その時はなぜそう書けるのかわかってなかった。じゃんけんゲームを改変したときのashitanoのアドバイスを思い出したので、よう…

56日目

配列の確認 やさしいC p.301のソースコードを改変。

48日目 K&RのEcercise2-5 (「・ω・)「

ごめんなさい。アンサーブック見ました。 ループをどこで止めるのかわかんなかった。そうだよねヌル文字だよねあたりまえだよねorz もったいないことしたなぁ もっと考える時間確保しとけばよかった

45日目 getcharの基本に戻る

K&RのExcersise1-8やろうと思ったらgetchar()も忘れていた。 まずは単語カウント。 単純にカウントしたいならスペース+1じゃないかと考えた。 #include <stdio.h> main() { int c, ws; ws = 0; printf("Please type a sentence.\n\n"); while ((c = getchar()) != '</stdio.h>…

44日目 5分以内に九九の表を出力しなさい

5分でできる頭の体操。初心者向け。 九九の表をつくってみよう。 g:generation1986:id:oldfishはwhileとかでやるといいよ! #include <stdio.h> main() { int i, j; for(i = 0; i < 9; i++) { for(j = 0; j < 9; j++) { printf("%2d\t", (i+1)*(j+1)); } printf("\n"</stdio.h>…

36日目 K&RのExerciseをやってみた

K&Rの1章のエクササイズで、0〜9までの数字をカウントして、その数だけ*を出力せよというやつがあった。 ぱっと思いつかなかったので、「困難は分割せよ」メソッドを発動。 まず、forで*の階段を表示させようと思った。 /*とりあえず何も見ないで*で階段…

34日目 K&R読書会

今日やるのは2章からだそうです。 一章のExercise全部終わってない><帰ってきたらレポ書きます。

33日目 明日K&Rの読書会行ってきます

C Programming Language (Prentice Hall Software)作者: Brian W. Ritchie, Dennis Kernighan出版社/メーカー: Prentice Hall発売日: 1988/03/22メディア: ペーパーバック購入: 5人 クリック: 121回この商品を含むブログ (22件) を見る

18日目 まだソートに入ったばっかり

「C言語による実用アルゴリズム入門」のソースにちょっと手を加えてみた。 ソート時間の計測を試みたが、なんか変なことをしている気がする。

15日目 高度に発達したfor文はwhile文と見分けがつかない

/*2008/03/25 18:12:20*/ int i=0; for(;i<5;){ printf("Hello\n"); i++; } //-------------------------------------- int i=0; while(i<5){ printf("Hello\n"); i++; } /*高度に発達したfor文はwhile文と見分けがつかない*/ とTwitしたら、syou6162にreply…

14日目 一冊目仕上げた><

やさしいC 第3版 [やさしいシリーズ]作者: 高橋麻奈出版社/メーカー: ソフトバンククリエイティブ発売日: 2007/08/30メディア: 単行本購入: 18人 クリック: 351回この商品を含むブログ (30件) を見るこれ↑が終わったので、明日からはこれ↓をやることにします…

11日目 途中経過。

写経してます。ソートおもしろい。ほかにも方法があるそうなので考えてみる。

8日目 for文が使えるようになった

for文説明以前のソースを、for文を使ってはじめて書き換えられた。今のスキルはこんな感じです。ついでにはてな記法を覚えて「今日のC言語」カテゴリを作った。 おとなり日記をのぞいてみた。

7日目 開発環境の改良

実装はなし。 printfじゃなくてputcharを使ったhogelogの実装を味わう。 快適な開発環境のために 中2から慣れ親しんだMKEditorを導入した。 定型文字列に/**/,#include ,int main(void)等を入れて入力スピードの向上を図る。 配列とポインタがまだよくわか…

6日目 もっとも初歩的な? FizzBuzzの実装

FizzBuzz Skypeで「割り算3回だよね?」って発言したら、suztomoに「フラグ使って2回だろJK」って怒られた。 Yuyarinには「剰余なし縛り」指令を頂いたが見当もつかない。ググったらあったけどはてブしただけでまだみてない。 考えたほうが自分のために…

5日目 for文やif文って

for文やif文って、文って言うより段落だよな、とか思った。 イベント 情報処理学会+日本野望の会に行き、BI(バイオインフォマティクス)やBMI(ブレインマシンインタフェース)のセッションを聞く。情報処理と生物学の架け橋になりたいな。どっちもまだまだ…

4日目 途中経過。

変数は式を格納する。ポインタは変数の一種。アドレスを格納する特殊な変数。Valiables store expressions. Pointers are a kind of valiables. They store specially memory adresses.……頭がウニ。 一月前の記事:プログラミング言語学習まとめ 15 Exercise…

3日目 VBScriptで遊んでいる

えー?マジVB!? キモーイ VBが許されるのは小学生までだよねー キャハハハハハハ ...orz 「コンピュータはなぜ動くのか」にVBのスクリプトが載ってたんだもん。 図書館で本を借りてきた [rakuten:book:11195361:detail] コンピュータはなぜ動くのか?知ってお…

2日目 「やさしいC」の通読

「やさしいC」には重要なところを抜き出して書いてくれているので、昨日やったところまでをノートにまとめなおしている。 打ち込むだけだと覚えなさそうなので、紙に書いて、手でも覚える。 重要なポイントに通し番号を振る。これはアイデアマラソンから得た…

1日目 C言語はじめました

Haskellに挑戦するよ! と言った(2008/03/01)はいいものの、やっぱりC言語くらい知っとくべきだろJK というわけでいろいろ調べた結果、Visual C++ 2008 Express Editionをインストール(2008/03/10)。fc2ブログにもプログラミング始めますって記事書いた(…