サイズ: 161
コメント:
|
サイズ: 4090
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 5: | 行 5: |
#acl solanumaple,su_zu:admin,write,read,revert,delete All: ... |
<<TableOfContents()>> = Hello, World! = {{{#!highlight c /*スラッシュアスタリスクで囲んでコメントが書ける*/ //スラッシュ二本の後, 行末までコメントになる #include<stdio.h> int main(void){ printf("Hello, World!\n"); return 0; } }}} {{{#!highlight c #include<stdio.h> // printf() を使うために必要なファイルをinclude int main(void){ // プログラムを呼ぶと最初に呼ばれる関数 printf("hello, world"); // 文字列を出力する(改行なし) printf("\n"); // 改行する return 0; // 必ず書く } }}} == コンパイル == {{{ $ gcc -o hello hello.c -std=c99 $ ./hello }}} = 数値出力 = {{{#!highlight c #include<stdio.h> int main(void){ printf("%d\n", 5); // 5 と表示,改行される printf("私は%d歳", 18); // 私は18歳 と表示される printf("%d\n", 2 * 3 + 14 / 7 - 3 % 2 ); // 2 × 3 + 14 ÷ 7 - 3 mod 2 return 0; } }}} = 変数 = {{{#!highlight c #include<stdio.h> int main(void){ int n = 3; n = n + 1; printf("%d\n", 4); // 4 と表示,改行される return 0; } }}} = 型 = * void : 無 * int : (-2^31^) ~ (2^31^-1) の範囲の整数 * long long int : (-2^63^) ~ (2^63^-1)の範囲の整数 * double : 少数 = 算術演算子 = * =: 代入(左辺の変数に右辺の値を格納する) * +: 加算(+) * -: 減算(ー) * *: 乗算(×) * /: 除算(÷) * %: 剰余(mod) = 数値入力 = scanf("%d", &変数名); {{{#!highlight c #include<stdio.h> int main(void){ int n; scanf("%d", &n); return 0; } }}} = 条件分岐 = もし (1) ならば [1] をする そうでなく, もし (2) なら [2] をする そうでなければ [3] をする if( ){ }else if( ){ }else{ } {{{#!highlight c #include<stdio.h> int main(void){ int n; scanf("%d", &n); if( n < 10 ){ // (1)なら n = n * 100; // [1]する }else if( n < 100 ){ // (1)でないかつ(2)であるとき n = n * 10; // [2]をする }else{ // そうでなければ n = n * 5; // [3]する } printf("%d\n", n); return 0; } /* 結果 入力されたnが 2 なら 200 入力されたnが 10 なら 1000 入力されたnが 30 なら 300 入力されたnが 400 なら 2000 */ }}} = 比較演算子 = * < : 小なり * <= : 小なりイコール * > : 大なり * >= : 大なりイコール * == : イコール * != : notイコール = 反復 = for(/*一度だけ実行*/; /*ここに書いた条件が成り立つ間波括弧内を繰り返す*/; /*波括弧の後に実行*/){} {{{#!highlight c #include<stdio.h> int main(void){ int n; for(n = 3; n > 0; n = n-1){ printf("%d\n", n); } return 0; } /* 結果 3 2 1 */ }}} == 問3 べき乗 == 整数ふたつを引数にとって第1引数の第2引数乗を返す関数を定義してください = GNU Make = {{{#!highlight make C = gcc CFLAGS = -std=c99 -Wall SOURCE = $(filter-out $(patsubst %.h,%.c,$(wildcard *.h)),$(wildcard *.c)) all: $(basename $(SOURCE)) %: %.c $(C) -o $@ $^ $(CFLAGS)\\ }}} == 問4 昇順ソート == {{{#!highlight c #include<stdio.h> void sort(int array[], int size){ } int main(void){ int array[10]; for(int i = 0; i < 10; i = i + 1){ scanf("%d", &array[i]); } sort(array, 10); for(int i = 0; i < 10; i = i + 1){ printf("%d\n", array[i]); } return 0; } }}} = ためになる外部ページ = * [[http://judge.u-aizu.ac.jp/onlinejudge/index.jsp?lang=ja|AIZU ONLINE JUDGE: Programming Challenge]] * [[http://9cguide.appspot.com/|苦しんで覚えるC言語]] * [[http://www.curiocube.com/mikata/beyondthecode/index.php|コーディングの向こう側 - つくる人の味方]] * [[http://www.wakayama-u.ac.jp/~chen/cmake/cmake.html|Learning CMake]] |
Hello, World!
コンパイル
$ gcc -o hello hello.c -std=c99 $ ./hello
数値出力
変数
型
- void : 無
int : (-231) ~ (231-1) の範囲の整数
long long int : (-263) ~ (263-1)の範囲の整数
- double : 少数
算術演算子
- =: 代入(左辺の変数に右辺の値を格納する)
- +: 加算(+)
- -: 減算(ー)
- *: 乗算(×)
- /: 除算(÷)
- %: 剰余(mod)
数値入力
scanf("%d", &変数名);
条件分岐
もし (1) ならば [1] をする そうでなく, もし (2) なら [2] をする そうでなければ [3] をする if( ){ }else if( ){ }else{ }
1 #include<stdio.h>
2 int main(void){
3 int n;
4 scanf("%d", &n);
5 if( n < 10 ){ // (1)なら
6 n = n * 100; // [1]する
7 }else if( n < 100 ){ // (1)でないかつ(2)であるとき
8 n = n * 10; // [2]をする
9 }else{ // そうでなければ
10 n = n * 5; // [3]する
11 }
12 printf("%d\n", n);
13 return 0;
14 }
15 /* 結果
16 入力されたnが 2 なら
17 200
18
19 入力されたnが 10 なら
20 1000
21
22 入力されたnが 30 なら
23 300
24
25 入力されたnが 400 なら
26 2000
27 */
比較演算子
< : 小なり
<= : 小なりイコール
> : 大なり
>= : 大なりイコール
- == : イコール
- != : notイコール
反復
for(/*一度だけ実行*/; /*ここに書いた条件が成り立つ間波括弧内を繰り返す*/; /*波括弧の後に実行*/){}
問3 べき乗
整数ふたつを引数にとって第1引数の第2引数乗を返す関数を定義してください
GNU Make
問4 昇順ソート