本人是C++初学者,请C++高手们帮忙讲解以下问题应该怎样编写程序,只讲一下具体方法也行。 谢谢!

2025-01-04 11:06:39
推荐回答(2个)
回答1:

就是进制和判断闰年的问题。
day相当于是30或者31进制(二月是28或者29),由月份和是否是闰年来决定。
month是固定的12进制。
year不知道要不要涉及公元前后,假设不涉及。
日期+天数:可以是先加了再判断日期是否合法,直到调整到合法;也可以是day+1就判断一次,循环“天数”次。关键就是要写个函数判断日期是否合法,以及如何调整。
year就不用管了,先判断month是否小于1,大于12,再根据month和year(2月时判断是否为闰年)判断day是否在合法范围:month为1、3、5、7、8、10、12不能大于31;month为4、6、9、11不能大于30;month为2再判断year为闰年不能大于29,否则不能大于28。不满足上述条件,说明输入错了或者需要调整。一般month需要输入正确,因为day的判断依赖与month。
调整的话是对day进行的,先判断day是否合法,合法的话看month,也合法的话就直接返回日期了,如果month不合法“month=month-12,year++;”,再判断直到合法;如果day不合法根据month来决定除数(mun),”day=day-mun,month++;“,还要看month是否合法不合法就调整,直到从day,month都合法。
大概就这样吧,说的我都晕了。。。。。。

回答2:

#include
#include
using namespace std;
int isprime(int n);

int main()
{
int i,s=0;
for(i=4;i<=100;i++)
{

cout< s+=isprime(i);
}
cout<<"1—100素数之和为:"< return 0;
}
int isprime(int n)
{
int k=int(sqrt(n));
for(int i=2;i<=k;i++)
{ if(n%i==0)
return 0;

else if(i==k)
return n;
}
}

函数isprime没有给n 赋值。

改了,应该是这样才对,你的方法不能对2,3进行判断,只能从4开始了。