c语言第五六次作业.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* C语言作业解析 ——第四弹 。。原来真正变态的是这两作业哇~ 原本是做完第五次作业等大家数分期中考完以后给大家,结果直接出了第六次。就顺便做了。买一送一还包邮哦亲~ 虽然这两次作业比较难。理解起来困难无比。。不过考试的时候不会有这么变态的题目啦~放心 当前编程题:11级第五次作业---凸多边形面积1. 【问题描述】给出平面上一组顶点的坐标,计算出它们所围成的凸多边形的面积。 【输入形式】从标准输入读取顶点坐标。格式为:第一行是点的个数N(3≤N≤15),后面紧接着N行,每行两个数字 (由空格隔开),分别表示该点的X、Y坐标(0≤X,Y≤32767)。所有点的坐标互不相同,且按顺时针次序给出。 输入数据确保该多边形是一个凸多边形。 【输出形式】向标准输出打印一个浮点数,是该多边形的面积。该浮点数保留两位小数。 【输入样例】 4????????????????????????????????????????????????????????????? 3 3 3 0 1 0 1 2 【输出样例】 5.00 【样例说明】输入数据表示了如图所示的四边形。其面积为5.00。 提示:求三角形面积可用海伦公式,求平方根可用math.h头文件中定义的sqrt函数。 【评分标准】结果完全正确得20分,每个测试点4分。提交程序名为:points.c。 本题解析: 这个题是把凸n边形面积分成n-2个三角形面积和来做的。用海伦公式 S=sqrt(p*(p-a)*(p-b)*(p-c)) P=(a+b+c)/2 a,b,c为三边长 例如n边形点为a1a2…an 那 S=∑(Sa1akak+1) (2≤K≤N-1) 边长则为两点间距离。 #includestdio.h #includemath.h int main() { int n; float x[15],y[15]; int i; float dx,dy; float tot=0; float a,b,c,p; scanf(%d,n); for (i=0;in;i++) scanf(%f%f,x[i],y[i]); for (i=1;in-1;i++) { dx=x[0]-x[i]; dy=y[0]-y[i]; a=sqrt(dx*dx+dy*dy);/*两点间距离公式*/ dx=x[i]-x[i+1]; dy=y[i]-y[i+1]; b=sqrt(dx*dx+dy*dy); dx=x[i+1]-x[0]; dy=y[i+1]-y[0]; c=sqrt(dx*dx+dy*dy); p=(a+b+c)/2; tot+=sqrt(p*(p-a)*(p-b)*(p-c)); /*海伦公式*/ } printf(%.2f,tot); return 0; } 当前编程题:11级第五次作业---整数的N进制字符串表示 【问题描述】编写函数itob(n,s,b),用于把整数n转换成以b为基的字符串并存储到s中.?? 编写程序,使用函数itob(n,s,b)将输入的整数n,转换成字符串s,将s输出.转换后的字符串从最高的非零位开始输出。如果n为负数,则输出的字符串的第一个字符为’-’。b为大于1小于37的任意自然数值。当b=2时,输出字符只可能是’0’和’1’;当b=16时,输出字符串中可能含有字符为’0’-’9’,’a’-’f’(字母以小写输出)。b还可以是其它数值。比如输入n=33,b=17,则输出33的17进制值为1g。 【输入形式】控制台输入整数n和b,其中n可以为负数。n和b以空格分隔. 【输出形式】控制台输出转化后的字符串s. 【样例输入】5 2 【样例输出】101 【样例说明】5的二进制就是101 【评分标准】结果完全正确得20分,每个测试点4分。提交程序名为:itob.c 本题解析: 十进制转换为其他进制的方法是不断除目标进制的数取余数,然后倒序输出。例如5变为二进制就是5%2=1;5/2=2;2%2=0;2/2=1;1%2=1; 得到101 倒序得到101 即为正解。十进制以上则是若目标大于10就变为相应的字母即可。 如果目标数为负数,则先忽略负号求解最后加上一个负号就可以了 #includestdio.h #includestring.h void itob(int n,char s[

文档评论(0)

kfcel5889 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档