You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 14:10:31