1298150336 发表于 2020-3-31 13:59:30

礼貌求助 关于“分治”算法求最大子列和问题

这段代码运行第二行为什么不输出请输入%d个数,而要在第二行输入一个值才会在第三行显示输入%d个数,而且第三行输出完了程序直接就结束了(我的目的是在第一行输入k的值,第二行输入k个数据) 非常感谢帮助
#include<stdio.h>
int max(int a[],int n);
int main()
{int i,k,result;
int b;
printf("请选择输入多少个数:");
scanf("%d ",&k);
printf("请输入%d个数:",k);
for(i=0;i<k;i++)
scanf("%d",b);
result=max(b,k);
printf("%d",result);
return 0;}
int max(int a[],int n)
{int maxsum,thissum,j;
maxsum=thissum=0;
for(j=0;j<n;j++)
{thissum+=a;
if(thissum>maxsum)
          maxsum=thissum;
else if(thissum<=0)
          thissum=0;}
return maxsum;}

1298150336 发表于 2020-4-1 20:58:25

本人已找出错误,感谢大家浏览及帮助

永恒的蓝色梦想 发表于 2020-3-31 14:02:01

兄弟,你这个代码可读性有点差……

1298150336 发表于 2020-3-31 14:04:43

永恒的蓝色梦想 发表于 2020-3-31 14:02
兄弟,你这个代码可读性有点差……

不好意思,数据结构是小白

永恒的蓝色梦想 发表于 2020-3-31 14:07:16

1298150336 发表于 2020-3-31 14:04
不好意思,数据结构是小白

不是数据结构的问题,你的代码可读性太差了
for(i=0;i<k;i++)这个for循环的循环体在哪里啊???

1298150336 发表于 2020-3-31 14:10:30

永恒的蓝色梦想 发表于 2020-3-31 14:07
不是数据结构的问题,你的代码可读性太差了
for(i=0;i

scanf语句
页: [1]
查看完整版本: 礼貌求助 关于“分治”算法求最大子列和问题