所以我完全忘记了如何从不同的函数中打印出一个return语句并将其显示在我的main函数中。我注释了我尝试打印函数return语句。我的以下代码如下:
include <stdio.h>
int main()
{
int array[1024];
int i;
int num;
int size;
printf("How large is the Array: ");
scanf("%d", &num);
for( i = 0; i < num; i++)
{
scanf("%d",&array[i]);
}
printf("\nArray contains: ");
for (i = 0; i < num; i++)
{
printf("%d",array[i]);
}
printf("\nSubsequence: ");
for (i = 0; i < num; i++)
{
//printf("%d",maxArray(max_so_far));
/// //I want to print max_so_far right here//////
}
printf("\n");
return 0;
}
int maxArray(int array[], int size)
{
int max_so_far = 0;
int max_end = 0;
for (int i = 1; i < size; i++)
{
max_end = max_end + array[i];
if (max_end < 0)
max_end = 0;
if(max_so_far < max_end)
max_so_far = max_end;
}
return max_so_far;
}
答案 0 :(得分:0)
for (i = 0; i < num; i++)
{
printf("%d",maxArray(arrayYouWantToPass, sizeYouWantToPass));
/// just call the function with right parameter and print it//////
}
就像
一样for (i = 0; i < num; i++)
{
printf("%d",maxArray(array, 2));
//printf("%d",maxArray(array, size)); or this if size already have a value
/// just call the function with right parameter and print it//////
}
但我认为你的代码在maxArray函数中存在问题。你传递了一个数组,并想在之后返回值。但你把数组放在一个循环中。这只会运行一次因为它会在第一次循环后返回
答案 1 :(得分:0)
问题在于印刷品。
printf("%d",maxArray(array, size));
你需要包括尺寸,就像你要求的那样,和 将数组放在第一个参数上。
答案 2 :(得分:0)
要从上面的帮助中回答我自己的问题,打印出return语句并在main中调用它,我必须这样做:
printf("\nSubsequence: ");
for (i = 0; i < num; i++)
{
printf("%d",maxArray(array,num)); //this is the way to print out what I wanted
}
printf("\n");