nikuuchi/c2js

scanfでdoubleを入力すると挙動があやしい

Opened this issue · 0 comments

以下を実行する

#include <stdio.h>
#include <math.h>

double readDouble(){
    double num;
    printf("number = ");
    scanf("%lf", &num);
    printf("%lf\n", num);
    return num;
}

double distance(double x, double y){
    return hypot(x, y);
}

int main() {
    double x = readDouble();
    double y = readDouble();
    printf("|(%lf, %lf)| = %lf\n", x, y, distance(x, y));
    return 0;
}

このとき、正しく入力しても入力ダイアログが出続ける。キャンセルすると初めに入れた数から順に使用される。