C++视频课程小结(1)
C++远征之起航篇
章节介绍:
每章小结:
-
第一章:C++诞生于贝尔实验室,C++包含C语言。
-
第二章:介绍了IDE环境(虽然没怎么懂),还推荐使用visual stdio 2010 旗舰版(姑且下了安装包,但还是在用devC++)。
-
第三章:见到了一些新的东西(原来看不懂一些同学的代码,原来就是C++啊):
#include<stdlib.h> #include<iostream> using namespace std; int main() { cout<<"Hello C++"<<endl; system("pause"); return 0; }
-
第四章:一看就知道是重点章节啊。
-
C++的新特性:1、新的数据类型:布尔型(bool),也叫逻辑类型,优点是会让代码更简洁,更易懂。2、新的初始化方法:直接初始化,也就是
int x(1024);
这样,至于好处会在接下来的课程中介绍,姑且先记着。3、随用随定义:这个好处就不用说了,for(int i;;)
也是合法的(用c的时候老是忘记定义i)。 -
C++的输入输出方式:cin和cout,也是很好记。使用除了要声明
#include<iostream>
,还要有using namespce std;
(因为没有.h吗,像要用system("pause");
,直接#include<stdlib.h>
就好)。输入一个量存到变量x里,只要cin>>x;
,不需要再强调量的类型(话说定义x的时候还是要考虑类型不是)。输出也是直接cout<<x<<endl;
,endl
就相当于\n
,当然也可以按要求的类型输出,像cout<<det<<x<<endl;
就是按十进制输出。 -
C++之namespace:感觉是个很重要的东西,这样调用不同函数里相同名称的东西也没问题。定义函数的时候加上
namespace 空间名{}
就好。使用的时候可以先声明说using namespace 空间名;
,或者用到的时候加上空间名::
。像输入输出没写using namespace std;
的话,就要写成std::cin>>x;
,std::cout<<x<<std::endl;
。
练习:
-
C++
#include<stdlib.h> #include<iostream> using namespace std; int main() { int x,y; cin>>x>>y; cout<<x+y<<endl; system("pause"); return 0; }
-
C
题目:
思路:题目看了半天也没怎么懂,只知道是多项式的加法运算。还有输入有两行,每行输入的第一个数决定了每行要输入的组数。一组有两个数,分别表示多项式每项的次数和系数(反正就是要对应相加的意思,从样例大概来看是这样)。想到这里我又想到用数组来解决:先定义一个足够长的数组(题目是0~1000,那就1001),并初始化为0,储存第一行时把次数和数组名对应起来,再定义一个数组一样存第二行,这样就可以把对应的数相加。考虑到输出,还要记录一下最高的次数是多少(我认为是从最高次数按顺序倒输,样例是这样的,看不懂就猜。。。)。还有就是小数的问题要注意数据类型,输出也是要控制%.1lf。再有就是输出的格式,注意空格。第一次尝试样例是过了,但交上去只对了两个。重新看题目注意到了要非零,所以也不一定是按顺序倒输,还要有一个判断才行。最终的代码长这样:#include<stdio.h> int main() { int k,i,j=0,x,max=0; double a[1001],b[1001]; scanf("%d",&k); for(i=0;i<k;i++) { scanf("%d",&x); if(x>max)max=x; scanf("%lf",&a[x]); } //对应输入第一行数据,max记录第一行最高次数。 scanf("%d",&k); for(i=0;i<k;i++) { scanf("%d",&x); if(x>max)max=x; scanf("%lf",&b[x]); } //对应输入第二行数据,max记录两行中最高的次数。 for(i=0;i<max+1;i++) { b[i]=b[i]+a[i]; if(b[i]!=0)j++; } //利用max对应次数相加,j记录非零个数。 printf("%d",j); //按要求输出结果中的非零个数。 for(i=max;i>=0;i--) { if(b[i]!=0) printf(" %d %.1lf",i,b[i]); } //判断并从最高次数开始输出结果。 return 0; }
-
所想:题目要认真看,看不懂就猜,猜着猜着就出来了(至今没搞懂这多项式的加法还能这么算,但题目就是这个意思)。