小编Ins*_*Man的帖子

比率类中的运算符/ =工作方式错误

请看这个代码:

#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!它倒是不应该!

我的代码在哪里出问题?我真的已经多次检查了几次,看来它没有任何问题!这是一个功课:)

c++

2
推荐指数
1
解决办法
350
查看次数

在页面中间显示一个单词 - Pascal

我有一个非常简单的问题.看看我用Pascal编写的代码:

Program Example;
Begin
Writeln('Question');
Readln;
End.
Run Code Online (Sandbox Code Playgroud)

我想在页面中间显示"问题"这个词,怎么做?

delphi pascal

1
推荐指数
1
解决办法
449
查看次数

Cin.Ignore() 不起作用

这里我有一个代码:

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 命令将跳过。为什么?我应该怎么做才能修复它?

c++ cin

1
推荐指数
1
解决办法
1万
查看次数

用于检查两个值的Case命令

请看这个代码:

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++ switch-statement

1
推荐指数
1
解决办法
1873
查看次数

命令行参数是否为某些字符串?

几个小时前我在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")应该工作,但事实并非如此.问题出在哪儿?

c++ command-line-arguments

1
推荐指数
1
解决办法
1993
查看次数

生成变量的名称

我想使用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++中做这样的事情?

c++ variables

1
推荐指数
1
解决办法
250
查看次数

交换字符串值不适用于函数 - 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++

1
推荐指数
1
解决办法
364
查看次数

开始并立即关闭应用程序而不显示表单

我在C#中有一个非常简单的GUI应用程序,并且在Form Load函数中有一些代码.我只是想启动并关闭应用程序而不显示Form以在表单加载函数中运行这些代码.

怎么做?

c#

0
推荐指数
1
解决办法
64
查看次数

将最小和最近的数字归零 - C#

如何使用C#将最小和最近的数字设置为零?例如,最小且最接近的DECIMAL(DOUBLE)数字可能在一台PC上为0.000009,在另一台PC上为0.0000000000000000001.

我的意思是1/THE_MOST_LONG_INTEGER的最可能结果.

怎么弄?

c#

0
推荐指数
1
解决办法
397
查看次数

在C#linq中查找多个列表中的常用项

我搜索过,但我发现只有与两个列表相关的答案.但是当它们超过两个时呢?

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)

如何获得常见物品?你可以看到其中一个是空的,所以常见的是空的,但我需要跳过空列表.

c# linq

0
推荐指数
2
解决办法
1045
查看次数