C言語 二重ループ市松模様を作ってみた。

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

おはこんばんにちは!!!
うにゃうにゃエンジニアの猫です(=^・^=)mm

今年2021年、新型コロナウイルスで延期になったオリンピックはどうなることやらですが、
C言語で市松模様を作ってみたいと思います。
市松模様は互い違いに色が塗ってある模様なので、多重ループ(二重ループ)を使って表します。

簡単に図を書来ます。

この図を見ると、ある規則に気づきました。
色が塗ってあるところは、i=0ではj=0,2,4,6,8…
と、iが偶数の所ではjも偶数になっていて、
i=1では色が塗ってあるjはj=1,3,5,7と基数になっています。

つまり、iとj共に偶数 または iとj共に奇数 だったら塗る、
そうでなければ白ということになります。

剰余演算子を使っています。%で表すと、
偶数でしたら%2であまりがゼロ、基数でしたら%2であまりが1です。

これをC言語で書く場合は、
「i%2==0 AND j%2==0」OR 「i%2==1 AND j%2==1」
なので、ANDを&&、ORを||と書いて、

「(i%2==0 && j%2==0) || (i%2==1 && j%2==1))」

になります。
この条件が当てはまる所を■、当てはまらない所を□としてコードを組んでみました。

実行してみると、このようになりました。

プログラムはコチラになります。

#include <stdio.h>
void ichimatsu(int i,int j){
if((i%2==0 && j%2==0) || (i%2==1 && j%2==1)){
printf(“■”);
}else{
printf(“□”);
}
}
int main(void){
for(int i=0;i<10;i++){
for(int j=0;j<20;j++){
ichimatsu(i,j);
}
printf(“\n”);
}
}

最後まで読んで下さってありがとうございました。
愛してます(=^・^=)mm

参考図書
基本情報技術者試験のアルゴリズムでお世話になった本

C言語の入門講座を終えた今のインプット本
基本情報技術者試験の復習にもなります。
C言語を使ってコンピュータの仕組みが理解出来る実験プログラムがあり、
50の実験がそれぞれ独立しているので、短編小説を読んでいる様に読めてコードを入力して動作させています。

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

何の本を読んだらよいのか分からない時に読む記事

この記事はでは、

・もっと自分を向上させたい
・やりたいことを見つけたい
・より豊かな人生を送りたい

方に向けて、私の読書リストを紹介します。


ムダにならない勉強法
著:樺沢紫苑


単行本(ソフトカバー)
Kindle版

この本を選んだのは、「要領が悪い」、「その勉強法はムダ」などと言われづづけて、ダメな自分なままで人生を終えることに抵抗をしたかったからです。
勉強していてもなかなかモチベーションが続かず、結果が出ない、中途半端で自分はダメなんだと思っていましたが、インプットとアウトプットの比率を変えることや、フィードバック、人に教える前提で学ぶことで、螺旋状に成長していけるようです。
私の場合はテキストのコードを入力するなどのインプットが主流でした。もう少し、問題集を解いてみるなどに変えてみた方が良いのかもしれません。
学習量と成長の関係は、正比例ではなく、指数関数的なので、「こんなに頑張っているのに上手くいかない」と思ったら、ブレイクポイントまで近いという言葉に励まされました。勉強仲間もSNSだと見つけやすいので、学習記録のツイートなどをして、記録していこうと思います。


神メンタル 「心が強い人」の人生は思い通り
著:星 渉 氏

単行本
Kindle版
Audible版

頑張っても報われない方、いつも一生懸命なのに何故か上手く行かない方、失業と失恋が一度に来てしまったぐらいのショックを受けた方、要領が悪くて悩んでいる方に是非手にとって頂きたい本です。
科学的、脳の仕組みに基づいて、まず何をやったら良いのかが明確になります。
この本にはいくつかのワークがあり、紙とペン、スマホがあれば全て出来ます。
鏡を使うワークはスマホのカメラの向きを反転させて自分が映るようにすれば可能です。ワークの中で一番楽しかったのが、「画像」を使ったワークです。
なぜ「画像」なのか、その理由を本を読んでしっかり理解した上でやると、本当にワクワクして行えました。私はプリンタを持っていたので画像を印刷して、デスクマット、トイレ、玄関に設置しました。
この本を読んで、「何故私は頑張っても上手く行かない人生なのか」ということが具体的にはっきりしてきました。


HELLIQ、METIQ、ISPEに所属する 天才の7つの習慣: 今からでも知能が高まる「習慣化の法則」
著:中村 友彦 氏

ペーパーブック
Kindle版

IQ200近い天才の方の本で、私のようなIQ95の凡人でも読めて、実践しやすいメソッドの書かれた本、尚且つ手頃なお値段の本を探していて、その条件に全て合致した本を見つけられました。自分の生活習慣の中に比較的取り入れやすい行動や、物の考え方が書かれています。今の時代、SNSでは「はい、論破!」などと言って、自分の主張を相手に押し付けて、論破できた自分は賢い、などと思っている方もいます。本当の天才とは、自分とは違う意見や人のアドバイスをどのように受け止めるのか、判断するのかが、私の今後の人生にとても役立ちそうです。この著者の文書はとても読みやすいので、同じ著者の他の本も読んでみたいです。


Focus4つの集中
著:青砥瑞人 氏

単行本
Kindle版

やりたいことが分からない、集中力が足りない、一体どうしたら成長できるのかわからない、と、お困りの方におススメしたい本です。
「何歳からでも、脳・集中力は成長できる」との文で希望が湧き出て来ました。
著者の青砥氏は、高校中退した後、ULCA(カルフォルニア大学ロサンゼルス校)で飛び級で卒業されました。
その経験を基に科学的なアプローチ且つ、すぐにでも出来るトレーニングがいくつも紹介されています。私がこの本で驚いたのは、安心・安全が集中力に如何に重要か、といったことです。
自分の過去を振り返ってみて、安心・安全が無いと自分の行動が好ましく無い方向にいってしまったことで痛感しました。
また、著者の青砥氏はコーヒーを好んでおられます。
青砥氏のコーヒーに当たるのが私の場合アロマなので、自分を成長するのにアロマを利用したいと思います。


働く大人の為の学びの教科書
著:中原淳 氏

単行本
Kindle版
Audible版

大人の学びとは、子どもの頃学校で受けた学びとどう違うのか興味があってこの本を読みました。30歳以上のホワイトカラーのビジネスマンを主な読者層にしている本ですが、多分、25歳以上の社会人の方なら十分読める本だと思います。
人生100年時代と言うと、私たちは長い時間を生きることになり、働くことになります。そうした中で大人の学びについて、「何かしないとまずいのは分かっているけど、何から始めたら良いのか分からない」と思っている方(過去の私のような)は、「学びの迷子」などのコラムもあるこの本は、かなりおススメです。
たまに学びの本で、著者が上から目線な感じな本ありますけれど、この本はそういう感じは私は一切受けなかったです。
何故大人の学びが必要なのか、大人は大人でも今と昔では何が違うのか、どういう学びが失敗に終わるのか詳細に書かれていて、私自身の学びを見直すのにこの本で学んだことを活かしたいです。
7人の方の学びの履歴書については、私は発達障害があるので、読んでいて辛くなる所は流し読みにして、自分でも理解できる、実践できる方の
ストーリーをじっくり読んで「3つの原理原則」と「7つの行動」の理解を深めていきました。


ミセス・ノイズィ
著:天野千尋 氏

文庫
Kindle版

あの、騒音おばさんがスクリーンに帰ってきた!?2020年に公開された映画の原作本です。この作品はフィクションなので、例の「騒音おばさん事件(奈良騒音傷害事件)」とは関係無いようです。
人間関係を立体的に考察したい方や、普段は動画の閲覧が中心で、あまり読書に慣れていない方にはおススメの本。
作者の方の文才なのか、文章を読んでいると場面がリアルに浮かんできます。
良い年をした大人の女性の激しいバトルで爆笑した場面あり、その周辺の人たちの心の動きや、人生の重みと言うものをじっくり考えさせられました。
直也視点が特に好きで、中でもユナちゃんが好きキャラです。
ただ、この本は、小学校から高校ぐらいまでの読書感想文には向かないと思います。(先生に怒られる可能性が)大学以上ではゼミの性質によるかもしれません。


◆ その他の読書リスト ◆

心がラクになる本
発達障害と健康の本を紹介します。


自己紹介

PowerPoint図形を等間隔にする

この記事では、PowerPointでの資料作成に良く使う、図形を簡単に等間隔にする方法を掲載しています。

こちらに図形が雑然と並んでいます。これを自動で等間隔にします。

全ての図形を選択する方法を2つ掲載致します。

1つ目:最初の図形をクリックして、次の図形は[Shift]を押しながらクリックします。
2つ目:マウスで図形の範囲をドラッグして選択します。


4つ全て選択出来た状態で、

[書式]タブ → 配置 から、「左右に整列」を選び、「上下中央揃え」を選びます。


位置の微調整はカーソルキーの↓などで調整します。
何も無い所をクリックすると選択が解除できます。

この方法でも整列できますが、ガイドが表示されるので、そちらの方が使いやすい方は使いやすい方を選んでみてください。

図形の等間隔の整列は以上になります。


お疲れ様でした。
勉強のリフレッシュに、写真で息抜きを致します。

写真は、地元東京下町の桜です。

仕事や勉強のリフレッシュに、趣味で写真を撮っておりますので、宜しかったら フォトストック写真ACさん の投稿もご覧頂けますと、大変嬉しい限りでございます!!

こちら、無料の「ダウンロードユーザー」に登録して頂けると、無料で写真のダウンロードが可能になります。

※ 先にGoogleアカウントを作成して頂くと、登録が ラク です♪

写真素材素材【写真AC】

 

最後までご精読、誠にありがとうございました!!

フォトストック写真ACさんのプロフィールページ

最後までお付き合い頂き、誠にありがとうございました!!

急にプレゼン資料を作ることになったから手っ取り早くパワポ教えてくれ!!!!!に戻る

【Excel基本関数(平均・最大値、IF関数)と条件付き書式】富士山頂の気温の例

この記事では富士山頂の気温のデータを使って、

・関数の王様、IF関数

・平均(AVERAGE)

・絶対参照

・最大の気温(MAX)
/ 最小の気温(MIN)

・条件付き書式

・指定の温度以上の件数(COUNTIF)


といった、基本的な集計で使うExcel関数を気温を扱う簡単な例で概要が掴めます。

以下のExcelに入力した気温には、気象庁のホームページのデータを使用しております。

まず、平均を求めてみます。
セルF1の所に、

=AVERAGE(B2:B7)

と入力します。
( 「=ave」と入力後、Tabキーで補完すると楽に関数名が入力出来ます。 )


では、次に、再びこのシートをご覧下さい。

セルC2〜C7の所で、気温が平均値以上でしたら「平均以上」と表示して、そうでなければ「—」(「-」を3つ)表示させるようにします。
式をこのように入れます。

=IF(B2>=$F$1,”平均以上”,”—“)

ここで気をつけるポイントは、先程平均値を求めたセルF1は、固定する必要がありますので、絶対参照にします。

1970年から1980年の所に数式を下に引っ張っていくとズレてしまうので、その前に[F4]キーを押して$(ドル)マークを付けて「$F$1」としています。

(ノートPCの環境によっては、[F4]キーと同時に[Fn]キーも押してみて下さい。)

もしも絶対参照にしないと、この様に平均気温の入ったF1が下にフィルをすると、ずれてしまいます。
F列の赤い枠線に着目して見て下さい。

【 C2に入った式 】

【 C3に入った式 】

これを先ほどの絶対参照にすると、

【 C3の式(絶対参照) 】

この様に参照先である平均気温が下にずれなくなりました。

それでは、絶対参照にした式を下にフィルします。
(セルC2は、中央揃えをしております。)


もしも、オートフィルが消えなくて困る場合は、何もないセルを選択して、[スペースキー]を押してみて下さい。
(余分な余白は後で削除します。)


次に最大値と最小値です。
【最大値】はセルF2に

=MAX(B2:B7)

と入力します。

【最小値】はセルF3に

=MIN(B2:B7)

と入力します。


さて、ちょっと関数から離れて、条件付き書式の設定をします。
最大値最小値に書式を設定します。

まずは、平均気温のデータの所を選択します。

ホームタブから条件付き書式を選択して、

条件付き書式を設定します。

セルの強調表示ルール 指定の値に等しい

を選びます。(Macの手順ですので、もしもWindowsの方で手順が異なっていましたら、恐れ入りますが検索して調べて頂けますと有り難いです。お手数お掛け致します。)

気温の最大値を参照する様にして、書式は好きな色を選びます。


OKを押します。

最大値の気温に書式が設定されました。

同様にして最小値にも書式を設定しました。


では、再び関数に戻って「-6℃」以上の件数を数えます。


セルF4に、

=COUNTIF(B2:B7,”>=-6″)

と入力するとこの様に「3件」と求まります。


お疲れ様でした。ブレイクタイムPhotoは、

江ノ電稲村ヶ崎海岸から撮影した、富士山と江ノ島です。
映画、「稲村ジェーン」の舞台になった所ですね。

ご精読誠にありがとうございました。

「できるYouTuber式 Excel現場の教科書(長内孝平氏)」

単行本(ソフトカバー)
Kindle版


「なんの才能もない発達障害者の声: 〜 届かない声を届けたい 〜 (障害者雇用向け)」

私、猫★シエスタの著作です。殆どが「発達障害者として働くことや障害とSNSについて」ですが、障害者雇用の事務作業で特に使用頻度の高いキーに絞ったExcelなどのショートカットキーの紹介と、演習問題も掲載しております。
Kindle版


「取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ」に戻る

初めてのGoogleスプレッドシートへ



写真クリエイターとしての活動
自己紹介

C言語構造体連結リストで東京-新潟間上越新幹線駅名を表示

おはこんばんにちは!
うにゃうにゃエンジニアの猫です(=^・^=)

C言語のラスボス??でしょうか。構造体とかポインタ、

連結リストをやり始めて( ;∀;)です。
新潟から東京までの駅名を使った、上越新幹線のリストを作って勉強しようと思います。

私が東京から新潟に遊びに行くイメージで作ります。
上越新幹線の駅名を6つ選びました。

駅名、ポインタ(次の駅を指し示す)を構造体で定義します。
まずは上越新幹線がの駅を調べてみます。

1.東京
2.大宮
3.高崎
4.浦佐
5.燕三条
6.新潟

上越新幹線の路線はコチラから

この6つの駅に次の駅の場所を示すポインタを付けて表示して見ます。
このリストは駅名と次の駅のポインタがこのような図で表せます。

ポインタを逆向きにすると、新潟から東京に帰る駅の順番で逆向きに表示できます。

ではC言語でコードを書いて実行してみます。

実行結果です。

最後にコードはこのようになります。

最後までご覧頂きありがとうございました。
引き続きC言語の最後のレッスンを頑張ります。
もしも分からなくなったら、前に戻って勉強します(=^・^=)mm

C言語で日数計算と曜日求め

おはこんばんにちは!
うにゃうにゃエンジニアの猫です(=^・^=)

今日はC言語で、ある日付から別の日付まで何日あるのかカウントするプログラムと、
それを利用して曜日を求めるプログラムを作ってみました。
良かったら使って下さいにゃっ!

その年の1月1日からの日数を計算します。
それには月ごとの日数の配列を作って利用しています。
例えば1月だったら+0、2月だったら+31…と加算日数が配列に入っています。
C言語は配列の要素が0から始まる為、配列の先頭の要素はダミーとして0が入っています。

開始日と終了日を年、月、日ごとに入力して、開始日が3月より前だったら、または終了日が3月以降だったら、
閏(うるう)年かどうか調べて、閏年だったら日付を1つ増やすように計算します。

開始日と終了日の年の差×365とうるう年の調整をして日数を求めました。
では実行して見ます。

今日は2021年(令和3年)1月23日です。
1年前の2020年1月23日までの日数を求めます。
2020年はうるう年で、2月29日が含まれるので、その分加算され、365+1で366日になります。

では、私が生れた1977年5月19日から今日までの日数を調べます。

うわぁぁぁ、こんなに生きているんだ。もっと1日1日丁寧に生きないと!!

ここまでのプログラミングのコードです。

#include <stdio.h>
//ここで引き算している
int hikizan(int start,int goal){
return goal-start;
}


//うるう年かどうかの判定をしている
int isLeapYear(int uruyear){
if((uruyear%4==0 && uruyear%100!=0) || uruyear%400==0){
return 1;
}else{
return 0;
}
}

int main(void)
{
//日付の開始日、終了日の変数
int yearstart,yeargoal,yeardif; //開始年、終了年、終了年-開始年
int monthstart,monthgoal; //開始月、終了月
int daystart,daygoal; //開始日付け、終了日付け
int uruFlg; //うるう年の判定フラグ
int count=0; //うるう年の回数
//月の配列。その年の1月1日からの日数
int tukihi[]={0,0,31,59,90,120,151,181,212,243,273,304,334};

//開始日の入力
printf(“開始日の年を入力してください。開始の年:yearstart=”);
scanf(“%d”,&yearstart);
printf(“開始日の月を入力してください。開始の月:monthstart=”);
scanf(“%d”,&monthstart);
printf(“開始日の日を入力してください。開始の日:daystart=”);
scanf(“%d”,&daystart);
printf(“——————————————-\n”);

//終了日の入力
printf(“終了日の年を入力してください。\n※開始日以降の日付を入力してください※\n終了の年:yeargoal=”);
scanf(“%d”,&yeargoal);
printf(“終了日の月を入力してください。終了の月:monthgoal=”);
scanf(“%d”,&monthgoal);
printf(“終了日の日を入力してください。終了の日:daygoal=”);
scanf(“%d”,&daygoal);

//もしも開始日>終了日だったら
if(daystart>daygoal){
printf(“終了日を開始日以降の日付にしてやり直して下さい。\n”);
return 0;
}
printf(“\n”);

//その年の1月1日からの日数
daystart+=tukihi[monthstart];
daygoal+=tukihi[monthgoal];

//開始年と終了年の差は何年あるか
yeardif=hikizan(yearstart,yeargoal);
//開始日の月が3月より前だったらその年が閏(うるう)年かチェックする
if(monthstart<3){ uruFlg=isLeapYear(yearstart); if(uruFlg==1){ daystart–; } }


//終了日の月が3月以降だったらその年が閏(うるう)年かチェックして、前の年の判定の順準備をする if(monthgoal>=3){
uruFlg=isLeapYear(yeargoal);
if(uruFlg==1){
daygoal++;
}
}
yeargoal–; //終了日の前年のうるう年判定をする準備

//終了日の前年から開始日の年までうるう年か調べる
for(int i=yeargoal;yeargoal>yearstart;yeargoal–)
{
uruFlg=isLeapYear(yeargoal);
if(uruFlg==1){
count++;
}
}
daygoal+=365*yeardif+count-daystart; //日数計算
printf(“%d日です。\n”,daygoal);
}

では、上のプログラムを利用して、曜日を求めてみます。
基準日は1970年1月1日とします。その日は木曜日なので、日数差を7で割った余りが0なら木曜日、
1なら金曜日…と配列に入力して曜日を調べます。


今日2021年1月23日は土曜日ですので、ちゃんと求まりました。

では、私が高校生の頃に阪神淡路大震災や地下鉄サリン事件があった激動の年、1995年(平成7年)から任意の日付、6月21日は何曜日か調べます。


水曜日ですね。

良かったちゃんと動いていた。
では、このプログラムのコードです。


#include <stdio.h>
//ここで引き算している
int hikizan(int start,int goal){
return goal-start;
}


//うるう年かどうかの判定をしている
int isLeapYear(int uruyear){
if((uruyear%4==0 && uruyear%100!=0) || uruyear%400==0){
return 1;
}else{
return 0;
}
}

//曜日を求める
int youbihantei(int nanyou){
return nanyou%7;
}
int main(void)
{

//日付の開始日、終了日の変数
int yearstart,yeargoal,yeardif; //開始年、終了年、終了年-開始年
int monthstart,monthgoal; //開始月、終了月
int daystart,daygoal; //開始日付け、終了日付け
int uruFlg; //うるう年の判定フラグ
int count=0; //うるう年の回数
int week; //曜日を表す配列の添え字

//月の配列
int tukihi[]={0,0,31,59,90,120,151,181,212,243,273,304,334};

//開始日(基準の日を1970年1月1日とする)
yearstart=1970;
monthstart=1;
daystart=1;

//曜日の配列。基準日との日数差を7で割った余りが0になるのが木曜日
char youbi[]={“木”,”金”,”土”,”日”,”月”,”火”,”水”};

printf(“年を入力してください。年:yeargoal=”); scanf(“%d”,&yeargoal); printf(“月を入力してください。月:monthgoal=”); scanf(“%d”,&monthgoal);
printf(“日を入力してください。日:daysgoal=”);
scanf(“%d”,&daygoal); printf(“\n”); //その年の1月1日からの日数 daygoal+=tukihi[monthgoal]; //開始年と終了年の差 yeardif=hikizan(yearstart,yeargoal); //終了日の月が3月以降だったらその

年が閏(うるう)年かチェックする if(monthgoal>=3){ uruFlg=isLeapYear(yeargoal); if(uruFlg==1){ daygoal++; } } yeargoal–; //終了日の前年から1971年までうるう年か調べる for(int i=yeargoal;yeargoal>yearstart;yeargoal–) { uruFlg=isLeapYear(yeargoal); if(uruFlg==1){ count++; } } daygoal+=365yeardif+count-daystart;
week=youbihantei(daygoal);

if(yeargoal<1970){
printf(“1970年1月1日以降の日付を入力してください。\n”);
}else{
printf(“%s曜日です。\n”,youbi[week]);
}
}

ご精読ありがとうございました(=^・^=)mm

急にプレゼン資料を作ることになったから手っ取り早くパワポ教えてくれ!!!!!

この記事では、急にプレゼン資料を作ることになり、手っ取り早くパワポでサクッと資料を作れるお手伝いとして、下記の記事でパワポの要点をまとめました。
ご覧頂けましたら幸いです。

■ サクッとパワポで資料作成のレッスン記事 ■

パワポ起動

テーマとタイトルの装飾


スライド作成とスマートアート


ページ番号・スライドマスタスライドショー

図形を等間隔にする

アニメーションとページ切り替え


以降、PowerPointの学習に役立つ動画と本を紹介致します。

※ 私は動画及び書籍を紹介しているだけのただの一読者、視聴者であり、動画投稿者及び著者の方とは面識がございません。


●動画

チャンネル: ビジネス教育系ユーチューバーYouseful(ユースフル)
Yousefulの講師の方


●【超入門講座】初心者にやさしいパワーポイント(PowerPoint) 基本の使い方(時間:17:40)

PowerPointの起動の仕方や文字、表、グラフなどを入門者向けに分かりやすく
丁寧に解説して下さっています。
アイコンは使ったことが無かったので、知らないこともありました。


●【入門講座】明日の実務ですぐ使える!パワーポイント(PowerPoint)の基本機能使い方(時間:13:18)

表の色設定やグループ化、カラーやフォントについて学習しました。
グラフの誤差やYouTubeの見栄えを変える方法などは初めて知りました。


●【初級講座】生産性があがる!PowerPointの便利テクニック4選!(時間:11:10)

スライドマスタはPowerPoint学習で躓きやすい点なので、復習になりました。
ノートやセクション、オンラインテンプレートの使い方の説明もありました。


● 【生産性UP】知らないと大損!PowerPointテクニック22のショートカット技まとめ(時間:11:46)

文字揃えや図形のサイズ、回転、整列、スライドショーで便利なショートカットキーなど、かなり実践的なキーを紹介されています。


●書籍

■ 関連記事 ■

自己紹介


取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ

Wordのポイントを手っ取り早く教えてくれ!!!

コロナ禍、アフターコロナの新しい働き方、テレワーク(Google Workspace)

メインメニューに戻る

C言語構造体で昨日の新型コロナ感染者数

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

おはこんばんにちは!うにゃうにゃエンジニアの猫です(=^・^=)
構造体について学んだので早速アウトプットするにゃっ!
学んでいくうちにこのプログラムをちょっとずつ改良出来ると思います。

この記事を書いているのは令和3年1月21日なので、昨日の新型コロナの感染者数を、
場所と人数と言った構造体を使ってプログラミングをしてみました。

感染者数はNHK新型コロナウイルス特設サイトから引用しました。

早速実行します。

こんな感じで実行できました。

ではプログラムです。

#include <stdio.h>

struct corona{
char city[20];
int people;
};


int main(void){

struct corona tokyo={“東京”,1274};
struct corona hokkaido={“北海道”,164};
struct corona osaka={“大阪”,506};

printf(“2021年1月20日の感染者数\n”);

printf(“%sの感染者数は%d人です。\n”,tokyo.city,tokyo.people);
printf(“%sの感染者数は%d人です。\n”,hokkaido.city,hokkaido.people);
printf(“%sの感染者数は%d人です。\n”,osaka.city,osaka.people);

}

ご覧になって分かるように、printf関数を3回も使っているので、ここは学んでいく過程で近いうちに改良できそうです。

追記
構造体配列について学んだので、要素数を追加してプログラミングして見ました。
実行結果です。

プログラムです。

#include <stdio.h>

//構造体の宣言 typedefで[struct corona]を「CORO」に省略
typedef struct{
char city[20];
int people;
}CORO;


int main(void){

CORO tokyo={“東京都”,1471};
CORO hokkaido={“北海道”,130};
CORO osaka={“大阪府”,501};
CORO saitama={“埼玉県”,436};
CORO kanagawa={“神奈川県”,731};

//構造体配列の要素
CORO corona[5];
corona[0]=tokyo;
corona[1]=hokkaido;
corona[2]=osaka;
corona[3]=saitama;
corona[4]=kanagawa;

printf(“2021年1月21日の感染者数\n”);

//ループで各都市における感染者数を取り出す
for(int i=0;i<5;i++){
printf(“%sの感染者数は%d人です。\n”,corona[i].city,corona[i].people);
}
}

ご精読ありがとうございました!

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

C言語のポインタって怖いの?怖くないの?

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

おはこんばんにちは!うにゃうにゃエンジニアの猫です(=^・^=)
ITの先輩方からC言語にはポインタっていうものがあって、それがラスボス?か大ボスみたいに大変だと聞きました。
なので、ゆっくり基礎から覚えたことを復習します。

※超超超初心者の備忘録な為、厳密には正確では無いかもしれませんが、
そういう風に理解しているんだなぁと、あたたかい目で見て下さい。

変数aというint型の変数があって、その値が5だとします。
その例を考えてみます。この図を書きました。


右側に変数aを用意しました。値は5です。

変数aは主記憶に格納されていて、変数aがある主記憶の場所には東京都新宿区何丁目…みたいな住所のような物があります。
その住所みたいなものをアドレスって言います。
仮にそのアドレスを100番地とします。


左側には変数aのアドレスを値として持つポインタpがあります。

また、p自体にも北海道稚内市何丁目…みたいなアドレスがあります。
そのアドレスを300番地とします。

ポインタpが見ているアドレスの中身(住人)はaの値で5です。
これをポインタが見ているというのを表す表記として*pを使います。
*p=5になります。

…と、文章と図だけだとイマイチ分かりづらいので、それをプログラミングしてうちのパソコンではどんな感じになるのか調べてみたいと思います。

実行結果です。

プロうグラムはこちらになります。

#include <stdio.h>
int main(void){
int a=5;
int p;    //ポインタ宣言

p=&a;   //ポインタpはaのアドレスを格納

//これらは等しい。aの値を示す
printf(“aの値…a=%d\n”,a);
printf(“pが見ている値…p=%d\n\n”,*p);

//これらは等しい。aのアドレスを示す。
printf(“aのアドレス…&a=%p\n”,&a);
printf(“ポインタpの値…p=%p\n\n”,p);

//これはpが格納されているアドレス。
printf(“ポインタpのアドレス…&p=%p\n”,&p);
}

これで私のアタマはスッキリしました。
ご精読ありがとうございました(=^・^=)

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

C言語で「ねこ」おみくじを作ってみた

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

おはこんばんにちは!うにゃうにゃエンジニアの猫です(=^・^=)
今日は、ねこみくじなるものを作りました。
おみくじの猫版です。

・ホワッツマイケル
・ナメネコ
・うちのタマ知りませんか
・ねこあつめ
・にゃんこ大戦争

といった猫にまつわる作品をランダムに表示させます。
といった、猫好きさんの猫ツボを刺激する以外は、
何の役にも立たない乱数プログラムを作りました。

配列 nekoretsuの各要素、要素番号の先頭を[0]として、
[0]ホワッツマイケル
[1]ナメネコ
[2]うちのタマ知りませんか
[3]ねこあつめ
[4]にゃんこ大戦争

という配列を用意します。
その要素番号をランダムな数にすると、猫のおみくじが出来上がります。
乱数を発生させてその乱数を配列の添え字にして、配列の中身の文字列を取り出します。

配列の要素数は5なので、ランダムな数の5で割った余りは、余り0~4になりますので、
各要素番号が乱数になる仕組みです。

では、何が出るかな…。

1回目は
「ナメネコ」

2回目は
「ねこあつめ」

これは猫好きな方にしか分からないかもしれませんが、猫の作品の名前をみるだけで、
うにゃ~~~~~つ(=^・^=)ってなるんです。

コードはこちらになります。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main(void){

srand((unsigned int)time(NULL)); //現在の時刻で乱数の初期化

char *nekoretsu[5]={“ホワッツマイケル”,”うちのタマ知りませんか”,”ナメネコ”,”ねこあつめ”,”にゃんこ大戦争”};

int num=rand()%5;
printf(“%s”,nekoretsu[num]);

}

ではでは、ご精読ありがとうございました、にゃん!

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し