博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言一个小程序的bug疑问 数组相关[已解决]
阅读量:4575 次
发布时间:2019-06-08

本文共 1133 字,大约阅读时间需要 3 分钟。

本例错误在于数组的长度不能是变量.

程序目的:输入一个数组的元素数,然后给每个元素赋值,再给出一个值作为关键词,查出数组内是否有元素等于这个值。

代码如下:

1 #include 
2 int main() 3 { 4 int n,m,x,b; 5 int array[n]; 6 7 //本段代码用来获取元素个数 8 do 9 {10 printf("\n请输入数组元素的个数: ");11 scanf("%d",&n);12 if(n<=0)13 {14 printf("\n请正确输入数组元素的个数!");15 }16 }while(n<=0);17 18 //用来给每个元素赋值19 for(m=0;m

正常运行结果是:

请输入数组元素的个数: 6请输入元素1的值: 1请输入元素2的值: 2请输入元素3的值: 3请输入元素4的值: 4请输入元素5的值: 5请输入元素6的值: 6请输入你要查询的值: 5要查找的是第5个元素.

但是当元素个数是5,且查询的值是第4个元素的值的时候,结果会出现2个:(经过验证,目前只发现在这个情况会出现bug)

1 请输入数组元素的个数: 5 2  3 请输入元素1的值: 1 4  5 请输入元素2的值: 2 6  7 请输入元素3的值: 3 8  9 请输入元素4的值: 410 11 请输入元素5的值: 512 13 请输入你要查询的值: 414 15 要查找的是第4个元素.16 要查找的是第5个元素.

本人初学C,恳请路过的熟手可以帮忙解释一下是不是我哪儿写错了。。。谢谢大家的拔刀相助!

后来我在学习其他章节的时候突然想明白了,正确代码如下:

1 #include 
2 #define NUM 5//用来定义数组长度 3 int main() 4 { 5 int m,x,b; 6 int array[NUM]; 7 8 //用来给每个元素赋值 9 for(m=0;m

这样结果就不会有bug了,原来的代码如果输出结果准确, 纯属运气........

请输入元素1的值: 1请输入元素2的值: 2请输入元素3的值: 3请输入元素4的值: 4请输入元素5的值: 5请输入你要查询的值: 4要查找的是第4个元素.

 

转载于:https://www.cnblogs.com/alpharobert/p/5347097.html

你可能感兴趣的文章
私有类方法
查看>>
java网络编程Socket通信详解
查看>>
为什么使用Nosql:Nosql和SQL的区别
查看>>
<转>DNS服务系列之二:DNS区域传送漏洞的安全案例
查看>>
LINUX中常用操作命令
查看>>
【android】动画效果研究(View)【1】
查看>>
(三)常用的数学函数
查看>>
生产信息集成分析平台(MIIAS V1.0) 概述
查看>>
学习进度——第十五周
查看>>
简谈-网络爬虫的几种常见类型
查看>>
File对象目录列表器
查看>>
(K)ubuntu上将分区格式化成NTFS格式
查看>>
mysql5.7二进制包安装方式
查看>>
装饰者模式——Java设计模式
查看>>
39.递推练习: 菲波那契数列(2)
查看>>
排序精讲
查看>>
【bzoj3172】 Tjoi2013—单词
查看>>
【uoj2】 NOI2014—起床困难综合症
查看>>
js return的用法
查看>>
子节点填充父元素除去一固定高度后的剩余高度
查看>>