ソフトウェア会社の研修時代に作成したプログラムです。
参考になればうれしいです。
合格・不合格の条件や終了条件はソースコードの先頭に書いてあります。
2つ目のプログラムでは配列を使用してします。
1.国語、数学、英語の点数を入力して合格・不合格を判定
Sample Code
/*****************************************************************************
国語、数学、英語の点数を入力し、合格・不合格を判定するプログラム
合格条件:1科目でも100点がある。または3科目とも60点以上
不合格:上記以外の場合
終了条件:各教科の点数のどれかに―1が入力された時
<lesson_003.c> ver1.00
------------------------------------------------------------------------------
作成日:
作成者:
*****************************************************************************/
//---ヘッダファイル---
#include <stdio.h>
/******************************************************************************
---main関数---
******************************************************************************/
int main(void)
{
int kokugo; //国語の点数
int sugaku; //数学の点数
int eigo; //英語の点数
int count = 0; //クラスの人数をカウントする変数
int endNum = 0; //ループ終了判定用の変数(初期値:0)
//入力処理のループ終了条件 endNum == -1
while(endNum == 0)
{
printf("\n%d人目の入力です。\n", count + 1);
kokugo = 0;
sugaku = 0;
eigo = 0;
//各教科の点数を入力する処理(-1が入力されたら終了する)
printf("国語の点数を入力してください。\n");
scanf("%d", &kokugo);
//国語がー1以外なら数学の点数を入力
if(kokugo != -1)
{
printf("数学の点数を入力してください。\n");
scanf("%d", &sugaku);
}
//国語・数学がー1以外なら点数を入力
if(kokugo != -1 && sugaku != -1){
printf("英語の点数を入力してください。\n");
scanf("%d", &eigo);
}
//-1が入力されたらendNumを-1にする。それ以外は合否の判定
/* 国語が-1 or 数学が-1 or 英語がー1 */
if(kokugo == -1 || sugaku == -1 || eigo == -1)
{
endNum = -1;
}
/* 国語が100点 or 数学が100点 or 英語が100点 */
else if(kokugo == 100 || sugaku == 100 || eigo == 100)
{
printf("合格です!\n");
}
/* 国語が60点以上 or 数学が60点以上 or 英語が60点以上 */
else if(kokugo >= 60 && sugaku >= 60 && eigo >= 60)
{
printf("合格です!\n");
}
else //合格条件のいずれにも該当しなければ不合格
{
printf("不合格です!\n");
}
count++;
}
printf("終了します。\n");
return 0;
}
実行例
2.国語、数学、英語の点数を入力して合格・不合格を配列に格納してまとめて表示
1のプログラムの結果を配列に格納してまとめて表示できるように変更したプログラムです。
実行結果を見れば分かるように毎回結果を表示しなくて済みます。
Sample Code
/*****************************************************************************
国語、数学、英語の点数を入力し、合格・不合格を配列に格納してまとめて表示するプログラム
合格条件:1科目でも100点がある。または3科目とも60点以上
不合格:上記以外の場合
終了条件:各教科の点数のどれかに―1が入力された時
<resson_004.c> ver1.00
------------------------------------------------------------------------------
作成日:
作成者:
*****************************************************************************/
//---ヘッダファイル---
#include <stdio.h>
/*******************************************************************
---main関数---
********************************************************************/
int main(void)
{
int i = 0;
int kokugo; //国語の点数
int sugaku; //数学の点数
int eigo; //英語の点数
int count = 0; //クラスの人数をカウントする変数
int endNum = 0; //ループの終了判定用の変数
int resultVal[100]; //結果を格納する配列
/* 入力処理のループ 終了条件 endNum == -1 */
while(endNum == 0)
{
printf("\n%d人目の入力です。\n", count + 1);
//各教科の点数を入力する処理(-1が入力されたら終了する)
printf("国語の点数を入力してください。\n");
scanf("%d", &kokugo);
//国語がー1以外なら数学の点数を入力
if(kokugo != -1)
{
printf("数学の点数を入力してください。\n");
scanf("%d", &sugaku);
}
//国語・数学がー1以外なら点数を入力
if(kokugo != -1 && sugaku != -1)
{
printf("英語の点数を入力してください\n");
scanf("%d", &eigo);
}
//-1が入力されたらendNumを-1にする。それ以外は合否の判定
if(kokugo == -1|| sugaku == -1 || eigo == -1)
{
endNum = 1;
}
else if(kokugo == 100 || sugaku == 100 || eigo == 100)
{
resultVal[i] = 1;
}
else if(kokugo >= 60 && sugaku >= 60 && eigo >= 60)
{
resultVal[i] = 1; //合格なら配列に1を格納
}
else{
resultVal[i] = 0; //不合格なら配列に0を格納
}
i++;
count++;
}
//whileループ終了後、入力人数分の結果を出力
for(i = 0; i < count-1; i++)
{
if(resultVal[i] == 0)
{
printf("%d人目は不合格です!\n", i + 1);
}
else if(resultVal[i] == 1)
{
printf("%d人目は合格です!\n", i + 1);
}
}
printf("終了します。\n");
return 0;
}
実行例
その他:研修で作成したC言語プログラム
その他のC言語プログラム集はこの投稿にまとめてあります!
C言語の初心者用コードなので是非活用して下さい。
【C言語】研修 サンプルプログラム集
コメント