| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 522 人关注过本帖
标题:数组平衡
取消只看楼主 加入收藏
双子若尘
Rank: 1
来 自:福州
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-12-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
数组平衡

写一个函数,计算一个整形数组A的中心分割点。假设某个分割点的下标为k,那么S1= A[1]+A[2]+…+A[k], S2=A[k+1]+A[k+2]+…+A[n],让S1和S2差距最小的下标K即为数组A的中心分割点,若有多个中心分割点,选择值小的。
    第一行输入一个整数n,代表数组元素个数。(n<=10000)
    第二行输入n个整数,每个数的范围[0,1000]。
    输出题目中所述的中心分割点的值,若有多个中心分割点,选择值小的。


样例输入
   5

   1 1 1 2 3


样例输出
3

请问错在哪呢,为什么没有输出



#include<stdio.h>
#include<math.h>
int main()
{
    int i=0,j=0,k=0,l,a[10000],n,s[10000],c[10000];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    scanf("%d",&a[i]);
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n;j++)
        {
            c[j]=0;
            s[i]=0;
            if(j<=i)
                c[j]=a[j]*(-1);
            else
                c[j]=a[j];
            s[i]=c[j]+s[i];
            j=0;
        }
    }
    k=0;l=fabs(s[0]);
    for(i=0;i<n-1;i++)
    {
        if(l>fabs(s[i]))
        {
            l=fabs(s[i]);
            k=i;
        }
    }
        printf("%d\n",k+1);
        return 0;



     
}

搜索更多相关主题的帖子: 分割 include 平衡 元素 
2012-12-16 23:00
双子若尘
Rank: 1
来 自:福州
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-12-13
收藏
得分:0 
谢啦。不过我改的是else
          {    c[j]=a[j];
         }
            s[i]=c[j]+s[i];
       }
再将S[10000]={0}.C[10000]={0}
2012-12-18 23:11
快速回复:数组平衡
数据加载中...
 
   



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

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