| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1346 人关注过本帖
标题:求各位大佬解释一下段错误,我程序里有个段错误但是找不到啊。
只看楼主 加入收藏
魂之子
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2019-12-25
结帖率:90.91%
收藏
已结贴  问题点数:10 回复次数:4 
求各位大佬解释一下段错误,我程序里有个段错误但是找不到啊。
我在网上也找了一些段错误的说明,好像主要就是数组越界,要不就是修改const的变量,但是我没发现我的代码里有段错误的东西啊,求大佬指正。

#include<stdio.h>
void bubblesort(int arr[], int n)
{
    int i, j;
      int tmp;
    for(i = 0; i < n - 1; i++)
    {
        for(j = 1; j < n; j++)//&Atilde;&iquest;×&szlig;&Ograve;&raquo;±é&pound;&not;&frac34;&Iacute;&Otilde;&Ograve;&micro;&frac12;&Ograve;&raquo;&cedil;&ouml;&micro;±&Ccedil;°×&icirc;&acute;ó&micro;&Auml;&Ecirc;&yacute;&pound;&not;&Ecirc;&sup1;&AElig;&auml;&Aring;&Aring;&micro;&frac12;&cedil;&Atilde;&Oacute;&ETH;&micro;&Auml;&Icirc;&raquo;&Ouml;&Atilde;
        {
            if(arr[j] < arr[j - 1])
            {
                tmp = arr[j];
                arr[j] = arr[j - 1];
                arr[j - 1] = tmp;
            }
        }
    }
}
int sum(int arr[], int n){
    int i,sum=0;
    for (i=0; i<n; i++){
        sum+=arr[i];
    }
    return sum;
}

int main(){
    int a[10001]={0};
    int b,k;

    scanf("%d",&b);
        int n=b;
    for (k=0; k<n; k++){
        scanf("%d",&a[k]);
    }
    bubblesort( a, n);
    int i=0;
    int sum1=sum(a,n/2);
    int sum2= sum(&a[n/2],n-n/2);
    int fsum=sum2-sum1;
    printf("Outgoing #: %d\nIntroverted #: %d\nDiff = %d",n-n/2,n/2,fsum);
   
    return 0;
}
搜索更多相关主题的帖子: for sum 错误 micro int 
2020-05-16 13:28
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1687
专家分:4253
注 册:2007-12-27
收藏
得分:0 
段错误不是编译错误,是运行错误。
你运行截图啊。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-05-16 18:55
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1687
专家分:4253
注 册:2007-12-27
收藏
得分:0 
另外,两个循环搭配不对,这样是冒不起泡的。
起码得让内循环和外循环相关才有意义吧。

[此贴子已经被作者于2020-5-16 19:00编辑过]


对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-05-16 18:58
魂之子
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2019-12-25
收藏
得分:0 
回复 3楼 forever74
https://
就是这题大佬,能帮看一眼吗?
2020-05-17 11:06
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:10 
程序代码:
#include <stdio.h>
#include <stdlib.h>

/*
void bubblesort( unsigned arr[], size_t n )
{
    for( size_t i=0; i<n-1; ++i )
    {
        for( size_t j=1; j<n-i; ++j )
        {
            if( arr[j] < arr[j-1] )
            {
                unsigned tmp = arr[j];
                arr[j] = arr[j-1];
                arr[j-1] = tmp;
            }
        }
    }
}
*/
int unsigned_cmp( const void* pa, const void* pb )
{
    unsigned a = *(unsigned*)pa;
    unsigned b = *(unsigned*)pb;
    if( a < b ) return -1;
    if( a > b ) return +1;
    return 0;
}

unsigned sum( const unsigned arr[], size_t n )
{
    unsigned result = 0;
    for( size_t i=0; i!=n; ++i)
        result += arr[i];
    return result;
}

int main( void )
{
    unsigned n;
    scanf( "%u", &n );

    unsigned a[100000];
    for( size_t i=0; i!=n; ++i)
        scanf( "%u", &a[i] );

    // bubblesort( a, n);
    qsort( a, n, sizeof(*a), &unsigned_cmp );

    unsigned sum1 = sum( a, n/2 );
    unsigned sum2 = sum( &a[n/2], n-n/2 );
    unsigned fsum = sum2-sum1;
    printf("Outgoing #: %u\nIntroverted #: %u\nDiff = %u\n", n-n/2, n/2, fsum );
}
2020-05-17 12:04
快速回复:求各位大佬解释一下段错误,我程序里有个段错误但是找不到啊。
数据加载中...
 
   



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

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