第七章:函数实训

简介: 第七章:函数实训

五、编程题

(一)编写程序,调用函数求一个圆柱体的表面积和体积。

#include<stdio.h>
#define PI 3.1415926
float area(float r, float h)
{
  float a;
  a = PI * 2 * r * h;
  return a;
}
float bulk(float r, float h)
{
  float v;
  v = PI * r * r * h;
  return v;
}
int main()
{
  float r, h;
  printf("Please input radius and height:\n");
  scanf("%f,%f", &r, &h);
  printf("Surface area:%.2f,volume:%.2f\n", area(r, h), bulk(r, h));
  return 0;
}

运行结果

702d9e78ccc84ad7919d1e376fb0c28d.png

粗浅理解:此代码是根据函数的值传递进行调用的,根据圆柱体表面积和体积的公式分别定义两个函数值是单精度实型函数进行计算,然后计算完之后输出。


(二)编写函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0。

#include<stdio.h>
int prime(int m)
{
  int i;
  for (i = 2; i < m / 2; i++)
  if (m % i == 0)break;
  if (i > m / 2)return 1;
  return 0;
}
int main()
{
  int i;
  for (i = 2; i < 100; i++)
  if (prime(i))printf("%d ", i);
  return 0;
}

运行结果

007396691a5042679980eff6478d3386.png

(三)编写程序,输出一个整数的全部素数因子。要求判断是否为素数调用第2题中的prime()函数。例如,整数120的素数因子为2、2、2、3、5。

#include<stdio.h>
int prime(int m)
{
  int i;
  for (i = 2; i <= m / 2; i++)
  if (m % i == 0)break;
  if (i > m / 2)return 1;
  return 0;
}
int main()
{
  int i, n, m;
  printf("Please iunput a Number:\n");
  scanf("%d", &n);
  m = n;
  while (m > 0)
  {
  for(i=2;i<=m;i++)
    if (prime(i) && m % i == 0)
    {
    printf("%d*", i);
    m = m / i;
    break;
    }
  }
  printf("\b=%d", n);
  return 0;
}

运行结果

c7dca7ea139247e4b9661e6b5237ec3b.png

(4)输入精度e,使用格里高利公式求π的近似值,精确到最后一项的绝对值小于e。要求定义和调用函数pi(e)求π的近似值。

#include<stdio.h>
float pi(float e)
{
  int i = 1;
  float pi = 1, s = 1, a;
  do
  {
  s = -s;
  i = i + 2;
  a = 1.0 / i;
  pi = pi + s * a;
  } while (a >= e);
  return pi * 4;
}
int main()
{
  float e;
  printf("Please iunput a Number:\n");
  scanf("%f", &e);
  printf("%f", pi(e));
  return 0;
}

运行结果

288b64248fad43129a4b25023aa8e9f4.png

(6)使用递归方法,求解x的n次方。其中n为整数,x不等于0。

#include<stdio.h>
float xn(float x, int n)
{
  if (n == 0)return 1, 0;
  if (n == 1)return x;
  return xn(x, n - 1) * x;
}
main()
{
  int n; float x;
  printf("Please input x:");
  scanf("%f", &x);
  printf("\nPlease input n:");
  scanf("%d", &n);
  printf("%f", xn(x, n));
}

运行结果

5b9656937c3f4bb0b8789cf8c19adaee.png


目录
相关文章
|
5月前
|
人工智能 自然语言处理 供应链
面向企业的 ChatGPT 究极手册:第一章到第二章
面向企业的 ChatGPT 究极手册:第一章到第二章
147 0
面向企业的 ChatGPT 究极手册:第一章到第二章
|
5月前
|
存储 人工智能 安全
面向企业的 ChatGPT 究极手册:第七章到第八章
面向企业的 ChatGPT 究极手册:第七章到第八章
140 0
面向企业的 ChatGPT 究极手册:第七章到第八章
|
自然语言处理 数据处理
【软工视频】第三章
【软工视频】第三章
|
5月前
|
存储
第六章:数组实训
第六章:数组实训
74 0
|
监控 数据可视化 测试技术
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
259 0
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型