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()使用; 左边是结构变量。 总结: 箭头(->):左边必须为指针; 点号(.):左边必须为实体。
#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
// 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题目
//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;