60日間全力プログラミング

プログラミング初心者が二ヶ月間でどこまでいけるかを記録したプログラミング学習ブログ

R42 give up 0,45 上限下限制限文

考察
if (nenrei_t[i]<=jougen && nenrei_t[i]>=kagen)
限&&は論理積といい、左辺と右辺ともに真の場合は真、それ以外は偽を表す。それ以外にも || 論理和といって、左辺と右辺ともに偽の場合は偽、それ以外は真というのもある。
 
 
 
問題
 年齢の上限と下限を入力すると、その範囲の社員番号、社員名、年齢を表示する。テー
ブルは次の通りとする。
 
 社員番号 1001 1002 1005 1010 1012 1013 1015 1020 1021 1022
 社員名 鈴木 井上 山本 田川 田中 松田 木下 上野 岡本 吉永
 年齢 53 42 39 28 30 25 24 31 20 18
 
表示例
 
--------------------社員検索------------------
年齢の上限を入力してください。--->40
年齢の下限を入力してください。--->30
対象者 社員番号=1005 社員名=山本 年齢=39
対象者 社員番号=1010 社員名=田川 年齢=28
       (中 略)
対象者 社員番号=1020 社員名=上野 年齢=31
以上4名です-----------------------------------
 
 
 
考え方
(1)前処理
  ①社員番号テーブル(shain_no_t)、社員名テーブル(shain_mei_t)、年齢テーブル
   (nenrei_t)に上記の内容を格納する。なお社員番号テーブルの最後に終了判定用と
   して9999を格納する。
  ②上限(jougen)と下限(kagen)を入力する。
  ③件数(kensu)に0を格納する。
(2)テーブル検索(for文を使用)
  (添え字はiを使用する。初期値は0とし、増分は+1、社員番号テーブルの値が9999
   未満の間は繰り返す。)
  ①年齢テーブルの内容が上限と下限の範囲の場合は、各テーブルの社員番号、社員名、
   年齢を表示し、件数に1を加算する。
(3)件数の表示
  ①件数が0のときは「対象者はいません。」と表示する。
  ②件数が0でないときは「以上n名です。」と表示する。
 
#include<stdio.h>

int main(void){
   
   
int i,kensu,shain_no,nenrei;
   
int jougen,kagen;
   
   
int shain_no_t={1001,1002,1005,1010,1012,1013,1015,1020,1021,1022,9999};
   
char shain_mei_t[
10]={"鈴木","井上","山本","田川","田中","松田","木下","上野","岡本","吉永"};
   
int nenrei_t[]={53,42,39,28,30,25,24,31,20,18};
   
    printf(
"---------社員検索---------\n");
   
    printf(
"年齢の上限を入力してください。\n");
    scanf(
"%d",&jougen);
   
    printf(
"年齢の下限を入力してください。\n");
    scanf(
"%d",&kagen);
   
    kensu=
0;
   
   
for (i=0; shain_no_t[i]<9999; i++) {
       
if (nenrei_t[i]<=jougen && nenrei_t[i]>=kagen) {
           
            printf(
"対象者 社員番号=%d 社員名=%s 年齢=%d\n",shain_no_t[i],shain_mei_t[i],nenrei_t[i]);
            kensu++;
        }
       
    }
   
   
if (kensu>0) {
        printf(
"以上%d名です。\n",kensu);
    }
   
if (kensu==0) {
        printf(
"対象者はいません。\n");
    }
   
    printf(
"------------------------------\n");
   
   
       
return 0;
   
}