用vc++编写一个程序

用vc++编写一个程序,第1张

struct NumRowCol //定义1个结构体存放最大最小值及其所在行列号

{

public:

int i

int j

int Number

}

定义1个方法(c++一般用指针的指针存储二维数组)

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()

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11193458.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存