c++ acm 语句用法备注(保留两位小数&字符转数字)

# 预处理标准,对文本预处理操作,表示该行代码最先处理,编译前运行

<iostream> 标准库,函数,表示输入输出流

std::count<<x  左移运算符,输出内容x

std::cin>>x   右移运算符,输入值付给x值

 \t  制表符,类似tab功能,将输入格式对齐

endl 换行符,如果不需要立即显示的话,用"\n"

强制转换(float)5/8,5/8=0

#include <iostream>//名字空间
namespace a
{
int b=5;
}
namespace c
{
int b=4;
}
int main()
{

 std::cout<<c::b
}

////////////////////////输出:4

 

一个左边是指针.   
  一个左边是实体
如果p是指针,p->function();   
如果p是对象,p.function();
 
记住-〉必须是指针,.左边必须是对象或者结构体,一般是类对象
首先介绍一下C++中的结构。对于一个结构来说,

struct MyStruct
{ 
      int member_a; 
};

如果有个变量MyStruct s,那么使用其中的成员元素时可以用

s.member_a = 1;

如果采用指针方法访问,比如MyStruct * ps,那么同样的访问就必须使用如下形式:

(*ps).member_a = 1;
或者
ps->member_a = 1;
c++中当定义类对象是指针对象时候,就需要用到->指向类中的成员;当定义一般对象时候时就需要用到"."指向类中的成员....... 
例如:
class A 
{ 
      public 
      play(); 
}

如果定义如下:

A *p则:p->play()使用; 左边是结构指针。
A p 则:p.paly()使用; 左边是结构变量。
总结:
箭头(->):左边必须为指针;
点号(.):左边必须为实体。
c++中箭头操作符(->)和点操作符(.)有什么不同
#if的使用说明

#if的后面接的是表达式

#if (MAX==10)||(MAX==20)
 code...
#endif
它的作用是:如果(MAX==10)||(MAX==20)成立,那么编译器就会把其中的#if 与 #endif之间的代码编译进去(注意:是编译进去,不是执行!!)

#if defined的使用

#if后面接的是一个宏。

#if defined (x)
    ...code...
#endif
这个#if defined它不管里面的“x”的逻辑是“真”还是“假”它只管这个程序的前面的宏定义里面有没有定义“x”这个宏,如果定义了x这个宏,那么,编译器会编译中间的…code…否则不直接忽视中间的…code…代码。

另外 #if defined(x)也可以取反,也就用 #if !defined(x)

#ifdef的使用

#ifdef的使用和#if defined()的用法一致
#ifndef又和#if !defined()的用法一致。

最后强调两点:
第一:这几个宏定义只是决定代码块是否被编译!
第二:别忘了#endif
#if、#ifdef、#if defined之间的区别
// 1010.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


#include<iostream>
#include<cstring>
#include<cstdio>
#include<iomanip>
using namespace std;
int main()
{
    char a[100008];
    while(gets(a))
    {
        int I=strlen(a);
        int sum=0,n=0;
        double average;
        int flag=1;
        for(int i=0;i<I;i++)
        {
            if (a[i]=='A')
            {
                sum=sum+4;n++;
            }
            else if (a[i]=='B')
            {
                sum=sum+3;n++;
            }
            else if (a[i]=='C')
            {
                sum=sum+2;n++;
            }
            else if (a[i]=='D')
            {
                sum=sum+1;n++;
            }
            else if (a[i]=='F')
            {
                sum=sum+0;n++;
            }
            else if (a[i]!=' ')
            {
                cout<<"Unknown"<<endl;
                flag=0;
                break;
            }

        }
        if (flag)
        {
            average=(sum*1.0)/(n*1.0);
            cout <<fixed<<setprecision(2)<<average<<endl;
        }
    }
    return 0;
}

acm1010题目
ACM1010

//cout <<fixed<<setprecision(2)<<average<<endl;

 //cout<<setiosflags(ios::fixed)<<setprecision(2)<<average<<endl;

 指针地址、指针内存、指针保存的值的区别

int i;

int *p;

&i//变量i的内存地址

p//p指向的地址,也就是保存的地址的值

&p//p自身内存位置

 取字符串里面的数字,方法如下

char a[3]={123};

int t=a[2]-'0';//t=2;

 

//输入两个空字符串 用来控制输出间隔
std::setw( 2 )

printf("    %02d:%02d       %02d:%02d      %2d\n",a1,a2,b1,b2,num); //%02d,不足的最后两位补上0,如1变01,而%2d是1变1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2013-12-28 22:20  Jimmy_5  阅读(704)  评论(0编辑  收藏  举报