-7
votes

Pourquoi ne contrôle pas entrer la fonction REPEAT ()?

"Réécrivez les nombres de l'entrée à la sortie. Arrêtez l'entrée de traitement après lecture dans le numéro 42. Tous les numéros à l'entrée sont des entiers d'un ou deux chiffres."

#include <stdio.h>

int main() {
    int num ;

    int repeat()
    {  
        scanf("%d",&num) ;
        if(num!=42)
        {
             printf("\n%d",num) ;
             repeat() ;
        }
        else
        {
            return num ;
        }
        getch() ;
    }

    return 0;
}

c

6 commentaires

Les définitions de fonction imbriquées ne sont pas standard C.


@Eugenesh. Pas vraiment.


@Melpomene Vous pouvez déclarer une fonction à l'intérieur d'une autre fonction. Vous ne pouvez pas définir un cependant. Stackoverflow.com/Questtions/2608158/Nestés-function-In-c


@Eugenesh. Oui, c'est ce que j'ai dit.


@melpomene alors ce que "pas vraiment" est lié? MISE À JOUR: OH, je vois que c'est à l'intérieur de sa propre définition. Manqué ce point.


Laissez-nous Continuez cette discussion en chat .


3 Réponses :


4
votes

Pourquoi le contrôle ne saisit pas la fonction REPEAT ()?

parce que principal () ne l'appelle pas.

La fonction répéter () fonction est définie à l'intérieur Main () . Qui n'est pas standard. Le déplacer de la sortie rend les choses plus claires: xxx

de ce qui précède, il est évident que principal () ne fait rien.


0 commentaires

0
votes

Vous avez créé la fonction REPEAT () mais vous n'appelez jamais aussi que vous devez transmettre NUM comme argument pour répéter () et vous attendre à ce que cela revienne.


0 commentaires

0
votes

// Merci pour l'aide

#include <stdio.h>
int repeat(int num) 
    {  
        scanf("%d",&num) ;
        if(num!=42)
        {
               printf("%d",num) ;
               repeat(num) ;
        }
    else
    {
        return num ;
    }
    getch() ;
    }

int main() {
       int num ;
       scanf("%d",&num) ;
       repeat(num) ;
       return 0;
}


0 commentaires