我认为这是因为我在下面写的代码.但我无法解决它.
classname::smt() {;}
classname::smt1(int x, double y, string name)
{
x = xprivate;
y = yprivate;
name = nameprivate;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试模拟pi到5位小数的近似值.这是我所依据的公式:

但我没有使用无穷大,而是将其近似为5位小数.这是我的代码,但我得到的结果是0.我的猜测是因为整数除法,但我尝试将0加到其中一个除数但它没有帮助:
#include <cmath>
#include <iostream>
int main() {
int sum = 0;
for (int k = 0; k < 5; ++k) {
sum += pow(-1, k) / (2 * k + 1);
}
sum *= 4;
std::cout << sum;
}
Run Code Online (Sandbox Code Playgroud)
这部分:
sum += pow(-1, k) / (2 * k + 1);
Run Code Online (Sandbox Code Playgroud)
我尝试过改为:
sum += ( pow(-1, k) + 0. ) / (2 * k + 1);
Run Code Online (Sandbox Code Playgroud)
要么
sum += ( pow(-1, k) * 1. ) / (2 * k …Run Code Online (Sandbox Code Playgroud) 我的问题在于我不知道如何插入规则,其中如果用户在字符串上输入数字,则会cout发出警告说它无效,如果用户在等级上输入字符串/字符则相同.怎么样?我一直在尝试,但公式不起作用.
int x, cstotal = 100, extotal = 150;
double scorecs, exscore, labtotala, labtotalb, total;
string mystr = "";
cout << "Compute for: " << "\n" << "1. Laboratory Grade " << "\n" << "2. Lecture Grade" << "\n" << "3. Exit" << "\n";
cout << "Please enter a number: ";
cin >> x;
switch (x) {
case 1:
cout << "Compute for laboratory grade." << "\n";
cout << "Enter Student Name: ";
cin >> mystr;
cout << …Run Code Online (Sandbox Code Playgroud) 以下代码有效:
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(myMemberFunction()));
Run Code Online (Sandbox Code Playgroud)
那另一个不:
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(this->myMemberFunction()));
Run Code Online (Sandbox Code Playgroud)
为什么?
如何查看某个班级是否覆盖了另一个班级?
例如:Say bob是一个Bot覆盖抽象类的类Unit.如何使以下评估为真?
bob.getClass() == Unit.class
Run Code Online (Sandbox Code Playgroud) 我在这里问这个问题是因为我认为这更像是一个程序问题而不是其他问题.
我正在使用TI-84 Plus Sliver Edition计算器,该计算器包含可以测试小于,大于和平等的逻辑运算符.我发现当我输入表达式时:
2^34 == 2^34 - 1
Run Code Online (Sandbox Code Playgroud)
它给了我一个令人惊讶的真实.值得一提的是,我的计算器无法精确输出2 ^ 34的结果.相反,它使用指数表示法和任何其他大于33的幂.这是布尔输出中的潜在因素吗?
此外,如果第二个表达式减去1到9,则相等性测试仅返回true.当数字> = 10时,则正确返回false.
这可能是一个舍入错误吗?为什么这个表达式返回true?
我试图在字符串中找到i的数量.这是我的代码:
string str = "CS445isaninterestingcourse";
int num = 0;
for (int i = 0; i < str.length(); i++)
{
if (str.substr(i, i + 1) == 'i')
num++;
}
Run Code Online (Sandbox Code Playgroud)
但我得到错误.有人可以帮忙吗?
谢谢.
我发现一篇文章说,删除矢量项的最佳方法是使用擦除 - 删除习语,如下所示
//say vec = 1963,1923,1900,1963,1967;
vector.erase(std::remove(vec.begin(),vec.end(),1963),vec.end());
Run Code Online (Sandbox Code Playgroud)
根据我的理解,vec.erase在第一个和最后一个迭代器中包含两个参数.范围包括第一个和最后一个之间的所有元素.我想知道如果要删除的值存在于向量中的不同索引处,std :: remove将如何给出单个迭代器范围.我想知道std :: remove如何与vector.erase一起使用
我遇到了一个非常奇怪的问题.(我用Google搜索这一点,但大家都说安装gcc /克+ +)我有g++和gcc安装(最多最新的),但是当我这样做make,它有以下错误信息:
g++ -o even_fibo.out ./src/even_fibo.cpp
make: g++: Command not found
make: *** [even_fibo.out] Error 127
Run Code Online (Sandbox Code Playgroud)
这是我简单的Makefile
PATH = ./src/
even_fibo.out: $(PATH)even_fibo.cpp
g++ -o even_fibo.out $(PATH)even_fibo.cpp
clean: rm even_fibo.o
Run Code Online (Sandbox Code Playgroud)
奇怪的是,当我不使用PATH变量时,也就是说,我./src/在.cpp文件前面输入,一切正常.如果我手动使用g ++进行编译,它也可以工作.但是g++ command not found当我刚使用变量时怎么说呢?
非常感谢!
我正在做CS50的凯撒问题集,当我尝试移动大写字母时,if (isupper(argument) == true)用来检查我想要移动的字符是否为大写,它没有用,它认为大写字母实际上不是大写。当我将其切换到 时if (isupper(argument)),程序正确地移动了大写字母。这两种格式有什么区别吗?这是我使用的代码(我指的是 for 循环中的代码):
#include <stdio.h>
#include <cs50.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
//Check wether there is only 1 command line argument
if (argc == 2)
{
//Check if there is any character that's not a digit
for (int i = 0; i < strlen(argv[1]); i++)
{
if (isdigit(argv[1][i]) == false)
{
printf("Usage: ./caesar key\n");
return 1;
}
}
}
else
{
printf("Usage: ./caesar key\n"); …Run Code Online (Sandbox Code Playgroud)