hello,大家好,我是你们的新朋友,你们可以叫我小潘~
或许大家是第一次见到我,也有可能是其他平台过来的,我都要给大家作个自我介绍:我是来自河北石家庄的一名新初一学生。我热爱编程技术,擅长Python、C++和命令行(Windows批处理),目标是信息学竞赛。
我的同学们都说我很幽默,甚至有人说我“不正经”? 。
你现在看到的文章是一个特别、特别厉害的失败者写下的,希望大家可以吸取我的惨痛教训,创造出你们的海阔天空。
咳咳,别的好成绩别说,我直到现在的模拟赛成绩都在100以内。
OK,我们介绍完了,来说说这个专辑C++信息学竞赛从入门到出门? ,大家可以在这里从学C++,入门信息学竞赛,然后再出门!
那我们废话不多说,现在我们来开始今天的内容————
首先吧,你得知道C++是啥,不然学了半天都白学。
C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。
C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。
C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。
C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。
注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。
C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性:封装、抽象、继承、多态
我嘞个去,这都是啥跟啥啊?!
没关系,看不懂也没事儿,就记住一点:C++是面向对象编程语言!
C++、Python、Java等等等,现在主流的编程语言,除了C语言,都是面向对象编程语言。
OK,看到这儿,你就能做题了:
[CSP-J 2021]以下不属于面向对象程序设计语言的是( )。
A. C++
B. Python
C. Java
D. C
显而易见~答案是?D!
现在,你的C++漫漫长路,已经迈出了第一步。我们继续看:
Luogu B2002 Hello,World!
【题目背景】
强烈推荐新用户必读贴
【题目描述】
编写一个能够输出Hello,World!的程序,这个程序常常作为一个初学者接触一门新的编程语言所写的第一个程序,也经常用来测试开发、编译环境是否能够正常工作。
【样例 #1】
【样例输入 #1】无【样例输出 #1】
Hello,World!【提示】
- 使用英文标点符号;
Hello,World!逗号后面没有空格。
大家都有devcpp吧?如果没有就下一个安装,有的话就继续搞~
现在,让我们开始熟悉语法。
在我们学函数和递归算法以前,你完全可以把下面的内容当做模板:
#include <bits/stdc++.h> // 导入所有函数,万能头文件
using namespace std; // 使用命名空间
int main(){
// 在这里写程序
return 0; // 退出程序
}
我们这时候要输出Hello,world!,需要先认识两个重要功能:cout和printf。它们是标准的输出流。用法:
cout<<"这里是cout输出的内容"<<endl; // endl为换行
printf("这里是printf输出的内容\n"); // \n为换行
在devcpp里面写好,编译运行:

你可以看到,程序正常地输出了文字。

那么还有个问题,怎么输入呢?
// Author:PanDaoxi
#include <bits/stdc++.h>
using namespace std;
int main(){
// 在此声明变量
cin>>变量1>>变量2>>...>>变量n;
return 0;
}
这样,就给每个变量输入并赋值啦~
运算是很简单的啊,和别的语言一样。相信大家对别的编程语言有所了解,其实都一样,一通百通~

就是这么神奇~来试试看:
// Author:PanDaoxi
#include <bits/stdc++.h>
using namespace std;
int main(){
// 建议加上括号,不加也对
cout<<(1+2)<<endl;
cout<<(1-2)<<endl;
cout<<(1*2)<<endl;
cout<<(1%2)<<endl; // 取余运算
// 数据范围小的话可以使用pow函数计算幂,该句的意思是1的平方。
cout<<pow(1,2)<<endl;
// 计算2的算术平方根
cout<<sqrt(2)<<endl;
return 0;
}
但是,有一个易错点,你知道下面这个程序输出的结果嘛?
// Author:PanDaoxi
#include <bits/stdc++.h>
using namespace std;
int main(){
cout<<(1/2);
return 0;
}

哈哈哈,惊讶吗??这是为什么?!
因为C++语言是个静态类型语言,它不转换的话整数始终是整数,小数始终是小数。所以在C++的眼里1/2=0.5,但是1和2是整数,所以要向下取整,结果就是0!这一点一定要记住,特别重要!!
但是怎么才能让它变成小数类型呢?首先我们要认识一个概念:
float为 “单精度浮点数”;
double为 “双精度浮点数”。
在信息学竞赛中,我们使用double类型比较多,那么如何强制类型转换呢?
(要转换的数据类型)(要转换的内容)
例如,我们需要转换1/2的值,可以这样写:
// Author:PanDaoxi
#include <bits/stdc++.h>
using namespace std;
int main(){
cout<<(double)(1)/(double)(2);
return 0;
}
这里有个小坑儿,需要先转换然后再做除法。因为转换前会先运算表达式,所以整型的结果转换为浮点型,和原来一样。
这里还有个点儿,比较低级的类型转换类型时会自动转换。所以想要实现刚才的效果还可以这样写:
// Author:PanDaoxi #include <bits/stdc++.h> using namespace std; int main(){ cout<<(double)(1)/2<<endl; cout<<1/(double)(2)<<endl; return 0; }C++语言有好多坑,一不留神就踩进去了!
现在我们来看一个题儿:
Luogu B2022 输出保留 12 位小数的浮点数
啊这,怎么保留呢?
记住一个写法:
// Author:PanDaoxi
#include <bits/stdc++.h>
using namespace std;
int main(){
cout<<fixed<<setprecision(保留小数的位数)<<保留的小数;
return 0;
}
结合以前的写法,你自己写一写叭!
参考答案:
// Author:PanDaoxi
#include <bits/stdc++.h>
using namespace std;
int main(){
double n;
cin>>n;
cout<<fixed<<setprecision(12)<<n;
return 0;
}

今天,就先说到这儿叭,明天见!

如果在Ruby中一切都是对象,甚至数学运算符都是应用于对象的方法,当我写下:puts"Helloworld"方法是puts,参数是“Helloworld”,但是对象是什么? 最佳答案 放要查找方法,您可以调用:method(:puts)#=>#所以puts是定义在Kernel中的方法,对每个Object都可用。内核#putsputs"Helloworld"实际上是self.puts(String.new("Helloworld"))self是对象main.所以puts"helloworld"是:Kernel#puts方法调用在mai
当我运行https.ssl_version=:TLSv1_2我得到了错误ruby/2.1.0/net/http.rb:920:in`connect':SSL_connectreturned=1errno=0state=SSLv3readserverhelloA:wrongversionnumber(OpenSSL::SSL::SSLError)当我更改为https.ssl_version=:SSLv3ruby/2.1.0/net/http.rb:920:in`connect':SSL_connectSYSCALLreturned=5errno=0state=SSLv3readserve
在下面的例子中,为什么我们说“k.send:hello”而不是“k.receive:hello”if,asstatedelsewhere,k实际上是接收者?听起来k是发送者而不是接收者。当我们说“k.send:hello”时,谁在发送,如果不是k?(你是不是和我一样一头雾水?)classKlassdefhello"Hello!"endendk=Klass.newk.send:hello#=>"Hello"k.hello#=>"Hello" 最佳答案 在Smalltalk中,一切都是对象。“发送者”是消息来源范围的所有者对象(即“th
我在这里看到了很多答案,但没有一个有效。我正在使用omniauth-oauth2gem与第三方客户集成。我正在使用描述的设置阶段here但我总是收到这个错误:Authenticationfailure!failed_to_connect:Faraday::Error::ConnectionFailed,SSL_connectSYSCALLreturned=5errno=0state=SSLv2/v3readserverhelloAFaraday::Error::ConnectionFailed(SSL_connectSYSCALLreturned=5errno=0state=SSLv2
我有一个使用IMAP和SSL连接到交换服务器的ruby客户端。我使用RubyNet::IMAP库(在幕后使用openssl)进行连接。它已经工作了几个月。交换服务器管理员从godaddy安装了新证书,现在我收到此错误:SSL_connectSYSCALLreturned=5errno=0state=SSLv2/v3readserverhelloA有谁知道这个错误是什么意思?(我试过谷歌搜索)我怀疑新证书有问题导致了这个问题,但我不知道如何解决它。另外我知道您可以在使用NET:HTTP时禁用证书验证:http.verify_mode=OpenSSL::SSL::VERIFY_NONE
长期从事Java开发,初次使用Ruby开发。尝试使用Rails应用到达“helloworld”步骤,但遇到困难。我肯定我在这里缺少一些基本的东西。也就是说,无论是StackOverflow的“具有相似标题的问题”还是Google的“rubyrailshelloworld”命中(或其变体)都没有阐明我所遗漏的内容。我已经通过RVM安装了ruby(v1.9.3p194)、gem(1.8.23)和rails(3.2.3)。我使用以下方法生成了一个Controller:railsgeneratecontrollercommon在默认的“config/routes.rb”中,我有以下两种路由
将HelloWorld这样的字符串变成hello_world的Ruby方法是什么。 最佳答案 您不需要Rails助手。你可以用纯ruby来做。'HelloWorld'.downcase.tr('','_')# =>hello_world 关于Ruby方法使像'HelloWorld'这样的字符串变成像'hello_world',我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5719
下面的代码会产生以下错误:OpenSSL::SSL::SSLError:SSL_connectSYSCALLreturned=5errno=0state=SSLv3readserverhelloArequire'net/https'uri=URI.parse("https://.com")http=Net::HTTP.new(uri.host,uri.port)http.use_ssl=truehttp.ssl_version='SSLv3'http.get(uri.request_uri)知道为什么吗?我尝试了所有其他问题中提到的所有内容,仍然没有运气。Ruby1.9.3p484(2
我知道在PHP中你必须解释像index.php这样的页面,但在Ruby中它是如何工作的?我不知道PHP的index.php之类的Ruby扩展是什么。你能帮帮我吗? 最佳答案 如果您谈论的是命令行程序,这会起作用。puts"HelloWorld"或者如果你想要一个面向对象的版本classHelloWorlddefinitialize(name)@name=name.capitalizeenddefsayHiputs"Hello#{@name}!"endendhello=HelloWorld.new("World")hello.sayH
我正在尝试了解openDatabase,我想我正在将它插入到TABLE1中,但我无法验证SELECT*FROMTABLE1是否正常工作。google.load("jquery","1");vardb;$(function(){db=openDatabase('HelloWorld');db.transaction(function(transaction){transaction.executeSql('CREATETABLEIFNOTEXISTSTable1'+'(TableIDINTEGERNOTNULLPRIMARYKEYAUTOINCREMENT,'+'Field1TEXTNO