C++学习笔记摘录九.docx

上传人:b****1 文档编号:22816725 上传时间:2023-04-28 格式:DOCX 页数:20 大小:236.22KB
下载 相关 举报
C++学习笔记摘录九.docx_第1页
第1页 / 共20页
C++学习笔记摘录九.docx_第2页
第2页 / 共20页
C++学习笔记摘录九.docx_第3页
第3页 / 共20页
C++学习笔记摘录九.docx_第4页
第4页 / 共20页
C++学习笔记摘录九.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

C++学习笔记摘录九.docx

《C++学习笔记摘录九.docx》由会员分享,可在线阅读,更多相关《C++学习笔记摘录九.docx(20页珍藏版)》请在冰豆网上搜索。

C++学习笔记摘录九.docx

C++学习笔记摘录九

C++学习笔记

SkySeraph2010-7-31阅读整理

摘自:

1:

#include

usingnamespacestd;

boolFind(int[],int);

voidmain()

{

 inta[]={1,2,3,4,5,6,7,8,9};

 boolcheck=Find(a,9);

 if(check==true)

 {

  cout<<"数组a的元素是按照从小到大排列的\n";

 }

 else

 {

  cout<<"数组a的元素不是按照从小到大排列的\n";

 }

}

boolFind(inta[],intn)

{

 for(inti=1;i

 {

  if(a[i]<=a[i-1])//由于i已经是1第一次循环中,所以i就是2后面的i-1就是1所以这里条件成立返回假。

并且如果两个元素相等也会返回假,而只有大于的时候才会返回下面的真

  {

   returnfalse;

  }

 }

 returntrue;

}//这个就是判断数组元素是否按照从小到大的顺序排列

2:

#include

usingnamespacestd;

boolCheckArray(int[],int);

intFindA(int,int[],int);

intFindB(int,int[],int);

voidmain()

{

 inta[]={1,2,3,4,5,6,7,8,9};

 boolcheck=CheckArray(a,9);

 if(check==true)//判断是否是从小到大排序

 {

  cout<<"数组a的元素是按照从小到大排列的\n";

  intchecka;

  cout<<"请输入你要查找的元素:

";

  cin>>checka;

  intcheckb=FindA(checka,a,9);

  if(checkb==9)

  {

   cout<<"对不起,没有查找到你输入的元素位置。

\n";

  }

  else

  {

   cout<

"<

  }

 }

 else

 {

  cout<<"数组a的元素不是按照从小到大排列的\n";

  intchecka;

  cout<<"请输入你要查找的元素:

";

  cin>>checka;

  intcheckb=FindA(checka,a,9);

  if(checkb==9)

  {

   cout<<"对不起,没有查找到你输入的元素位置。

\n";

  }

  else

  {

   cout<

"<

  }

 }

}

boolCheckArray(inta[],intn)//判断数组排序

{

 for(inti=1;i

 {

  if(a[i]<=a[i-1])

  {

   returnfalse;

  }

 }

 returntrue;

}

intFindA(intm,inta[],intn)//递增算法

{

 for(inti=0;i

 {

  if(a[i]==m)

  {

   returni;

  }

 }

 returnn;

}

intFindB(intm,inta[],intn)//二分算法

{

 into=0,h=n-1,i;

 while(o<=h)

 {

  i=(o+h)/2;

  if(a[i]==m)

  {

   returni;

  }

  if(a[i]

  {

   o=i+1;

  }

  else

  {

   h=i-1;

  }

 }

 returnn;

}//这个例子是使用前一节的判断数组并且和递增算法和二分算法一起配合使用的方式!

3:

#include

usingnamespacestd;

classGet

{

public:

 boolCheckArray(int[],int);

 intFindA(int,int[],int);

 intFindB(int,int[],int);

};

voidmain()

{

 Getone;//定义get类的对象one

 inta[]={1,2,3,4,5,6,7,8,9};

 boolcheck=one.CheckArray(a,9);//要调用函数必须通过对象one来调用下同。

 if(check==true)//判断是否是从小到大排序

 {

  cout<<"数组a的元素是按照从小到大排列的\n";

  intchecka;

  cout<<"请输入你要查找的元素:

";

  cin>>checka;

  intcheckb=one.FindA(checka,a,9);

  if(checkb==9)

  {

   cout<<"对不起,没有查找到你输入的元素位置。

\n";

  }

  else

  {

   cout<

"<

  }

 }

 else

 {

  cout<<"数组a的元素不是按照从小到大排列的\n";

  intchecka;

  cout<<"请输入你要查找的元素:

";

  cin>>checka;

  intcheckb=one.FindA(checka,a,9);

  if(checkb==9)

  {

   cout<<"对不起,没有查找到你输入的元素位置。

\n";

  }

  else

  {

   cout<

"<

  }

 }

}

boolGet:

:

CheckArray(inta[],intn)//Get:

:

为成员限定符,指定Get类中的函数声明下同

{

 for(inti=1;i

 {

  if(a[i]<=a[i-1])

  {

   returnfalse;

  }

 }

 returntrue;

}

intGet:

:

FindA(intm,inta[],intn)//递增算法

{

 for(inti=0;i

 {

  if(a[i]==m)

  {

   returni;

  }

 }

 returnn;

}

intGet:

:

FindB(intm,inta[],intn)//二分算法

{

 into=0,h=n-1,i;

 while(o<=h)

 {

  i=(o+h)/2;

  if(a[i]==m)

  {

   returni;

  }

  if(a[i]

  {

   o=i+1;

  }

  else

  {

   h=i-1;

  }

 }

 returnn;

}//这就是使用对象的方式操作

4:

#include

usingnamespacestd;

classGet

{

public:

 inta[5];

};

voidmain()

{

 Getone[5];//定义一个数组对象

 inti;

 for(i=0;i<5;i++)

 {

  cin>>one[i].a[i];//接受用户的输入 one[i]也是数组并且也是从0开始依次排序!

 }

 for(i=0;i<5;i++)

 {

  cout<<"one["<

";//输出第几个元素

  cout<

 }

 system("pause");

}

5:

#include

usingnamespacestd;

classArea

{

public:

 Area(intl,intw)

 {

  lenght=l;

  wight=w;

  cout<<"构造函数运行中...长:

"<

"<

 }

 ~Area()

 {

  cout<<"析构函数运行中...长:

"<

"<

 }

 intGet()

 {

  returnwight*lenght;

 }

 voidSet(intl,intw)

 {

  lenght=l;

  wight=w;

 }

private:

 intwight,lenght;

};

voidmain()

{

 AreaOne[4]={Area(10,10),Area(20,20),Area(30,30),Area(40,40)};//利用构造函数来初始化对象。

area有4个对象,对他们每个对象的值进行初始化!

 cout<

我们可以看到有4个构造和4个析构那是因为我们一共创建了4个对象的原因

 One[0].Set(30,24);//可以调用set函数改变他们的参数值

 cout<

 cout<

 cout<

 cout<

}

6:

#include

usingnamespacestd;

classArea

{

public:

 Area(intl,intw)

 {

  lenght=l;

  wight=w;

  cout<<"构造函数运行中...长:

"<

"<

 }

 ~Area()

 {

  cout<<"析构函数运行中...长:

"<

"<

 }

 intGet()

 {

  returnwight*lenght;

 }

 voidSet(intl,intw)

 {

  lenght=l;

  wight=w;

 }

private:

 intwight,lenght;

};

voidmain()

{

 for(inti=0;i<10000;i++)

 {

  Area*One=newArea(3,4*i);//由于椎中内存比栈大。

所以使用栈来消耗内存空间是很不明智的。

我们可以使用堆来创建。

  cout<<"One["<

  cout<Get()<

  deleteOne;//如果不删除,你在任务管理器中会发现内存飙升。

 }

}//这个程序演示了如果我们无法确定对象的数目或者对象很多的情况下我们可以把她放到椎中!

7:

#include

usingnamespacestd;

classArea

{

public:

 Area()

 {

  lenght=0;

  wight=0;

  cout<<"不带参数的构造函数...\n";

 }

 Area(intl,intw)

 {

  lenght=l;

  wight=w;

  cout<<"构造函数运行中...长:

"<

"<

 }

 ~Area()

 {

  cout<<"析构函数运行中...长:

"<

"<

 }

 intGet()

 {

  returnwight*lenght;

 }

 voidSet(intl,intw)

 {

  lenght=l;

  wight=w;

 }

private:

 intwight,lenght;

};

voidmain()

{

 for(inti=0;i<10000;i++)

 {

  Area*One=newArea(3,4*i);//由于椎中内存比栈大。

所以使用栈来消耗内存空间是很不明智的。

我们可以使用堆来创建。

  cout<<"One["<

  cout<Get()<

  deleteOne;//如果不删除,你在任务管理器中会发现内存飙升。

但是这里也有个缺陷。

因为这里的指针只能在FOR循环中作用,如果在FOR外面,那么着10000个对象中前面9999个对象我们都无法访问,如果要访问必须采用以下方法1-2

 }

/* Area*One=newArea[10000];1-2如这里。

 for(inti=0;i<10000;i++)

 {

  One[i].Set(3,5*i);

 }

 cout<Get()<

 cout<Get()的方法用什么可以使用one+1的方式来获取下一个元素如图堆中数组对象*/

 delete[]One;使用[]one就可以删除数组名为one的所有元素对象

}//这个程序演示了如果我们无法确定对象的数目或者对象很多的情况下我们可以把她放到椎中!

8:

#include

usingnamespacestd;

voidmain()

{

 enumday{mon,tur,wen,thu,fri,sat,sun};//enum是枚举常量的关键字表示day为枚举常量后面是他们的初始化。

他们的值夜是从0开始到6结束

 doubletem[sun+1]={82.5,96.2,44.6,45.7,22.1,77.2,75.9};//sun=66+1=7所以他有7个元素。

 intday;//定义一个循环变量变量day

 for(day=0;day<=sun;day++)

 {

  cout<<"星期"<

"<

 }

}//定义枚举常量的来替代枯燥的数字变量能够让程序员很形象的理解该变量的作用,便以以后的调试。

9:

#include

usingnamespacestd;

voidmain()

{

 inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};//这个是多维数组的定义和初始化。

中间的三个大括号编译器会自动忽略,你加不加都一样,只是为了方便演示而已!

,3X4=12所以要定义12个元素。

也可以看做3行4列。

 for(inti=0;i<3;i++)

 {

  for(intj=0;j<4;j++)

  {

   cout<<"a["<

"<

  }

 }

}//二维数组的定义演示,这个排行元素的顺序也就是在内存中的排放元素的循序。

10:

#include

usingnamespacestd;

voidmain()

{

 chara[]={'p','r','o','g','r','a','m','\0'};//\0是字符串结束标志。

他一般都在字符串最后。

用以提示结束。

这样,我们可以不用在做for循环就可以使他输出完毕!

 cout<

}//这个就是字符串的输出与定义

11:

#include

usingnamespacestd;

voidmain()

{

 charch[5][5]={{'','','*','',''},{'','*','*','*',''},{'*','*','*','*','*'},{'','*','*','*',''},{'','','*','',''}};//定义二维字符串数组。

输出一个图形

 inti,j;

 for(i=0;i<5;i++)

 {

  for(j=0;j<5;j++)

  {

   cout<

  }

  cout<<"\n";//换行。

 }

}

12:

#include

usingnamespacestd;

voidmain()

{

 chara[12]={"HelloWorld"};//我们知道字符数组的定义和初始化太麻烦,所以要使用字符串的形式来定义这样就简单多了

 cout<

}

13:

#include

usingnamespacestd;

voidmain()

{

 chara[12];

 cout<<"请输入11个或者11个以内的字符:

";

 cin.get(a,12);//字符在输入的时候比如直接使用cin>>来接受那么如果你输入的中间有空格那么就不会输出后面的部分那是因为他默认吧空格当作字符结束标志。

而你输入过长,会引起数组越界那么程序就会崩溃,所以使用cin.get来限制他一个参数是接受数组令一个是用来限制数组的长度还有一种叫gets()他可以不管你是否有空格都强制为连接一起的但是他没有限制长度功能。

 cout<<"你输入的字符为:

"<

从而不会报错

}//这就是字符串输入的一些问题

14:

#include

usingnamespacestd;

voidmain()

{

 chara[20]={"MyNameis"};

 charb[]={"jack"};

 cout<

一般在实际应用中都使用strcat_s相信你是用vc++2008的已经看出来了!

 cout<

}

15:

#include

usingnamespacestd;

voidmain()

{

 chara[20]={"MyNameis"};

 charb[]={"jack"};

 strcpy_s(a,"Mick");//这个函数的作用是拷贝,也就是把她的第二个参数拷贝到第一个参数中然后在返回第一个参数的值,需要注意的是他也需要足够的空间还有一点就是第一个参数必须是数组第二个参数可以是数组或者字符串。

 cout<

而且也是不安全的。

所以我改动了下

}

16:

#include

usingnamespacestd;

voidmain()

{

 chara[20]={"MyNameis"};

 charb[]={"jack"};

 cout<

}

17:

#include

usingnamespacestd;

voidmain()

{

 chara[]={"MyNameis"};

 _strupr_s(a);//这个函数的意思是把小写的字符全部转换为大写

 cout<

}

18:

#include

usingnamespacestd;

voidmain()

{

 chara[]={"MYNAMEIS"};

 _strlwr_s(a);//这个函数的意思是把大写的字符转换为小写

 cout<

}

19:

#include

usingnamespacestd;

voidmain()

{

 chara[]={"MYNAMEIS"};

 strlen(a);//这个函数的意思是统计数组A中的元素的长度注意的是这个函数不包含\0的字符结束标志,我们以前输入的helloworld定义的是12但是输入的是11因为他最后一个是要给他留一个字符结束标志的。

 cout<

 system("pause");//这个是按下任意键结束的意思如果你不想用ctrl+f5的话可以使用这种形式,但是我还是觉得这个没ctrl+f5安逸。

}

20:

#include

usingnamespacestd;

voidmain()

{

 constintn=10;

 inta[n][n];

 inti,j;

 for(i=0;i

 {

  for(j=0;j<=i;j++)

  {

   if(j==0||j==i)//如果他的列是0 或者他和行相等那么让他输出1。

   {

    a[i][j]=1;//所以输出1

   }

   else

   {

    a[i][j]=a[i-1][j-1]+a[i-1][j];//这里是关键。

我们从图中可以看到三角形的下面的一个数就是他左上角和上面的那个数字相加的和。

这里的i-1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1