CCF考试试题自己学习的代码整理

CCF考试试题及代码

CCF 的坑

1.如果数组范围没有达到题目要求,也会减分 N=1000,a[500],则只会有50分。
2.一定要输入特殊数字进入测试。但是有些特例无法处理
3.仔细思考
4.scanf("%d ",&a[i]);中间有空格是错误的,如果是这种,就会导致要多输入一次数据

scanf("%d",&a[i]);因为scanf函数就是以空格或者换行为断点的
5.我经常犯两个错误。
***第一个是:n=1这个边界情况不考虑
***第二个是:循环的边界考虑不仔细
for(i=1;iif((a[i]a[i-1]&&a[i]>a[i+1]))
count++;
}
---正确应该是:n-1这种
for(i=1;iif((a[i]a[i-1]&&a[i]>a[i+1]))
count++;
}
6.一点要考虑边界值,比如下边界,比如上边界。
7.要学会赋值,数组a复制给数据b,然后改变b中的值。
7.报错误:运行超时:您的程序未能在规定时间内运行结束,请检查是否循环有错或算法复杂度过大

学号使用正确的终止符,有时候服务器不认!!
while(scanf("%d",&n)!=EOF){
while(scanf("%d",&n)!=0){ //服务器认为没有终止,是程序一直在运行!!

8.段错误:您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情
9.数字存入数组中,取出来的时候要-'0',要减去0.



1.检查边界值
比如说:0,1,2
比如说:N《=100000000.。则取值666666666试试看
数据类型采用long 类型或者 long long 类型
2.有没有用while循环处理多个输入可能性
123,运行完毕了,但是项目还有输入666666666的可能性
while(scanf("%ld",&n)!=EOF)
3.加上了while循环,但是应该有终止
while(scanf("%ld",&n)!=EOF)
4.有时候判断因数,质因数的时候,使用sqrt 开方,降低时间复杂度
i<=sqrt(n);
5.
数据类型问题,long long
6.精度问题
%ld是输出长整型数据(long) %lf是输出长双精度型数据(long double)
%f和%lf分别是float类型和double类型用于格式化输入输出时对应的格式符号。 其中: float,单精度浮点型,对应%f. double,双精度浮点型,对应%lf.
6.C语言里面没有string类型,都是使用char数组存储
C++ 里面具有string类
7.scanf("%s %s",str1,str2);不能使用&str1,&str2!!!.因为数组首地址就是取地址
8.将字符转换成数字****应该是sum+=(str[i]-'0')*(str[j]-'0');
9.如果想使用字符串类型,可以使用#include, using namespace std;





2017.8.23

一。找身高差最小的两个人---找出差最小的两个数
#include
int main(){
int i,n,a[1010],h0,h1,dmin,temp;
scanf("%d",&n);
//get
for(i=0;iscanf("%d",&a[i]);
}
//sort
for(i=0;ifor(int j=i+1;jif(a[j]temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}

//compare
h0=a[0];
h1=a[1];
dmin=h1-h0;

CCF考试试题自己学习的代码整理的相关文档搜索

相关文档