パソコン活用研究シリコンバレー(C、C++、の活用研究)

簡単な判定・分岐のプログラム(基礎編)

(準備中)

------------------------------------summery-----------------------------------------------------
This is a very short program with simple judgments and branching using If statements, etc.
If分等による簡単な判定・分岐の超ショートプログラムの基礎編です。
-------------------------------------------------------------------------------------------------

1 整数の大小の判定
正の整数aとbがスペース区切りで入力されるので、大きいほうの数値を
* is greater と出力する。
aとbが等しい場合は「eqaul」と出力する。

入力値
a b

a、bは正の整数
1 ≦ a ≦ 1000
1 ≦ b ≦ 1000
a(正の整数) b(正の整数)

出力
大きいほうの数値を 「* is greater」 と出力する。
aとbが等しい場合は「eqaul」と出力する。

*はaまたはbの大きい方の数値



}



c:\bcc55\Bin>equal
100 100
equal

#include <stdio.h>
int main(void){
 int a,b;
 scanf("%d %d",&a,&b);
  if (a>b) printf("%d is graeter.\n",a);
       else if (a==b) {printf("equal\n");}
       else {printf("%d is greater\n",b);}
 return 0;
   }



c:\bcc55\Bin>equal
21 19
21 is graeter.

c:\bcc55\Bin>equal
7 9
9 is greater


c:\bcc55\Bin>equal
100 100
equal


2 整数が大きいか小さいかの判定
整数aが5より小さい時は a is less than 5
5の時は 5 is 5
5より大きく9より小さい時は a is graeter than 5 and less than 9.
9の時は 9 is 9
9より大きい時は a is greater than 9.
と表示する。

入力
a

aは整数
1 ≦ a ≦ 1000

出力

整数aが5より小さい時は a is less than 5
5の時は 5 is 5
5より大きく9より小さい時は a is graeter than 5 and less than 9.
9の時は 9 is 9
9より大きい時は a is greater than 9.

aは入力された数値を表示する。

if文を入れ子にした例
gt1.c

#include <stdio.h>
int main(void){
 int a;
 scanf("%d",&a);
  if (a>5)  
     if (a<9) printf("%d is graeter than 5 and less than 9.\n",a);
     else if(a==9) printf("%d is 9.\n",a);
      else printf("%d is greater than 9.\n",a);
  else if (a==5) printf("%d is 5.\n",a);
   else printf("%d is less than 5.\n",a);
    return 0;
}

c:\bcc55\Bin>gt1
3
3 is less than 5.

c:\bcc55\Bin>gt1
5
5 is 5.

c:\bcc55\Bin>gt1
6
6 is graeter than 5 and less than 9.

c:\bcc55\Bin>gt1
8
8 is graeter than 5 and less than 9.

c:\bcc55\Bin>gt1
9
9 is 9.

c:\bcc55\Bin>gt1
10
10 is greater than 9.

全てelse ifを使って記述した例。こちらのほうがどういう分岐をしているのかわかりやすい。
gt2.c


#include <stdio.h>
int main(void){
 int a;
 scanf("%d",&a);
  if (a<5)  printf("%d is less than 5.\n",a);
     else if  (a==5) printf("%d is 5.\n",a);
        else if (a<9)  printf("%d is graeter than 5 and less than 9.\n",a);
          else if (a==9) printf("%d is 9.\n",a);
           else printf("%d is greater than 9.\n",a);
    return 0;
}
c:\bcc55\Bin>gt2
4
4 is less than 5.

c:\bcc55\Bin>gt2
5
5 is 5.

c:\bcc55\Bin>gt2
6
6 is graeter than 5 and less than 9.

c:\bcc55\Bin>gt2
8
8 is graeter than 5 and less than 9.

c:\bcc55\Bin>gt2
9
9 is 9.

c:\bcc55\Bin>gt2
10
10 is greater than 9.


3 数当て(基礎編)
1行目と2行目に1から100までの整数が5個入力されます。
1行目と2行目で一致する整数の個数をカウントします。

入力
a_0 b_0 c_0 d_0 e_0
a_1 b_1 c_1 d_1 e_1

・1 ≦ a_i, b_i, c_i, d_i, e_i≦ 100

a_i, b_i, c_i, d_i, e_i, f_i は全て異なる整数

出力
1行目と2行目と一致する数字の数を答える。
(最後は改行し、余計な文字、空行を含まない)

#include <stdio.h>
int main(void){
    
    int k[10],m[10],x,y,count;
    char str[1000];
      scanf("%d %d %d %d %d", &k[0],&k[1],&k[2],&k[3],&k[4]);
      scanf("%d %d %d %d %d", &m[0],&m[1],&m[2],&m[3],&m[4]);
      count=0;
      for(x=0;x<5;x++){
          for(y=0;y<5;y++){
              if (k[x]==m[y]) count++;
          }
      }
    printf("%d\n", count);
    return 0;
}



c:\bcc55\Bin>kazuate
90 1 5 15 33
8 90 15 33 7
3

c:\bcc55\Bin>kazuate
99 1 10 25 6
7 90 2 11 33
0

c:\bcc55\Bin>






TopPage