2017-04-19 8 views
-3

別の関数からreturn文を出力して、それを私のmain関数に表示する方法を完全に忘れてしまいます。私は、関数のreturn文を出力しようとしているとコメントしました。私の次のコードは次のとおりです。ちょうどCのメインで関数return文を出力するには?

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////// 
} 

よう

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

'maxArray'は何をしますか? – BLUEPIXY

+0

これは無効なコードです。関数は使用前に宣言しなければなりません。 – Olaf

+0

最大配列は、サブシーケンスの合計の内容を出力します。 @BLUEPIXY – CodeFreak

答えて

0
for (i = 0; i < num; i++) 
{ 
    printf("%d",maxArray(arrayYouWantToPass, sizeYouWantToPass)); 
    /// just call the function with right parameter and print it////// 
} 

を私はmaxArray機能で、あなたのコードに問題があると思います。配列を渡した後に値を返す必要があります。配列にループを入れます。これは最初のループの後に戻るため1回だけ実行されます

0

問題は印刷されています。

printf("%d",maxArray(array, size)); 

あなたfucntionは、最初のパラメータに配列を入れ にあなたを求めて、そしてれるようにあなたは、サイズを含める必要がありました。

+1

あなたは可変サイズに何も載せていません。それを使用する前に注意してください。 – BlazeChill

0

は、return文をプリントアウトし、メインでそれを呼び出すために上記のヘルプから自分の質問に、答えるために、私はそうのようにしなければならなかった:

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"); 
関連する問題