All pastes #209747 Raw Edit

Indy

public text v1 · immutable
#209747 ·published 2006-10-19 09:45 UTC
rendered paste body
/*
ID: indy901
PROG: friday
LANG: C
*/

#include <stdio.h>
#include <stdlib.h>

int N;
int i;
int y;
int m;
int d;
int leap;
int weekday;
int days[ 7 ];
int months[ 12 ];
int* years;
FILE* fp;

int main() {
	for ( i = 0; i < 7; i++ )
		days[ i ] = 0;
	months[ 0 ] = months[ 2 ] = months[ 4 ] = months[ 6 ] = months[ 7 ] = months[ 9 ] = months[ 11 ] = 31;
	months[ 3 ] = months[ 5 ] = months[ 8 ] = months[ 10 ] = 30;
	months[ 1 ] = 28;
	fp = fopen( "friday.in" , "r" );
	fscanf( fp , "%d" , &N );
	fclose( fp );
	years = ( int* )malloc( sizeof( int ) * N );
	for ( i = 0; i < N; i++ )
		years[ i ] = 1900 + i;
	weekday = - 1;
	for ( y = 0; y < N; y++ ) {
		leap = 0;
		if ( years[ y ] % 4 == 0 )
			leap = 1;
		if ( years[ y ] % 100 == 0 ) {
			if ( years[ y ] % 400 == 0 )
				leap = 1;
			else
				leap = 0;
		}
		if ( leap == 1 )
			months[ 1 ] = 29;
		for ( m = 0; m < 12; m++ ) {
			for ( d = 0; d < months[ m ]; d++ ) {
				weekday += 1;
				if ( weekday == 7 )
					weekday = 0;
				if ( d == 13 )
					days[ weekday ] += 1;
			}
		}
	}
	fp = fopen( "friday.out" , "w" );
	for ( i = 5; i < 7; i++ )
		fprintf( fp , "%d " , days[ i ] );
	for ( i = 0; i < 5; i++ )
		fprintf( fp , "%d " , days[ i ] );
	fclose( fp );
	free( years );
	return 0;
}