囫囵觉w 2023-01-13 21:17 采纳率: 84.6%
浏览 29
已结题

判断查找元素是否存在时

查找

请问这两串代码有什么不同吗

    int b,i;
            scanf("%d",&b);
            for(i=0; i<N; i++) {
                if(b==a[i]) {
                    printf("YES\n");
                    break;
                }
            }
            if(i==N) {
                printf("NO\n");
            }

int b,flag=1;
            scanf("%d",&b);
            for(int i=0; i<N; i++) {
                if(b==a[i]) {
                    flag=0;
                    printf("YES\n");
                    break;
                }
            }
            if(flag) {
                printf("NO");
            }

  • 写回答

4条回答 默认 最新

  • a5156520 2023-01-14 10:55
    关注

    没有很大的区别,主要的区别应该就是判断输入的这个数b是否存在于数组a中的判断方式的不同,具体如下,供参考:

    第一种通过判断循环临时下标是否等于N,等于N则说明判断完数组所有的数都没有找到输入的数b;

    第二种方式通过判断一个标志flag是否改变,如果在遍历数组中,寻找到某数等于输入的数b则改变标志,如果循环结束标志之1没有改变说明没有找到;

    两种方式的作用基本差不多,唯一区别应该就是判断方式的不同。

    测试代码如下:

    #include <stdio.h>
    #define N 10
    
    void findNum(int *a){
    
        int b,i;
        scanf("%d",&b);
        for(i=0; i<N; i++) {
            if(b==a[i]) {
                printf("YES\n");
                break;
            }
        }
        if(i==N) {
            printf("NO\n");
        }
     
    }
    
    
    void findFlagNum(int *a){
        int b,flag=1;
        scanf("%d",&b);
        for(int i=0; i<N; i++) {
            if(b==a[i]) {
                flag=0;
                printf("YES\n");
                break;
            }
        }
        if(flag) {
            printf("NO");
        }
     
    }
    
    int main(void){
        
        int a[N]={1,2,3,4,5,6,7,8,9,10};
        printf("第一种方法:");
        findNum(a);
        
        printf("第二种方法:");
        findFlagNum(a);
    } 
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月22日
  • 已采纳回答 1月14日
  • 创建了问题 1月13日

悬赏问题

  • ¥50 求解vmware的网络模式问题
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?