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

知识点:

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、要学会优化程序。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值