您的位置:首页 > 其它

水题时,一些零碎的总结

2012-06-19 10:50 190 查看
1. 用printf(“%.nf”,….);输出精确n位的小数,结果会自动四舍五入。

2. double->int 时,不论double中的小数为什么,int 型都只取double中的整数。

3. 求绝对值时:

abs()为int型

fabs()为双精度浮点型

cabs()为复数的

labs()为long int型

4. 开平方为:

sqrt()

5. pow()函数返回的为double型,对于结果的转换要注意,容易被强制转换成int,然后就有可能出现问题。

6. 用库函数:

#include<algorithm>

int a[10];

sort(a,a+10);

7. 用‘/’时,如果要求返回浮点型,那么除数或被除数,至少有一个为浮点型。

8. gets() scanf("%s") puts() printf("%s") 的区别

gets()与scanf(“%s”):

① gets遇回车时结束输入。也就是说,gets可以接受回车前的任何输入。

scanf不同,遇到回车、空格、制表符就结束输入。

eg. String a=”I am a student;

如果要一次性的接受全部的字符串,要用gets。

② 输入结束后,gets的回车不会留在缓冲区;而scanf的空格、回车仍然会留在缓冲区。

Puts()与printf(“%s”)

① puts函数只用来输出字符串,参数可以是字符串,也可以是存放字符串的数组名。

Printf(“%s”)其参数也可以是是字符串,或者是存放字符串的数组名。

② puts函数输出字符串后会自动加换行,而printf(“%s”)不会。

Puts(a)与scanf(“%s\n”,a)等效.

9. 由于中文的Ascall码的首位为1,所以其转化的十进制数为负数。因此,如果要求一个字符串中的中文的个数,只需要算出字符串的负数的个数,再除以二,即是中文的个数。

10. scanf(“%d%*d”,&a);

表示接受两个输入,但只对第一个进行赋值。

可应用到gets()前的输入(具体为什么还不太清楚。。。)。

#include<iostream>

using namespace std;

int main(){

int n;

char a[1000];

// cin>>n;

// scanf("%d",&n);

// scanf("%d%*d",&n);

gets(a);

int m=strlen(a);

cout<<m<<endl;

cin>>m;

return 0;

}

11. memset(a,0,sizeof(a));

即对数组a进行初始化操作(全赋值为0)。

12. scanf的用法即注意事项

scanf的返回值

scanf的返回值由后面的参数决定

scanf("%d%d", &a, &b);

如果a和b都被成功读入,那么scanf的返回值就是2

如果只有a被成功读入,返回值为1

如果a和b都未被成功读入,返回值为0

如果遇到错误或遇到end of file,返回值为EOF。

且返回值为int型.

使用scanf函数时应该注意的问题

1、scanf()中的变量必须使用地址。

eg.

int a;

scanf(“%d”,&a);

int a[100];

scanf(“%s”,a)

2、scanf()的格式控制串可以使用其它非空白字符,但在输入时必须输入这些字符。

eg.

scanf(“%d,%d”,&a,&b);

这时输入:a,b

scanf(“%d%d”,&a,&b);

这时输入:a b

3、在用"%c"输入时,空格和“转义字符”均作为有效字符。

scanf(“%c %c”,&a&b&c)

这时输入a b

4. 在两次输入时:

eg.

Scanf(“%d”,&a);

Sccanf(“%d”,&b);

这时输入:1 2

则输入到b中的为0.

Scanf(“%d ”,&a);(b后面多了一个空格)

Scanf(“%d”,&b);

这时a和b的输入都没有变化。

13. 判断两个元素是否处在同一对角线上:

Hi ,li ,hj ,lj分别为第i个和第j个元素所在的行列。

If(hi-li==hj-lj || hi+li==hj+lj)

则两个元素处在同一对角线上。

14. BFS的判重:

在树中进行BFS时,不需要进行判重;而在图中进行BFS时,需要进行判重来对搜索进行剪枝。

15. int型的上限约为:20亿

2000000000

16. n=a*b;

temp1=(a+b)*a;

temp2=(a+b)*b;

1/n=1/temp1+1/temp2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: