赞
踩
在一些工程代码中,将函数的声明头文件和函数的实现分开,这样可以隐藏函数实现的细节,保护核心代码,也更规整。
下面的例子中,array.h中只有函数的声明,函数的具体实现在array.cpp中,编译时必须用g++联合编译命令,DEV无法编译,因为需要用array.cpp和main.cpp共同编译出可执行文件main.exe。
- #ifndef ARRAY_H
- #define ARRAY_H
-
- #include<iostream>
- using namespace std;
-
- void sameful(int *a,int n,int x); // 将数组的所有元素设置为一指定值
- void add(int *a,int *b,int *c,int n); //合并两个数组的内容
- int find(int *a,int n,int x); //查找某个数在数组中的位置
- int del(int *a,int n,int x); //从数组中删除某个数
- void c_sort(int *a,int n); //将数组从小到大排序
- void print(int *a,int n); //输出结果
-
- #endif
- #include"array.h"
-
- // 将数组的所有元素设置为一指定值
- void sameful(int *a,int n,int x){
- for (int i=1; i<=n; i++)
- a[i]=x;
- }
-
- //合并两个数组的内容
- void add(int *a,int *b,int *c,int n){
- for (int i=1; i<=n; i++)
- c[i]=a[i]+b[i];
- }
-
- //查找某个数在数组中的位置
- int find(int *a,int n,int x){
- for (int i=1; i<=n; i++)
- if (a[i]==x) return (i);
- return 0;
- }
-
- //从数组中删除某个数
- int del(int *a,int n,int x){
- int t=0;
- for (int i=1; i<=n; i++)
- if (a[i]==x){
- t++;
- for (int j=i; j<=n; j++)
- a[j]=a[j+1];
- }
- return (n-t);
- }
- //将数组从小到大排序
- void c_sort(int *a,int n){
- for (int i=1; i<=n; i++)
- for( int j=n-1; j>=i; j--)
- if (a[j]>a[j+1]){
- int t=a[j];
- a[j]=a[j+1];
- a[j+1]=t;
- }
- }
- //输出结果
- void print(int *a,int n){
- for (int i=1;i<=n; i++)
- cout<<a[i]<<" ";
- cout<<endl;
- }

- #include"array.h"
- int main(){
- int n,x,ans;
- int a[1000],b[1000],c[1000];
- cout<<"读入N及N个数"<<endl;
- cin>>n;
- for (int i=1; i<=n; i++)
- cin>>a[i];
-
- cout<<"输入需要查找的数"<<endl;
- cin>>x;
- ans=find(a,n,x);
- cout<<"查找的数的位置为"<<ans<<endl;
-
- cout<<"输入需要删除的数"<<endl;
- cin>>x;
- n=del(a,n,x);
- print(a,n);
-
- c_sort(a,n);
- cout<<"数组从小到大排序结果为"<<endl;
- print(a,n);
-
- cout<<"输入将数组改变为统一的数"<<endl;
- cin>>x;
- sameful(a,n,x);
- print(a,n);
-
- cout<<"再读入N个数,将计算两个数组的和"<<endl;
- for (int i=1; i<=n; i++)
- cin>>b[i];
- add(a,b,c,n);
- print(c,n);
-
- return 0;
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。