hello,大家好,我是你們的新朋友,你們可以叫我小潘~
或許大家是第一次見到我,也有可能是其他平臺過來的,我都要給大家作個自我介紹:我是來自河北石家莊的一名新初一學生,我熱愛編程技術,擅長Python、C++和命令列(Windows批處理),目標是資訊學競賽,
我的同學們都說我很幽默,甚至有人說我“不正經”?? ,
你現在看到的文章是一個特別、特別厲害的失敗者寫下的,希望大家可以吸取我的慘痛教訓,創造出你們的海闊天空,
咳咳,別的好成績別說,我直到現在的模擬賽成績都在100以內,
OK,我們介紹完了,來說說這個專輯C++資訊學競賽從入門到出門?? ,大家可以在這里從學C++,入門資訊學競賽,然后再出門!
那我們廢話不多說,現在我們來開始今天的內容————
HELLO,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為換行,且printf自帶換行
在devcpp里面寫好,編譯運行:

你可以看到,程式正常地輸出了文字,

那么還有個問題,怎么輸入呢?
// Author:PanDaoxi
#include <bits/stdc++.h>
using namespace std;
int main(){
// 在此宣告變數
cin>>變數1>>變數2>>...>>變數n;
return 0;
}
這樣,就給每個變數輸入并賦值啦~
C++的運算
運算是很簡單的啊,和別的語言一樣,相信大家對別的編程語言有所了解,其實都一樣,一通百通~

就是這么神奇~來試試看:
// Author:PanDaoxi
#include <bits/stdc++.h>
using namespace std;
int main(){
// 建議加上括號,不加也對
cout<<(1+2)<<endl;
cout<<(1-2)<<endl;
cout<<(1*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;
}

今天,就先說到這兒叭,明天見!

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/500574.html
標籤:C++
上一篇:C++ 記憶體模型 write_x_read_y 試例構造
下一篇:演算法-買賣股票的最佳時機


