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

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

(準備中)

------------------------------------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






TopPage