| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 563 人关注过本帖
标题:[求助]两道C作业题,求教高手
只看楼主 加入收藏
0899
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-4-26
收藏
 问题点数:0 回复次数:2 
[求助]两道C作业题,求教高手
1:要求用户输入年,月,日,以及数字X,用函数计算X天以后的年,月,日,并在main()中输出。

2 实验题二:复杂函数
求用户输入的2个数的最大公约数和最小公倍数。
解题思路:
首先用数学的方法来解决,要求2个数的最大公约数,首先应该把大数的因子一个个找出来,判断是不是小数的因子。因为是最大公约数,所以要从大数的最大因子开始判断。
要找一个数最大因子,可以从N1/2开始依次的减一,如果可以被N1整除,则是因子,再判断是否能被N2整除,如果也可以,那该数即是最大公约数。所以,我们可以采用类似以下的循环来完成:
for(int i=n1/2;i>=2;i--)        //请判断i为什么要大于等于2
{
         if(n1%i==0)                //模一个数等于0,表示能够整除
         {
                        //请在这里自己填入判断i是否是n2的因子的语句
         }
}
对于公倍数,似乎更简单。
只要对大数n1进行乘一,乘二,乘三。。。。。。并将每次的结果模小数看结果是否为0即可



虽然有思路,但不是不太会,请高手指点,跪谢!!!!
个人简介: 菜虫,

[此贴子已经被作者于2005-5-27 15:30:25编辑过]


搜索更多相关主题的帖子: 作业 
2005-05-27 15:16
ajey2004
Rank: 1
等 级:新手上路
帖 子:164
专家分:0
注 册:2004-12-30
收藏
得分:0 

#include <stdio.h> #define bool int #define TRUE 1 #define FALSE 0

void fun(int *y,int *m,int *d) { int a[2][13]={ {0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31} }; int year,month,day; int theday; bool isrun=FALSE; int i,j,k;

printf("input the year-month-day:\n"); scanf("%d%d%d",&year,&month,&day); printf("input the day after the date:\n"); scanf("%d",&theday);

for(i=0;i<theday;i++) { isrun=FALSE; if (year%4==0) if (year%100!=0) isrun=TRUE; day++; if (day>a[isrun][month]) { day=1; month++; if (month>12) { year++; month=1; } } } *y=year; *m=month; *d=day; }

void main(void) { int year,month,day;

clrscr(); fun(&year,&month,&day); printf("the date is %04d--%02d--%02d\n",year,month,day); }


2005-05-27 16:15
0899
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-4-26
收藏
得分:0 
谢谢

有没有简单点的

[此贴子已经被作者于2005-5-28 9:16:17编辑过]



2005-05-27 18:59
快速回复:[求助]两道C作业题,求教高手
数据加载中...
 
   



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

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