簡単な判定・分岐のプログラム(初級編)
(準備中)
------------------------------------summery-----------------------------------------------------
This is a very short program with simple judgments and branching using
If statements, etc.
If分等による簡単な判定・分岐の超ショートプログラムの基礎編です。
-------------------------------------------------------------------------------------------------
1 数当て(初級編)
1行目に1から100までの整数が8個入力されます。
次に整数nが入力され
n行の1から100までの整数が8個入力されます。
1行目と2行目〜n行目で一致する整数の個数をそれぞれカウントして出力します。
入力
a_0 b_0 c_0 d_0 e_0 f_0 g_0 h_0
n
a_1 b_1 c_1 d_1 e_1 f_1 g_1 h_1
a_2 b_2 c_2 d_2 e_2 f_2 g_2 h_2
....
a_n b_n c_n d_n e_n f_n g_n h_n
条件
・1 ≦ a_i, b_i, c_i, d_i, e_i f_i g_1 h_1≦ 100
a_i, b_i, c_i, d_i, e_i, f_i, g_i, h_i は全て異なる整数
出力
1行目と2行目からn行目で、それぞれ一致する数字の数を答える。
(最後は改行し、余計な文字、空行を含まない)
kazuate2.c
#include <stdio.h> int main(void){ int k[10],m[10],i,n,x,y,count; scanf("%d %d %d %d %d %d %d %d", &k[0],&k[1],&k[2],&k[3],&k[4],&k[5],&k[6],&k[7]); scanf("%d", &n); for(i=0;i<n;i++) { count=0; scanf("%d %d %d %d %d %d %d %d", &m[0],&m[1],&m[2],&m[3],&m[4],&m[5],&m[6],&m[7]); for(x=0;x<8;x++){ for(y=0;y<8;y++){ if (k[x]==m[y]) count++; } } printf("%d\n", count); } return 0; }
c:\bcc55\Bin>kazuate2 5 100 99 7 34 55 10 1 5 3 28 87 1 67 55 8 10 3 98 8 2 11 62 46 19 25 0 100 10 1 99 5 7 34 55 8 99 45 55 1 5 26 9 99 5 23 46 1 99 87 26 3 72 2
2 閏年判定
入力された整数がグレゴリオ暦でうるう年であるか判定する。
西暦が4で割り切れる年は閏年。
ただし、100で割り切れる年は閏年ではない。
ただし、400で割り切れる年は閏年。
入力値
1行目には、入力される行数n
2行目からn個の整数y(0)〜y(n-1)が入力される。
ただし、
y(i)>=1
出力
入力された行数の各整数がうるう年かどうか判定し、以下の通り出力する。
うるう年だった場合 y(n) leap year
うるう年でない場合 y(n) not leap year と、出力。
leaptear.c
#include <stdio.h> int main(void){ char *s; int i,n,y; scanf("%d", &n); for(i=1; i<=n; i++) { scanf("%d", &y); if( y%4==0) s="leap year\0"; else s= "not leap year\0"; if (y%100==0) s="not leap year\0"; if (y%400==0) s="leap year\0"; printf("%d %s \n",y,s); } return(0); }
c:\bcc55\Bin>leapyear
5
1995
1995 not leap year
1996
1996 leap year
1998
1998 not leap year
2000
2000 leap year
2100
2100 not leap year
if文をひとつにまとまて判定した例
#include <stdio.h>
int main(void){
char *s;
int i,n,y;
scanf("%d", &n);
for(i=1; i<=n; i++) {
scanf("%d", &y);
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
printf("%d leap year\n", y);
} else {
printf("%d not leap year\n", y); }
}
return(0);
}
c:\bcc55\Bin>leapyear2
5
1600
1600 leap year
1900
1900 not leap year
2000
2000 leap year
2010
2010 not leap year
2012
2012 leap year