四、写出每个函数的功能
1.int WC(int a[] , int n , int k) {
int c=0;
for (int i=0; i<n; i++) if (a[i]>=k) c++;
return c;
}
功能:
统计数组a中值大于等于K的元素的个数并返回。
2.int SC(int a , int b , int c) {
if (a>=b && a>=c) return a;
if (b>=a && b>=c) return b;
if (c>=a && c>=b) return c;
}
功能:
求出a、b、c三个数中的最大值并返回。
3.bool WB(int a[ ] , int n , int x) {
for ( int i=0; i<n; i++ )
if (a[i] == x) return true ;
return false ;
}
功能:
从数组a中顺序查找值为x的元素,如查找成功则返回真,否则返回假。
4. #include<iostream.h>
int LJ(int a[], int n) {
int k=0;
for(int i=1;i<n;i++)
if(a[i]>a[k]) k=i;
return a[k];
}
功能:
求出数组a的n 个元素中的最大值并返回。
5.template <class Type>
int WE(Type a[ ] , Type b[ ] , int n) {
int c = 0;
for ( int i=0; i<n; i++ )
if (a[i] == b[i]) c++;
return c;
}
功能:
模板函数,比较数组a和数组b的对应元素的值,若对应元素值相等,则统计个数,返回统计结果。
6.void LK(int a[ ] , int n , int & m) {
float s = 0; int i;
for ( i=0; i<n; i++ ) s += a[i];
s /= n;
m = 0;
for ( i=0; i<n; i++ ) if (a[i] >= s) m++;
}
功能:
求出数组a的n 个元素中大于平均值的元素个数,用引用变量m带回统计值。
7.#include <iostream.h>
void LI(int n) {
int *a=new int[n];
for (int i=0; i<n; i++) cin >>a[i];
for ( i=n-1; i>=0; i--) cout <<*(a+i)<<’ ‘;
cout <<’/n’;
delete []a;
}
功能:
建立一个含有n 个元素的数组,从键盘为各元素赋初值,按下标从大到小的次序输出数组a中的n个元素的值。
8.int SC(int a , int b , int c) {
if (a>b) a = b;
if (a>c) a = c;
return a;
}
功能:
求出a,b,c三个数中的最小值并返回。
9.int SC(int a , int b , int c) {
if (a<b) a = b;
if (a<c) a = c;
return a;
}
功能:
求出a,b,c三个数中的最大值并返回。
10.# include <iostream.h>
template <class TT>
TT WG(TT a , TT b) {
if (a>b) return 1;
else if (a == b) return 0;
else return -1;
}
功能:
模板函数,比较两个变量a和b的大小,若a>b则返回1,若a=b则返回0,若a<b则返回-1.
11.// struct Worker {
// char name[15]; // 姓名
// int age; // 年龄
// float pay; // 工资
// };
istream & operator>>(istream & istr , Worker & x) {
cout <<”请输入一个职工记录:姓名、年龄、工资”<<endl;
istr >>x.name>>x.age>>x.pay;
return istr;
}
功能:
重载提取操作符,用于从输入流中输入一个Worker类型的记录到引用参数x中。
12.Struct StrNode {
char name[15]; // 字符串域
StrNode * next; // 指针域
};
void QB(StrNode * & f , int n) {
if (n == 0) { f = NULL ; return ; }
f = new StrNode;
cin >>f->name;
StrNode * p = f;
while ( --n ) {
p = p->next = new StrNode;
cin >>p->name;
}
p->next = NULL;
}
功能:
建立一个具有n个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针用引用变量f带回。
13.
功能:
建立一个具有n个结点的链表,每个结点的实数值由键盘输入,链表的表头指针由引用变量f带回。
14. 假定结构类型Dnode中的data域为结点值域,next域为结点指针域。
DNode* QB(int n)
{
if(n==0) {return NULL;}
DNode* f=new DNode;
cin>>f->data;
DNode* p=f;
while(--n) {
p=p->next=new DNode;
cin>>p->data;
}
p->next=NULL;
return f;
}
功能:
建立一个具有n个结点的链表,每个结点的data域的值由键盘输入,返回链表的表头指针f。
15.double FI(double n) {
// n为大于等于1的整数
double x , y = 0;
do {
cin >> x;
n--; y += x;
} while (n>0);
return y;
}
功能:
求出从键盘上输入的n个实数之和并返回。
16.int LK(int a[] , int n) {
float s = 0; int i;
for (i=0; i<n; i++)
s += a[i];
s /= n;
int m = 0;
for (i=0; i<n; i++)
if (a[i]<s) m++;
return m;
}
功能:
求出数组a的n 个元素中小于平均值的元素个数并返回。
17.# include <iostream.h>
template <class Type>
Type WD(Type a[] , int n) {
Type m = a[0];
for (int i=1; i<n; i++)
if (a[i]>m) m = a[i];
return m;
}
功能:
模板函数,从数组a的n个元素中求出最大值并返回。
18.#include<iomanip.h>
#include<fstream.h>
struct student {char name[10]; int age;}; //学生记录类型
void JC(char* fname, int n)
{
ofstream fout(fname, ios::out | ios::binary);
student x;
for(int i=0;i<n;i++) {
cin>>x.name>>x.age;
fout.write((char*)&x, sizeof(x));
}
fout.close();
}
功能:
从键盘向二进制文件fname输入的n个学生的信息(name域值和age域值)。
19.# include <iomanip.h>
# include <fstream.h>
void JD(char * fname)
// 可把以fname所指字符串作为文件标识符的文件称为fname
// 文件,假定该文件保存着一批整数。
{
ifstream fin(fname , ios::in | ios::nocreate | ios::binary);
int x , s = 0 , n = 0;
while (fin.read((char * ) & x , sizeof(x))) {
s += x; n++;
}
cout <<n<<’ ’<<s<<’ ’<<float(s)/n<<endl;
fin.close( );
}
功能:
从二进制文件fname中输入所有整数,计算并显示出所有整数的个数、总和与平均值。
20.# include <iomanip.h>
# include <fstream.h>
# include <string.h>
void JA(char * fname)
// 可把以fname所指字符串作为文件标识符的文件称为fname文件
{
ofstream fout(fname);
char a[20]; cin >>a;
while (strcmp(a , “end”) != 0) {
fout <<a<<endl;
cin >>a;
}
fout.clase( );
}
功能:
从键盘上向文件fname写入一批字符串,以“end”作为结束输入的标志。
21.假定以fname所指字符串为文件名的文件中保存着一批字符串,每个字符串的长度均小于20。
#include<iomanip.h>
#include<fstream.h>
#include<string.h>
int JB(char* fname,char* key)
{
ifstream fin(fname);
char a[20];
int i=0;
while(fin>>a)
if(strcmp(a,key)==0) i++;
fin.close();
return i;
}
功能:
求出字符串文件fname中保存的所有字符串中与给定字符串key相等的字符串个数并返回。
22.#include<iomanip.h>
#include<fstream.h>
void JB(char* fname)
//可把以fname所指字符串作为文件标识符的文件称为fname文件,
//假定该文件中保存着一批字符串,每个字符串的长度均小于20。
{
ifstream fin(fname);
char a[20];
int i=0;
while(fin>>a) {
cout<<a<<endl;
i++;
}
fin.close();
cout<<"i="<<i<<endl;
}
功能:
从文件fname中依次读取每个字符串并输出到屏幕上显示出来,同时统计并显示出文件中的字符串个数。
23.
功能:
求出数组a中n个元素的最大值元素,返回该元素的地址。
24.
功能:
遍历f单链表,即从表头结点开始依次输出f单链表中每个结点的值。
25.
功能:
向二进制文件fname写入由键盘输入的n个整数。
26. double SF(double x, int n) {
//n为大于等于0的整数
double p=1,s=1;
for(int i=1;i<=n;i++) {
p*=x;
s+=p/(i+1);
}
return s;
}
功能:
计算的值并返回。
27. float FH() {
float x,y=0,n=0;
cin>>x;
while(x!=-1) {
n++; y+=x;
cin>>x;
}
if(n==0) return y; else return y/n;
}
功能:
求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志。
28. #include<iostream.h>
void WA(int a[], int n) {
for(int i=0;i<n-1;i++) {
int k=i;
for(int j=i+1;j<n;j++)
if(a[j]<a[k]) k=j;
int x=a[i]; a[i]=a[k]; a[k]=x;
}
}
功能:
采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。
版权声明
声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益
请联系本站我们将配合处理!