簡單一維數組解決黑色星期五問題
題目直接看圖
想法思路:
拿到題目簡單來說就是輸入n年,統計每個月的13號的次數,
因此用到了count[7]數組來統計每個月的13號分別是星期六到星期五的次數。
#include <stdio.h>
#include <string.h>
int main(){
int i,n,num=1;//1900.1.1是星期一因此num的初始值是1
int year=1900,month,day=0;//從1900年開始
int count[7]={0};
int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//月份的日期
scanf("%d",&n);
for(i=0;i<n;i++,year++){
if((year%4==0&&year%100!=0)||year%400==0){//判斷閏年
mon[2]=29;
}
for(month=1;month<13;month++){
for(day=1;day<=mon[month];day++){
if(day==13)//遇到13號計數
count[num]+=1;
num=(num+1)%7;//一週輪迴要%7哦!
}
}
mon[2]=28;//如果有遇到閏年的要記得把數組設回原來的值
}
printf("%d",count[6]);//輸出星期六
for(i=0;i<5;i++)//週日到週四
printf(" %d",count[i]);
printf(" %d",count[5]);
printf("\n");
return 0;
}
據說點贊加關注的人會變得更帥更漂亮哦!
小白第一次寫,有什麼不對的地方歡迎及時指出相互交流哦~~~~