高分求两道C语言程序题!!好的话继续追加分数!!

前两道100分!!后一道再送一百分!!
对设计过程的要求
1. 设计中的每一个小功能尽量由子函数来完成。

课题三:检验C语言中标识符命名是否合法,命名规则如下:
(1) 首字符只能是字母或下划线!
(2) 常、变量只能由字母、下划线和数字构成!
(3) 常、变量标识符不能用C语言关键字!
(4) 函数名标识符不用C语言库函数名称!

课题四:写几个函数用来实现如下功能:给出年、月、日,计算该日是该年的第几天。

上面可以的话帮忙做做,100分就送了!!如果下面的也做出来,追加100分!!!

课题六:题目描述:
1742年,德国数学家,哥德巴赫给数学家欧拉写了一封信,在信中,哥德巴赫做了一个猜想:任何一个大于4的数都可以写成两个奇素数的和。例如:
8 = 3 +5。3和5都是奇素数。
20 = 3 + 17 = 7 + 13。
42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23。
直到今天,也无法证明这个猜想的正确性。无论怎样,你现在任务就是验证哥德巴赫猜想对于所有小于1000000的数都是正确的。
输入说明:
输入文件包含一个或多个测试用例。
每个测试用例包含一个偶整数n,6 <= n < 1000000
输入以0结束。

输出说明:
对于每个测试用例,输出一行,形式为:n = a + b,这里的a和b都是奇素数。数字和操作符之间以一个空格分隔,如下所示。如果这样的组合不止一个,那么选择b-a最大的一组作为结果。如果没有的组合满足n = a + b,输入一行“Goldbach's conjecture is wrong.”
输入样例:
8
20
42
0
输出样例:
8 = 3 + 5
20 = 3 + 17
42 = 5 + 37
谢谢帮助,题里有两个要求。。 设计中的每一个小功能尽量由子函数来完成。 写几个函数用来实现如下功能:给出年、月、日,计算该日是该年的第几天。
郁闷。。。请按题意帮忙做下。。晚上要的。一会就要,继续提高分数!! 有好答案马上采纳!

谢谢了!! 第三题 主要是第三题 不怎么会做!! 。。。。让做三个程序。。 只能追到 180了 最高 分 !! 如果 都做出来 就送了!!

#include <stdio.h>

main()
{
int year, month, day, run, num;
while(scanf("%d%d%d", &year, &month, &day) != EOF)
{
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
run = 1;
else
run = 0;

if(run == 1)
switch(month)
{
case 1 : num = day;break;
case 2 : num = 31 + day;break;
case 3 : num = 60 + day;break;
case 4 : num = 91 + day;break;
case 5 : num = 121 + day;break;
case 6 : num = 152 + day;break;
case 7 : num = 182 + day;break;
case 8 : num = 213 + day;break;
case 9 : num = 244 + day;break;
case 10 : num = 274 + day;break;
case 11 : num = 305 + day;break;
case 12 : num = 335 + day;break;
}
else
switch(month)
{
case 1 : num = day;break;
case 2 : num = 31 + day;break;
case 3 : num = 59 + day;break;
case 4 : num = 90 + day;break;
case 5 : num = 120 + day;break;
case 6 : num = 151 + day;break;
case 7 : num = 181 + day;break;
case 8 : num = 212 + day;break;
case 9 : num = 243 + day;break;
case 10 : num = 273 + day;break;
case 11 : num = 304 + day;break;
case 12 : num = 334 + day;break;
}

printf("%d\n", num);

}

return 0;
}
这是年月日的
Sample Input
1983 3 17
1984 3 21
2000 2 29

Sample Output
76
81
60

#include <stdio.h>
#include <math.h>
int main()
{
bool f( int num);
long n, i, j;

while(scanf("%ld", &n) != EOF)
{
if(n == 0)
return 0;

for(i = 2; i < n; i++)
{
if(f(i) == 1 && f(n - i) == 1)
{
printf("%ld = %ld + %ld\n", n, i, n - i);
break;
}
}
}

return 0;
}

bool f( int num)
{
if (num==2||num==3||num==5)
return 1;
unsigned long c=7;
if (num%2==0||num%3==0||num%5==0||num==1)
return 0;
int maxc=int(sqrt(num));
while (c<=maxc)
{
if (num%c==0)
return 0;
c+=4;
if (num%c==0)
return 0;
c+=2;
if (num%c==0)
return 0;
c+=4;
if (num%c==0)
return 0;
c+=2;
if (num%c==0)
return 0;
c+=4;
if (num%c==0)
return 0;
c+=6;
if (num%c==0)
return 0;
c+=2;
if (num%c==0)
return 0;
c+=6;
}
return 1;
}

这是整数分解的
Sample Input

8
20
42
0

Sample Output

8 = 3 + 5
20 = 3 + 17
42 = 5 + 37

这2道是ACM上原题,我以前做过的,AC
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-17
int main()
{
void f(int y, int m, int d);
int year, month, day;
printf("输入年月日:\n");
scanf("%d%d%d", &year, &month, &day);
f(year, month, day);
return 0;
}
void f(int y, int m, int d)
{
int i, sum=0, m1[12]={0};
for(i=1; i<m; i++)
{
if(i==2&&y%400==0||y%100!=0&&y%4==0) m1[i]+=29;
else if(i==2) m1[i]+=28;
else if(i==4||i==6||i==9||i==11) m1[i]+=30;
else m1[i]+=31;
}
for(i=1; i<m; i++) sum+=m1[i];
sum+=d;
printf("这是这一年的第%d天", sum);
}
第2个回答  2009-12-17
问~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~伟大的~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~老师

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网