资讯详情

数据结构编程算法(四)

提示:文章完成后,目录可以自动生成,如何生成可以参考右边的帮助文档

文章目录

  • 前言
  • 一、问题
  • 二、代码
    • 1-5
    • 6 十
  • 总结


前言

第四篇

一、问题

1.随机数 2.矩阵的相关操作 3.字符串比大小 4.矩阵转移 5.时间比较 6.结构和撤销 有关C 书中练习十的几个问题

二、代码

1-5

代码如下:

1.#include<iostream> #include<cstdlib> #include<ctime> using namespace std; int main() { 
          srand(time(0));  int k,i;  do  { 
           k=rand()%20;   cout<<k<<endl;   cout<<"如果结果不满意,请输入1,否则输入0结束:";   cin>>i;  }while(i);  return 0; } 2.#include<iostream> #include<cstdlib> #include<ctime> using namespace std; int main() { 
          srand(time(0));  int n=rand()%21,i,j;  while(n<5)   n=rand()%21;
	int**A;
	A=new int*[n];
	for(i=0;i<n;i++)
		A[i]=new int[n];
	cout<<"该三对角阵行数与列数为:"<<n<<'\n'<<"请您输入数据:";
	for(i=0;i<n;i++)
	{ 
        
		for(j=0;j<n;j++)
		{ 
        
			if(j>i-2&&j<i+2)
				cin>>A[i][j];
			else A[i][j]=rand();
		}
	}
	cout<<"原矩阵为:"<<endl;
	for(i=0;i<n;i++)
	{ 
        
		for(j=0;j<n;j++)
		{ 
        
			cout<<A[i][j]<<'\t';
		}
		cout<<endl;
	}
	int*b=new int[3*20-2];
	int k=0;
	for(i=0;i<n;i++)
	{ 
        
		for(j=0;j<n;j++)
		{ 
        	
			if(j>i-2&&j<i+2)
			{ 
        
				b[k]=A[i][j];
				k++;
			}
		}
	}
	cout<<"请您输入想要查找的数据行数与列数:";
	cin>>i>>j;
	cout<<'\n'<<"数据为:"<<b[i*2+j]<<endl;
	int **B;
	B=new int*[n];
	for(i=0;i<n;i++)
		B[i]=new int[n];
	for(i=0;i<n;i++)
	{ 
        
		for(j=0;j<n;j++)
		{ 
        
			if(j>i-2&&j<i+2)
				B[i][j]=b[2*i+j];
			else B[i][j]=0;
		}
	}
	cout<<"还原矩阵为:"<<endl;
	for(i=0;i<n;i++)
	{ 
        
		for(j=0;j<n;j++)
		{ 
        
			cout<<B[i][j]<<'\t';
		}
		cout<<endl;
	}
	delete []b;
	for(i=0;i<n;i++)
	{ 
        
		delete []A[i];
		delete []B[i];
	}
	delete []A;
	delete []B;
	return 0;
}
3.#include<iostream>
#include<string.h>
using namespace std;
int main()
{ 
        
	int i;
	i=strcmp("boy","boy0");
	cout<<i<<endl;
	return 0;
}
4.#include<iostream>
using namespace std;
void transpose(int a[][4])
{ 
        
	for (int i=3;i>=0;i--)
		for(int j=i-1;j>=0;j--)
		{ 
         int t=a[i][j]; a[i][j]=a[j][i];a[j][i]=t;}
}
int main()
{ 
        
	int a[4][4]={ 
        { 
        1,2,3,4},{ 
        5,6,7,8},{ 
        9,10,11,12},{ 
        13,14,15,16}};
	int i,j;
	cout<<"转之前的a"<<endl;
	for(i=0;i<4;i++)
	{ 
        
		for(j=0;j<4;j++)
			cout<<a[i][j]<<'\t';
		cout<<'\n';
	}
	transpose(a);
	cout<<"转之hou的a"<<endl;
	for(i=0;i<4;i++)
	{ 
        
		for(j=0;j<4;j++)
			cout<<a[i][j]<<'\t';
		cout<<'\n';
	}
	return 0;
}
5.#include <iostream>
#include<cstdlib>
#include<ctime>
#include<vector>
#include<list>
#include<algorithm>
using namespace std;
#define N 1000000
int main()
{ 
        
	srand(time(0));
	vector<int> vi0;
	for(int i=0;i<N;i++)
		vi0.push_back(rand());
	vector<int> vi;
	list<int> li;
	copy(vi0.begin(),vi0.end(),back_inserter(vi));
	copy(vi0.begin(),vi0.end(),back_inserter(li));
	clock_t start1=clock();
	sort(vi.begin(),vi.end());
	clock_t end1=clock();
	cout<<(double)(end1-start1)/CLOCKS_PER_SEC<<endl;
	clock_t start2=clock();
	li.sort();
	clock_t end2=clock();
	cout<<(double)(end2-start2)/CLOCKS_PER_SEC<<endl;
	copy(vi0.begin(),vi0.end(),back_inserter(li));
	clock_t start3=clock();
	copy(li.begin(),li.end(),back_inserter(vi));
	sort(vi.begin(),vi.end());
    copy(vi.begin(),vi.end(),back_inserter(li));
	clock_t end3=clock();
	cout<<(double)(end3-start3)/CLOCKS_PER_SEC<<endl;
	system("pause");
	return 0;
}

6+十

代码如下:

6.#include<iostream>
using namespace std;
class A
{ 
        
	int a;
public:
	A(int a):a(a) { 
        cout<<"A::\t"<<a<<endl;}
	~A(){ 
        cout<<a<<'\t'<<"delete A\n";}
};
class B
{ 
        
	int b;
public:
	B(int b):b(b) { 
        cout<<"B::\t"<<b<<endl;}
	~B(){ 
        cout<<b<<'\t'<<"delete B\n";}
};
class C
{ 
        
	int c;
public:
	C(int c):c(c) { 
        cout<<"C::\t"<<c<<endl;}
	~C(){ 
        cout<<c<<'\t'<<"delete C\n";}
};
class D:public A,public C,public B
{ 
        
	A a1,a2;
	B b1,b2;
	C c1,c2;
	int x,y,z;
public:
	D(int a,int b,int c,int d,int e,int f,int g,int h,int i,int j,int k,int l):B(b),C(c),A(a),b1(d),c2(e),a2(f),a1(g),c1(h),b2(i),y(j),z(k),x(l) { 
        }
};
int main()
{ 
        
	D(1,2,3,4,5,6,7,8,9,10,11,12);
	return 0;
}
10  改错:
1.A”:对重载函数的调用不明确
2.Default constructor called.
Constructor called.
0,0
6,8
6,8
Destructor called.
0,0
Destructor called.
3.第一种:0,0,Constructor called.
6,8,Constructor called.
6,8,Copy constructor called.
0,0,Constructor called.
6,8,Copy constructor called.
6,8,
3,7,Copy constructor called.
3,7,Destructor called.
3,7,Destructor called.
3,7,6,8,
3,7,Destructor called.
6,8,Destructor called.
6,8,Destructor called.
0,0,Destructor called
第二种:0,0,Constructor called.
6,8,Constructor called.
6,8,Copy constructor called.
0,0,Constructor called.
6,8,
3,7,3,7,
3,7,Destructor called.
3,7,Destructor called.
6,8,Destructor called.
0,0,Destructor called.
4.
0,0,Constructor called.
6,8,Constructor called.
6,8,
3,7,
3,7,Destructor called.
3,7,Destructor called.
6,8,Destructor called.
0,0,Destructor called.
5.
(3,0)Construct
(4,0)Construct
(0,0)Construct
(5,6)Construct
(0,0)Construct
(3,0)
(4,0)
(0,0)
(5,6)
(0,0)
Exit main()
(0,0)Destruct
(5,6)Destruct
(0,0)Destruct
(4,0)Destruct
(3,0)Destruct
6.
8,0024F080
9,0024F084
7.
1,2,3
4,5,6,7,8
Different! copied!
1,2,3
1,2,3
Different! copied!
Different! copied!
1,2,3
1,2,3
10  选择:
1.C  B
2.D
3.D
4.D
5.B
6.C
7.B
8.A
9.B
10.C
11.A
12.B
13.A
14.C
10 编程:
1.#include<iostream>
using namespace std;
class Complex
{ 
        
private:
	int SHI;
	int XV;
public:
	void setdata(int s,int x)
	{ 
        
		SHI=s;
		XV=x;
	}
	int getshi()
	{ 
        
		return SHI;
	}
	<

标签: 37zkh矩形电连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台