如果我运行我的程序,它不会将“Bitte Funktion waehlen”之后输入的值与sin
,cos
或tan
进行比较。相反,它总是直接跳转到else
语句。
#include <iostream>
#include <string>
using namespace::std;
int funktions_wahl(char funktion, int genauigkeit)
{
char sin;
char cos;
char tan;
int x;
if (funktion==sin) {
cout << "sin von " << x << " =" << 2*x*genauigkeit; //Wie sin als fkt hier benutzen? 2x vorübergehend.
}
else if (funktion==cos) {
cout << "cos von " << x << " =" << 4*x*genauigkeit; //Gleiches Spiel wie oben.
}
else if (funktion==tan) {
cout << "tan von " << x << " =" << 8*x*genauigkeit; //Gleiches Spiel wie oben;
}
else {
cout << "Keine gültige Variable eingegeben\r";
}
return 0;
}
int main() {
char f;
int g=0;
cout << "Taschenrechner 1.0\r" << "Bitte Funktion eingeben: ";
cin >> f;
cout << "Genauigkeit wählen: ";
cin >> g;
funktions_wahl(f, g);
}
我不明白为什么。有人对我有建议吗?
答案 0 :(得分:3)
char sin;
char cos;
char tan;
int x;
if (funktion==sin) {
cout << "sin von " << x << " =" << 2*x*genauigkeit;
您忘记初始化sin
,cos
,tan
和x
,因此正在阅读未初始化的内存。
你可能想要像char sin = 's';
这样的东西。
答案 1 :(得分:1)
问题是你没有初始化变量'h;s/[^[:alpha:]]//g;H;x;s/\n/&&/;ta;:a;s/\n(.)\n(.)/\n\2\1\n/;ta;G;/\n(.)\n\n\1$/I;d' $1
,sin
和cos
(实际应该是常量),这会导致未定义的行为:
tan
)。要纠正此问题,您应该按如下方式定义和初始化这些常量:
cout << "Keine gültige Variable eingegeben\r";
<强>更新强>
要回答您更新的问题(如何使用“罪”而不是“s”),您只需将变量类型从const char sin = 's';
const char cos = 'c';
const char tan = 't';
更改为char
,然后更改文字char literals(在简单引号之间)到字符串文字(在双引号之间),如下例所示:
string
答案 2 :(得分:0)
感谢您的回答。
我按照你的建议改变了它。但仍然不可能进入e.G罪而不是s?
#include <iostream>
#include <string>
using namespace::std;
int funktions_wahl(char funktion, int genauigkeit, int x)
{
char sin='s';
char cos='c';
char tan='t';
if (funktion==sin) {
cout << "sin von " << x << " =" << 2*x*genauigkeit << "\r"; //Wie sin als fkt hier benutzen? 2x vorübergehend.
}
else if (funktion==cos) {
cout << "cos von " << x << " =" << 4*x*genauigkeit << "\r"; //Gleiches Spiel wie oben.
}
else if (funktion==tan) {
cout << "tan von " << x << " =" << 8*x*genauigkeit << "\r"; //Gleiches Spiel wie oben;
}
else {
cout << "Keine gültige Variable eingegeben\r";
}
return 0;
}
int main() {
char f;
int g=0;
int x=0;
cout << "Taschenrechner 1.0\r" << "Bitte Funktion eingeben: ";
cin >> f;
cout << "Genauigkeit wählen: ";
cin >> g;
cout << "x wählen: ";
cin >> x;
funktions_wahl(f, g, x);