第3,4回 関数の課題解答例

第3回課題(1)

#include <stdio.h>		/*printfなどの入出力命令を使うためのファイルの読み込み*/
#include <math.h>		/*sin関数など数学関数を使うためには必ず読み込むこと*/

void main()
{
	double rad;		/*sin(double x)のため,変数xはdouble型で定義すること*/
	double x;
    int i;

    for(i=0; i<=360; i++){
        rad = i/180.0*3.141;	/*sin関数の引数は,ラジアン[rad]にすること*/
        x=sin(rad);
        printf("角度%d度の時のsinの値は%1.3fです。¥n", i, x);
    }
}

第3回課題(2)

#include <stdio.h>

void main()
{
	int a, b=1, i;

    scanf("%d", &a);

    /* ここを関数にする */
    for(i=a; i>0; i--){
        b *= i;
    }
    /* ここまで */

    printf("整数%dの階乗は,%dです。¥n", a, b);
}

第3回課題(3)

#include <stdio.h>
int factorial(int n)
{
    int i, k=1;

    for(i=n; i>0; i--){
        k *= i;
    }

    return k;
}

void main()
{
    int a, b;

    scanf("%d", &a);

    /* ここを関数にした */
    b = factorial(a);
    /* ここまで */

    printf("整数%dの階乗は,%dです。¥n", a, b);
}

第4回課題(1)

#include <stdio.h>
int large(int a, int b)
{
    if(a>b){
        return a;
    }else{
        return b;
    }
}

int square(int a)
{
    return a*a;
}

int cube(int a)
{
    return a*a*a;
}

int power(int a, int n)
{
    int i, p=1;

    for(i=0; i<n; i++){
        p *= a;
    }

    return p;
}

int factorial(int n)
{
    int i, k=1;

    for(i=n; i>0; i--){
        k *= i;
    }

    return k;
}

void main()
{
    int a, b, n;
    printf("aの値を入力してください:");
    scanf("%d", &a);
    printf("bの値を入力してください:");
    scanf("%d", &b);
    printf("n乗のnの値を入力してください:");
    scanf("%d", &n);
    printf("大きい数の値は%d\n", large(a, b));
    printf("aの2乗は%d\n", square(a));
    printf("bの3乗は%d\n", cube(b));
    printf("aの%d乗は%d\n", n, power(a, n));
    printf("bの階乗は%d\n", factorial(b));
}