栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言上机实践代码(实验四)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言上机实践代码(实验四)

实验内容(方法和步骤):

1.求自然对数的底数 e=2.718281828…,e 的计算公式如下:

e=1+1/1!+1/2!+1/3!+…要求当最后一项的值小于10

-10 时结束。

程序代码:

#include

int main()

{

  float e=1.0,k=1.0;

  int i,j=1;

  printf("e=");

  for(i=1;k>1e-10;i++)

  {

    j*=i;

    k=1.0/j;//如果是k=1/j那么最后结果只能精确到个位

    e+=k;

  }

  printf("%lf",e);

  return 0;

}

运行结果:

2.输入20个有符号整数,统计正整数、零、负整数的个数。

程序代码:

#include

int main()

{

  int a=0,b=0,c=0,i,j;

  int d[20];//数组不能和其他变量同符号

  for(i=0;i<20;i++)

  {

  scanf("%d",&d[i]);

    }

  for(j=0;j<20;j++)

  {

  if (d[j]<0)a+=1;

  else if (d[j]==0)

  b+=1;

  else

  c+=1;

    }

   

  printf("fushu=%dn0=%dnzhengshu=%dn",a,b,c);

  return 0;

}

运行结果:

3.输入m个数,求其最大数、最小数和平均值。

程序代码:

#include

int main()

{

  int m=0,a[177],i=0,aver=0,max=0,min=0,sum=0;

  printf("input a m");

  scanf("%d",&m);

  printf("input %d numbersn",m);//

  for(i=0;i

  {

    scanf("%d",&a[i]);

    sum=sum+a[i];

  }

  aver=sum/m;

  max=a[0];

  min=a[0];

  for(i=0;i

  {

    if(a[i]>max)

    max=a[i];

  }

  for(i=0;i

  {

    if(a[i]

    min=a[i];

  }

  printf("aver:%d,max:%d,min:%d",aver,max,min);

}

运行结果:

4. 任意的整数,当从左向右读与从右向左读是相同的,且为素数时,称为

回文素数。求 1000 以内的所有回文素数。

程序代码:

#include

int isprime(int x)

{

  int j;

  if(x<=1)

      return 0;

  if(x==2)

      return 1;

  for(j=2;j

  {

    if(x%j==0)

        return 0;

    else if(x!=j+1)

        continue;

    else

        return 1;

  }

}

int main()

{

    int i;

    for(i=10;i<1000;i++)

        if(isprime(i)==1)

            if(i/100==0)

            {

                if(i/10==i%10)

                    printf("%5d",i);

                if(i%5==0)

                    printf("n");

            }

            else

                if(i/100==i%10)

                    printf("%5d",i);

                if(i%5==0)

                    printf("n");

    return 0;

}

运行结果:

5.在100和1000之间,有多少个其数字之和等于9而且该数可被5整除的整

数?

程序代码:

#include

int main()

{

  int i,a,b,c,sum=0;

  for(i=100;i<=1000;i++)

  {

  a=i%10;

  b=(i%100-a)/10;

  c=(i-a-b*10)/100;

  if(a+b+c==9&&i%5==0)sum=sum+1;

    }

    printf("%d",sum);

  return 0; 

}

运行结果:

6.一位同学问老师和老师夫人的年龄是多少,老师说:“我年龄的平方加

上我夫人的年龄恰好等于1053,而我夫人年龄的平方加上我的年龄等于873。”

试计算老师和其夫人的年龄。

程序代码:

#include

int main()

{

    int my,wy;

    for(my=0;my<=40;my++)

    {

    for(wy=0;wy<=40;wy++)

    {

    if ((my*my+wy==1053)&&(my+(wy*wy)==873))

    printf("%d %d",my,wy); 

    }

    }

    return 0;

}

运行结果:

7.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立

方和等于该数本身。例如,153是一水仙花数,因为153=1^3+5^3+3^3.

程序代码:

#include

int main()

{

  int i,a,b,c;

  for(i=100;i<=999;i++)

  {

  a=i%10;

  b=(i%100-a)/10;

  c=(i-a-b*10)/100;

  if(a*a*a+b*b*b+c*c*c==i)

  printf("%5d",i);

    }

    return 0;

}

运行结果:

*8.(选做题)一个球从100m高度自由落下,每次落地后反跳回原高度的

一半,再落下,再反弹。求它在第10次落地时,共经过多少米,第10次反弹多

高。

程序代码:

#include

int main()

{

  int j=1;

  double sum=0.0,i=100.0;

    for(j=1;j<=10;j++)

  {

    sum+=i;

    i/=2;

    sum+=i;   

  }

  sum=sum-i;

  printf("%lfn",sum);

  printf("%lf",i);

  return 0;

}

运行结果:

*9.(选做题)猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一

半,还不过瘾,又多吃了一个。第2天又将剩下的桃子吃了一半,又多吃了一

个。以后每天都吃了前一天剩下的一半另加一个。到第10天早上想再吃时,只

剩一个桃子了。求第一天共摘了多少桃子。

程序代码:

#include

int main()

{

  int i=1,j;

  for(j=1;j<=10;j++)

  {

    i=(i+1)*2; 

  }

  printf("%d",i);

  return 0;

}

运算结果:

*10.(选做题)用二分法求下面方程在(-10,10)之间的根:2x 3 -4x 2 +3x-6=0.

(方程应该是打错了,应该第二项2次方才是正确的,否则一二项可以直接合并)

程序代码:

#include

int main()

{

  double i;

  int m=-10,n=10;

  while(m

  {

      i=(m+n)/2;

      if (2*i*i*i-4*i*i+3*i-6==0)

      {

        printf("%lf",i);

        break;

        }

      else if (2*i*i*i-4*i*i+3*i-6>0)n=i-1;

    else if (2*i*i*i-4*i*i+3*i-6<0)m=i+1;

    };

  return 0;

}

运行结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/850490.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号