答案错误
1.数组开的没问题,用的时候越界
a[100];
有a[j+1]这种表达式,j最大只能是99
相似的,还有a[j-1],j最小的时候是1
2.还是那个换行的问题
一但出现了T行数据的提示,就要小心
3.有关scanf的一些小问题
hin弱智的问题:for 循环不断scanf读入,数据要分开读(身份证号码那道题)
hin–弱智的一个问题,
4.时刻明白数据类型
(图片转自iamdebugman 的百度知道的问答)
int 就是10位而已
向身份证号码,显然不合适
5.注意那个回车键!!!
当作字符串读取得时候 scans 加 gets(),注意那个回车键,用getchar()处理一下
6.将语句放错了循环(检查)
7.关于find这个循环控制变量的调整
要明白她随时可能会改变,确保是你自己想要的
8.用数组做标记,是不是标记在你想要的那个元素
EG,猴子选大王那道题
RIGHT!
int t=0
while(k<=m)//报数结束
{
t++;
if(t==n+1)t=1;
printf("%d ",t);
if(A[t]==1)
{
k++;
}
}
A[t]=0;
WRONG!
int t=1;//想从1开始数
while(k<=m)//报数结束
{
if(t==n+1)t=1;
printf("%d ",t);
if(A[t]==1)
{
k++;
}
t++;
}
A[t]=0;//我标记的是我要的那只猴子?!
运行时错误
1. 数组开的有问题!
不够大,或者出现下标为负……
2.动态数组没开够
p[i]=(char *)malloc(sizeof(char)*(l+1));
测出字符串长度,有‘\0’,长度要加一