| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 545 人关注过本帖
标题:[求助]初学者求助
只看楼主 加入收藏
bluesky1911
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-5-20
收藏
 问题点数:0 回复次数:4 
[求助]初学者求助

初学c++,老师布置了几个题,想请教一下,谢谢!
要求按照主函数调用子函数的形式编制

1。编写一个主函数,从键盘上输入任意两个自然数,调用一个子函数输出两个自然数中的所有素数,返回主函数输出所有素数之和。

2。编写主函数,提示用户通过键盘输入一个3位整数,判断是否为有效输入,调用一个子函数,取出该整数的各个位数并重新排列,输出可能的最大整数和最小整数。
参照以下一次运行的测试数据及其结果:
Input a four-digit integer: 10
Sorry, your input is not valid
Input a four-digit integer: 132
Possible max integer: 321
Possible min integer: 123

3。打印输出某年的年历。日历的编排是每400年一个大循环周期,即今年的月、日、星期几和400年前的完全一样。现行天文历法根据天体运行规律,取每年365.2425天。这样,每400年共有365.2425×400=146097天。如果以365天作为一年,每400年就少了0.2425×400=97天。这97天要靠设置闰年(每年366)天来凑齐,所以,每400年要设置97个闰年。
编程思路:按照以上背景知识可得判断闰年得规律:某年年份如果能被4整除但不能被100整除,或者能被400整除则是闰年。由此规则可推得计算万年历的公式:
S=X-1+(X-1)/4-(X-1)/100+(x-1)/400+C 上式中:X为公元年数(如2003年);C 为从元旦起,到要算的那天总数(如2003年3月23日,C=31+28+23=82)。S/7余数是星期几。

才刚开始学没多久,感觉用c++编程的思想还没有建立,所以希望高手能解答一下(虽然问题可能很基础),在此先谢过了~

搜索更多相关主题的帖子: 自然数 键盘 用户 
2007-05-20 15:02
yushui
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:1355
专家分:22
注 册:2006-7-19
收藏
得分:0 

自己写 基本就是函数调用 很好办的 不会就边看书边写


fighting!from now on!
2007-05-20 15:52
bluesky1911
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-5-20
收藏
得分:0 
那第三个题要怎么才能输出成下面这样?

1月 日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
2007-05-20 16:11
kisscjy
Rank: 1
等 级:新手上路
帖 子:217
专家分:0
注 册:2007-4-9
收藏
得分:0 

觉得第3题挺有趣的~~
所以做了一下,
代码:

#include<iostream>
using namespace std;

int isleapyear(int year)
{
int i=year;
if((i%4==0&&i%100!=0)||(i%400==0))
{
return 1;
}
else return 0;
}

void main()
{
int year,month,leapyear,k;
int day[13]={0,31,0,31,30,31,30,31,31,30,31,30,31};


cout<<"输入年份:\t";
cin>>year;
cout<<"输入月份:\t";
cin>>month;
cout<<endl;

leapyear=isleapyear(year);
if(leapyear==1) day[2]=29;
else day[2]=28;

int sum;
sum=year-1+(year-1)/4-(year-1)/100+(year-1)/400;
for(int i=1;i<month;i++)
{
sum=sum+day[i];
}
sum++;
k=sum%7; //k为用户月份1号的星期几;

cout<<"日\t一\t二\t三\t四\t五\t六\n"; //先用空格填充1号前的空白
for(int j=1;j<=k;j++)
{
cout<<" "<<'\t';
}
for(int y=1;y<=day[month];y++) //之后输出第一行
{
cout<<y<<'\t';
if(y==7-k) break;
}
cout<<endl;

int end=1; //接着输出其余的行,每输出7个就换行
for(y=y+1;y<=day[month];y++)
{
cout<<y<<'\t';
end++;
if(end==8)
{
cout<<endl;
end=1;
}
}
cout<<endl;
}


每当我一晚写下70,80个程序时,你还真以为,这都是我一个人干的.....不过说真的,其实都是抄书的~~ ^@^
2007-05-20 21:23
孤魂居士
Rank: 2
来 自:老A(中国地大)
等 级:论坛游民
威 望:4
帖 子:1142
专家分:18
注 册:2007-5-21
收藏
得分:0 
4楼的哥哥慢强悍的

准备用3年做个高级软件工程师 10年也做不成。准备用10年做成高级软件工程师 3年就成了QQ 群 45771086
欢迎版主...欢迎JAVA爱好者...
一起从深夜 到凌晨...
2007-05-23 02:38
快速回复:[求助]初学者求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022296 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved