日本語の文字化けは保存時に(ファイル名.C)
「文字コード」⇒UTF-8 で保存してください。
◆ C言語の基礎
自分の名前を印刷してみよう
#include <stdio.h> /* 名前を印刷する */
int main(void)
{
printf("吾輩は猫である \n");
return 0;
}
保存してコンパイル実行してみよう
◆加減乗除の計算
#include <stdio.h> /* 加減乗除 */
int main(void)
{
int a,b,wa,sa,seki,syo;
printf("a,bの数値を入力 \n");
scanf("%d%d", &a , &b ); /*数値の入力*/
wa=a+b; /*和*/
sa=a-b;
seki=a*b;
syo=a/b;
printf("加算 a+b= %d\n", wa ); /*結果の出力*/
printf("減算 a-b= %d\n", sa );
printf("積算 a*b= %d\n", seki );
printf("除算 a/b= %d\n", syo );
return 0;
}
それを直してください。
小数点が表示されませんね?
◆そこで訂正するのだ
#include <stdio.h> /* 加減乗除 */
int main(void)
{
float a,b,wa,sa,seki,syo;
printf("a,bの数値を入力 \n");
scanf("%f%f", &a , &b ); /*数値の入力*/
wa=a+b; /*和*/
sa=a-b;
seki=a*b;
syo=a/b;
printf("加算 a+b= %f\n", wa ); /*結果の出力*/
printf("減算 a-b= %f\n", sa );
printf("積算 a*b= %f\n", seki );
printf("除算 a/b= %f\n", syo );
return 0;
}
保存、コンパイル、実行してみます、どうでしょう小数点以下が表示されます。
ここでさらに疑問がわき調べるほどに奥深く面白くなるか?うーーんあきらめるか分かれ道!
▼疑問
整数部の10進数を2進数に変換する場合は、変換する数値を2で割り商と余りを求めれば2進数に変換できる。 しかし、小数の10進数を2進数に変換するとき、数値によっては小数部が0にならない場合がある。例えば10進数の0.4を2進数に変換すると0011が繰り返され整数部が0にならない。
10進数の0.2を2進数に変換する これを無限小数といい同じパターンが繰り返し出現する場合を循環小数という。 無限小数に対して、小数部が0になるものを有限小数という。 無限小数が発生した場合は、コンピューターの内部では数値の近似値で数値を表す。
▼参考
10進数の60は、2進数では111100である。8ビットで表現するときは、足りないけた数分、上位(左側)に0を補充する。
小数の10進数を2進数に変換するには、変換したい10進数の小数部を小数が0になるまで2倍する。これで求めた整数部が2進数への変換結果である。
10進数0.625は、2進数では0.101である。
整数部の10進数を2進数に変換する場合は、変換する数値を2で割り商と余りを求めれば2進数に変換できる。
しかし、小数の10進数を2進数に変換するとき、数値によっては小数部が0にならない場合がある。例えば10進数の0.4を2進数に変換すると0011が繰り返され整数部が0にならない。
■例題:配列の合計
/* 例題1 配列の合計 */
#include<stdio.h>
int main(void)
{
int i,sum=0;
int dat[10]={6,9,0,3,2,4,8,7,1,5};
for(i=0;i<10;i=i+1)
{
sum=sum+dat[i];
}
printf("合計 %d\n",sum);
return 0;
}
$ dir
hairetsu.c
$ gcc -o hairetsu hairetsu.c
$ dir
hairetsu.c hairetsu.exe
$ ./hairetsu.exe
合計 45
■三角形の面積の計算
/* 三角形の面積 */
#include <stdio.h>
int main(void)
{
float r, h, x; /*変数の宣言*/
printf("三角形の底辺と高さを入力してください。\n");
scanf("%f%f", &r , &h ); /*数値の入力*/
x = r * h / 2.0; /*面積の計算*/
printf("面積 = %f\n", x ); /*結果の出力*/
return 0;
}
1からnまでの和
/* 1からnまでの和 */
#include <stdio.h>
int main(void)
{
int i, n, sum = 0;
printf("2以上の整数を入力:");
scanf("%d", &n);
for(i = 1; i <= n ;i= i+1)
sum=sum+ i ;
printf("答えは %d です\n", sum);
return 0;
}
$ dir
goukei.c sankaku.c
$ gcc -o sankaku sankaku.c
$ gcc -o goukei goukei.c
$ dir
goukei.exe goukei.c sankaku.exe sankaku.c
$ ./goukei.exe
底辺と高さを入力すると合計が出ればOK
$ ./sankaku.exe
/* 円柱の体積 */
#include <stdio.h>
int main(void)
{
float r, h, x, p=3.14157; /*変数の宣言*/
printf("円錐の半径と高さを入力してください。\n");
scanf("%f%f", &r , &h ); /*数値の入力*/
x = r * h * p ; /*体積の計算*/
printf("円柱の体積 = %f\n", x ); /*結果の出力*/
return 0;
}
0 件のコメント:
コメントを投稿