<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/jyokenclasses/">
    <title>情研講習出張所@ウィキ</title>
    <link>http://w.atwiki.jp/jyokenclasses/</link>
    <atom:link href="https://w.atwiki.jp/jyokenclasses/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>情研講習出張所@ウィキ</description>

    <dc:language>ja</dc:language>
    <dc:date>2010-03-11T15:05:18+09:00</dc:date>
    <utime>1268287518</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/jyokenclasses/pages/29.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/jyokenclasses/pages/28.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/jyokenclasses/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/jyokenclasses/pages/27.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/jyokenclasses/pages/26.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/jyokenclasses/pages/25.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/jyokenclasses/pages/24.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/jyokenclasses/pages/22.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/jyokenclasses/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/jyokenclasses/pages/23.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/jyokenclasses/pages/29.html">
    <title>C言語講習/2.制御文の使い方/2.2.複数条件分岐</title>
    <link>https://w.atwiki.jp/jyokenclasses/pages/29.html</link>
    <description>
      *複数条件分岐

　さて、条件に当てはまるときに命令や関数を実行する方法が分かりましたね。
　それで、次にやるのは　&amp;font(Blue){条件が複数ある・複数の答えがある}等上見聞記のパターンが複数ある時の記述をしてもらおうと思います。
　そこで、使用するのが、&amp;font(Red){&amp;sizex(5){「if()・else if()・else文」}}です。

　解説すると
&amp;font(Red){「最初に書いたif文の条件を調べて、その条件に当てはまらなかったら一つ下のelse if文の条件を確かめ、それにも当てはまらなかった場合はまた下位のelse if文の条件を確かめる。このif・else ifの条件の中で当てはまるものがあれば、その条件の次に書いたブロック内の内容を実行して、それ以降の条件は調べない。また、どの条件にも当てはまらない場合はelseで括られた内容を実行する。」}

　とりあえず以下のソースを見てください。
#highlight(c,linenumber){{
#include &lt;stdio.h&gt;

int main(void){
 int i,j;
 scanf(&quot;%d %d&quot;,&amp;i,&amp;j);
/*(0)*/
 if(i&gt;j){/*(1)*/
  /*(1start)*/
  printf(&quot;iはjより大きい\n&quot;);
  /*(1end)*/
 }else if(i&lt;j){/*(2)*/
  /*(2start)*/
  printf(&quot;iはjより小さい\n&quot;);
  /*(2end)*/
 }else{/*(3)*/
  /*(3start)*/
  printf(&quot;iはjと等しい\n&quot;);
  /*(3end)*/
 }
/*(4)*/
 return 0;
}
}}

　このソースの解説をすると、
・(1)の条件を確かめて、当てはまるなら、(1start)〜(1end)の内容を実行して(4)まで飛ぶ。当てはまらなかったら(2)の条件を確かめる。
・(2)の条件を確かめて、当てはまるなら、(2start)〜(2end)の内容を実行して(4)まで飛ぶ。当てはまらなかったら(3)の内容を実行する。
・(1)〜(2)の内容を確かめてみて、どれにも当てはまらなかったら(3start)〜(3end)の条件を確かめて、(4)に飛ぶ。

　という事になります。

　また、if()・else if()・else文には以下のような概要があります。

・else if()文はいくつでも記述できる。(if()・elseは一回のみ)
・else・else if()文は省略可能。
・if()・else if()文の中でどれかその条件に当てはまると、その条件が当てはまるときの内容を実行して、そのif()・else if()・else文のブロックを抜けてからそれ以降の条件は確かめない。(当然命令も実行しない)

　ちなみに、&amp;font(Blue){前のソースで言うif()・else if()・else文のブロックは(0)〜(4)の範囲です。}
　この&amp;font(Blue){if・else if()・else文を使うに当たってもっとも注意しておきたいことは、当てはまる条件があったらそこで抜けてしまうということです。}
　なので、複数の条件に当てはまるということ等がありうるならば、以下のように書きます。
#highlight(c,linenumber){{
#include &lt;stdio.h&gt;

int main(void){
 int i;

 scanf(&quot;%d&quot;,&amp;i);
/*(B1start)*/
 if(i&gt;10){
  printf(&quot;iは10より大きい\n&quot;);
 }
/*(B1end)*/
/*(B2start)*/
 if(i&gt;5){
  printf(&quot;iは5より大きい\n&quot;);
 }
/*(B2end)*/
 return 0;
}
}}

　これは、複数のif文を並べただけですね。これは(B1start)〜(B1end)・(B2start)〜(B2end)ごとに別のブロックになっているので上のブロックの条件が成立するか否かに関わらず、全ての条件を確かめます。

　それでは、課題(クイズに近いかもw）をやっていただきましょう。
1.「山崎パン:あなたの職種は何ですか? 1:高校生 2:大学生」と表示して1が入力されたら、「工場での労働」。2が入力されたら「本社でのデスクワーク」。それ以外の数値が入力されたら「一昨日きやがれえええええええええええええ」と表示されるプログラムを作りなさい。

2.「点数を入力してください」と表示して、整数値を入力させて、
|数域|出力する文字|
|100≧x≧80|優|
|80＞x≧70|良|
|70＞x≧60|可|
|60＞x≧0|不可|
|上の四つ以外|懺悔|
となるようなプログラムを作りなさい。    </description>
    <dc:date>2010-03-11T15:05:18+09:00</dc:date>
    <utime>1268287518</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/jyokenclasses/pages/28.html">
    <title>C言語講習/2.制御文の使い方/2.1.条件分岐文</title>
    <link>https://w.atwiki.jp/jyokenclasses/pages/28.html</link>
    <description>
      **2.1 条件分岐(if文)

　さて、プログラムのもっとも重要な所といえる条件分岐の方法を教えようと思います。
　
　まずは簡単な条件文から行きましょう。その内容は

#center{&amp;sizex(5){&amp;color(Red){「〜の時は…を実行しろ」}}}

というものです。

　そこで使用するというのがif命令というものです。
　書き方は以下のようになっております。

if(&amp;color(Red){条件式}){
　&amp;color(Orange){　　条件式が成立するときに実行する内容。}
}

　さて、では非常に簡単なプログラムをやってもらいましょう。
#highlight(linenumber,c){{
#include &lt;stdio.h&gt;

int main(void){
 int a;

 scanf(&quot;%d&quot;,&amp;a);
 if(a&gt;20){
　　printf(&quot;0より大きい数が入力されました。\n&quot;);
 }
}
}}
　動きとしては、
+整数型変数&amp;color(Red){a}を宣言する。
+端末から値を読み込ませてその値をaに格納する。
+if文により、&amp;font(Red,15px){整数型変数aの値がが20よりも大きかったら、「0より大きい数が入力されました。」と表示する。}

　以上です。このようにしてif文は使います。
　括弧内に書いた条件によって命令が実行される否かが判断されると思います。

　では、条件指定で使われている代表的な演算子を以下に挙げようと思います。
a及びbは式
|a&lt;b|aがbより小さい|
|a&gt;b|aがbより大さい|
|a&lt;=b|aがb以下|
|a&gt;=b|aがb以上|
|a==b|aとbが等しい|
|a!=b|aとbが等しくない|

　一つ注意して欲しいのは、&amp;color(Red){==演算子}と&amp;color(Red){=演算子}が混同して間違ったプログラムを作成してしまいがちであることです。
　&amp;color(Red){==は等価判定、=は代入}という具合に意味は全く違うので間違えないようにしてください。

　以上のように、条件を指定するのに使う演算子のことを&amp;color(Red){&amp;sizex(5){条件演算子}}と呼び、&amp;color(Red){&amp;sizex(5){a&lt;32}のように成立するか否かによってその結果が異なる式を条件式と呼びます。}
　
　では、以上のような演算子を使うと&amp;color(Blue){a&lt;32}とか&amp;color(Blue){a&gt;10}とかの大小による条件して尾をすることが可能です。
　しかし、以下の様な条件指定を作るとき　どうすればいいか…

&amp;color(Red){&amp;sizex(4){10&lt;a&lt;32}
　
　この条件指定だと、最小値と同時に最大値も指定しなければいけなくなります。
　当然何も知らない方は以下のように書くことだと思います。
|if(10&lt;a&lt;32){～～～}|
　しかしこれは、C言語の記述上通用しません。というのも&amp;color(Red){基本的にif文の条件をしてする括弧内に書くことができる条件式はひとつだけ}なので、これは文法違反となりコンパイルエラーとなります。

　そこで、やる方法というのが&amp;color(Blue){複数の条件式をひとつの条件式にまとめるという手法}です。
　そこでまた新たに以下に示した3つの演算子を使用します。
　(※A及びBは条件式及び変数など)
|A&amp;&amp;B|AかつB|
|A&amp;html(||)B|AまたはB|
|!A|Aでない|

　これらの演算子を使用したら、複数の条件式をひとつにまとめることが出来ます。
　では、以下の例を見てください。

#highlight(linenumber,c){{
#include &lt;stdio.h&gt;

int main(void){
 int i,j;

 scanf(&quot;%d %d&quot;,&amp;i,&amp;j);

 if(i&lt;=20&amp;&amp;i&gt;=10){printf(&quot;iの値は10≦i≦20\n&quot;);}
 if(i&gt;20||i&lt;10){printf(&quot;iの値は10より小さいか20よりも大きい\n&quot;);}

 if(i!=j&amp;&amp;i&gt;20&amp;&amp;j&lt;32){/*まとめあげられる条件式は3つ以上も可能*/
  printf(&quot;iが20より大きくjが32より小さくi≠j\n&quot;);
 }
}}

　このプログラムの解説は…　ソースに書いたようなものですねｗ ^^;    </description>
    <dc:date>2010-02-25T22:35:40+09:00</dc:date>
    <utime>1267104940</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/jyokenclasses/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/jyokenclasses/pages/2.html</link>
    <description>
      **メニュー
-[[トップページ]]
-[[プラグイン紹介&gt;プラグイン]]
-[[まとめサイト作成支援ツール]]
-----------
&amp;sizex(6){[[C言語講習]]}
-&amp;sizex(4){[[0.C言語の概要とプログラミングの基本&gt;C言語講習/0.C言語の概要とプログラミングの基本]]}
#region
-&amp;sizex(3){[[0.1.プログラミングってなに?&gt;C言語講習/0.C言語の概要とプログラミングの基本/1.プログラミングってなに?]]}
-&amp;sizex(3){[[0.2.エディター・ソース・コンパイラ&gt;C言語講習/0.C言語の概要とプログラミングの基本/0.2.エディター・ソース・コンパイラ]]}
-&amp;sizex(3){[[0.3.C言語の概要&gt;C言語講習/0.C言語の概要とプログラミングの基本/0.3.C言語の概要]]}
-&amp;sizex(3){[[0.4.要点紹介&gt;C言語講習/0.C言語の概要とプログラミングの基本/0.4.要点紹介]]}
#endregion
-&amp;sizex(4){[[1.標準入出力と変数と数値計算]]}
#region
-&amp;sizex(3){[[1.1.標準出力関数&gt;C言語講習/1.標準入出力と変数と数値計算/1.1.標準出力関数]]}
-&amp;sizex(3){[[1.2.変数・数値と演算の基本&gt;C言語講習/1.標準入出力と変数と数値計算/1.2.変数・数値と演算の基本]]}
-&amp;sizex(3){[[1.2.変数・数値と演算の基本②&gt;C言語講習/1.標準入出力と変数と数値計算/1.2.変数・数値と演算の基本②]]}
-&amp;sizex(3){[[1.3.標準入力&gt;C言語講習/1.標準入出力と変数と数値計算/1.3.標準入力]]}
#endregion
**リンク
-[[@wiki&gt;&gt;http://atwiki.jp]]
-[[@wikiご利用ガイド&gt;&gt;http://atwiki.jp/guide/]]

**他のサービス
-[[無料ホームページ作成&gt;&gt;http://atpages.jp]]
-[[無料ブログ作成&gt;&gt;http://atword.jp]]
-[[2ch型掲示板レンタル&gt;&gt;http://atchs.jp]]
-[[無料掲示板レンタル&gt;&gt;http://atbbs.jp]]
-[[お絵かきレンタル&gt;&gt;http://atpaint.jp/]]
-[[無料ソーシャルプロフ&gt;&gt;http://sns.atfb.jp/]]

// リンクを張るには &quot;[&quot; 2つで文字列を括ります。
// &quot;&gt;&quot; の左側に文字、右側にURLを記述するとリンクになります


//**更新履歴
//#recent(20)

&amp;link_editmenu(text=ここを編集)    </description>
    <dc:date>2010-01-26T17:43:38+09:00</dc:date>
    <utime>1264495418</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/jyokenclasses/pages/27.html">
    <title>C言語講習/2.制御文の使い方</title>
    <link>https://w.atwiki.jp/jyokenclasses/pages/27.html</link>
    <description>
      　プログラミングにおける動作の分岐及びループの制御。    </description>
    <dc:date>2010-01-26T17:36:53+09:00</dc:date>
    <utime>1264495013</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/jyokenclasses/pages/26.html">
    <title>C言語講習/1.標準入出力と変数と数値計算/1.3.標準入力</title>
    <link>https://w.atwiki.jp/jyokenclasses/pages/26.html</link>
    <description>
      *1.3.標準入力
　さて、前回のセクションまででprintf関数を使用して文を出力する方法と変数を使用して基本的な計算を行う方法を知りました。

　今度は、出力とは逆の動作で有る入力というのをやってみましょう。

&amp;color(Red){　入力というのは、その名の文字の通りプログラムに対して数値を入力することです。}用途としては、&amp;color(Blue){プログラムに数値を与えてからその数値をもとに計算させるというなどがあります。}

　その関数の名前は、&amp;font(20px,b,Red){scanf関数}といいます。

　使用方法は以下のとおりとなっております。

|scanf(&quot;書式指定文字&quot;,&amp;入力した値を格納する変数1,&amp;入力した値を格納する変数2...)|

　また、書式指定文字は入力させたい変数の数だけ書き、入力する数値の型によってそれに対応した物を使用する必要があります。また入力できる数値はいくつでも行けるので、,区切りで「入力した値を格納する変数」をいくつ書いても構いません。
　また、&amp;color(Red){入力された数値の格納先の変数の前に「&amp;color(Red){&amp;}」をつけるのを忘れないでください。}理由はまだ説明できませので、今は暗黙のルールだと思ってくれて結構です。

　試しに以下のプログラムを打ってみてください。
#highlight(linenumber,c){{
#include &lt;stdio.h&gt;

int main(void){
 int a;
 scanf(&quot;%d&quot;,&amp;a);
 printf(&quot;変数aの値は%dです&quot;,a);
}
}}

　このプログラムは

+変数aを宣言する
+scanf関数を使用して、端末から数値を入力させて、その数値を変数aに格納する。
+printf関数を使用して、端末にaの値を表示させる。

という仕組みになっております。

　このようにして、scanf関数を使用して端末から数値を入力させることができます。
　
　また、&amp;color(Orange){「一回のscanf関数で入力させることのできる変数の数は制限されていない」}・&amp;color(Orange){「どの変数の型でも端末から入力させることのできる」}ということを踏まえて次のようなプログラムを作ってみましょう。
#highlight(linenumber,c){{
#include &lt;stdio.h&gt;

int main(void){
 double a,b;
 int c;
 scanf(&quot;%lf %lf %d&quot;,&amp;a,&amp;b,&amp;c);
 printf(&quot;a+b=%f\n&quot;,a+b);
 printf(&quot;cの値は%dです\n&quot;,c);
}
}}

　&amp;color(Red){一度のscanf関数で複数の値を入力させる場合は、それだけの文の書式を用意する必要があり、その書式と書式の間に半角スペースを設ける必要があります。}
　&amp;color(Blue){また、一度のscanf関数で二つのdouble型変数・一つのint型変数へ入力させていることから分かる通り、一度のscanf関数で入力させる数値は全て同じ種類でなくても大丈夫です。}
　
&amp;color(Orange){　また、double型変数の書式指定文字なのですが、scanf関数で入力させる場合は「&amp;color(Red){%lf}」、printf関数で出力する場合は「&amp;color(Red){%f}」とする必要があるので、覚えておいてください。}

　このようにして、端末から数値を入力して変数に格納するということができます。

　では、練習問題をやってもらいましょう。以下の動作をするプログラムを作ってください。

***練習問題
#divstyle(border:1px solid){
①小数を含む三つの数値を入力させてdouble型変数a,b,cに格納し、上から順にa+b+c,a-b*c,a*(b-c,a/(b+a*c),(a*c+b)%bの演算結果を表示する。
②円の半径を入力させて、その円の円周・面積を出力せよ。但し、円周率は3.14とし、半径・円周・面積の数値は小数も扱うとする。
}    </description>
    <dc:date>2010-01-26T17:31:37+09:00</dc:date>
    <utime>1264494697</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/jyokenclasses/pages/25.html">
    <title>C言語講習/1.標準入出力と変数と数値計算/1.2.変数・数値と演算の基本②</title>
    <link>https://w.atwiki.jp/jyokenclasses/pages/25.html</link>
    <description>
      *1.2.変数・数値と演算の基本②
***変数の導入
　さて、簡単な計算をする方法を前回で学びました。これで複雑だったり大きな数同士の計算ができるようになりましたね。
　しかし、困ったことがひとつあります…
&amp;color(Blue){　数を記憶させることができないのです。}つまり計算結果や計算に使う数値などを入れる箱みたいなのがないのです。

&amp;color(Orange){&amp;font(15px,b){　答え出たよー!…　ねえこれってどうやってプログラムに覚えさせるの...?}}

　そこで、&amp;color(Red){変数}というのを使用します。&amp;sizex(5){&amp;color(Red){変数というのは値を代入して使用できる数のことです。}}
&amp;color(Red){　変数は、値が上書きされる、またはプログラムが終了するまでその値を保持し続けます。}

　こういうこと聞いたことありますか?
#divstyle(border:dotted 1px){
a=23,b=45としてa+bの値を求めよ
}
　このように文字に数値を代入してそれを数と扱って計算をする。
　実は、C言語の変数の扱いというのはそれに似ており、文字を数値を持った変数として扱うことができるのです。
　しかし、まずはどの文字を変数として使用するかを宣言する必要があります。
　また、変数は宣言したときには値をもっていないので、代入する必要が有るのです。それでは以下のプログラムを入力してみてください。
#highlight(linenumber,c){{
#include &lt;stdio.h&gt;

int main(void){
 int a;
 a=100;
}
}}
　&amp;color(Red){int a;}という記述は、&amp;color(Red){「aを整数を扱える変数として宣言する。」}という意味です。つまり、&amp;color(Blue){「プログラムでaという整数を扱える変数を使うよ。」ということを知らせるという意味です。}&amp;color(Red){また、変数宣言の後には必ずセミコロンを忘れないでください。}

　&amp;color(Red){a=100;}という記述は、&amp;color(Red){「aに100を代入する」}という意味です。&amp;color(Red){「=」という記号は右辺の内容を左辺にコピーするという意味を持ちます。(左辺は変数でなければいけない)}
　
　これを、実行してみると…

&amp;font(b,20px,Red){　何も表示されねえじゃねえかアああああ(liToT)}

　なぜでしょうか…
　aを整数型変数として使用するということを宣言し、値を代入しました…

&amp;font(b,20px,Red){　それだけの操作で出力してくれるなんて誰が言ったあああああああ！(#&gt;o&lt;)ノ}
　はい、数値を出力しなければいけませんねｗｗｗ。
　出力と言ったら…&amp;sizex(5){序盤に習った&amp;color(Red){printf関数}ですね!}

　&amp;color(Orange){変数も、普通の式の値や値の直接入力同様にprintf関数でその変数が持つ値を出力できます。}
　というワケでさっきのソースを以下のように改正してみます。
　また、&amp;color(Orange){変数には直接値を入れるだけでなく計算式の値も代入することができます}のでついでにそれが確認できる記述もしてみましょう。
#highlight(linenumber,c){{
#include &lt;stdio.h&gt;

int main(void){
 int a,b;
 a=100;
 b=12/4;
 printf(&quot;%d\n&quot;,a);
 printf(&quot;%d\n&quot;,b);
}
}}

　うまく行けば、以下のような出力結果となると思います。
#divstyle(border:solid 1px){
100
3
}
　最初に表示した変数aの値は100なので、100が出力され、改行して、変数bは12÷4の数式の商が値となるので、3が出力されます。

　このようにして、変数は数値を記憶してそのまま使うことができます。

　また、変数の宣言を以下のように
#highlight(c){
　int a;
　int b;
}
のように複数に渡ってやってもOKですし、
#highlight(c){
 int a=100,b=12/4;
}
のように宣言と同時に値を代入しても構いません。

　このようにして変数は自由に扱うことができますが、以下のようなルールが有ります。
&amp;font(b,25px,Red){　変数は、代入させたい数値に対応できた型の変数を使用する必要が有る。}
　これは鉄則ともいうものです。

　上の文で少しだけ言って勘の良い人は覚えているかもしれませんが

&amp;font(b,25px,Red){　intは整数を扱える変数を宣言する}と私は言いました。

　つまり、&amp;color(Red){intでは整数は扱えても小数を扱えないのです。}

　じゃあ、どうすればいいか…　そのためには小数なども扱える変数を使用したらいいのです。

　そこで使用するのが&amp;font(b,20px,Red){double}と&amp;font(b,20px,Red){float}です。これは小数も扱える型(変数の種類のこと)の変数です。
　ちなみに、この二つの変数の型の違いは性能です。
　&amp;color(Red){float型変数は浮動小数点型変数と言い、普通に小数を扱うことのできます。}
　&amp;color(Red){double型変数は倍精度浮動小数点型と言い、float型の倍の精度で小数の値を表現することができます。}
&amp;color(Blue){　なので普通小数を扱える変数を使用するというときは、double型を使用します。}

　では、実際に使ってみましょう。以下のコードを見てみてください。
#highlight(linenumber,c){{
#include &lt;stdio.h&gt;

int main(void){
 double f;
 f=32/5;
 printf(&quot;%f&quot;,f);
}
}}
　これをやると、小数点以下で割り切れるところまで計算された32÷5の値がfに代入され、printf関数で表示されます。
　&amp;color(Red){また、変数fは小数を扱っているので、数値を表示する書式も小数を扱える%fにしなければなりません。}
　では、以下にC言語で使用できる変数のリストを挙げてみました。見ておいてください。
|型|値の種類|容量|補足|
|char|整数|8bit(1byte)|文字を扱う|
|short|整数|16bit(2byte)||
|int|整数|32bit(4byte)|16bit(2byte)の時もある|
|long|整数|32bit(4byte)||
|float|実数|32bit(4byte)|有効数字7桁程度|
|double|実数|64bit(8byte)|有効数字15桁程度|

***変数の上書き
　また、&amp;color(Red){変数は値の上書きが可能です。}
　サンプルソースを見てみましょう。
#highlight(linenumber,c){{
#include &lt;stdio.h&gt;

int main(void){
 int a;
 double b;
 a=100;
 b=2.423;
 printf(&quot;a=%d,b=%f\n&quot;,a,b);
 a=43;
 b=b+0.524;
 printf(&quot;a=%d,b=%f\n&quot;,a,b);
}
}}

　出力結果は以下のようになります。

#divstyle(border:1px solid){
a=100,b=2.423
a=43,b=2.957
}

　一回目のprintf関数の手前では、aに100が代入。bに2.423が代入されているため、そのprintf関数ではその値が表示されます。
　二回目のprintf関数の手前で、aに43が代入され、bにはbに0.524足された値が出力されております。

　ここで、&amp;color(Orange){b=b+0.524}という記述が出ましたが、これを見たら
　&amp;color(Green){「bとb+0.524は等価じゃないよー　だからこの式は成立しないよー」}と思う人が居ることだろうと思います。しかし、最初で行った通り、&amp;color(Red){「=」は代入に使う演算子です。}
　なので、この記述には以下のような意味があります。

&amp;font(20px,Blue){それまでのbの値に0.524足した値を新たなbの値として上書きする。}

　つまり旧の値に、数値を足したものを新たな値としたわけですね。

&amp;color(Blue){　当然ですが、足し算だけでなくて他の四則演算子を使っても同じように値の上書きができます。}    </description>
    <dc:date>2010-01-26T17:29:57+09:00</dc:date>
    <utime>1264494597</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/jyokenclasses/pages/24.html">
    <title>C言語講習/1.標準入出力と変数と数値計算/1.2.変数・数値と演算の基本</title>
    <link>https://w.atwiki.jp/jyokenclasses/pages/24.html</link>
    <description>
      *1.2.変数・数値と演算の基本

　さて、プログラムに欠かすことのできない計算…　その計算に欠かせない&amp;color(Red){数}を扱う方法を教えましょう。
***数値の出力
　まずは、計算をしてみましょう!
　計算と聞いて思いつくのは…何と言っても、みなさんが小学校の時に習って今でもよく使う足し算・引き算・掛け算・割り算ですね!
　早速やってみましょう!　次のプログラムを打ち込んでみてください。

#highlight(linenumber,c){{
#include &lt;stdio.h&gt;

int main(void){
 printf(&quot;%d %d %d %d\n&quot;,100+43,100-43,100*43,100/2);
}
}}

うまく行ったら以下のような結果が出力されることだと思います。
#divstyle(border:solid 1px #000000){
143 57 4300 50
}

&amp;color(Orange){&amp;sizex(5){　（・3・）あるぇ～?printf関数って文字を出力する関数なのに、なんでその関数の中に数式を書いちゃってるのぉ～?、それとなんで%dていう文字列は表示されてないのぉ～?}}

と疑問に思うことだろうと思います。

　&amp;color(Red){実は、printf関数は数値を文の一部として出力することができるのです。}
　それと、&amp;color(Red){%d}というのは\nと同様特別な意味があります。

&amp;color(Orange){&amp;sizex(4){　&amp;color(Red){%d}というのは、対応する数値をその&amp;color(Red){%d}を書いた箇所に&amp;color(Red){整数}で表示する意味の文字です。}}

&amp;color(Pink){&amp;sizex(5){　じゃあ、その対応する数値というのは何ィ～?}}
 
　今回、前回printf関数の使い方を習得したときには見たことのない、&amp;color(Red){「ダブルクォーテーションで記述した出力内容文の後に数式が「,」区切りで書かれている」}というのが見えると思います。

&amp;color(Blue){　そこで一つ目の%dには一つ目に「,」で区切って書かれた数式の答え、2つ目の%dには二つ目に「,」で区切って書かれた数式の答え、という具合に順に対応している数式の答えが%dのところで書かれているのが分かります。}
　このようにして、printf関数で数値を出力することができます。また、式でなくてもそのまま数値を書き込む(&amp;italic(){printf(&quot;%d\n&quot;,54);}という具合に)とその数値がそのまま表示されます。(この場合だと、54)

　この%dのように変数を表示してくれる文字のことを&amp;color(Red){&amp;sizex(5){書式指定文字}}といいます。

　しかし、数値が整数だけとは限りません。
　たとえば割り算の場合とか計算して数値が小数になったりすることもあります。
　%dは数値を整数で表示する書式です。なので、小数を含む実数を表示してくれる書式が必要です。

　そこで使用するのが、&amp;color(Red){&amp;sizex(5){%f}}です!

　この書式を書いたところには対応する数値を小数を含む実数で表示してくれます。
　では、以下のソースを打ち込んでみてください。

#highlight(linenumber,c){{
#include &lt;stdio.h&gt;

int main(void){
 printf(&quot;%d÷%d=%f\n&quot;,6,4,6/4);
}
}}

　これを実行してみると、以下のような出力結果になると思います。

|6÷4=1.5|

　1.5というのは小数を含みますから%fで表示出来ていますね。これでおｋです。
***演算子と計算の優先順位
　では、足し算や引き算などの演算をやるにあたって、使用する演算子を教えようと思います。
　演算子というのは、演算を行うために使用するもの「+,-等」のことです。
　では、以下に四則演算の演算子と基本的な演算子の一覧を上げてみました。

|+|足し算を行う。|
|-|引き算を行う。|
|*|掛け算を行う。|
|/|割り算を行う。|
|%|余り演算を行う。|


　ここで、注意して欲しいのは、&amp;color(Red){×,÷}の演算を行うには、&amp;color(Red){* /}を使用しなければいけないという点です。

　&amp;color(Red){また、余り演算というのは、割り算の結果の余りを出すという演算子}で、&amp;color(Blue){&amp;color(Orange){5/2}の演算が5÷2の商である&amp;color(Orange){2}を出すのに対し、&amp;color(Orange){5%2}と記述すると5÷2の余りである&amp;color(Orange){1}が出ます。}

　
　では、次のページに行きましょう!    </description>
    <dc:date>2010-01-26T17:29:47+09:00</dc:date>
    <utime>1264494587</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/jyokenclasses/pages/22.html">
    <title>1.標準入出力と変数と数値計算</title>
    <link>https://w.atwiki.jp/jyokenclasses/pages/22.html</link>
    <description>
      　C言語最初のセクションである、標準入出力と変数の扱い、数値計算の方法を学びます。

&amp;sizex(5){[[1.標準入出力と変数と数値計算]]}
-&amp;sizex(3){[[1.1.標準出力関数&gt;C言語講習/1.標準入出力と変数と数値計算/1.1.標準出力関数]]}
-&amp;sizex(3){[[1.2.変数・数値と演算の基本&gt;C言語講習/1.標準入出力と変数と数値計算/1.2.変数・数値と演算の基本]]}
-&amp;sizex(3){[[1.2.変数・数値と演算の基本②&gt;C言語講習/1.標準入出力と変数と数値計算/1.2.変数・数値と演算の基本②]]}
-&amp;sizex(3){[[1.3.標準入力&gt;C言語講習/1.標準入出力と変数と数値計算/1.3.標準入力]]}    </description>
    <dc:date>2010-01-26T17:28:52+09:00</dc:date>
    <utime>1264494532</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/jyokenclasses/pages/13.html">
    <title>C言語講習</title>
    <link>https://w.atwiki.jp/jyokenclasses/pages/13.html</link>
    <description>
      C言語講習のページです。

-&amp;sizex(8){[[0.C言語の概要とプログラミングの基本&gt;C言語講習/0.C言語の概要とプログラミングの基本]]}
--[[0.1.プログラミングってなに?&gt;C言語講習/0.C言語の概要とプログラミングの基本/1.プログラミングってなに?]]
--[[0.2.エディター・ソース・コンパイラ&gt;C言語講習/0.C言語の概要とプログラミングの基本/0.2.エディター・ソース・コンパイラ]]
--[[0.3.C言語の概要&gt;C言語講習/0.C言語の概要とプログラミングの基本/0.3.C言語の概要]]
--[[0.4.要点紹介&gt;C言語講習/0.C言語の概要とプログラミングの基本/0.4.要点紹介]]
-&amp;sizex(8){[[1.標準入出力と変数と数値計算]]}
--[[1.1.標準出力関数&gt;C言語講習/1.標準入出力と変数と数値計算/1.1.標準出力関数]]
--[[1.2.変数・数値と演算の基本&gt;C言語講習/1.標準入出力と変数と数値計算/1.2.変数・数値と演算の基本]]
--[[1.2.変数・数値と演算の基本②&gt;C言語講習/1.標準入出力と変数と数値計算/1.2.変数・数値と演算の基本②]]
--[[1.3.標準入力&gt;C言語講習/1.標準入出力と変数と数値計算/1.3.標準入力]]    </description>
    <dc:date>2010-01-26T17:28:29+09:00</dc:date>
    <utime>1264494509</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/jyokenclasses/pages/23.html">
    <title>C言語講習/1.標準入出力と変数と数値計算/1.1.標準出力関数</title>
    <link>https://w.atwiki.jp/jyokenclasses/pages/23.html</link>
    <description>
      *1.1標準出力関数

　さて、プログラムを作りましょう!。
　前回のセクションで言った通り、作業用ディレクトリに移ってからEmacsを起動してください。

　今回は、&amp;sizex(5){&amp;color(Red){標準出力関数}}の使い方を習得していただきましょう。

　&amp;color(Red){標準出力関数と言うのは、端末に文を表示する関数です。}&amp;color(Blue){用途としては、プログラムが計算などして出した結果などを表示するのに使います。}
　その関数の名前は&amp;font(Red,15px){printf関数}といい、C言語において文字列等を表示するには基本的にこの関数を使用します。
&amp;color(Green){(C言語における関数という物は難しく考えずに、プログラムにさせる処理や内容のことだと思ってください。^ ^;)}
　使い方は以下のとおりとなっております。

|&amp;sizex(5){printf(&amp;color(Red){&quot;&amp;color(Orange){表示したい内容}&quot;});}|

　このように、表示したい内容をダブルクォーテーション「&amp;color(Red){&quot;～&quot;}」で囲みます。また、表示する内容の中には全角文字も可能です。
　また、&amp;color(Orange){printfは関数なので命令の最後にセミコロン「&amp;color(Red){;}」を付ける必要があります。}

　では、実際にprintf関数を使用して文字列を表示してみましょう。
　以下のコードをEmacsに打ち込んで、コンパイル・実行してみてください。
#highlight(linenumber,c){{
#include &lt;stdio.h&gt;

int main(void){
　printf(&quot;Hello World.\n&quot;);
}
}}
　うまくいったら、プログラムを実行したとたんに端末に以下のような表示がされるはずです。

|Hello World.|

　実行してみると、printf関数内でダブルクォーテーションで囲んだ文である「&amp;color(Red){Hello World.}」が出力されました…　このようにしてC言語では文を出力します。
　しかし、実行したところ一点不審なところがあります…

&amp;sizex(6){&amp;color(Red){&amp;color(Orange){\n}が表示されていないだと…!　(ﾟДﾟllil)}}

　その通りです!\nも書き込んだハズなのに表示されていないのです!何故だ…!

　&amp;sizex(5){&amp;color(Red){実は…　この&amp;color(Orange){\n}は&amp;color(Orange){「改行」}を表しているのです。}}
　実は、C言語ではprintf関数を分けて書いたからって、文字自体は一切改行されません。
　この&amp;color(Orange){\n}を書いたところで端末に出力される文字は改行されて次の行に表示されます。&amp;color(Red){つまり改行を表すだけの文字なので、この文字は表示されません。}
　
　例えば、次のようなソースをプログラムにして実行すると
#highlight(linenumber,c){{
#include &lt;stdio.h&gt;

int main(void){
　printf(&quot;ここで\n改行されるよ\n&quot;);
　printf(&quot;一回のprintf関数で\n何度も\n改行できます\n&quot;);
}
}}

　以下のように文字が出力されます。

#divstyle(background-color:Black;color:White;){
ここで
改行されるよ
一回のprintf関数で
何度も
改行できます。
}

　これで、「\n」を書き込んだところで文は改行されるということが分かりましたね。

***エスケープ文字

　この、&amp;color(Red){「\n」みたいに、記述したところに表示されなくて、記述した文字列の中の場所で特殊な操作をする文字のことを、&amp;font(b,15px){エスケープ文字}と言います。基本的にエスケープ文字は「\」から始まります。}

　また、この&amp;color(Red){エスケープ文字は改行・バックスペースやタブなどみなさんが文章を編集するときなどに使用するキーボードのボタンにある機能をprintf関数で文字列を扱う際に使用されております。}

　みなさんは、文章を編集するときに文字入力カーソルを見ますよね?
&amp;color(Red){　このエスケープ文字はprintf関数で文字を書く際におけるカーソルを操作するという感じです。(分かりやすく説明できる方法ないかな… ^^;)}

　以下に、エスケープ文字を挙げてみました。全て覚える必要はありませんが、改行・タブ・文字の表示ぐらいは覚えておいた方が良いと思います。

|\n|記述した場所で改行する。|
|\f|記述した場所で、端末に表示している内容をクリアする。|
|\a|記述した場所で、PCに内蔵されているベル（アラート）を鳴らす|
|\b|記述した場所から、１文字分戻る。|
|\r|記述した場所から、同じ行の先頭に戻る。|
|\t|記述した場所で、水平タブを実行する。|
|\v|記述した場所で、垂直タブを実行する。|
|\\|記述した場所に、\を表示する。|
|\?|記述した場所に、?を表示する。|
|\&#039;|記述した場所に、シングルクォーテーション(&#039;)を表示する。|
|\&quot;|記述した場所に、ダブルクォーテーション(&quot;)を表示する。|
|\0|記述した場所に、ヌル文字を置く。|
|\N|記述した場所に、8進定数（Nは8進数の定数）を表示する。|
|\xN|記述した場所に、16進定数(Nは16進数の定数）を表示する。|

では、次のセクションに入る前に練習問題をやっていただきましょう。

***練習問題
①端末上で以下のように出力されるようなプログラムを作ってください。
#divstyle(border:solid 1px #000000;){
この&quot;フィギュア&quot;は\12,000で売られていますか?
}
②端末上で以下のように出力されるようなプログラムを作ってください。(但しprintf関数は一回しか使用してはいけない。)
#divstyle(border:solid 1px #000000;){
彼
女
が
欲
し
い
}

　では、次のセクションでC言語での計算を行う方法と変数の扱い方を習得していただきましょう!    </description>
    <dc:date>2010-01-24T23:21:49+09:00</dc:date>
    <utime>1264342909</utime>
  </item>
  </rdf:RDF>
