您的位置:首页 > 其它

做patBasic的感受总结和知识点记录

2017-02-26 23:26 267 查看
知识点:

1、将整型转换成字符串 

(1)、要包含头文件#include<sstream>

ostringstream oss;

string str;

int num=0;

oss<<num;

str = oss.str();

(2)、使用sprintf函数

char str[10];      // 但只能是char类型的,string类型的不行
int a=1234321;
sprintf(str,"%d",a);

关于数据类型之间的转化更多的参见:http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621803.html

2、malloc函数的使用,分配内存空间

stuInfo *stu;

int num;  // num是stu

stu = (struct stuInfo *)malloc(num*sizeof(struct stuInfo));

free(stu);   // 使用后要释放内存空间。


3、素数的判断

bool prime(int value)
{
if (value % 2 == 0 && value != 2)          // 判断是不是偶数
{
return false;
}
for (int j = 2; j <= sqrt(value); j++)     // sqrt要包含头文件#include<math>
{
if (value%j == 0)
{
return false;
}
}
return true;
}


4、字符串的输入

string input;

getline(cin, input);  // 可以实现带有空格的字符串的输入

cin>>input:           // 只能输入空格之前的字符串

5、长度未知的一组整型数据的输入

do{
scanf("%d", &tmp_input);
scanf("%c", &c_tmp);
input.push_back(tmp_input);
} while (c_tmp != '\n');


// 已知组数,未知长度,使用getchar()实现字符的捕捉。
for (int i = 0; i < 3; i++)
{
cin >> tmp_input;
input[i].push_back(tmp_input);
if (getchar() == '\n')
break;
}


6、输出正数的精度(小数的位数)

C++形式:

int ave_A4;

cout << setiosflags(ios::fixed) << setprecision(1) << ave_A4 << " "; // 要包含头文件	#include<iomanip>

C形式:

double a = 1.2345;

printf("%3.2f",a);        // 输出三位数,小数占两位。

输出:1 .23。


7、结构体+降序函数的使用

struct stuInfo
{
int no;
int moral_score;
int talent_score;
bool operator < (const stuInfo &A) const{                              // 这里是进行排序的依据
if (moral_score + talent_score != A.moral_score + A.talent_score)
return moral_score + talent_score > A.moral_score + A.talent_score;
else{
if (moral_score != A.moral_score)
return moral_score > A.moral_score;
else
return no < A.no;
}
}
};

vector<stuInfo> stu[10];

......                         // 输入数值

sort(stu.begin(), stu.end());  // 排序  包含头文件#include<algorithm>


8、以指定的长度输出整型的长度

printf("%04d",
output);

9、用printf输出比cout输出更节省时间。

// 17年2.28更新

10、对比两个数组

vector<int> A,B;

equal(A.begin(), A.end(), B.begin());

返回值为bool型,相等时返回true,不等时返回false。

// 17年3.3更新

11、使用cin输入数据后,再使用getline(cin,str)输入数据时,第一个会捕捉到回车,

所以要早中间使用getchar()去捕捉回车符。

如输入:

4

hello world

代码如下:

cin>>str1;

getchar();

getline(cin,str);

总结:

1、patB的难度比较低,主要考察思维的全面性和缜密性;

2、注意审题;

3、要注意数据类型的使用;

4、要学会优化程序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: