簡単な判定・分岐のプログラム(基礎編)
(準備中)
------------------------------------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; }
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>