论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

C趣味程序(二)(06)

文章类别:C语言程序设计 | 发表日期:2008-9-24 14:44:33

1.7 分数四则运算
1.8 求定积分近似值


1.7 分数四则运算
    对输入的两个分数进行+、-、*、/四则运算,输出分数结果。
算法分析如下:
    对分数b/a与d/c,不管哪一种运算,其运算结果均为y/x形式。对结果y/x进行化简,约去分子分母的公因数:试用i(i=1,...,y)对y,x进行试商,若能同时整除y,x,则y,x同时约去公因数i,最后打印约简的分数。
程序代码如下:
#include<stdio.h>
void main()
{
    long int a,b,c,d,i,x,y,z;
    char op;
    printf("两分数b/a,d/c作+,-,*,/四则运算,结果为分数。\n");
    printf("请输入分数运算式。\n");
    scanf("%ld/%ld%c%ld/%ld",&b,&a,&op,&d,&c);
    if(a==0||c==0) {printf("分母为0输入错误!");exit(0);}
    if(op=='+'){y=b*c+d*a;x=a*c;}        /*运算结果均为y/x*/
    if(op=='-'){y=b*c-d*a,x=a*c;}
    if(op=='*'){y=b*d;x=a*c;}
    if(op=='/'){y=b/c;x=a/d;}
    z=x;
    if(x>y) z=y;
    i=z;
    while(i>1)            /*y/x分子分母约去公因数*/
    {
        if(x%i==0&&y%i==0){x=x/i;y=y/i;continue;}
        i--;
    }
    printf("%ld/%ld%c%ld/%ld=%ld/%ld.\n",b,a,op,d,c,y,x);
}
程序运行结果如下:



注重:本题要求输出的结果为分数,因而分子y与分母x要根据运算类型作相应的决定与输出。输出前对x,y约去公因数化简是必要的。

----------------------------------------------------------

1.8 求定积分近似值
    试求定积分


的近似值(积分限a,b从键盘输入)。
算法分析如下:
    求定积分的近似值常有矩形法与梯形法,其实质都是面积求和。



    矩形法是把所要求的面积垂直x轴分成n个小矩形,然后把这n个小矩形的面积相加,即为所求的定积分的值。
    梯形法是把所要求的面积垂直分成n个小梯形,然后作面积求和。
    这两种近似求值的精度随分割个数n的增加而增加,对于相同的n个数,相对来说,梯形法的精度比矩形法的要高一些。

程序代码如下:
#include<stdio.h>
#include<math.h>
void main()
{
    int i,n=1000;
    float a,b,h,t1,t2,s1,s2,x;
    printf("请输入积分限a,b:");
    scanf("%f,%f",&a,&b);
    h=(b-a)/n;
    for(s1=0,s2=0,i=1;i<=n;i++)
    {
        x=a+(i-1)*h;
        t1=(float)exp(-x*x/2);t2(float)=exp(-(x+h)*(x+h)/2);
        s1=s1+t1*h;        /*矩形面积累加*/
        s2=s2+(t1+t2)*h/2;        /*梯形面积累加*/
    }
    printf("矩形法算得积分值:%f.\n",s1);
    printf("梯形法算得积分值:%f.\n",s2);
}
程序运行结果如下:
    矩形法算得积分值:0.855821
    梯形法算得积分值:0.855624
    由上面的比较可知,梯形法的精度要高于矩形法。
上一篇:{实例}C趣味程序(二)(05) 人气:6171
下一篇:{实例}C趣味程序(二)(07) 人气:6863
视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058