[C言語]【scanf】キーボードから文字を入力![初心者]【C言語第5弾】
現役高校生の主がプログラミング言語のうちの一つであるC言語について初心者向きに解説していきたいと思います。
前回は数字をキーボードから入力して画面に表示させましたが、
今回は文字をキーボードから入力して画面に表示させる方法について解説します。
前回のが基礎となっているので、少し自信のない方は前回のブログを読んでから今回のブログを読むようにするとわかりやすいと思います。
では、解説していきます。
文字を入力するためにはどうするの?
前回のブログを読んでくれた方はキーボードから数字を入力する方法はわかると思います。
キーボードから入力したいときには「scanf関数」を使うのはわかるけど、文字の時の書式指定子と、変数はどうすればいいかわからないという方は今回のブログを読んでいただければわかるようになります。
今までの話で少しわからないところがあったなって人は一度前回のブログに復習をするためにさかのぼってからこのブログを読むほうがわかりやすいかも知れません。
文字の時の書式指定子と変数は?
整数や実数のときの書式指定子は「%d」、「%f」でしたが、文字を入力したいときの書式指定子は「%s」を使います。
また、変数の型は「char」型を使います。
プログラムを見ながら解説
今回のプログラムも前回と同じように「scanf関数」の前に「printf関数」で文字を入力することを指定するか、容量を多めに設定しておかなければいけません。また「char」を使用するときはあらかじめ文字数を指定しなければいけなく、また日本語を入力させる際には一文字で2バイト分必要になります。
なので、今回の場合は日本語5文字なので、10バイト必要になるためあらかじめ準備しておきます。
ほかにも、整数とか実数のときにはscanf関数を使うとき「&変数」にしないといけなかったのですが今回のように文字の入力のときのみ例外です。
ちなみに1バイトとは8ビットのことで、1ビットは情報の最小単位
(0か1で表される情報)のことです。
問題
自分の名前、趣味、年齢を入力してもらって表示するプログラムを作りなさい。
名前、趣味は日本語、年齢は整数で入力するように宣言すること。
終わりに
今回は前回に引き続きキーボードから入力する方法について解説しました。
これで「scanf関数」についてはバッチリだと思います。
コメントでの質問・感想もお待ちしています。答えられるものは答えていこうと思います。 かもブログ(@kamo_burogu0)のフォローもぜひよろしくお願いします。
ファンタジー、バトル好きに読んでほしい「小説家になろう」作品
今回はファンタジー、バトル好きに読んでほしい「小説家になろう」作品について書いていきます。このブログの主が読んでいて面白いなと思った作品を紹介します。
主が最初に書いた「なろう」のオススメ作品についてのブログもぜひ読んでください。
オススメ作品【その1】
良家で才能溢れる新人が加入するので、お前は要らないと追放された後、偶然お金を落とした穴が実はガチャで全財産突っ込んだら最強になりました
https://ncode.syosetu.com/n8700gk/
オススメの作品の1つ目はこの作品です。
この作品の作者さんはぽいづんさん(@tt73v)です。
小説紹介にはネタバレが多少あるので苦手な人は注意してください。
主人公の「ウェブ・ステイ」は、家柄が特別なわけでもなく、とても強いわけでもないそこそこの剣士。冒険者のパーティの一員としてそこそこの活躍をして過ごしていた。
ある日パーティリーダーのガルフからの話があり、パーティに親戚が剣聖という立派な家系で、剣術学校を極めて優秀な成績で卒業したという才能溢れる剣士の新人がパーティに入ると知らされた。
ウェブは剣士2人体制でこれからやっていくのかと思ったが、ガルフに追放を言い渡された。悲しい気持ちになりながら町のはずれを歩いていると石に躓きポケットから銀貨が転がり落ちてしまう。そのまま小さな穴に銀貨が入るとそこはガチャを引くことのできる穴でその穴に全財産をいれてたくさんガチャを引き、強くなったウェブは夢だった騎士になるために奮闘していく物語です。彼は立派な騎士になることができるのか。
みなさんが大好きなガチャを引いて強くなっていく物語です。
ファンタジー、ガチャが好きな人にオススメの小説です。
俺はガチャ廃人じゃない。〜パーティを追放されたら偶然能力が強化されるガチャを見つけたので全財産突っ込んだら最強に〜
https://ncode.syosetu.com/n7396gk/
というぽいづんさんの作品の別ルートのお話となっているので、ぜひこちらの作品も読んでみてください。
オススメ作品【その2】
Seven World Online(セブンワールドオンライン)
https://ncode.syosetu.com/n9597fm/
オススメの作品の2つ目はこの作品です。
この作品の作者さんはアルクさんです。
主人公の「アルク」が人間界、魔法界、機甲界、武術界、精霊界、幻獣界、神仏界の異界の門によって繋がった7つの世界で旅し楽しみながら仲間たちやライバルたちと出会い、眷属たちを仲間にし、いろいろなスキルを身に着け、持ち前のセンスで多くの武器、兵器を使いこなし、時にはおいしい料理を食べ、次々と来る敵を倒し、たまに倒され強くなっていく物語です。
人間、魔族、機械人、ドワーフ、エルフなどの多種多様な種族になって、多くのスキル、魔法を使って楽しめるこのゲームでアルクは何を見て、何に気づき、何を成し遂げるのか。このSeven World Onlineという世界はVRMMOという一言ですませていいものなのか。自分たちが気づいていないところで何が起こっているのか。
ぜひあなたが読んで感じてください。
VRMMO、ファンタジー、SF、バトルが好きな方にオススメな作品です。
オススメ作品【その3】
仇討つ魔眼の桃色少女 〜和風世界を生き抜く為に、私は『眼』に極振りする〜
https://ncode.syosetu.com/n0909gj/
オススメの作品の3つ目はこの作品です。
この作品の作者さんは矢倉坂さん(@Yagurazaka_)です。
主人公の生まれつき色を認識することのできない色盲の少女、五道結衣は和風VRMMO<虎狼 零>をはじめた。
彼女は「リクドー」となりその世界に飛び込んでいく。彼女はステータスのひとつである「眼」に「紋」というボーナスポイントを全振りする。彼女の強みは対人戦におけるプレイヤースキルの高さに加えて、全振りすることによって最強となった「眼」、そして「眼」と相性のいい神楽識天流を使いこなし最強となるその時まで戦い続ける。無自覚戦闘狂の彼女は自分だけのユニーク能力である「刀霊」の「極彩色」と一緒にこの色の見える<虎狼 零>の世界で何を見るのか。
VRMMO、和風、刀、異能力が好きな方のオススメの作品となっています。
終わりに
皆さんどうでしたか?主がファンタジー、バトル好きに読んでほしい作品を紹介しました。気になる作品があった人はぜひ読んでみてください。
全部面白い作品です。コメントで皆さんのオススメの作品をぜひ教えてください。
かもブログ(@kamo_burogu0)のフォローもぜひよろしくお願いします。
[C言語]【scanf】キーボードから入力した数字を画面に表示させてみよう[初心者]【C言語第4弾】
現役高校生の主がプログラミング言語のうちの一つであるC言語について初心者向きに解説していきたいと思います。
今回は、キーボードから入力した値を画面に表示させる方法を解説します。
前回のブログを読んでからのほうが、わかりやすいのでまず前回のブログを読んでから読み進めてください。
今回は、タイトルにもある通りキーボードから入力した値を画面に表示させるためにどうしたらいいのかについて解説していきます。
キーボードからどうやって入力するの?
今までのブログを読んできてくれた方はプログラムであらかじめ表示させる数字や文字を決めておいてその決めておいた文字を表示させる方法はわかると思います。「忘れたよ」という方は下のブログを読んで下さい。
↓ 文字を表示させる方法はこちら
kamoburogu.hatenablog.com
↓ 数字を表示させる方法はこちら
kamoburogu.hatenablog.com
では、あらかじめプログラムで決めておいた文字ではなくプログラムを実行したタイミングでキーボードから入力して表示させるためには「scanf関数」という関数を使わなければいけません。
scanf関数ってどう使うの?
「scanf関数」の使い方をプログラムを実際に見ながら解説します。
どんなプログラム?
今回の例として用いるプログラムでは、「printf関数」を用いて入力してもらうデータの型を指定し、「scanf関数」を用いてキーボードからデータを入力してもらって、そのデータをまた「printf関数」を用いて画面に表示させるプログラムです。
大事なのは、最初の「printf関数」でデータ型を指定することです。
ここで指定しておかないと次の「scanf関数」でどの書式指定子、変数を用いればよいかわからないからです。例えば、今回のように「%d」や「int」を使っていたとして指定をしていないと実数を入力されるかもしれません。その場合プログラムは動きません。なので、あらかじめ指定することが大事なのです。
↓書式指定子、変数ってなんだったっけ?って方はこのブログを読んでみて下さい
「scanf関数」とは?
「scanf関数」は、キーボードからデータを入力する関数です。
キーボードから入力したデータを受け取り変数の箱の中にいれるための関数です。なので、データと変数の箱の型があっていることが大事なのです。
注意として「"%d",」までは「printf関数」と同じなのですがこの後が違います。
「&a」となるのです。「printf関数」では「&」はいらないのですが「scanf関数」では必要なので注意してください。
実数の場合はどうなるの?
例で使用したプログラムは整数型だったので、実数型の場合も解説しようと思います。
ただこれは整数型で考え方がわかっていたら、その考え方のまま書式指定子と変数の型を整数から実数に変えるとできます。
なので、「int」→「float」、「%d」→「%f」に変えるだけで大丈夫です。
問題
身長、体重、年齢を入力してもらい、一つの関数で表示しなさい。
(整数で実行するように)
この問題の注意点は、変数を3つ必要とするところです。
今回は問題では整数で実行するようにと指定されているため整数と指定する表示があってもなくても大丈夫です。
終わりに
今回は「scanf関数」について解説しました。今までの知識がないとわかりにくくなってきていると思うので自分の中でしっかり理解を深めながらがんばりましょう。
コメントでの質問・感想もお待ちしています。答えられるものは答えていこうと思います。
[C言語]【printf】変数を使って画面に数字を表示させよう[初心者]【第三弾】
現役高校生の主がプログラミング言語のうちの一つであるC言語について初心者向きに解説していきたいと思います。
今回のブログは、初心者向きのブログ第三弾となっているので第二弾を読んでない方はまずそちらを読んできてくれてからのほうが理解できると思います。
前回の続きとして「printf関数」の説明をしていきます。
今回はprintfを使って数値を出力する方法について解説します。
数値データの出力ってどうするの?
まずはプログラムを見てください。
やっぱり、画面へ何か出力したいときは「printf」を使用します。
今回始めて出てきた「%d」について解説します。
%dとは?
「%d」は「書式指定子」のひとつです。
では、書式指定子とはなんなのか説明します。
書式指定子とは、数値をどのように画面に出力するのかを指定する記号です。
今回のプログラムで使用している「%d」という書式指定子は整数を画面に表示させたい場合に使用します。
なので、数値を整数を出力するように指定します。
画面には整数である 1500 を表示させました。
前回の復習として画面に出力した後に改行させるために「¥n」を使用します。
変数とは?
上のプログラムを見たときさっき説明したプログラムとの違いがわかりますか?
違いは「変数」を使用しているか、使用していないかです。
変数というのは、コンピューターに数値などを記憶させるための箱のようなものです。今回のプログラムでは、その箱のなかに1500をいれてその箱の中身を
「printf」を使用して画面に表示させています。
変数を使うときに2つ気を付けないとダメのことがあります。
①変数の「型」を決める
例)int ,floatなど
②変数に名前をつける
例)a,bなど
上記の二つに注意しながら使用しないといけません。
今回のように1500という整数を表示させたい場合、「int型」で変数を使用します。名前はなんでも大丈夫です。
実数の場合はどうするの?
例として紹介した「float型」は、少数が入る数、いわゆる実数を表示させたいときにしようします。また、実数を表示させたいときに使用する書式指定子は、「%d」整数のときとは違います。実数の時は「%f」を使用します。
桁を指定する場合(整数)
数値を画面に出力するときに桁を指定して数値を表示したい場合どうすればよいのかについて説明していきます。
上のプログラムを見ながら説明します。
「%5d」とすると、5桁右詰めで表示することができます。
「-%5d」とすると、5桁左詰めで表示することができます。
桁を指定する場合(実数)
また、実数を桁を指定せずに表示させるとこうなります。
「%8.3f」という桁指定は、小数点を含む全体で8桁、小数点は3桁までで指定するやり方となっています。
実数の場合小数点以下の数字もあるのでしっかり桁数の指定を行うほうがいいと思います。
終わりに
今回は、数値データの出力について基本から解説していきました。
次回は「scanf関数」について解説したいと思います。
コメントでの質問・感想もお待ちしています。答えられるものは答えていこうと思います。
次回のブログはこちらです。
[C言語]【printf】画面に文字や数字を表示させよう[初心者]【第二弾】
現役高校生の主がプログラミング言語のうちの一つであるC言語について初心者向きに解説していきたいと思います。
今回のブログは、初心者向きのブログ第二弾となっているので第一弾を読んでない方はまずそちらを読んできてくれてからのほうが理解できると思います。
今回のブログでは、「printf関数」について説明していきます。
ですが、そのまえに前回のブログをあげたあとにもらった質問について答えていきます。
C言語とC++ は何が違うの?
という質問です。
まずC++という言語はC言語をより便利にするために派生した言語です。
まずC言語を習得してそのあとにもっといろんなことができるようにC++を習得しようとすることになると思いますので、C言語から最初に勉強しましょう。
ではここから本題です。
printf関数とは
最初に前回と同じプログラムを見てください。
printf関数というのは、画面へ出力をしたいときに使用するものです。
画面に出力したい文字を( )の中に「ダブルクォーテーション」という記号「”」で囲んで書きます。
文字の最後に「¥n」をいれると今回の場合でいくと「こんにちは」と出力した後、改行をいれることができます。
例題
今回までの復習として例題を解こうと思います。
問題
自分の名前、年齢を画面に出力するプログラムをつくりましょう。
ただし名前と年齢の間に改行を入れること。
この問題を解いていきましょう。
今回はprintf関数一つバージョンと、二つバージョンを作ってみました。
一つバージョンはprintf関数一つですむ分、二つバージョンよりも実行(コンパイル)するまでわかりにくいです。なので、主は二つバージョンのほうをオススメします。
終わりに
今回は「printf関数」を用いて行う文字の出力について詳しく解説しました。
書式指定子や変数というものを用いて行う数値データの出力について書いていきます。
コメントでの質問・感想もお待ちしています。答えられるものは答えていこうと思います。
次の記事はこちら↓
[C言語]高校生が教える!基礎から始めるプログラミング言語【第一弾】[初心者向き]
現役高校生の主がプログラミング言語のうちの一つであるC言語について初心者向きに解説していきたいと思います。
「プログラミングって難しそう」って思う人もいると思うんですが基礎的なことから解説していくので一緒に頑張りましょう。
プログラミング言語とは?
初めてプログラムを始める人はまず「プログラミング言語って何だろう?」と思うと思います。その質問に答えていこうと思います。
プログラミング言語というのはコンピューターを動かすための指示を書いたものです。コンピューターに仕事をさせるためにプログラミング言語を使って命令をするのです。
代表的なプログラミング言語って何があるの?
代表的なプログラミング言語は、C言語、Java、Python、C++などがあります。
その中でも最も代表的なプログラミング言語はC言語です。
これからそのC言語について解説していきます。
C言語について
C言語は、1972年に開発されたプログラミング言語です。
この言語について軽く説明すると、特徴は
- 汎用性が高い
- 処理速度が速い
ところです。
この言語は、簡単ではありませんが歴史のある言語なので学ぶ手段は多くあると思います。なので、がんばって習得しましょう。
簡単なC言語のプログラム
このプログラムは、「こんにちは」と画面に表示させるプログラムです。
今回はこのプログラムを見ながら解説していきます。
上の写真が実行結果です。ちゃんと「こんにちは」と実行されています。
#include< >とは
これは前処理文といい、プログラムを前処理するために必要なヘッダファイルを読み込む文です。インクルード文とも言います。
前処理文とは、頭に「#」のついたことをいい、
ヘッダファイルとは、拡張子「.h」のついたファイルのことです。
今回のように画面に表示するプログラムを作成したいときには、
「stdio.h」というファイルを読み込みます。
main 関数とは
今回のプログラムでは、main関数は
int main(void){ から始まり return 0;}で終わるところです。
これはプログラムの本体で「{」から「}」までをいいます。
かっこの中に必要なプログラムを書きます。
プログラムの最後にはセミコロン「;」を使います。
return 文とは
main関数を終了させる際に必要なプログラムで、main関数の終わりの部分に書くプログラムです。
終わりに
今回はどんなこれからプログラムを学んでいく中で必ず使うことについて説明しました。次回のブログでは例のプログラムでも使用した「printf関数」について説明していくのでぜひ次のブログも読んでください。
コメントでの質問・感想もお待ちしています。答えられるものは答えていこうと思います。
次回のブログはこちら↓
[城とドラゴン]新キャライフリートについて解説
今回は、城とドラゴンから新しく出た
「イフリート」
というキャラクターについて書いていこうと思います。
今回の新キャラの性能は?
上の写真を見てもらうとわかるとおり2コスト5体という今の流行りのケットシーと同じです。一番の特徴はスキルなのですが、今は置いておいて通常攻撃について説明します。
通常攻撃について
イフリートは敵の防御力を無視できるという特性を持っているためとても攻撃力が低く設定されています。また、攻撃回数が150(分)ということでケットシーの箱を素早く破壊することが可能になっています。ケットシーは弱体化が入ったといってもまだまだ強いのでイフリートはケットシーのスキルも効きにくいのでいいかなと思います。
ですが、攻撃回数が多いことによっていいことばかりではなくオークやジャイアントクラブなどの攻撃されたときに発動するスキルを発動させやすくなってしまうためそこは少し注意が必要です。
特にジャイアントクラブには与えるダメージがさがってしまうため当てられてしまうときつくなります。中型迎撃の多くを苦手とするので意識しておくといいです。
スキル「ダイナマイト」について
このスキルは着火できる爆弾を鬼ん子のようにばらまきます。ただ鬼ん子よりはだいぶ前方のほうにばらまきます。そのダイナマイトをイフリートの通常攻撃をあてて着火することによって爆発させます。その時に、周りにダイナマイトがあると連鎖して大きい威力の攻撃を行うことができます。また、この着火はほかのキャラクターのスキルでも可能でケットシー、バクダンおやじ、特殊部隊、ドラゴンライダー、雪ん子、カンガルー、バトルバルーン、レッドドラゴン、レッドラガール、トレントガール、チビドラのスキルでもダイナマイトに着火することが可能になっています。
なので、イフリートを固定で使うときにはこれらのキャラのどれかを固定して使ってみるのも強いかもしれません。裏でイフリートが来たときは同じラインにイフリートを出して一体はダイナマイトをまくため後ろめに出して、もう一体は着火役として前めに出すのもいいかもしれません。二体同じラインに出すことでダイナマイトが多くまかれて連鎖が起こって大威力の攻撃になるのが強みです。
また、ダイナマイトは時間経過でも爆発するため着火させれなかったとしても相手に圧をかけることが可能です。
イフリートの相性について詳しく知りたい人は上の公式をみるといいです。
育てたイフリートの性能は?
イフリートを育てるとこのような性能になります。
育ててもやはり攻撃力は低いですが攻撃回数と防御力無視を考えると打倒です。
参考にしてみてください。
イフリートを育てた性能の写真はちよん(@chiyon_shiro)さんがこころよく使わせてくださいました。
お納めください🥶#イフリート#城とドラゴン#300連超え#ブヒイイイィィ pic.twitter.com/dLf1E9YaZY
— ちよん (@chiyon_shiro) 2020年9月30日
結局使えるの?
使えます!
イフリートは強いキャラだと思います。
新しい補欠システムのことを考えると小中型キャラを孵化しないといけなくなってくると思うのでもちろんBOXのバランスにもよりますし、これから修正される可能性もあるんですが現在(2020年10月2日)は孵化させていいキャラだと思います。
新しい補欠システムについてはこちら