C语言数组元素查找程序无法正确判断,如何修改实现匹配即停止?
数组元素查找程序修复方案
你的代码核心问题在于循环逻辑错误:当前循环只检查了数组的第一个元素就直接终止了——如果第一个元素不等于目标值,立刻输出"Not Found!"并跳出循环,完全没机会检查后续元素。
修改后的代码
#include <stdio.h> int main(){ int size; int elemArr; int found = 0; // 标记是否找到目标元素 printf("Enter number of elements: "); scanf("%d", &size); int arr[size]; for(int i = 0;i<size;i++){ printf("Integer #%d: ", i+1); scanf("%d", &arr[i]); } printf("Element to search in the array: "); scanf("%d", &elemArr); for(int i = 0; i<size; i++){ if(arr[i]==elemArr){ printf("Found!"); found = 1; break; } } // 遍历完所有元素后,确认未找到才输出 if(!found){ printf("Not Found!"); } }
修改说明
- 新增
found变量作为状态标记,初始值为0(代表未找到),找到目标元素时设为1并终止循环 - 移除了原循环内的else分支,避免提前终止循环
- 把"Not Found!"的输出逻辑移到循环外部,确保只有遍历完整个数组、确认没有匹配元素时才会输出这句话
内容的提问来源于stack exchange,提问作者tiredcomscistudent
相关产品推荐
相关产品推荐

