第4講 繰り返し処理・if文・グローバル変数について
第6話 if文による合否判定
if文のコード例
#include<stdio.h> //秘密の道具箱から、printf()という社員(関数)を借りるために必要
#include<stdlib.h> //乱数を発生させるrand()を使うために必要
#include<time.h> //time()使用するために必要
int f(); //データ作成社員
int main(){
  int x;
  x=f();
  printf("%d\n",x);
  if(x>=60){ //合否判定
   printf("合格\n");
  }
  else{
   printf("不合格\n");
  }
}
int f(){
  srand((unsigned) time(NULL)); //乱数の系列決定するシード値を現在時刻から取得
  return(rand() % 101); //100以下のランダム整数を返す
}
コピペ用添付ファイル
実行結果例
80
合格


解説
rand()は6万以下ぐらいのランダムな整数を発生させる社員(関数)です。
a % bはaをbで割った余りを求める式です。
101で割った余りにすることで100以下のランダムなデータにしています。
  srand((unsigned) time(NULL)); //乱数の系列決定するシード値を現在時刻から取得
が入れてあるのは、疑似乱数とはいえ、
乱数の発生順が決まっているために、
これがないと毎回同じ結果になってしまうからです。
乱数の発生順番を変更するには、
乱数系列を決めるシード値といわれるものを変更する必要があります。
srand()の括弧内の値をシード値といいます。
そのシード値を現在時刻から取得しています。
time(NULL)が現在時刻を取得する関数です。
unsignedは符号なしのという意味です。

  if(x>=60){ //合否判定
   printf("合格\n");
  }
  else{
   printf("不合格\n");
  }
は前話で説明したとおりです。
社員f()から返されたデータが60以上なら合格、
60未満なら不合格と表示させています。

第4話の問題のあったコード
#include<stdio.h> //秘密の道具箱から、printf()という社員(関数)を借りるために必要
int f(int a,int b); //初項a末項b交差cの和
int main(){
  int a=1,b=1; //整数を入れる箱を用意してその箱に[100を入れている
  printf("初項%d公差%dの等差数列の和で100以下の最大値=%d\n",a,b,f(a,b)); //社員f()に足し算をして結果を表示する仕事を命じている。
  return(0); //プログラムを閉めるためのお呪い
}
int f(int a,int b){
  int w=0,i=a; //整数を入れる箱wを用意して0に初期化、さらに整数を入れる箱iを用意して0に初期化 
  while(w<=100){
    w+=i;
    i+=b;
  }
  return(w);
}
コピペ用添付ファイル
はif文を使っても改善できます。
どの事例を次話でみます。



第5話へ   第7話へ
 
002

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ