猿问

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

#include<stdio.h>
#define MAXLENGTH 1000
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 );
}

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
this_sum +=a[k];
if(this_sum>max_sum)
{
//update max_sum,best_i,best_j
best_i=i;
best_j=j;

}

}
}
return (max_sum);
}

喵喔喔
浏览 103回答 1
1回答

慕的地6264312

#include<stdio.h>#define MAXLENGTH 1000int 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_jbest_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 );}
随时随地看视频慕课网APP
我要回答