• 实验 19 问题回顾二 参考答案


    题目描述

    输入10个数,求它们的平均值,并输出大于平均值的数据的个数。

    输入要求

    10个数

    输出要求

    大于平均数的个数

    假如输入

    1 2 3 4 5 6 7 8 9 10

    应当输出

    5

    #include <stdio.h>

     

    int main()

    {

        double a[10],Ave=0;

        int i,res=0;

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

        {

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

            Ave += a[i];

        }

        Ave /= 10;

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

        {

            if(a[i] > Ave)

                res ++;

        }

        printf("%d ",res);

     

        return 0;

    }

    题目描述

    输入两个正整数m和n(m<n),求m到n之间(包括m和n)所有素数的和,要求定义并调用函数isprime(x)来判断x是否为素数(素数是除1以外只能被自身整除的自然数)。

    输入要求

    m n

    输出要求

    素数和

    假如输入

    2 3

    应当输出

    5

    #include <stdio.h>

    #include <math.h>

     

    int isprime(int x)

    {

       int len = (int)sqrt((double)x);

       int i;

       for(i=2;i<=len;i++)

       {

          if(x%i == 0)

             return 0;

       }

       return 1;

    }

     

    int main()

    {

       int m,n;

       int i;

       int sum = 0;

       scanf("%d%d",&m,&n);

       if(m==1)

          m = 2;

       for(i=m;i<=n;i++)

       {

          if(isprime(i))

             sum += i;

       }

       printf("%d ",sum);

     

       return 0;

    }

    题目描述

    输入10个数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出这10个数。

    输入要求

    十个数

    输出要求

    交换后的十个数

    假如输入

    10 2 30 40 50 60 70 80 90 100

    应当输出

    10 100 30 40 50 60 70 80 90 2

    #include <stdio.h>

    #include <math.h>

     

    int MinIndex(int *a,int n)

    {

       int i,minInd = 0;

       for(i=1;i<n;i++)

       {

          if(fabs(a[minInd]) > fabs(a[i]))

             minInd = i;

       }

      

       return minInd;

    }

     

    int main()

    {

       int i,minInd;

       int a[10],tmp;

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

       {

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

       }

       minInd = MinIndex(a,10);

       tmp = a[minInd];

       a[minInd] = a[9];

       a[9] = tmp;

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

       {

          if(i != 0)

          {

             putchar(' ');

          }

          printf("%d",a[i]);

       }

       putchar(' ');

     

       return 0;

    }

    题目描述

    输入一个正数x和一个正整数n,求下列算式的值。要求顶一个调用2个函数:fact(n)计算n的阶乘;mypow(x,n)计算x的n次幂(即xn),两个函数的返回值类型是double。

          x - x2/2! + x3/3! + ... + (-1)n-1xn/n!

    ×输出保留4位小数。

    输入要求

    x n

    输出要求

    数列和

    假如输入

    2.0 3

    应当输出

    1.3333

    #include <stdio.h>

    #include <math.h>

     

    double fact(int n)

    {

       static double res = 1.0;

       res *= n;

     

       return res;

    }

     

    double mypow(double x,int n)

    {

       return pow(x,(double)n);

    }

     

    int main()

    {

       double x,sum=0;

       int n;

       int i;

       scanf("%lf %d",&x,&n);

       for(i=1;i<=n;i++)

       {

          if(i%2 == 0)

             sum -= mypow(x,i)/fact(i);

          else

             sum += mypow(x,i)/fact(i);

       }

       printf("%.4lf ",sum);

     

       return 0;

    }

    题目描述

    输入x ,计算并输出下列分段函数 f(x) 的值。可以调用数学库函数:平方根函数sqrt(),绝对值函数fabs() 和幂函数 pow()。 

     保留2位小数

    输入要求

    x

    输出要求

    f(x)

    假如输入

    5

    应当输出

    15.00

    #include <stdio.h>

    #include <math.h>

     

    int main()

    {

       double x,res;

       scanf("%lf",&x);

       if(x<0)

          res = fabs(x);

       else if(0<=x && x<2)

          res = sqrt(x+1);

       else if(2<=x && x<4)

          res = pow(x+2,5.0);

       else

          res = 2*x+5;

       printf("%.2lf ",res);

     

       return 0;

    }

    题目描述

    输出一张摄氏一华氏温度转换表,摄氏温度的取值区间是[-1000 C,1500C ],温度间隔50C。要求定义和调用函数 ctof(c),将摄氏温度C转换成华氏温度F,计算公式:

    F = 32 + C* 9/5。

    例如

    c=0->f=32
    c=5->f=41
    c=10->f=50
    c=15->f=59
    c=20->f=68
    c=25->f=77
    c=30->f=86
    c=35->f=95
    c=40->f=104
    c=45->f=113
    c=50->f=122
    c=55->f=131
    c=60->f=140
    c=65->f=149

    输入要求

    输出要求

    假如输入

    #include<stdio.h>

     

    double ctof(double c)

    {

       return 32+c*9.0/5.0;

    }

     

    int main()

    {

       double c;

       for(c=-100;c<=150;c+=5)

       {

          printf("c=%.0lf->f=%.0lf ",c,ctof(c));

       }

     

       return 0;

    }

    题目描述

    输入一个正整数n (1≤ n ≤6),再输入一个n 行n列的矩阵,找出该矩阵中绝对值最大的元素以及它的行下标和列下标。

    输入要求

    n

    nxn

    输出要求

    数 行 列

    假如输入

    2

    1 2

    3 4

    应当输出

    4 2 2

    #include<stdio.h>

     

    int main()

    {

       int n,r,c,x;

       int max = 0;

       int maxR=0,maxC=0;

       scanf("%d",&n);

       for(r=0;r<n;r++)

       {

          for(c=0;c<n;c++)

          {

             scanf("%d",&x);

             if(max < x)

             {

                max = x;

                maxR = r;

                maxC = c;

             }

          }

       }

       printf("%d %d %d ",max,maxR+1,maxC+1);

     

       return 0;

    }

    题目描述

    编写程序,输入一批学生的成绩,遇0或负数则输入结束,要求统计并输出优秀(大于85)、通过(60~84)和不及格(小于60)的学生人数。

    输入要求

    输出要求

    假如输入

    88 71 68 70 59 81 91 42 66 77 83 0

    应当输出

    >=85:2

    60-84:7

    <60:2

    #include<stdio.h>

     

    int main()

    {

       int high=0,mid=0,low=0;

       int x;

       while(scanf("%d",&x), x>0)

       {

          if(x >= 85)

             high++;

          else if(x >= 60)

             mid++;

          else

             low++;

       }

       printf(">=85:%d 60-84:%d <60:%d ",high,mid,low);

     

       return 0;

    }

    题目描述

    解一元二次方程是初中数学必须掌握的一个重点。在不考虑虚数的情况下,一个一元二次方程的解有三种情况:有两个不同的解、有两个相同的解以及无解。

    本题需要你通过编程来解一元二次方程ax2+bx+c=0的根。

    输入要求

    输入数据有若干行,每行包含一元二次方程的三个系数,依次为二次项系数、一次项系数以及常数。系数a为0输出出错信息(Error!),三个系数同时为0时输入结束,该组数据不做处理。

    输出要求

    当一元二次方程有两个不同的解时,先输出较大的解,再输出较小的解,如:

    x1=2.000000

    x2=1.000000

    当一元二次方程有两个相同的解时,两个解一起输出,如:

    x1=x2=1.000000

    当一元二次方程无解时,输出”No solution!”(忽略双引号)。

    结果保留6位小数。

    假如输入

    1 -2 1

    3 2 1

    2 3 1

    0 2 1

    0 0 0

    应当输出

    x1=x2=1.000000

    No solution!

    x1=-0.500000

    x2=-1.000000

    Error!

    #include <stdio.h>

    #include <math.h>             

    int main( )

    {

       float  a,b,c,x1,x2,t;

       scanf("%f%f%f",&a,&b,&c);

       while (!(a==0 && b==0 && c==0))

       {

          if (a!=0)

          {

             if (b*b-4*a*c>=0)

             {

                t=sqrt(b*b-4*a*c);

                if (t>0)

                {

                    x1=(-b+t)/(2*a);

                    x2=(-b-t)/(2*a);

                    printf("x1=%f ",x1);

                    printf("x2=%f ",x2);

                }

                else

                    printf("x1=x2=%f ",-b/2/a);

             }

             else

                printf("No solution! ");

          }

          else

             printf("Error! ");

          scanf("%f%f%f",&a,&b,&c);

       }

       return 0;

    }

    题目描述

    编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)计算k的阶乘,函数返回值的类型是double。

    1+1/2+ .... +1/n! 

    输出保留5位小数。

    输入要求

    输出要求

    假如输入

    5

    应当输出

    sum=1.71667

    #include <stdio.h>

     

    double fact(int n)

    {

       static double res = 1.0;

       res *= n;

       return res;

    }

     

    int main()

    {

       int n,i;

       double sum = 0;

       scanf("%d",&n);

       for(i=1;i<=n;i++)

       {

          sum += 1.0/fact(i);

       }

       printf("sum=%.5lf ",sum);

     

       return 0;

    }

  • 相关阅读:
    ehcache 2.4 即将发布,亮点多多
    2010 年个人回忆与总结
    ehcache 2.4 即将发布,亮点多多
    JBoss Seam 3.0.0.Beta1 发布
    JBoss Seam 3.0.0.Beta1 发布
    jQuery 1.5 正式版如期发布
    jQuery 1.5 正式版如期发布
    Contracts for Java
    2010 年个人回忆与总结
    Contracts for Java
  • 原文地址:https://www.cnblogs.com/jlxuqiang/p/3475821.html
Copyright © 2020-2023  润新知