zoukankan      html  css  js  c++  java
  • 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就相当于 ,当然也可以按要求的类型输出,像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;
         }
      
    • 所想:题目要认真看,看不懂就猜,猜着猜着就出来了(至今没搞懂这多项式的加法还能这么算,但题目就是这个意思)。

  • 相关阅读:
    洛谷P1446/BZOJ1004 Cards Burnside引理+01背包
    HDU-4676 Sum Of Gcd 莫队+欧拉函数
    HDU-5378 概率DP
    HDU-5628 Clarke and math-狄利克雷卷积+快速幂
    容斥原理+补集转化+MinMax容斥
    2019牛客暑期多校训练营(第九场)A.The power of Fibonacci
    斐波那契额数列的性质
    莫比乌斯反演/线性筛/积性函数/杜教筛/min25筛 学习笔记
    广义Fibonacci数列找循环节 学习笔记
    苗条的生成树 Slim Span--洛谷
  • 原文地址:https://www.cnblogs.com/mingyueanyao/p/5184171.html
Copyright © 2011-2022 走看看