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

写一个函数,计算一个整形数组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
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
可以有负数么?


[fly]存在即是合理[/fly]
2012-12-16 23:15
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:20 
程序代码:
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
          {                     //加括号,不然每次j都又为0,就变成死循环了
                c[j]=a[j];
            s[i]=c[j]+s[i];
            j=0;
         }
       }
    }

I have not failed completely
2012-12-17 19:04
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
程序代码:
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
          {                     //加括号,不然每次j都又为0,就变成死循环了
                c[j]=a[j];
            s[i]=c[j]+s[i];
            j=0;
         }
       }
    }

I have not failed completely
2012-12-17 19:04
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
不好意思手一抖多发了一个...
建议把if和else语句的范围都用括号括起来,
至少应在作用域和非作用域之间打个回车

I have not failed completely
2012-12-17 19:07
双子若尘
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.017699 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved