上机小笔记
关于C++中一些关键词和用法
向左对齐(setw 头文件 iomanip)
for(int i=1;i<=5;i++)
{
for(int j=1;j<=5;j++)
cout<<setw(5)<<left<<i*j;
cout<<endl;
}
等效于
for(int i=1;i<=5;i++)
{
for(int j=1;j<=5;j++)
printf("%-5d",i*j);
printf("\n");
}
输出结果后 return 0 又不(lan)想(de)打花括号
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
for(int i=2;i*i<=n;i++)
if(!(n%i)) return 0*printf("合数");
return 0*printf("质数");
}
论如何不打出多余的换行符
for(int i=1;i<=n;i++) printf("%d %d%c",p[i].a,p[i].b,"\n"[i>=n]);
想同时退出多个循环的时候还有一个语句
for(int i=1;i<=n;i++)
{
for(int j=i;j<=m;j++)
{
//无聊的一段代码
for(int j=1;j<=m;j++)
{
//无聊的一段代码
if(/*奇奇怪怪的东西*/) goto go;//跳转中...
}
}
//又是一段无聊的代码
go://你想要到达的地方
}
进制转换是有函数的
转换二进制的语句头文件 bitset。
cout<<"2进制:"<<bitset<8>(n)<<endl;
cout<<"8进制:"<<oct<<n<<endl;
cout<<"10进制:"<<dec<<n<< endl;
cout<<"16进制:"<<hex<<n<<endl;
//<8>表示保留8位输出
等效于
printf("%05o\n",n); //按八进制格式输出,保留5位高位补零
printf("%03d\n",n); //按十进制格式输出,保留3位高位补零
printf("%05x\n",n); //按十六进制格式输出,保留5位高位补零
判断一个字符是不是数字
头文件 ctype.h
if(isdigit(ch))
取出一组数最大值
*max_element(f+1,f+1+n)
并查集的初始化(itoa 头文件 numeric)
itoa(f+1,f+1+n,1)