PAT程序设计

Posted 枝桠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT程序设计相关的知识,希望对你有一定的参考价值。

 VS2013中自行对齐的快捷键操作: CTRL+K+F 

 




1、定义二维数组

int (*run)[4]=new int [num][4];


2、绝对值函数 

      int abs(int i)             返回整型参数i的绝对值 
      double cabs(struct complex  znum)     返回复数znum的绝对值 
      double fabs(double x)        返回双精度参数x的绝对值 
      long labs(long   n)         返回长整型参数n的绝对值

 




----------
输出前面补‘0‘ ==>%02d ==>两位精度,0补齐

1     cout<<"Only "<<hh<<c<<mm<<".  Too early to Dang.";
2     printf("Only %02d:%02d.  Too early to Dang.",hh,mm);

 




----------

1     cout<<"Only "<<hh<<c<<mm<<".  Too early to Dang.";
2     printf("Only %02d:%02d.  Too early to Dang.",hh,mm);

 


----------


出错提示 term does not evaluate to a function 
    

 1     for (i = 0; i>p; i++)    //打印上面p行,每行一侧各有i个空格
 2         {
 3         ==>    for (j = 0; j < 2(p - i); j++)        //打印左半部分空格
 4                 //这里的j < 2(p - i);缺少了一个‘*‘
 5             {
 6                 cout << " ";
 7             }
 8             for (j = 0; j<2 * i + 1; j++)
 9             {
10                 cout << c;
11             }
12             for (j = 0; j<2 * (p - i); j++)        //打印you右半部分空格
13             {
14                 cout << " ";
15             }
16             cout << endl;
17         }

 





----------
判断素数

    bool is_prime(int n)//对n进行判断
    {
        if(n<2)//如果n小于2就不是素数,素数规定大于或等于2的整数
        return false;
        //for (int i=2;i*i<=n;i++)//判断是否为素数可以使用所有比n小的数与n相除,如果能除开就不是素数,但是其实只需要判断到i*i>=n就可以了,因为此时已经不存在比i大的数能把n除开啦,仔细想想就会明白啦
        //上面这样会超时
        for (int i=2;i<=sqrt(n);i++)
        {   
            if(n % i == 0)
            return false;
        }
        return true;
    }

 




----------
输入字符串

    int num;
    char ch;
    string str;
    scanf("%d %c",&num,&ch);
    getchar();    <==
    getline(cin,str);    <==

 




----------
VS2015中C代码报不安全
加一条指令 #pragma warning(disable:4996) 



----------
在string对象中插入字符

1     string num;
2     num.clear();
3     int i = 0;
4     while (sum != 0) {
5     num.insert(i++, 1, (0 + sum % 10));
6     //num[i] += ‘0‘ + sum % 10;    //这是不行的
7     sum = sum / 10;

 



----------
string对象查找子串

1     string str;
2     if(str.find("branches")==str.npos){ }    //没找到

 

以上是关于PAT程序设计的主要内容,如果未能解决你的问题,请参考以下文章

PAT Basic 1049

PAT 数列的片段和简单数论

PAT乙级1049 数列的片段和 (20 分)

PAT 乙级 1049 数列的片段和

PAT1049-----枚举法,找规律题,注意降低时间复杂度

PAT Basic 1078