为了账号安全,请及时绑定邮箱和手机立即绑定

如下程序,关于C语言调用数组函数该怎么改?

如下程序,关于C语言调用数组函数该怎么改?

C
喵喔喔 2022-04-17 17:10:12
#include<stdio.h>#define MAXLENGTH 1000int main(){ int a[MAXLENGTH];printf("please input the length of the array:\n");unsigned int n;int z;scanf("%d",&n);int i;printf("please input the array!\n");for(i=0;i<n;i++){ scanf("%d",&a[i]);}for (i=0;i<n;i++){printf("%d",a[i]);}z=max_subsequence_sum(a,n);printf("the maximum subsequence sum is %d\n",z );}int max_subsequence_sum(int a[], unsigned int n){int this_sum, max_sum,best_i,best_j,i,j,k;max_sum=0;best_i=best_j= -1;for (i=0;i<n;i++)//locate begin cursor{for(j=i;j<n;j++)//locate end cursor{this_sum=0;for(k=i;k=j;k++)//sum form i to jthis_sum +=a[k];if(this_sum>max_sum){//update max_sum,best_i,best_jbest_i=i;best_j=j;}}}return (max_sum);}
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

#include<stdio.h>
#define MAXLENGTH 1000
int max_subsequence_sum(int a[], unsigned int n)
{
int this_sum, max_sum,best_i,best_j,i,j,k;
max_sum=0;best_i=best_j= -1;
for (i=0;i<n;i++)//locate begin cursor
{
for(j=i;j<n;j++)//locate end cursor
{
this_sum=0;
for(k=i;k<=j;k++)//sum form i to j k=j改为 k<=j才是i到j的和
this_sum +=a[k];
if(this_sum>max_sum)
{
//update max_sum,best_i,best_j
best_i=i;
best_j=j;
max_sum=this_sum;//更新最大值

}

}
}
return (max_sum);
}
int main()
{
int a[MAXLENGTH];
printf("please input the length of the array:\n");
unsigned int n;
int z;
scanf("%d",&n);
int i;
printf("please input the array!\n");
for(i=0;i<n;i++)
{ scanf("%d",&a[i]);
}
for (i=0;i<n;i++)
{
printf("%d",a[i]);
}
z=max_subsequence_sum(a,n);
printf("the maximum subsequence sum is %d\n",z );
}



查看完整回答
反对 回复 2022-04-19
  • 1 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号