与数组匹配结果分段故障 [英] Matching with arrays results segmentation fault

查看:128
本文介绍了与数组匹配结果分段故障的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从这个code,

 节点[4] = {5,3,2,6};
邻居[4] = {-4,7,8,9-};

我一定要找到,


  • 节点[0] 节点[1] 已经从任何共同的价值观邻居[0-3]

  • 节点[1] 节点[2] 已经从任何共同的价值观邻居[0-3]

  • 节点[2] 和节点[3]已经从邻居的共同价值观[0-3]

如果任何一个满足打印要素极不...结果
我已经试过这code,但有错误状态分段错误。

 #包括LT&;&stdio.h中GT;诠释的main()
{
    INT节点[4] = {5,3,2,6};
    INT邻居[4] = {4,3,2,9};
    INT子,我,旗= 0,K = 0;    为(K = 0; k 3;; k ++){
        对于(I = 0; I&下; 4;我++){
            如果(节点[K] ==邻居[I])
                标志= 1;
            打破;
        }
    }
    如果(标志== 1)
        子= K + 1;
    对于(I = 0; I&下; 4;我++){
        如果(节点[子] ==邻居[I])
            标志= 2;
        打破;
    }
    如果(标志== 2)
        的printf(找不到元素\\ n);
    其他
        的printf(元素找到\\ n);
}


解决方案

下面是完整的解决方案:

 的#include<&stdio.h中GT;
诠释的main()
{
    INT节点[4] = {5,3,2,6};
    INT邻居[4] = {4,3,2,9};
    INT I = 0,J = 0,K = 0;    对于(I = 0; I&下; 4;我++){
        为(J = 0; J&下; 4; J ++){
            如果(节点[I] ==邻居[J]){
                为(K = 0; K&4;; k ++){
                    如果(节点第[i + 1] ==邻居[K]){
                        的printf(元素中找到:%D \\ N,节点[I],节点[I + 1]);
                        返回0;
                    }
                }
            }
        }
    }
    的printf(找不到元素\\ n);
    返回0;
}

from this code,

node[4] = {5,3,2,6};  
neighbor[4] = {4,7,8,9};

I have to find,

  • node[0] and node[1] has any common values from neighbor[0-3]
  • or node[1] and node[2] has any common values from neighbor[0-3]
  • or node[2] and node[3] has any common values from neighbor[0-3]

if any one satisfies print element found else not...
I have tried this code, but there is error states segmentation fault .

#include<stdio.h>

int main()
{
    int node[4] = {5,3,2,6};
    int neighbor[4] = {4,3,2,9};
    int sub,i,flag=0,k=0;

    for (k=0;k<3;k++){
        for (i = 0; i < 4; i++) {
            if (node[k]==neighbor[i])
                flag=1;
            break;
        }
    }
    if (flag==1)
        sub=k+1;
    for (i = 0; i < 4; i++) {
        if (node[sub]==neighbor[i])
            flag=2;
        break;
    }
    if (flag==2)
        printf("Element not found\n");
    else
        printf("Element  found\n");
}

解决方案

Here is the complete solution:

#include <stdio.h>
int main()
{
    int node[4] = {5,3,2,6};
    int neighbor[4] = {4,3,2,9};
    int i=0,j=0,k=0;

    for (i=0; i<4; i++) {
        for (j=0; j<4; j++) {
            if (node[i]==neighbor[j]) {
                for (k=0; k<4; k++) {
                    if (node[i+1]==neighbor[k]) {
                        printf("Element found: %d %d\n", node[i], node[i+1]);
                        return 0;
                    }
                }
            }
        }
    }
    printf("Element not found\n");
    return 0;
}

这篇关于与数组匹配结果分段故障的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆