• 第十三周编程总结--助教


    题目1 使用函数计算两点间的距离
    (1)实验代码
    #include <stdio.h>
    #include <math.h>
    double dist( double x1, double y1, double x2, double y2 );
    int main()
    {   
        double x1, y1, x2, y2;
        scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
        printf("dist = %.2f ", dist(x1, y1, x2, y2));
        return 0;
    }
    double dist( double x1, double y1, double x2, double y2 )
    {
     double x, y, s;
     x = pow((x1 - x2), 2);
     y = pow((y1 - y2), 2);
     s = sqrt(x + y);
     
     return s;
    }
    (2)设计思路
    第一步:这是个数学公式直接套用就行
    第二步:返回计算出的值
    (3)本题调试过程碰到问题及解决办法
    一个公式,不难。一次通过
    (4)运行结果截图

    题目2 符号函数
    (1)实验代码
    #include <stdio.h>
    int sign( int x );
    int main()
    {
        int x;
        scanf("%d", &x);
        printf("sign(%d) = %d ", x, sign(x));
        return 0;
    }
    int sign( int x )
    {
     
     if(x>0)
     x = 1;
     
     if(x==0)
     x = 0;
     
     if(x<0)
     x = -1;
     
     return x;
    }
    (2)设计思路
    第一步:用三个if语句判断
    第二步:赋值相应的值给x
    第三步:返回x的值
    (3)本题调试过程碰到问题及解决办法
    一次过,没什么问题
    (4)运行结果截图

    题目3 使用函数计算两个复数之积
    (1)实验代码
    #include<stdio.h>
    double result_real, result_imag;
    void complex_prod( double x1, double y1, double x2, double y2 );
    int main(void)
    {
        double imag1, imag2, real1, real2; 
        scanf("%lf %lf", &real1, &imag1);    
        scanf("%lf %lf", &real2, &imag2);    
        complex_prod(real1, imag1, real2, imag2);  
        printf("product of complex is (%f)+(%f)i ", result_real, result_imag);
     
        return 0;
    }
    void complex_prod( double x1, double y1, double x2, double y2 )
    {
     result_real = x1*x2 - y1*y2;
     result_imag = x1*y2 + x2*y1;
     }
    (2)设计思路
    第一步:题目给了计算的公式
    第二步:直接套用,void是没有返回值的
    第三步:得出结果
    (3)本题调试过程碰到问题及解决办法
    无问题,一次过
    (4)运行结果截图

    题目4 8 使用函数求最大公约数
    (1)实验代码
    #include <stdio.h>
    int gcd( int x, int y );
    int main()
    {
        int x, y;
        scanf("%d %d", &x, &y);
        printf("%d ", gcd(x, y));
        return 0;
    }
    int gcd( int x, int y )
    {
     int i;
     for(i=x;i>=1;i--)
     {
      if(x%i==0&&y%i==0)
      break;
     }
     return i;
    }
    (2)设计思路
    第一步:题目给的是求最大公约数,所以我们可以从x本身开始除起,每次递减一
    第二步:定义 变量,用for循环
    第三步:用if判断,同时满足两个数都能相除
    第四步:返回i值
    (3)本题调试过程碰到问题及解决办法
    一次通过,无问题。
    (4)运行结果截图

    题目5 使用函数输出水仙花数
    (1)实验代码
    #include <stdio.h>
    int narcissistic( int number );
    void PrintN( int m, int n );
    int main()
    {
        int m, n;
        scanf("%d %d", &m, &n);
        if ( narcissistic(m) ) printf("%d is a narcissistic number ", m);
        PrintN(m, n);
        if ( narcissistic(n) ) printf("%d is a narcissistic number ", n);
        return 0;
    }
    int narcissistic(int number)
    {
        int i, j, digit, power, powerSum, integer, count, flag; 
        count = 0;
        integer = number;//赋值计算
        while (integer > 0)//判断有几位数
        {
            integer = integer / 10;
            count++;
        }
        powerSum = 0;
        integer = number;//重新赋值
       
        for (i = 0; i < count; i++)
        {
            digit = integer % 10;//每次拆个位数
            integer = integer / 10;//降位
            power = 1;
           
            for (j = 0; j < count; j++)//有几位数乘几次
                power = power*digit;
            powerSum = powerSum + power;//将每位数成完后累加
        }
        if (powerSum == number)
            flag = 1;
           
        else
            flag = 0;
           
        return flag;
    }
    void PrintN(int m, int n)
    {
        int i;
        for (i = m + 1; i < n; i++)
        {
            if (narcissistic(i) == 1)
                printf("%d ", i);
        }
    }
    (2)设计思路
    第一步:先可以把判断水仙花数这个函数写完,另外一个函数就调用这个函数
    第二步:看代码上的注释
    (3)本题调试过程碰到问题及解决办法
    小问题比较多,一个是m==n时的输出,还有没看清题目,是有几位数就是几次幂。
    (4)运行结果截图
  • 相关阅读:
    idea 开发中常用的36个快捷键!
    算法学习一
    elastic-job-lite使用文档
    Windows使用Fiddler对手机抓包或调试本地计算机web站点方法
    Thread.join的作用和原理
    static修饰的代码块被称作静态代码块
    【Java面试题】52 java中会存在内存泄漏吗,请简单描述。
    数据类型 Object.keys,values,entries
    数据类型 Map and Set(映射和集合)
    数组映射到对象
  • 原文地址:https://www.cnblogs.com/zw431387/p/10086446.html
Copyright © 2020-2023  润新知