2019-10-20 21:52

# 救急！！这个程序在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 错误)。

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