【实训5-11】一维数组作为函数参数
(总分39)


 【实训目的】学习一维数组作为函数参数   

【第 1 步】实训内容介绍

 实训内容:学习将一维数组作为函数参数。
 前置条件:掌握函数的声明、定义和使用
 实训过程:
         1. 实训内容介绍
         2. 直接输出数组的每一个元素
         3. 编写一个通用的整数数组输入函数 input()
         4. 编写一个通用的整数数组输出函数 output()
         5. 编写一个通用的整数数组排序函数 sort()
         6. 在主函数中处理四个不同长度的整数数组
         7. 实训结束

【Jitor 校验第 1 步】我已阅读实训内容介绍 // 送分题。直接点击。

 

 

【第 2 步】直接输出数组的每一个元素

 1、在项目 cpp5 中创建名为 cpp5_11 的源代码文件,如果项目不存在,则先创建项目,然后创建源代码文件。
 2、将下述代码复制到刚刚创建的 cpp5_11 中:

#include <iostream.h>

void main(void) {
         int a[6];
         cout << "输入6个数组元素: ";

         cout << "数组元素是: ";

         cout << endl;
}
// 3 4 5 1 2 6

 在合适的位置插入合适的代码,直接输入和输出数组的每一个元素(不采用函数),代码见█████,运行结果如下:

输入6个数组元素: 3 4 5 1 2 6
数组元素是: {3}, {4}, {5}, {1}, {2}, {6}
Press any key to continue

代码如下:
// 从下一行开始复制。
#include <iostream.h>

void main(void) {
         int a[6];
         cout << "输入6个数组元素: ";
         for(int i=0; i<6; i++){
                  cin >> a[i];
         }

         cout << "数组元素是: ";
         for(i=0; i<6; i++){
                  cout << "{" << a[i] << "}";
                  if(i<6-1){
                           cout << ", ";
                  }
         }

         cout << endl;
}
// 3 4 5 1 2 6
// 一直复制到上一行结束。

【Jitor 校验第 2 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。

 

 

【第 3 步】编写一个通用的整数数组输入函数 input()

 将上一步骤中的输入语句改为调用一个自定义函数 input,该函数有两个参数,代码见█████
 运行结果如下(与第二步完全相同):

输入6个数组元素: 3 4 5 1 2 6
数组元素是: {3}, {4}, {5}, {1}, {2}, {6}
Press any key to continue

// 从下一行开始复制。
#include <iostream.h>

void input(int x[], int n);

void main(void) {
         int a[6];
         input(a, 6);

         cout << "数组元素是: ";
         for(int i=0; i<6; i++){
                  cout << "{" << a[i] << "}";
                  if(i<6-1){
                           cout << ", ";
                  }
         }

         cout << endl;
}

void input(int x[], int n){
         cout << "输入" << n << "个数组元素: ";
         for(int i=0; i<n; i++){
                  cin >> x[i];
         }
}
// 3 4 5 1 2 6
// 一直复制到上一行结束。

【Jitor 校验第 3 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。

 

 

【第 4 步】编写一个通用的整数数组输出函数 output()

 将上一步骤中的输出语句改为调用一个自定义函数 output,该函数有两个参数,代码见█████
 运行结果如下(与第二步完全相同):

输入6个数组元素: 3 4 5 1 2 6
数组元素是: {3}, {4}, {5}, {1}, {2}, {6}
Press any key to continue

代码如下:
// 从下一行开始复制。
#include <iostream.h>

void input(int x[], int n);
void output(int x[], int n);

void main(void) {
         int a[6];
         input(a, 6);
         output(a, 6);
}

void input(int x[], int n){
         cout << "输入" << n << "个数组元素: ";
         for(int i=0; i<n; i++){
                  cin >> x[i];
         }
}

void output(int x[], int n){
         cout << "数组元素是: ";
         for(int i=0; i<n; i++){
                  cout << "{" << x[i] << "}";
                  if(i<n-1){
                           cout << ", ";
                  }
         }      
         cout << endl;
}
// 3 4 5 1 2 6
// 一直复制到上一行结束。

【Jitor 校验第 4 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。

 

 

【第 5 步】编写一个通用的整数数组排序函数 sort()

 再编写一个通用的整数数组排序函数sort,在主函数中调用它,代码见█████
 运行结果如下:

输入6个数组元素: 3 4 5 1 2 6
数组元素是: {1}, {2}, {3}, {4}, {5}, {6}
Press any key to continue

代码如下:
// 从下一行开始复制。
#include <iostream.h>

void input(int x[], int n);
void output(int x[], int n);
void sort(int x[], int n);

void main(void) {
         int a[6];
         input(a, 6);
         sort(a, 6);
         output(a, 6);
}

void input(int x[], int n){
         cout << "输入" << n << "个数组元素: ";
         for(int i=0; i<n; i++){
                  cin >> x[i];
         }
}

void sort(int x[], int n){
         for(int i=0; i<n-1; i++){
                  for(int j=0; j<n-1-i; j++){
                           if(x[j]>x[j+1]){
                                    int tmp = x[j];
                                    x[j] = x[j+1];
                                    x[j+1] = tmp;
                           }
                  }
         }
}

void output(int x[], int n){
         cout << "数组元素是: ";
         for(int i=0; i<n; i++){
                  cout << "{" << x[i] << "}";
                  if(i<n-1){
                           cout << ", ";
                  }
         }      
         cout << endl;
}
// 3 4 5 1 2 6
// 一直复制到上一行结束。

【Jitor 校验第 5 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。

 

 

【第 6 步】在主函数中处理四个不同长度的整数数组

 在主函数中声明四个不同长度的整数数组,并分别调前面的三个函数对数组进行处理,代码见█████
 运行结果如下(与第二步完全相同):

输入6个数组元素: 3 4 5 1 2 6
数组元素是: {1}, {2}, {3}, {4}, {5}, {6}
输入6个数组元素: 8 4 5 7 2 6
数组元素是: {2}, {4}, {5}, {6}, {7}, {8}
输入3个数组元素: 301 116 156
数组元素是: {116}, {156}, {301}
输入20个数组元素: 29 22 21 24 25 31 27 28 39 36 23 32 33 34 30 26 37 38 40 35
数组元素是: {21}, {22}, {23}, {24}, {25}, {26}, {27}, {28}, {29}, {30}, {31}, {32}, {33}, {34}, {35}, {36}, {37}, {38}, {39}, {40}
Press any key to continue

代码如下:
// 从下一行开始复制。
#include <iostream.h>

void input(int x[], int n);
void output(int x[], int n);
void sort(int x[], int n);

void main(void) {
         int a[6];
         input(a, 6);
         sort(a, 6);
         output(a, 6);

         input(a, 6);
         sort(a, 6);
         output(a, 6);

         int b[3];
         input(b, 3);
         sort(b, 3);
         output(b, 3);

         int c[20];
         input(c, 20);
         sort(c, 20);
         output(c, 20);
}

void input(int x[], int n){
         cout << "输入" << n << "个数组元素: ";
         for(int i=0; i<n; i++){
                  cin >> x[i];
         }
}

void sort(int x[], int n){
         for(int i=0; i<n-1; i++){
                  for(int j=0; j<n-1; j++){
                           if(x[j]>x[j+1]){
                                    int tmp = x[j];
                                    x[j] = x[j+1];
                                    x[j+1] = tmp;
                           }
                  }
         }
}

void output(int x[], int n){
         cout << "数组元素是: ";
         for(int i=0; i<n; i++){
                  cout << "{" << x[i] << "}";
                  if(i<n-1){
                           cout << ", ";
                  }
         }      
         cout << endl;
}
// 3 4 5 1 2 6
// 一直复制到上一行结束。

【Jitor 校验第 6 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。

 

 

【第 7 步】实训总结

 本次实训学习了一维数组作为函数参数,可以极大的简化了对数组处理的代码的编写(代码重用)。

【Jitor 校验第 7 步】我已阅读实训总结 // 送分题。直接点击。

 

仍有疑问 ? 联系QQ 9429444(陈海云) : 返回首页