这段编程代码的警告是什么意思? 10

#include<stdio.h>#include<math.h>intmain(){intn,i,m,a,b;scanf("%d",&n);if(n==1){print... #include<stdio.h>
#include<math.h>
int main()
{int n,i,m,a,b;
scanf("%d",&n);
if(n==1){printf("Jolly"); return 0;}
int number[1000]={0};
scanf("%d",&a);
for(i=1;i<n;i++)
{
scanf("%d",&b);
number[abs(a-b)]++;
a=b;
}
for(i=1;i<n;i++)
{
if(number[i]!=1) printf("Not jolly");return 0;
}
printf("Jolly");
return 0;}
warning:implicit declaration of function 'abs'[-Wimplioit-funtion-declaration]
这段警告是什么意思,是abs函数出现问题了吗
展开
 我来答
云南新华电脑学校
2019-10-28 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
展开全部
问题出在程序中使用了 gets是非常不安全的。这是对程序产生BUG,出现不可靠性的一个描述,有些函数在某些意外情况会导致程序陷入不可控状态,仅仅是PC上运行最多也就是退出而已,但是如果是运行在飞机等系统里的话,就会有大麻烦,说危险也不为过。因为英文文献里描述为dangerous,所以也就翻译为危险。
函数执行需要一个栈空间,但这个栈空间容量是有限的,而且栈里存放了函数返回的地址。gets()函数在获取输入时,如果无限输入会造成栈空间溢出,在程序返回时,不能正常的找到返回地址,程序将发生不可预测行为。
解决:
解决办法是使用 fgets,但由于fgets函数是为读取文件设计的,所以读取键盘是没有gets那么方便。
fgets()函数的基本用法为:
fgets(char *s, int size, FILE *stream);
第一个参数是:字符类型的数组,第二个参数是:标明这个数组的大小,第三个参数是:如果总是通过键盘输入的话,可以固定写为stdin。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式