//El nostre calendari anomenat gregorià, va ser aprovat per Gregori XIII el 1582. A partir d’aquesta data existeixen //els 29 de Febrer en els anys de traspàs. Com gairebé tothom sap, són considerats anys de traspàs o bixestos els //que són múltiples de quatre i que no acaben en dos zeros, i també els acabats en dos zeros que tenen el nombre //que quedaria, en treure els dos zeros finals, divisible per quatre. //Per això es diu que la data més crítica d’enguany és el 29/2/2000, un cop superats el 9/9/99 (la cadena 9999 era //emprada als inicis de la programació com EOF) i el famós efecte Y2K. // 1.Fes un programa que escrigui el fitxer traspas.txt on hi siguin tots els anys de traspàs des de el 1492 fins el // 2150 inclòs. Per a fer-ho, has d’emprar la rutina void escriuAny(int any) que reb un número enter i escriu al // fitxer traspas.txt els 4 caracters i un ‘\n’. #include #define LEAP_YEAR_FILE "traspas.txt" int isLeapYear(int number){ if(number > 1582){ if(number%100){ if(number%4) return 0; else return 1; }else if((number/100)%4) return 0; else return 1; }else return 0; } void writeYear(int number, FILE *file){ char thousands, hundreds, tens, units; thousands = number / 1000 + '0'; hundreds = (number % 1000) / 100 + '0'; tens = (number % 100 ) / 10 + '0'; units = (number % 10) + '0'; fprintf(file,"%c%c%c%c\n", thousands, hundreds, tens, units); } void main(){ FILE *leapFile; int year; if((leapFile = fopen(LEAP_YEAR_FILE, "w"))!=NULL){ for(year = 1492; year <= 2150; year++) if( isLeapYear( year ) ) writeYear( year, leapFile ); fclose(leapFile); }else perror(LEAP_YEAR_FILE); }