永发信息网

请教两道C语言题

答案:2  悬赏:20  手机版
解决时间 2021-07-24 21:27
1.编写一个函数fun(),根据给定的三角形三条边长a,b,c,函数返回三角形的面积。

2.编写一个函数验证2000以内的哥德巴赫猜想。对于任何大于4的偶数均可以分解为两个素数之和。
最佳答案

第一题:


#include <stdio.h>
#include <math.h>
float fun(float a,float b,float c) //fun函数. 根据边长a b c返回三角形面积.
{
float p=(a+b+c)/2; //的确.. 忘写了.. 感谢楼下的提醒
p=sqrt(p*(p-a)*(p-b)*(p-c));
return p;
}
void main() //输入三角形边长. 调用函数.输出面积
{
float a,b,c,area;
scanf("%f%f%f",&a,&b,&c);
area=fun(a,b,c);
printf("area=%f\n",area);
}



第二题:



#include <stdio.h>
#include <math.h>
int prime(int n) //判断素数.是返回1.不是返回0;
{
int i,k=sqrt(n);
for(i=2;i<=k;i++)
{
if(n%i==0)
break;
}
if(i>k) return 1;
else return 0;
}
void main()
{
int i,a,b,n; //n作为标志位.
for(i=6;i<=2000;i+=2) //因为判断偶数.所以i的步长为2.奇数不判断.
{
for(a=2;a<i;a++) //循环求组成该偶数的两个素数.
{
if(prime(a)) //先求出组成该偶数的第一个素数.
{
n=0; //对每个偶数的判断都将其初始化为0;
b=i-a; //第二个素数就等于该数减去第一个素数.
if(prime(b))
{
n=1; //d当该偶数的确是由两个素数组成,则将n置1;
break; //退出当前for(a)循环.
}
}
}
if(!n) //如果for(a)循环结束后,n的值还是0,说明该偶数不是由两个素数组成.
{
break; //就退出for(i)循环.
}


}
if(n) //根据n的值,判断验证是否正确.
printf("is right!\n");
else
printf("is error\n");
}

全部回答
楼上的,我想说你的第一道题目有点问题,float p=(a+b+c);应该是float p=(a+b+c)/2;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一道化学题。很急~!
双色球今晚开奖号
I’ m sorry ,I didn’t get that remark.
p2p终结者浏览器优化
数学难题!!!
潜力左后卫雷顿巴恩斯在哪个队?
三十六计??
QQ等级升到太阳能有啥好玩滴?
高中学理科好就业还是文课好?
天龙八部天龙的问题
QQ停车场中一张双倍卡是针对几张车子有效
我们学生应该带手机吗?
帮我看看拉拉
我是一九八七年农历九月二十八的出生的。
像生龙活虎样的词 形容词+动物+形容词+动物
推荐资讯
银行卡上有银联啥意思,银行卡上面的银联是什
拍拍邮递天数能延迟嘛
隐藏桌面任务栏软件谁有啊?给我个谢谢了!
启动某个程序,老是出来这个,而且还很多?
最小的偶数是,最小的偶数是什么?
烟的危害是什么
失去她、怎样才能让她回心转意
笔记本电脑用360安全卫士升级完怎么开不开机
朝南328张友第一次痛吗?
手机坏了怎么办,
QQ三国给宝宝加错点怎么办
QQ空间牧场任务问题
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?