标签:
程序目的:输入一个数组的元素数,然后给每个元素赋值,再给出一个值作为关键词,查出数组内是否有元素等于这个值。
代码如下:
1 #include <stdio.h> 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<n;m++) 20 { 21 do 22 { 23 printf("\n请输入元素%d的值: ",m+1); 24 scanf("%d",&array[m]); 25 if(array[m]<=0) 26 { 27 printf("\n请正确输入元素%d的值!",m+1); 28 } 29 }while(array[m]<=0); 30 } 31 32 //获取作为关键词的值 33 do 34 { 35 printf("\n请输入你要查询的值: "); 36 scanf("%d",&x); 37 if(x<=0) 38 { 39 printf("\n请正确输入你要查询的值!"); 40 } 41 }while(x<=0); 42 43 //进行查找 44 for(m=0;m<n;m++) 45 { 46 if(x==array[m]) 47 { 48 printf("\n要查找的是第%d个元素.",m+1); 49 b=1; 50 } 51 } 52 53 //如果没有找到,输出本句 54 if(b!=1) 55 { 56 printf("\n查无此数."); 57 } 58 59 return 0; 60 }
正常运行结果是:
请输入数组元素的个数: 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的值: 4 10 11 请输入元素5的值: 5 12 13 请输入你要查询的值: 4 14 15 要查找的是第4个元素. 16 要查找的是第5个元素.
本人初学C,恳请路过的熟手可以帮忙解释一下是不是我哪儿写错了。。。谢谢大家的拔刀相助!
标签:
原文地址:http://www.cnblogs.com/alpharobert/p/5347097.html