【程序4】
题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
情况,闰年且输入月份大于3时需考虑多加一天。
2.程序源代码
bool isRunYear( unsigned int year )
{
if( ((year%4==0) && (year%100!=0)) || (year%400==0) )
return true;
else
return false;
}
unsigned int getSequence( unsigned int year, unsigned int month, unsigned int day )
{
int sum = 0;
switch( month )
{
case 1:
sum = day;break;
case 2:
sum = 31 + day;break;
case 3:
sum = 31 + 28 + day;break;
case 4:
sum = 31 + 28 + 31 + day;break;
case 5:
sum = 31 + 28 + 31 + 30 + day;break;
case 6:
sum = 31 + 28 + 31 + 30 + 31 + day;break;
case 7:
sum = 31 + 28 + 31 + 30 + 31 + 30 + day;break;
case 8:
sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + day;break;
case 9:
sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + day;break;
case 10:
sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;break;
case 11:
sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;break;
case 12:
sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;break;
}
if( isRunYear(year) && (month > 2))
sum += 1;
return sum;
}
void main()
{
cout<<getSequence(1991,3,11)<<endl;
}
【程序12】
题目:判断101-200之间有多少个素数,并输出所有素数
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数.
2.程序源代码:
#include "stdio.h"
#include <math.h>
bool isPrimeNumber( unsigned int num )
{
if(num <= 2)
return true;
for(int i=2;i<=sqrt(num); i++)
{
if(num%i==0)
return false;
}
return true;
}
void main()
{
for( int i=101; i<200; i++)
{
if(isPrimeNumber(i))
printf("%d ",i);
}
}