//这两天军训难得有空,就简单更新一下吧。非常抱歉上一篇文字太挤了,第一次写请见谅。
一、读入和输出
c++ | fpc | |
读入 | cin>>a; 或者 scanf("%d",&a); | readln(a); |
输出 | cout<<a; 或者 printf("%d",&a); | writeln(a); |
无非就是写法上的不同。但是c++这两种常用的也有区别(我说是常用,因为好像还有别的方法,不过对于我这一类初学者一时半会还用不到,所以就没介绍了——其实就是懒得查)
相信很直观的可以看出用 cin,cout 要简洁很多,很方便记,确实如此,那为什么还要介绍后者呢?
————因为在读入输出很多很多数据的时候(我上次做了一个题是一百万),用cin,cout光是读入就会超时了,这不就寄了吗,主程序还没开始就结束了。
而使用scanf 和printf 就不会超时,这是有原理的,具体原理可以自己查(好像和什么地址有关系),我们新手记住结论就可以了;
注意到用 scanf 和 printf 的时候有个"%d"。
其实吧,如果a 是 int 类型,那么就是这个,如果a 是 long long ,那么是 "%ld" ,如果是 浮点型 ,又不一样,具体的自己上网查吧,我也只是刚入门,言多必失。
如果要读入 : n m 两个数,且中间有空格的那种:
int n,m;
scanf("%d %d",n,m);
如果是 n , m 用逗号隔开,那么就应该是这样
int n,m;
scanf("%d,%m",n,m);
printf就以此类推了,一样的。
这边建议是养成用scanf,printf的好习惯,不要跟我一样程序超时了才知道用scanf,printf 的好。
ps:在vs 里面可能用scanf会爆错,说这个东西不安全,你把 scanf 打成 scanf_s 就好了(printf 就不会爆错);
二、赋值
同样是把 b 的值赋值给a,fpc 中 是 a:=b; 而c++中是 a=b;
三、运算、逻辑符号
加—— + 减—— - 乘—— * 除—— /
以上 c++和fpc 都用的是一样的;
!!!! 等号 (A 等于 B)
c++: a==b;(注意到上文可知 "=" 在c++中是起到赋值的作用,正真的“等于”应该是“==”
fpc: a=b;
取余运算和 取商 ( a / b =c......d ——取余得到 d , 取商得到 c)
对于 a / b 这一运算
取余 | 取商 | |
fpc | c:=a mod b | d:=a div b |
c++ | c=a % b | d=a / b |
没错,你没有看错,c++里面就是 “a/b” , 因为它比较高级,如果有小数而d又是整数类型的变量的话,它会自动帮你舍掉小数部分,就等于是取了商。
或 和 与
或 | 与 | |
fpc | (条件一) or (条件二) | (条件一)and(条件二 |
c++ | (条件一 || 条件二) | (条件一 && 条件二) |
自行类比一下即可,注意c++中只用了一个括号
四、 if 语句
fpc : if (a) then b
c++:if(a) {
b;
}
(ps: a:条件,b:指令)
如果是要用否则:
fpc 就不说了,c++是可以用“三目运算符”来当else来用的,但是C++可也以用else,格式如下:
if (条件){
指令1;
}
else {
指令2;
}
五、循环的格式:
c++相比较于 fpc 就只有 while 和 for ,但是 do while 可以当repeat 用:
//先循环后判断
do{ repeat
巴拉巴拉巴拉; 巴拉巴拉巴拉
} while (退出条件) until (退出条件)
//满足条件就循环
while (循环条件){ while (循环条件) do begin
巴拉...... 巴拉......
} end;
//for 循环
for (i=1;i<=n;i++){ for i:=1 to n do begin
} end;
左边是c++,右边是 fpc;
!!!注意,c++那些循环里面的小括号一个都不能少,这是我用无数次错误总结出来的经验,不要不要偷懒,少了就会报错!
!!!!PS:就先到这里了,函数什么的放下一期吧,现在先接着上一期补充一下c++中关于一些变量的很坑爹的地方以及如何避免被坑的方法:
1、
关于数组:开在 int main() 中的数组属于局部变量,是占用 栈 的空间,而vs里面把这个空间设置的很小,这样的话你开一个有 十万 个元素的数组,它就说你栈溢出了(通俗点就是空间溢出的意思),
这时可以选择把数组放到int main 外,这样它就是全局变量了。
全局变量用的是静态储存区里空间,你只需要知道这个空间很大很大就行了,所以当你要开很大的数组的时候,就开成全局的变量。(个人理解)
2、
关于字符串。带空格字符串的读入:
string a;
getline(cin,a);
不过要加一个 #include<string> 的头文件。
嗯,就这么多了,明天晚上可能会更点别的,看它晚会让不让带手机吧(滑稽)。