鱼C论坛

 找回密码
 立即注册
查看: 1136|回复: 3

[技术交流] C++旅程第五站——函数你我他111

[复制链接]
发表于 2020-4-27 21:00:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 这是她 于 2020-4-27 20:59 编辑

Heard melodies are sweet,but those unheard are sweeter.



                                                    函函函函函函函函函数来喽




  1. #include <iostream>

  2. const int Max = 10;

  3. //函数原型---是一条语句必须以分号结束;不要求提供函数名
  4. void uparameter(int a);
  5. int parameter(int b);
  6. void mutiparameter(int c,char d);
  7. int fill_array(double ar[],int n);//传递常规变量--->函数将使用该变量的拷贝;传递数组--->函数使用原来的数组(传递的是数组的地址不是数组的内容)
  8. void show_array(const double ar[],int n);
  9. void revalue(double r,double ar[],int n);
  10. int sum_arr(const int * begin,const int * end);

  11. using namespace std;

  12. int main ()
  13. {
  14.         int swan,crab,penguin,magple;
  15.         char snake;
  16.         double goose[Max];
  17.         int tree[Max] = {34,36,7,35,367,38,96,73};
  18.        
  19.         cout << "Please enter a number of swan : " << endl;
  20.         cin >> swan;
  21.        
  22.         uparameter(swan);//调用函数---没有返回值的函数(void函数)
  23.         //swan是一个形参--传递个函数的值
  24.        
  25.         cout << "Please enter a number of crab :" << endl;
  26.         cin >> crab;
  27.         penguin = parameter(crab);//调用函数---有返回值的函数(将生成一个值,并将他返回给调用函数);对于返回值的类型不能是数组
  28.         cout << "Value : penguin " << penguin << endl;
  29.        
  30.         //含有多个参数的函数
  31.         cout << "Please enter a number of penguin : " << endl;
  32.         cin >> penguin;
  33.         cout << "Enter a character : " << endl;
  34.         cin >> snake;
  35.         mutiparameter(penguin,snake);
  36.        
  37.         //函数和数组
  38.         int size = fill_array(goose,Max);
  39.         show_array(goose,size);
  40.         if (size > 0)
  41.         {
  42.                 cout << "Enter revaluation factor : ";
  43.                 double factor;
  44.                 while (!(cin >> factor))
  45.                 {
  46.                         cin.clear();
  47.                         while (cin.get() != '\n')
  48.                                 continue;
  49.                         cout << "Bad input;Please enter a number : ";
  50.                 }
  51.                 revalue(factor,goose,size);
  52.                 show_array(goose,size);
  53.         }
  54.         cout << "Done.\n";
  55.         cin.get();
  56.         cin.get();
  57.        
  58.         int sum = sum_arr(tree,tree + Max);
  59.         cout << "Value : tree : " << sum << endl;
  60.         sum = sum_arr(tree,tree + 4);
  61.         cout << "Value : 0-3 : " << sum << endl;
  62.         sum = sum_arr(tree + 4,tree + 7);
  63.         cout << "Value : 3-6 : " << sum << endl;
  64.        
  65.         return 0;
  66. }

  67. //函数的定义---没有返回值的函数   
  68. void uparameter(int a)//a是形参--接受传递值
  69. {
  70.         for (int i = 0;i < a;i++)//i是局部变量,是在diplomatic这个函数中的变量
  71.                 cout << "constructive!";
  72.         cout << endl;
  73. }

  74. //函数的定义---有返回值的函数
  75. int parameter(int b)
  76. {
  77.         return b * b * b;//返回值的类型要与定义函数的类型相同
  78. }

  79. //多个参数的函数
  80. void mutiparameter(int c,char d)//使用','分隔参数
  81. {
  82.         for (int i = 0;i < c;i++)
  83.                 cout << "amiable " << d;
  84.         cout << endl;
  85. }

  86. //填充数组
  87. int fill_array(double ar[],int n)//接受两个参数:数组名和指定了要读取的最大元素数
  88. {
  89.         double temp;
  90.         int i;
  91.         for (i = 0;i < n;i++)
  92.         {
  93.                 cout << "Enter value $ " << (i+1) << ": ";
  94.                 cin >> temp;
  95.                 if (!cin)
  96.                 {
  97.                         cin.clear();
  98.                         while(cin.get() != '\n')
  99.                                 continue;
  100.                         cout << "Bad input;input process terminated.\n";
  101.                         break;
  102.                 }
  103.                 else if (temp < 0)
  104.                         break;
  105.                 ar[i] = temp;
  106.         }
  107.         return i;
  108. }

  109. //显示数组及用const保护数组
  110. void show_array(const double ar[],int n)//为了函数防止无意中修改数组的内容,在声明形参的时候使用关键字const
  111. {
  112.         for (int i = 0;i < n;i++)
  113.         {
  114.                 cout << "goose $" << (i+1) << " : ";
  115.                 cout << ar[i] << endl;
  116.         }
  117. }

  118. //修改数组——需要给函数提供三个参数:因子、数组和元素数目;该函数不需要返回值
  119. void revalue(double r,double ar[],int n)
  120. {
  121.         for (int i = 0;i < n;i++)
  122.                 ar[i] *= r;
  123. }

  124. //使用数组区间的函数
  125. int sum_arr(const int * begin,const int * end)
  126. {
  127.         const int * pt;
  128.         int total = 0;
  129.        
  130.         for (pt = begin;pt != end;pt++)
  131.                 total = total + *pt;
  132.         return total;
  133. }
复制代码


   渣渣一个 各位大佬手下留情
                        你的建议,我的改变


本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-27 21:04:00 | 显示全部楼层
支持一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-27 21:06:29 | 显示全部楼层
话说你建个淘贴不香吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-28 20:23:12 | 显示全部楼层
乘号 发表于 2020-4-27 21:06
话说你建个淘贴不香吗?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 02:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表