こんばんは。昨日windowsのパソコンでUbuntuをインストールしたらバチバチに重くて泣いたとーです。
C++に挑戦、ということでこれからC++のコーディングを練習します。新しい言語を学習するとなると入力、出力が最初のネックになるけどここは我慢.......。
ABC124A,ABC123A
大枠をかっこ{ }で区切ってコードを書く
入力
空白区切りの数字二つは、
#include <iostream> int main() { int a,b; cin >> a >> b; }
みたいな風に入力を受け取ればよい
改行区切りで数字が増えても同じようにする
出力
出力は、printf()というのとcout << ナントカ ( <
一方でprintf()は最初にinclude
また、coutは本来std::coutと書くべきだけど、最初にusing namespace std;とすればstd::の部分は省略できる
std::の部分は名前空間というらしく、coutというコマンドがstdという領域内のコマンドであることを示しているっぽい これ(名前空間)によって、例えば(こういうことをするのはまずいとは思うけど)自作のコマンドcoutを作ったとしても、std::coutとは区別ができるようになる
(全てについてstd::を省略するのは不都合が生じることもあるらしいので、using std::cout; としておけば、coutだけはstd::の部分を省略できるようになる、{ }で括った部分に入れれば、その{ }内でのみstd::が省略されるようになったりする)
結局、C言語の入出力関数(printfなど)を使用するのには #include
で、結局どちらを使うのがいいのかって話になると難しくて、蟻本なんかだとprintfを使ってたりする
おそらく型変換とか改行とかがやりやすいのかな?だから競プロ向けで使ってるのかもしれん とりあえずprintfでやっていく
printfでやる場合、例えば
#include <stdio.h> int main() { char *str1 = "Hello"; char *str2 = "World"; int number = 10; printf("%s %s %d \n", str1, str2, number); }
となる
まず、charとかintとかで型宣言をしておくのはよくて、その次のprintfの中の%sとか%dとか\nとかなんやねん、って感じになるが、printf()は型を指定してprintができるということらしい
%c → char 文字
%s → char * 文字列
%d → int 10進整数
%f → float 実数
みたいな対応をしている たぶん競プロでは%cよりかは%sの方が使うんじゃないかな
で、\n(\は¥(半角)と同じ)は改行を表す特殊文字だそうです 競プロ改行が大事になりがちなので覚えます
使い方は、printf("型の宣言",適当な引数)という感じになる
a = 11として
printf("%d/n",a);
とすれば、11が出力され、その後に改行が入る
a = 11,b = appleとして
printf("%d %s\n", a,b);
とすれば、11 appleと空白区切りで出るし、%d%s\nとつなげれば11appleと出る
条件分岐
if/elseの書き方は、
if (条件){ \\ なにか } else if (条件) { \\ なにか } else { \\ なにか }
という感じ(つまり一つの判定につき括弧を一つ使う)
for文
簡単なコードを例にとってみる
int i; for(i=0; i<3; i++){ printf("%d\n",i); }
見れば分かるように、i=0に対してiを出力しインクリメント(1加算)、というのを、i=0,1,2に対して行う
なんかi++と++iという二種類の書き方があるっぽいけど何もなければi++でいいっぽい