網絡学習管理 速習C言語入門3 C exercises (4) math and utility

C exercises (4) math and utility

数学関数

数学的な計算が必要な場合に使用する命令セットです。引数と返りは全てdouble型になります。

主なもの:

  • sin(x):角度x(ラジアン)のsinの値を返す
  • cos(x):角度x(ラジアン)のcosの値を返す
  • tan(x):角度x(ラジアン)のtanの値を返す
  • pow(x,y):xのy乗の値を返す
  • exp(x):指数関数eのx乗の値を返す
  • log(x):xの自然対数の値を返す
  • log10(x):xの常用対数の値を返す
  • sqrt(x):xの平方根の値を返す
  • ceil(x):小数第一位を切り捨てした値を返す
  • floor(x):小数第一位を切り上げした値を返す
  • round(x):小数第一位を四捨五入した値を返す

サンプル:

#include <stdio.h>
#include <math.h>     //math.hのインクルードを忘れずに
 
int main(int argc, const char * argv[])
{
     
    // insert code here...
    double value = 0.5;
    printf("sin : %f\n", sin(value)); 
    printf("sqrt : %f\n", sqrt(value));
    printf("ceil : %d\n", (int)ceil(value));
    printf("floor : %d\n", (int)floor(value));
         
    return 0;
}

 文字列を数値型に変換する関数

文字列を数値型にするときに使われる関数がatoi関数(整数型に変換する場合)とatof関数(小数型に変換する場合)があります。

サンプル:

#include <stdio.h>
#include <stdlib.h>       //stdlib.hのインクルードを忘れずに
 
int main(int argc, const char * argv[])
{
     
    // insert code here...
    char a[] = "20";
    char b[] = "30";
     
    printf("(cast) a + b = %d\n", (int)a + (int)b);
    printf("(atoi) a + b = %d\n", atoi(a) + atoi(b));
     
    return 0;
}

 乱数を取得する関数

  • rand() 関数 :乱数を得る (0 .. RAND_MAX)
  • srand() 関数 : 乱数を生成するためのシードを設定する

サンプル:

サイコロの目1..6 をランダムに生成

#include <stdio.h>
#include <stdlib.h>
#include <time.h>     //time関数を使うので
 
int main(int argc, const char * argv[])
{
     
    // insert code here...
    int i;
    printf("///乱数の最大値 = %d///\n" , RAND_MAX);
 
    // 現在時刻を種に設定する
    srand((unsigned)time(NULL));
     
    for(i = 0; i < 5; i++) {
        // 乱数を取得する
        int randValue;
        double randValue1;
        randValue = rand();
        randValue1 = randValue / (double)(unsigned)(RAND_MAX + 1);
        printf("サイコロの目 : %d\n", (randValue % 6 + 1));
    }
     
    return 0;
}
練習問題:
========
0.0 .. 1.0 の数を6個ランダムに生成する

 

1 thought on “C exercises (4) math and utility”

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


Related Post

C exercises(e) ExamC exercises(e) Exam

下記の演習サイトに、ミニテストを行ってください ログインID :  15TE123  パスワード: 15TE123@ueno.daiichi-koudai.ac.jp http://lms.chenlab.net/ (http://lmspress.net/) — メインサイト http://lms2.chenlab.net/ — ミラーサイト、演習専用 http://lms3.chenlab.net/ — ミラーサイト、演習専用

C exercises (1) guidanceC exercises (1) guidance

C言語プログラミングⅡの試験解説 #2015年度解答付後期C言語2プロ試験問題 C言語検定試験について 主催・認定 サーティファイ情報処理能力認定委員会 試験名 C言語プログラミング能力認定試験 (C-Language Programming Skills Qualification Test) 試験目的 C言語を駆使して応用プログラム(言語処理系、ユーティリティなど)を作成する能力を認定します。 認定基準 一級 C言語を駆使し、応用プログラム(言語処理系、ユーティリティなど)が作成できる能力を有する。 また使用しているOSについて理解をしている。 二級 小規模のプログラム(500行程度)が適切に(理路整然、簡潔、正しく、速く)書ける。 […]

C exercises(a) Return ValuesC exercises(a) Return Values

ある関数が別の関数を呼び出して、呼び出した関数に制御が戻って来た時に、関数によっては値が返ってくるものがあります。 関数から値を返すには、関数の戻り値の他に、ポインタを使って、関数から呼び出し側の領域を書き換えるも可能です。 値を関数戻り値で返す 関数の定義 戻り値の型 関数名(パラメータリスト) { 文 ... } 関数の戻り値で返す。 この方法では、常に1つの情報しか返すことが出来ません。 2つ以上の情報を返したい時などは不便です。 値を引数の配列に返す 配列の先頭要素のアドレスを引数にして、上位関数側と下位関数側で配列を共有し、見かけ上、複数のデータを返したようにします。 #include <stdio.h> void waru2(int *p); […]