首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个简单的c程序,帮忙看上吧,错在哪

2013-02-05 
一个简单的c程序,帮忙看下吧,错在哪?一个有升序的数组 x[n], 计算 x[0]+x[1]+...x[i]和 x[k]+x[k+1]+...

一个简单的c程序,帮忙看下吧,错在哪?
一个有'升序'的数组 x[n], 计算 x[0]+x[1]+...x[i]和 x[k]+x[k+1]+...x[n-1] 相等的总个数,gcc编译器,未报错, 但显示不出结果来。 


  1 #include<stdio.h>
  2 
  3 int num(int [], int n);
  4 
  5 int main()
  6 {
  7         int x[100];
  8         int i;
  9         for( i = 0; i < 100; i++ )
 10                 x[i] = i;
 11 
 12         printf("%d\n",num( x,100));
 13 }
 14 
 15 int num(int x[], int n)
 16 {
 17         int j, k, sum;
 18         j = k = sum = 0;
 19 
 20         int pre_sum = x[j];
 21         int suf_sum = x[99-k];
 22 
 23         while( j < 100 && k < 100)
 24         {
 25                 if (pre_sum > suf_sum)
 26                 {
 27                         k++;
 28                         suf_sum += x[99-k];
 29                 }
 30                 else if(pre_sum < suf_sum)
 31                 {
 32                         j++;
 33                         pre_sum += x[j];
 34                 }
 35                 else
 36                         sum++;
 37         }               
 38         return sum;
 39 }
 40 
c
[解决办法]
死循环, 到这里i,j都不动了:




 35                 else
 36                         sum++;

[解决办法]
你的程序中num(int x[], int n)里的while循环中,
如果 pre_sum == suf_sum 了,
就会出现 k和j都不再增加,只有 sum 在不停的增加,
进入了死循环
[解决办法]
死循环。
  楼主要学会自己调试程序, 编译器不单单只是让你写代码的。

热点排行