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

📄 ex8_01.c

📁 [C语言入门经典(第4版)]整本书的源码!值得推荐!全部是最简单的源码!
💻 C
字号:
/* Exercise 8.1 A function to calculate an average */
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

double average(double data[], int count)
{
  double sum = 0.0;
  for(int i = 0 ; i<count ; sum += data[i++])
    ;
  return sum/count;
}

#define CAPACITY_INCREMENT 6  /* Increment in the capacity for data values */

int main(void)
{
   double *data = NULL;      /* Pointer to array of data values          */
   double *newdata = NULL;   /* Pointer to new array of data values      */
   double *averages = NULL;  /* Pointer to array of averages             */
   int count = 0;            /* Number of data values                    */
   int capacity = 0;         /* Number of data values that can be stored */
   char answer = 'n';

   do
   {
     if(count == capacity)
     {
       capacity += CAPACITY_INCREMENT;
       /* Create new array of pointers */
       newdata = (double*)malloc(capacity*sizeof(double));
       /* Create an array of values of type double for each new day and store the address */
       if(data)
       {
         /* Copy the existing values to the new array */
         for(int i = 0 ; i<count ; i++)
           newdata[i] = data[i];
         free(data);          /* Free memory for the old array of pointers */
       }
       data = newdata;        /* copy the address of the new array of pointers */
       newdata = NULL;        /* Reset the pointer                             */
     }

     printf("Enter a data value: ");
     scanf(" %lf", data+count++);
     printf("Do you want to enter another (y or n)? ");
     scanf(" %c", &answer);
   } while(tolower(answer) != 'n');

   printf("\nThe  average of thew values you entered is %10.2lf\n", average(data, count));
   free(data);
   return 0;
}

⌨️ 快捷键说明

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