云霄一中noip吧 关注:3贴子:32
  • 14回复贴,共1

【C++】头文件及函数讲解

只看楼主收藏回复

先头文件


来自iPhone客户端1楼2015-11-22 12:19回复
    #include<>,在C++中头文件必须这么写,头文件名称写在括号中,并且写完需要换行加一句using namespace std;


    来自iPhone客户端2楼2015-11-22 12:57
    回复
      常用头文件:
      #include<iostream>
      #include<cstdio>
      #include<cstring>
      #include<cmath>
      #include<algorithm>
      各自有各自的用途,且还有其余不同头文件
      iostream为标准输入输出流
      cstdio为格式化输入输出
      cmath为数学库
      cstring为字符型
      algorithm则有其它用途
      相比之下iostream比起cstdio在输入输出时更方便一点,但是如果是重定向则一定需要使用cstdio
      cmath提供min取最小、max取最大、floor向下取整、ceil向上取整等不同的函数
      cstring在使用char、string等各种字符型数据类型时需要,且包含数组初始化memset函数
      algorithm包含内置排序sort等各种函数


      来自iPhone客户端3楼2015-11-22 13:03
      回复
        using namespace std;这句是强制性要求,写在所有头文件之后,且必须有分号


        来自iPhone客户端4楼2015-11-22 13:04
        收起回复
          函数有很多种,可以是头文件里包含的,可以是默认的,也可以是自定义的


          来自iPhone客户端5楼2015-11-22 13:06
          回复
            C++程序的入口都在main函数,main只能为以下两种形式:
            int main()
            main()
            main函数前面如果有数据类型,则一定是int,不能是其它类型,竞赛中要求main函数一定要返回int类型
            main后面的括号中可以写void,也可以写变量定义


            来自iPhone客户端6楼2015-11-22 13:08
            回复
              在默认和头文件的库函数中没有重名的函数的话,你就可以自定义一个函数。假设需要一个有一个变量的dp函数,那在全局中写int dp(int);然后再换行写int dp(int x)之后就可以像main一样操作了。
              自定义函数一定要写两遍定义
              第一遍定义不要漏了分号


              来自iPhone客户端7楼2015-11-22 13:25
              回复
                函数结束时一定要写return 0;一则方便检查程序是否正常退出,二则是竞赛要求主函数一定要返回0。
                Dev-C++会为C++程序自动补全return 0;但是竞赛的评测系统不会,所以请一定记得写return 0;养成好习惯
                return 0;后面一定有分号
                return 0;可以当成程序断点,用来查错,包括主函数的任何函数在碰到return 0;时都立即结束整个函数,不会执行剩余部分


                来自iPhone客户端8楼2015-11-22 13:29
                回复
                  例:以下程序执行计算a+b的值


                  来自iPhone客户端9楼2015-11-22 13:32
                  回复
                    //使用iostream的情况下
                    #include<iostream>
                    using namespace std;
                    int main()
                    {
                    int a,b,sum;
                    cin>>a>>b;
                    sum=a+b;
                    cout<<sum;
                    return 0;
                    }
                    也可以是这样
                    #include<iostream>
                    using namespace std;
                    {
                    int a,b;
                    cin>>a>>b;
                    cout<<a+b;
                    return 0;
                    }


                    来自iPhone客户端11楼2015-11-22 13:35
                    回复
                      //使用cstdio的情况下
                      #include<cstdio>
                      using namespace std;
                      int main()
                      {
                      int a,b;
                      scanf("%d %d",a,b);
                      printf("%d",a+b);
                      return 0;
                      }
                      同理也可以使用sum的办法


                      来自iPhone客户端12楼2015-11-22 13:37
                      回复
                        cmath中常用函数举例:
                        floor(3.7)=3//向下取整
                        ceil(3.7)=4//向上取整
                        sqrt(4)=2//取算术平方根
                        max(3,4)=4//取最大值
                        min(3,4)=3//取最小值
                        exp(3)=e的三次方//求自然指数e的x次方
                        abs(-3)=3//取绝对值
                        log(4)=2//取2为底时x的指数
                        pow(10,2)=100//pow(x,y)取x的y次方,结果为双精度


                        13楼2015-11-22 22:22
                        回复
                          cstdio常用语句:
                          freopen("te.in","r",stdin);//重定向,表示输入由来自键盘变更为来自te.in文件
                          freopen("te.out","w",stdout);//重定向,表示输出由在屏幕上输出变更为输出至文件te.out
                          scanf("%d",x);//输入一个整型变量x,x仍需先定义才可输入
                          printf("%d",x);//输出一个整型变量x,x仍需先定义才可输出


                          14楼2015-11-22 22:25
                          回复
                            iostream常用语句:
                            cin>>a>>b;//表示连续输入两个同类型的数据a和b,单书名号两个,都指向要输入的数据
                            cout<<a<<b;//表示连续输出两个数据a和b,单书名号两个,都指向cout,不必要同类型,若需要空格则改为cout<<a<<" "<<b;
                            algorithm常用语句:
                            sort(a,a+20);//表示将数组a中第1个数a[0]到第二十个数a[19]进行从小到大排序
                            cstring常用语句:
                            memset(a,0,sizeof(a));//表示将数组a的所有单位初始化为0
                            char a;//定义一个字符型变量a
                            string a;//定义一个字符串变量a,a[x]表示字符串a中的第x-1个字符
                            char *p;//定义一个指针p


                            15楼2015-11-22 22:30
                            回复