ハイパーニートプログラマーへの道

頑張ったり頑張らなかったり

【ニコニコ動画】ミクと学ぶC言語 第9回をやったぞ

グローバル変数、ローカル変数、サブルーチンなど。だんだん難しくなってきたでござる・・・。

/* distance.c */
#include <stdio.h>

// プロトタイプ宣言
void input_data(void);
int calculate(void);
void output_data(int x);

int v,t; // グローバル変数 宣言と同時に初期化

// main function
int main(void) {
    int d; // ローカル変数
    input_data();
    d = calculate();
    output_data(d);
    return 0;
}

// input data function
void input_data(void){
    printf("---データ入力---\n");
    printf("速度[km/h]:");
    scanf("%d", &v);
    printf("時間[   h]:");
    scanf("%d", &t);
    return; // 戻り値がない サブルーチン void型で宣言
}

// 計算用関数
int calculate(void){
    return v * t;
}

// データ出力用関数
void output_data(int x){
    printf("--- 計算結果 ---\n");
    printf("距離[  km]:%d\n", x);
    return; // 戻り値がない サブルーチン void型で宣言
}


ちょっと答案の表記が違うが、練習問題も歯ごたえあったでござる。

/* cone.c */
#include <stdio.h>

// プロトタイプ宣言
void input_data(void);
double calc_volume(void);
void output_data(double x);

// グローバル変数
double r,h,pi = 3.14; // r,hもdouble型で宣言しとく。

int main(void){
    double v; // ローカル変数
    input_data();
    v = calc_volume(); // 計算結果をvに突っ込む
    output_data(v);
    return 0;
}

void input_data(void){
    printf("半径:"); scanf("%lf", &r);
    printf("高さ:"); scanf("%lf", &h);

    return;
}

double calc_volume(void){
    return pi*r*r*h/3; // 式の結果を直接returnする
}

void output_data(double x){
    printf("円錐の体積は:%f\n", x);
    return;
}