文章

2

粉丝

1

获赞

0

访问

1963

头像
N诺第一天:机试注意事项
经验总结
发布于2021年1月22日 11:08
阅读数 924

N诺第一天:机试注意事项

 

头文件

include<bits/stdc++>
using namespace std;

对于跨考的同学:

开始时使用以上两行代码,就可以用C语言和c++语言混合编程了!

可以使用C语言中的scanf("");

也可以使用C++语言中拼接字符串的用法

string  a , b;
a = a + b;
cout << a;     //这样就完成了字符串的拼接

 

输入输出

基础一般,缺乏上机实践的同学

一定要注意两类

1. 字符串的输入输出
string x;               //或者这样定义:char x[10];
scanf("%s",x);          //注意输入字符串不是&x这种形式
printf("%s",x);
2. double型变量的输入输出
double x;
scanf("%lf",&x);         //一定是lf而不是f
printf("%f",x);          //可以是f也可以是lf
/*另一种输出方式:能够减少后缀长度,例如x=1.000000,输出时就成了x=1
printf("%g",x);*/
3. char型变量的输入
char x;
scanf("%c",&x);

 

putchar,getchar用法

gets(s)可以读一行中的所有字符

而scanf不读空格,不读回车

eg:

char a[10];
scanf("%s",a);
printf("%s",a);
//  如果输入"hhh hhh",输出只能得到"hhh"
//  如果用gets(a)函数,输出结果就是"hhh hhh"

在"gets"and "scanf"之间使用getchar ,是为了避免回车 "\n"的影响

如果是这样:
char a[10],b[10];       //c语言中只能通过输入字符数组来输入字符串
                        //c++中通过{string a,b;cin>>a>>b;cout<<a<<"\t"<<b<<endl;来输入输出字符串
scanf("%s",b);

gets(a);

就会使得只能写入一个字符串a,而b字符串就是"\n"
而如果在gets和scanf中加入一个getchar,getchar就可以接收下回车,即"\n"
char a[10],b[10];
scanf("%s",b);
getchar();
gets(a);

 

进制转换

%x对应16进制

%d对应10进制

%o对应8进制

 

输入日期

printf("%d-%02d-%02d",year,month,day);
这样后输出结果为:2021-01-01(随便举例)
但如果:
printf("%d-%2d-%2d",year,month,day);
得到的结果为:2021- 1- 1
输出中的"2"是指输出数字的宽度为2

输出小数点后两位的小数

printf("%.2f",x);

 

C++中可以调用的函数库在机试中的应用

1. sort(f,f+n);

和快排时间复杂度相同,都是O(nlogn),从小到大排序

int f[4]={4,6,5,1};
sort(f,f+4);
最后得到按顺序输出的结果为
1 4 5 6

2. priority_queueq

假设这个队列输入结果为1 4 2 6

则输出结果会变为:1 2 4 6

3. map函数

map<string,int>m;
m["tom"]=100;
(对应关系tom对应100)
A B
tom 100


登录后发布评论

暂无评论,来抢沙发