zoukankan      html  css  js  c++  java
  • 牛客练习(一)

    一、c++中static的用法详解

    1、静态局部变量

    #include<iostream>
    using namespace std;
    
    int fun(int x) 
    { 
        static int a=3; //静态局部变量 
    	x+=a++; 
    	return x;
     }
    
    int main()
    { 
    	int x=2,sum; 
    	sum=fun(x);
    	sum=sum+fun(x);
    	printf("%d
    ",sum);
    } 
    

    静态局部变量存在全局变量区,只在第一次时初始化,a=3,随后一直保留到整段程序运行完,所以,a是变化的。第一次调用sum=2+3=5,第二次调用2+4+5=11。

    这是为了避免全局变量带来混乱的问题。

    二、地址指针

    #include <iostream>
    
    using namespace std;
     
    int main ()
    {
       int a[5]={1,2,3,4,5};//a是数组,就是以5*4=20个字节为单位进行位置变化 
       
       cout<<&a[0]<<" "<<&a[4]<<endl;
       cout<<&a<<" "<<&a+1<<endl;//对应a数组的起始位置和下一个数组的起始位置 
       cout<<*a<<" "<<*(a+4)<<endl; // 对比上行代码,注意带括号和不带括号区别 
       
       int *p=(int *)(&a+1); //p指针将数组为单位转换为int为单位,所以这里(p-1),只是变换4字节 
       cout<<p<<endl;
       printf("%d",*(p-1));
       
       return 0;
    }
    

    三、

    #include <iostream>
    
    using namespace std;
    
    int Num[100000]={0} ;
     
    int main ()
    {
       int n;//作业份数 
       while(cin>>n)
       {
            int m,x,k;//每份挣得钱,罚的钱,复查的钱。 
            cin>>m>>x>>k;
            int n0=0,n1=0,r,M=0;
            for(int i=0;i<n;i++)
    		{
    			cin>>r;
    		    if(r==0)
    			{
    				n0++;
    				M+=(m-x);
    			}	
    			else
    			{
    				n1++;
    				M+=(m-k);
    			}	
    		} 
    		if(n0<=n1)
    		{
    			M+=n0;
    		}
    		else
    		{
    			M+=n1;
    		}
    		cout<<M<<endl;
       }
       return 0;
    }
    //4 5 2 1 1 1 1 0
    

      

      

     

  • 相关阅读:
    卡尔曼滤波器的简单推导
    data_quick 进度
    面试
    MapServer+TileCache+Apache+Python24 构建KS数据服务器
    PYTHONPATH 可以跨版本 方便使用 (本文为windows方法)转~
    20130923
    20130909
    error C2504 类的多层继承 头文件包含
    int long 等基础类型在不同平台的大小
    mysql python image 图像存储读取
  • 原文地址:https://www.cnblogs.com/ruo-li-suo-yi/p/8724299.html
Copyright © 2011-2022 走看看