weixin_44577752
2019-10-20 21:52
采纳率: 85.7%
浏览 250

救急!!这个程序在vs2017中无法运行

#include "pch.h"
#include <iostream>
using namespace std;
void a(double a, double b, double *add) {
        *add = a + b;
    }
void j(double a, double b, double *jian) {
    *jian = a - b;
}
void m(double a, double b, double *cheng) {
    *cheng = a * b;
}
void c(double a, double b, double *chu) {
    *chu = a / (float)b;
}
int main()
{
        double *s1 = NULL;
        int d;
        cin >> d;
        if (d == 0) { a(12, 4, s1); cout << s1; }
        else if (d == 1) { j(12, 4, s1); cout << s1; }
        else if (d == 2){m(12, 4, s1); cout << s1; }
        else if (d == 3) { c(12, 4, s1); cout << s1; }
        else cout << "输入错误值";



    }

如题
麻烦大家解决一下,最好能把程序

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • alongname 2019-10-20 23:33
    已采纳
    #include "pch.h"
    #include <iostream>
    using namespace std;
    void a(double a, double b, double *add) {
        *add = a + b;
    }
    void j(double a, double b, double *jian) {
        *jian = a - b;
    }
    void m(double a, double b, double *cheng) {
        *cheng = a * b;
    }
    void c(double a, double b, double *chu) {
        *chu = a / (float)b;
    }
    int main()
    {
        double *s1 = NULL;
        //初始化
        s1 = new double;
        int d;
        cin >> d;
        getchar();
        if (d == 0) { a(12, 4, s1); cout << *s1; }
        else if (d == 1) { j(12, 4, s1); cout << *s1; }
        else if (d == 2){ m(12, 4, s1); cout << *s1; }
        else if (d == 3) { c(12, 4, s1); cout << *s1; }
        else cout << "输入错误值";
    
        getchar();
    }
    
    

    多学习指针这块。
    首先,
    double *s1 = NULL;
    只是声明变量,并没有分配空间,不初始化不能直接用。

    其次,
    输出应该是
    cout << *s1;
    是输出s1指向的内容,不是输出s1本身(cout << s1 错误)。

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题