⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex9_02.c

📁 [C语言入门经典(第4版)]整本书的源码!值得推荐!全部是最简单的源码!
💻 C
字号:
/* Exercise 9.2 Implementing arithmetic and array functions */
#include <stdio.h>

double add(double a, double b); /* Returns a+b */
double subtract(double a, double b); /* Returns a-b */
double multiply(double a, double b); /* Returns a*b */
double array_op(double array[], int size, double (*pfun)(double,double));


int main(void)
{
  double array[] = {11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0};

  int length = sizeof array/sizeof(double);
  printf("The value of:\n");
  for(int i = 0 ; i< length ; i++)
  {
    printf("%.2lf%s", array[i], (i<length-1?" + ":"\n"));
  }
  printf(" is %.2lf\n", array_op(array,length,add));

  printf("\nThe value of:\n");
  for(int i = 0 ; i< length ; i++)
  {
    printf("%.2lf%s", array[i], (i<length-1?(i%2==0?" - ":" + "):"\n"));
  }
  printf(" is %.2lf\n", array_op(array, length, subtract));

  printf("\nThe value of:\n");
  for(int i = 0 ; i< length ; i++)
  {
    printf("%.2lf%s", array[i], (i<length-1?" * ":"\n"));
  }
  printf(" is %.2lf\n", array_op(array, length, multiply));
  return 0;
}

/* Function to calculate a+b */
double add(double a, double b)
{
  return a+b;
}

/* Function to calculate a-b */
double subtract(double a, double b)
{
  return a-b;
}

/* Function to calculate a*b */
double multiply(double a, double b)
{
  return a*b;
}

/* Function to apply an operation, pfun, between successive pairs of elements */
double array_op(double array[], int size, double (*pfun)(double,double))
{
  double result = array[size-1];
  int i = 0;
  /* Work from last to first to accommodate alternating signs for subtract */
  for(i = size-1 ; i>0 ; i--)
    result = pfun(array[i-1], result);
  return result;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -