C言語まとめ

14年1月10日金曜日
魔法のことば
#include<stdio.h>
int main()
{
・・・処理・・・
return 0;
}
これはどんなプログラムでも必要なので
今は必ず書くとだけ覚えておく!!
14年1月10日金曜日
変数
主に使う変数は
int型
整数  例 5 -4 999 -999 etc
float型
実数
例 1.234 -1.234 π etc
double型 実数
これはfloat型の
           範囲を大きくしたもの
char型
文字  例 a b c 1 0 etc
                などがある
ちなみに文字列は で囲み
一文字の場合は で囲む
14年1月10日金曜日
変数宣言
変数宣言は必ず
int main()
{
の後に行う
整数型の x という変数を宣言したかったら
      int x;
float型の x と y という変数を宣言したかったら
float x,y;
このように一回に何個も宣言できるが
 型が違っても同じ変数名は宣言できない!!
14年1月10日金曜日
printf関数(1)
この関数は
  printf( 出力文字 );
が基本形で で囲まれた範囲の文字列が出力される
 の中に n があった場合は改行となる
その他にも t でタブ位置などがある
n は の中に何個でも書いて良い
変数を出力したい場合は
printf( %d ,x);
のようにすれば変数の中の値が出力される
14年1月10日金曜日
printf関数(2)
変数を出力したい場合に
int x=10
printf( %d ,x);
とあったら出力画面に 10 と表示される
この時に  ,(カンマ)を忘れないように!!
int型を出力したい場合は %d
float型を出力したい場合は %f
double型を出力したい場合も %f
を使う

14年1月10日金曜日
printf関数(3)
例えば %12f とあったら
float型変数を文字幅12文字で
        右詰めに表示するという意味です
%12.2f とあったら
float型変数を文字幅12文字で小数点以下2桁を
        右詰めに表示するという意味です
左詰めにしたい場合は - をつけます
これは %d などでも可能な機能です

14年1月10日金曜日
printf関数(4)
変数を2個以上出力したい場合は
    printf( %d %d.....%d ,a,b......,n);
となり%dと変数の個数は同じでないといけない
変数一個ごとに ,(カンマ)があるのに注意!!
問 float a=12.3456,b=55.456;
printf( %10.2fn%10.0fn ,b,a);
とあったらどのように出力されるか
14年1月10日金曜日
scanf関数(1)
scanf関数は変数の値を入力したいときに使う
scanf( %d ,&x); //xはこの場合int型
が基本形となる
入力が複数ある場合は
scanf( %d %d ,&x,&y);
となる
このときに変数一個ごとに & があるのに注意!!

14年1月10日金曜日
scanf関数(2)
またprintf関数と同様に
  int型の入力は
%d
float型の入力は
 %f
double型の入力は %lf
この時にprintf関数とは違い
           double型の時%lfに注意!!

14年1月10日金曜日
問題(1)
int型 float型 double型 char型 をそれぞれ1個づつ
変数宣言をして
int型 float型 double型 char型の順番に入力をして逆
の順番で出力するプログラムをつくれ
このとき出力は一文字ごとに改行すること

14年1月10日金曜日
if関数(1)
分岐したい場合に使う関数
使い方としては
if(条件文){
処理
   }
else if(条件文){ // if の条件に反したときにくる
処理
   }
else{
// else if の条件に反したときに来る
処理
}
14年1月10日金曜日
if関数(2)
主な使い方は前のページの書式だが
else if
else
はなくても可能
条件文のなかが 偽(0) だったらその処理には入らない
逆に 真(0以外) だったらその中の処理に入る
つまり意味はないが
if(1)
と書いてあったらその中の処理は必ず行われる

14年1月10日金曜日
関係演算子
a==b

aとbが等しかったら1を返し等しくなかったら0を   
返します
a!=b
aとbが等しくなかったら1を返し等しかったら1を
返します
a<b
aがbより小さかったら1を返しaがb以上だったら0を
    返します
a<=b
aがb以下だったら1を返しaがbより大きかったら0を
    返します
a>b
aがbより大きかったら1を返しaがb以下だったら0を
    返します
a>=b
aがb以上だったら1を返しaがbより小さかったら0を
    返します
14年1月10日金曜日
論理演算子
関係演算子を使って
a<x<b
と書きたいところだが、この書き方はダメ!!
そいうときに論理演算子を使う
a<x && x<b
と書くと上と同じ意味になる
a && b aとbが両方とも真(0以外)だったら1を返す
a¦¦b
aかbどちらか片方でも真(0以外)だったら1を返す
!a
aが真(0以外)だったら0を返し偽(0)だったら1を
  
返す
別の単元だが演算で%は余りを返す
x=a%d
だったらa/bの余りをxに代入という意味になる
14年1月10日金曜日
while関数(1)
while(条件文){
処理
}
という書き方
条件文が真(0以外)だったら繰り返す
逆に偽(0)だったら次の処理へ行く
最初から偽だったら}までとばす
例 int x=1;
while(x==0){
scanf( %d ,&x);
}
14年1月10日金曜日
while関数(2)
もし必ず1回は処理をしたい場合は
do{
処理
}while(条件文)
と書くと必ず1回は処理を行う
前ページの例をこの形で書くと
int x;
do{
scanf( %d ,&x);
}while(x==0)
          となる
14年1月10日金曜日
for関数
for(初期値;終了条件;増減値)
{
処理
}
という書き方をする
初期値  上から順番に来たときに行う処理
終了条件 真(0以外)なら繰り返し、偽(0)ならforから抜ける
増減値  下からきたときに行う処理
例 int i,wa=0;
for(i=0;i<=5;i++){
//i++はi=i+1という意味
wa=wa+i;
}
14年1月10日金曜日
配列
配列は同じ型のデータを集めて名前をつけたもの
例えば int a[10];
int型のa[0] a[9]が確保される
a[0]=10;
aの0番目に10を代入
a[9]=1;
aの9番目に1を代入
a[10]=0;
不正だがエラーがでないので注意!!
さらに配列は多次元にすることもできます
例えば int a[2][3]
x軸に3つy軸に2つの変数を確保すると 
 
            思うとイメージしやすいです
a[0]の0の部分を添え字といい、ここは変数でも可能
例えば int a[10],i=0;
a[i]=100;
aの0番目に100を代入

14年1月10日金曜日
自作関数(1)
まずプログラムは必ず
int main()
から始まります
int main()
これもmain という名前の関数になります
自作関数は
戻り値の型 関数名(引数){
処理
}
となります

14年1月10日金曜日
自作関数(2)
戻り値とはmain関数に戻す型を示します
例えば int wa(){
return 5+3;
}
というwa関数を作ったとしたら、戻り値はint型となります
main関数に返したい値は
     return 値または変数名
で返すことができますが1個の値しか返すことができません
main関数では
int i;
i=wa();
となります

14年1月10日金曜日
自作関数(3)
引数とは自作関数ではmain関数で使っている関数が使えません
そこでmain関数から持ってきたい数値をもらうのに使うのが引数で
す
例えば int wa(int a,int b){
a=a+b;
return a;
}
int main(){
int x,a=3,b=5;
x=wa(a,b);  //ここでaとbの値は変わらない
}
のように書きます
5と3は変数でも可能です
14年1月10日金曜日
変数の有効範囲(1)
自作関数の中でmain関数の中で宣言した変数は使えないと言いまし
たがその理由が変数の有効範囲です
例えば
{  //カッコの範囲をブロックと言う
int a,b,c;
float x,y,z;
{
a=b+c;
}
x=y+z;

//可能
//可能

}
{
b=a;
y=z;
}
14年1月10日金曜日

//ブロックが違うので不可能
//ブロックが違うので不可能
変数の有効範囲(2)
ブロックが違えば同じ変数名でも宣言は可能です
例えば
{
int a,b,c;
float x,y,z;
処理
}
{
int x,y,z;
float a,b,c;
処理
}
これはすべて可能
14年1月10日金曜日

C言語の基本事項のまとめ