| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1910 人关注过本帖
标题:编译通过了,但提示段错误,不知道错误原因。
只看楼主 加入收藏
陪你听风
Rank: 1
来 自:杭州
等 级:新手上路
帖 子:5
专家分:4
注 册:2017-4-14
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
编译通过了,但提示段错误,不知道错误原因。
题目是让我们寻找大富翁,先输入N,M. N代表总人数,M代表要找出大富翁数。之后再输入N个大富翁资产值。
要我们以非递增方式输出前M个大富翁资产值。
我的代码如下:结果提示编译通过,但是段错误。

程序代码:
#include<stdio.h>

#define MAXM 10
typedef int ElementType;

void InsertionSort(ElementType A[],int N)
{
    int i,j;
    ElementType temp;

    for(i=1;i<N;i++){
        temp=A[i];
        for(j=i;(j>0)&&(temp>A[j-1]);j--)
            A[j]=A[j-1];
        A[j]=temp;
    }
}
void Adjust(ElementType A[],int i,int N)
{
    int Child;
    ElementType temp;
    
    for(temp=A[i];(2*i+1)<N;i=Child){
        Child=(2*i+1);
        if((Child!=N-1) && A[Child+1]<A[Child])
            Child++;
        if(temp>A[Child])
            A[i]=A[Child];
        else break;
    }
    A[i]=temp;
}

int main()
{
    int N,M,i;
    ElementType A[MAXM],temp;

    scanf("%d %d",&N,&M);
    if(N>MAXM){
        for(i=0;i<M;i++)
            scanf("%d",&A[i]);
        for(i=(M-1)>>1;i>=0;i--)
            Adjust(A,i,M);
        for(i=M;i<N;i++){
            scanf("%d",&temp);
            if(temp>A[0]){
                A[0]=temp;
                Adjust(A,i,M);
            }
        }

        for(i=M-1;i>0;i--){
            temp=A[0];A[0]=A[i];A[i]=temp;
            Adjust(A,0,i);
        }
    }

    else{
        for(i=0;i<N;i++)
            scanf("%d",&A[i]);
        InsertionSort(A,N);
    }

    if(N<M) M=N;
    printf("%d",A[0]);
    for(i=1;i<M;i++)
        printf(" %d",A[i]);

    return 0;
}
搜索更多相关主题的帖子: 大富翁 
2017-04-14 08:59
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:4 
段错误,应该是你越界访问了。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-14 11:22
陪你听风
Rank: 1
来 自:杭州
等 级:新手上路
帖 子:5
专家分:4
注 册:2017-4-14
收藏
得分:0 
请问是我程序中 {}或 回车用错地方吗? 如何才可以把它改正常?
2017-04-14 11:29
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:4 
先发出你出现问题的用例
2017-04-14 11:33
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 3楼 陪你听风
段错误,很难查,你把几个关键点的变量的值打印出来,一个一个的看。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-14 11:34
qdcs
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:171
专家分:458
注 册:2016-12-22
收藏
得分:4 
我这里能编译通过,能运行,验证了几个实例,没问题

我是硬件工程师
2017-04-14 14:59
陪你听风
Rank: 1
来 自:杭州
等 级:新手上路
帖 子:5
专家分:4
注 册:2017-4-14
收藏
得分:0 
谢谢大家,我已经找到原因了。
2017-04-16 09:40
快速回复:编译通过了,但提示段错误,不知道错误原因。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040960 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved