请看这个代码:
#include <iostream>
using namespace std;
class Ratio
{
public:
Ratio(int a=0, int b=1) : num(a), den(b) {}
Ratio& operator/=(const Ratio&);
void print() {cout << num << "/" << den << endl;}
private:
int num, den;
};
Ratio& Ratio::operator/=(const Ratio& r)
{
num*=r.den;
den*=r.num;
return *this;
}
int main()
{
Ratio x(1,2), y(2,5);
y/=x;
y.print();
}
Run Code Online (Sandbox Code Playgroud)
执行此代码后,(y)应为5/4,我用手计算了好几次!但是在打印后的输出(y)中显示为4/5!它倒是不应该!
我的代码在哪里出问题?我真的已经多次检查了几次,看来它没有任何问题!这是一个功课:)
我有一个非常简单的问题.看看我用Pascal编写的代码:
Program Example;
Begin
Writeln('Question');
Readln;
End.
Run Code Online (Sandbox Code Playgroud)
我想在页面中间显示"问题"这个词,怎么做?
这里我有一个代码:
cout << "Press Enter To Exit...";
cin.ignore();
Run Code Online (Sandbox Code Playgroud)
该程序将执行并等待您按回车键然后退出。现在看这个代码:
int m;
cin >> m;
cout << "Press Enter To Exit...";
cin.ignore();
Run Code Online (Sandbox Code Playgroud)
这次在输入一个数字以保存在“m”后,程序将退出而不等待等待按 Enter 的 cin.ignore 命令。
我的意思是如果你在 cin.ignore 之前使用 cin 命令,cin.ignore 命令将跳过。为什么?我应该怎么做才能修复它?
请看这个代码:
char o,t; cin >> o >> t;
switch (o,t)
{
case 's','g': cout << "Finish"; break;
default: cout << "Nothing";
}
Run Code Online (Sandbox Code Playgroud)
你可以看到switch设置为两个值,但是如果命令我不能同时检查它们.我该怎么办?有什么办法吗?
几个小时前我在C++中问过类似的关于命令行参数的问题.现在我有另一个问题,据我所知,命令行参数将像argv数组中的字符串一样保存.所以将主题与字符串进行比较应该是合乎逻辑的,但它不能按照我想要的方式工作,看看这段代码:
#include <iostream>
using namespace std;
int main(int argc,char** argv)
{
if (argv[2]=="stack") cout << "right";
cout << argv[2];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在我将此命令传递给名为zero.exe的已编译应用程序;
zero.exe stack
Run Code Online (Sandbox Code Playgroud)
输出应该是"rightstack",但if命令将跳过并且只会cout << argv[2];执行,因此只有堆栈将显示在监视器上.它显示"stack"保存argv[2],所以if (argv[2]=="stack")应该工作,但事实并非如此.问题出在哪儿?
我想使用for命令生成一些变量.看下面的代码:
for (char ch='a'; ch<='z'; ch++)
int ch=0;
Run Code Online (Sandbox Code Playgroud)
它只是一个例子,在运行上面的代码之后,我想要int a,int b,int c ...
另一个例子:
for (int i=0; i<10; i++)
int NewiEnd=0;
Run Code Online (Sandbox Code Playgroud)
例如,在运行上面的代码之后,我们将使用int New1End,int New2End等.
希望我足够清楚,我怎样才能在C++中做这样的事情?
我在主函数中使用它时,swap(string1,string2)将轻松交换两个字符串值,但如果我在另一个函数中使用它并从main函数调用它将无法工作!
这工作:
int main()
{
string name1="A",name2="B";
swap(name1,name2);
}
Run Code Online (Sandbox Code Playgroud)
但这个没有:
string name1="A",name2="B"; // Global Here
void exchange (string one,string two)
{
swap(one,two);
}
int main()
{
exchange(name1,name2);
}
Run Code Online (Sandbox Code Playgroud)
问题出在哪儿?
我在C#中有一个非常简单的GUI应用程序,并且在Form Load函数中有一些代码.我只是想启动并关闭应用程序而不显示Form以在表单加载函数中运行这些代码.
怎么做?
如何使用C#将最小和最近的数字设置为零?例如,最小且最接近的DECIMAL(DOUBLE)数字可能在一台PC上为0.000009,在另一台PC上为0.0000000000000000001.
我的意思是1/THE_MOST_LONG_INTEGER的最可能结果.
怎么弄?
我搜索过,但我发现只有与两个列表相关的答案.但是当它们超过两个时呢?
List 1 = 1,2,3,4,5
List 2 = 6,7,8,9,1
List 3 = 3,6,9,2,0,1
List 4 = 1,2,9,0,5
List 5 = 1,7,8,6,5,4
List 6 = 1
List 7 =
Run Code Online (Sandbox Code Playgroud)
如何获得常见物品?你可以看到其中一个是空的,所以常见的是空的,但我需要跳过空列表.