6.
配列:用例
配列:用例
月、日を入力し、1月1日から、何日目であるかを表示するプログラムです。
1月1日を1日目とし、うるう年ではないものとします。
#include <stdio.h>
main( )
{
int month_days[] = { 31,28,31,30,31,30,31,31,30,31,30 };
int month, day;
int days = 0;
int i;
printf( "何月ですか?\n" );
scanf( "%d", &month );
printf( "何日ですか?\n" );
scanf( "%d", &day );
for( i = 0 ; i < ( month - 1 ) ; i++ )
days += month_days[i];
printf( "今日は1月1日から、%d日目です。\n", days + day );
}
- 各月の日数を配列に保持します。
- このプログラムでは、月に13以上を入力すると実行時エラーになってしまいますから注意してください。
- 各月の日数ではなく、その月までの日数を保持するようにすれば、for文による計算が不要になります。
1月~6月までの降水量を入力し、グラフとして表示するプログラムです。
#include <stdio.h>
main( )
{
int mm[6];
int i, n;
for( i = 0 ; i < 6 ; i++ ){
printf( "%d月の降水量は?(mm)\n", i + 1 );
scanf( "%d", &mm[i] );
}
printf( "\n*:10mm\n" );
for( i = 0 ; i < 6 ; i++ ){
int count = ( mm[i] + 5 ) / 10;
printf( "\n%d月:", i + 1 );
for( n = 0 ; n < count ; n++ )
printf( "*" );
}
}
-
‘*’1つは10mmを表します。
-
‘*’の数は四捨五入して計算しています。
実行結果です。
1月の降水量は?(mm)
49
2月の降水量は?(mm)
60
3月の降水量は?(mm)
115
4月の降水量は?(mm)
130
5月の降水量は?(mm)
128
6月の降水量は?(mm)
165
*:10mm
1月:*****
2月:******
3月:************
4月:*************
5月:*************
6月:*****************