これに問題があります...コンパイルはしますが、実行するとすぐにセグメンテーション違反が発生します... GDBを使用して、ロングダブルを開始しようとしているときにセグメンテーション違反を起こすと判断しました。atoi は使用する関数が間違っているように感じますが、他の同様の関数を試しても segfault が発生しました。
int main(int argc, char *argv[]) {
long double x = atoi(argv[1]);
char oper = argv[2][0];
long double y = atoi(argv[3]);