{
public:
int i
int j
int Number
}
void GetDataRowCol(int **p,NumRowCol& Max,NumRowCol& Min,int Row,int Col)
{
Max.i=p[0][0]
Max.j=0
Max.Number=0
Min.i=p[0][0]
Min.j=0
Min.Number=0
//Row,Col是二维数组行数和列数
for(i=0i<Rowi++)
{
for(j=0j<Colj++)
if(p[i][j]<Min.Number)
{
Min.Number=p[i][j]Min.i=iMin.j=j
}
if(p[i][j]>Max.Number)
{
Max.Number=p[i][j]lMax.i=iMax.j=j
}
}
}
//专门写一个函数来求二维数组中最大值、最小值,以及最大值、最小值所在行列号,函数第一个参数代表二维数组(一般C++用指针的指针来存储二维数组,后面有举例说明,),第二和第三个参数都是NumRowCol 类型引用(引用的好处就不必说明了,你懂的),前面定义了一个NumRowCol 结构体,专门用来存储最大值、最小值,以及它们在二维数组中的行列号。
//c++定义一个动态二维数组的举例说明:
int m=10
int n=10
int **p=new int[m][n]
p[0][0]就是二维数组中第1行第1列元素数值(不是指针),依次类推p[i][j]就是数组中第i+1行,j+1列元素数值,当然i,j不能超出数组索引范围。
#ifndef SeqList_H#define SeqList_Hconst int MaxSize=10class SeqList{public:SeqList(){length=0}SeqList(int a[],int n)~SeqList(){}void Tnsert(int i,int x)int Delete(int i)int Locate(int x)void PrintList()private:int data[MaxSize]int length}#endif
#include<iostream>using namespace std#include "SeqList.h"SeqList::SeqList(int a[],int n){if(n>MaxSize)throw"参数非法"for(int i=0i<ni++)data[i]=a[i]length=n}void SeqList::Insert(int i,int x){if(length>=MaxSize)throw"上溢"if(i<1||i>length+1)throw"位置非法"for(int j=lengthj>=ij--)data[j]=data[j-1]data[i-1]=xlength++}int SeqList::Delete(int i){if(length=0)throw"下溢"if(i<1||i>length)throw"位置非法"int x=data[i-1]for(int j=ij<lengthj++)data[j-1]=data[j]length--return x}int SeqList::Locate(int x){for(int i=0i<lengthi++)if(data[i]==x) return i+1return 0}void SeqList::PrintList(){for(int i=0i<lengthi++)cout<<data[i]<<""cout<<endl
}
#include<iostream>using namespace std#include "SeqList.h"void main(){int r[5]={1,2,3,4,5}SeqList L(r,5)cout<<"执行插入 *** 作前数据为:"<<endlL.PrintList()try{L.Insert(2,3)}catch (char *s){cout<<s<<endl}cout<<"执行插入 *** 作后数据为:"<<endlL.PrintList()cout<<"值为3的元素位置为:"cout<<L.Locate(3)<<endlcout<<"执行删除第一个元素 *** 作,删除前数据为:"<<endlL.PrintList()try{L.Delete(1)}catch(char *s){cout<<s<<endl}cout<<"删除后数据为:"<<endlL.PrintList()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)