2017-04-19 2 views
-3

Donc, j'oublie complètement comment imprimer une déclaration de retour d'une fonction différente et l'afficher dans ma fonction principale. J'ai commenté hors de ma tentative d'imprimer la déclaration de retour des fonctions. Mon code suivant est la suivante:Comment imprimer une déclaration de retour de fonctions dans main en C?

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

Qu'est-ce que 'maxArray' faire? – BLUEPIXY

+0

Ce code est incorrect. La fonction doit être déclarée avant l'utilisation. – Olaf

+0

Le tableau Max affichera le contenu de la somme de la sous-séquence. @BLUEPIXY – CodeFreak

Répondre

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

comme

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

mais je pense qu'il ya un problème avec votre code en fonction maxarray. vous avez passé un tableau et souhaitez renvoyer une valeur après. mais vous mettez un tableau dans une boucle. Cela ne s'exécutera qu'une seule fois car il reviendra après la première boucle

0

Le problème est sur l'impression.

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

vous nécessaire d'inclure la taille, comme votre fucntion vous demande, et mettre le tableau sur le premier paramètre.

+1

vous ne mettez rien sur la taille variable. Prenez soin de cela avant de l'utiliser. – BlazeChill

0

Pour répondre à ma propre question de l'aide ci-dessus, pour imprimer la déclaration de retour et l'appeler dans le principal, je devais le faire comme:

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");