C言語解説β Site Top

解説コンテンツ

コンパイラ これから順番に作ります。

C言語とは

コンピュータは非常に便利なものですが、「○○をして」と言うだけでは何もしてくれません。
コンピュータに思い通りの作業をさせるためには、コンピュータの言葉を使わなければなりません。
コンピュータの言葉には様々な種類がありますが、その中でも比較的ポピュラーなものとして、C言語が挙げられます。 $$ $$

C言語の基礎

基本文法

// C言語の基本テンプレート

#include <stdio.h>

main(){

	printf("Hello world!\n");

	/* ここに命令を書く */

}
#include <stdio.h>
画面表示、入力に関する(基本入出力:STanDard Input/Output)命令を使えるようにするためのヘッダー読み込み。
「○○という命令は、△△をしてくださいという意味ですよ」ということが書かれた辞書のようなものをコンピュータに読ませている。
main関数
コンピュータに実行させる命令を書く場所。
様々な命令を実行させるときにも、まずはここが中心(メイン)になるように実行される。
コメント
プログラムの文章中における、命令以外の文章。
1行だけ書くときは"//"の後ろに書き、複数行書くときは"/* */"で囲う。
セミコロン ;
命令を区切る記号。

画面出力 printf()

printf関数
画面に文字・文字列を表示するための命令。
数値を表示するためには、型を指定する必要がある。 $$ \begin{alignat}{} \text{//文字のみ表示}\\ \quad \rm printf( "\red{表示する文字列}" );\\ \text{//変数を含む表示}\\ \quad \rm printf( "\red{表示する文字列}" , \red{\text{表示する変数}} ); \end{alignat} $$
改行 \n
改行を表す。
行頭復帰(キャリッジ・リターン) \r
行の最初に戻る。
// 文字列の表示例

#include <stdio.h>

main(){
	printf("Hello world!");
		//出力 > Hello world!
}
// 数値の表示例

#include <stdio.h>

main(){
	int a = 2;
	float b = 5.3;

	printf("%d" , a );		// 出力 > 2
	printf("%f" , b );		// 出力 > 5.3

	// 文字列と組み合わせることもできる
	printf("今日は4月%d"日です。,a);
		// 出力 > 今日は4月2日です。
	
	// 複数を同時に扱うこともできる
	printf("今日は4月%d"日です。最高気温は昨日より%f度だけ高くなりました。,a,b);		
		//出力 > 今日は4月2日です。最高気温は昨日より5.3度だけ高くなりました。
}

入力 scanf()

注意
printf関数と異なり、変数の前に"&"をつけるのを忘れないように!
scanf関数
入力した文字列・数値を変数に格納するための命令。 $$ \rm scanf(" \red{文字列や数値型} ", \red{\&格納する変数} ); $$
// 数値を入力する

#include <stdio.h>

main(){
	int a = 0;
	
	printf( "%d" , a );	// 出力 > 0
	scanf( "%d" , &a );	// 入力 > 1
	printf( "%d" , a );	// 出力 > 1
}

数値型

コンピュータは計算を早く実行するために、数の区別をしています。
区別された数値は、それぞれの数値型に従って処理をされます。
例えば、整数のみで考えるときは小数もすべて四捨五入してしまうので、計算が早くできても正確な値が求められなくなることもあります。
数値型
数値型 型名 説明 表現できる値の範囲 printf,scanfで用いる記号
符号付整数型 int 整数を扱うときに用いる。 d
浮動小数点 float 実数(小数を含む値)を扱うときに用いる。 f
倍精度浮動小数点 double floatより細かい実数を扱うときに用いる。 g

条件分岐① if~else

if~else文
条件により、異なる処理をさせる命令。 $$ \begin{alignat}{} \rm if(\red{条件})\{\\ \quad \red{処理}\\ \}\\ \rm else\ if(\red{条件})\{\\ \quad \red{処理}\\ \}\\ \rm else\{\\ \quad \red{処理}\\ \} \end{alignat} $$