J'ai le code suivant dans Python et je tiens à le traduire en C: My for Loop ne fait rien. Pourquoi? Jusqu'à présent, j'ai: p>
3 Réponses :
func code>. strong> Je pense que cela est facilement compréhensible. Li>
-
Pourquoi déclarez-vous FUNC () CODE> avec Char code> Type de retour? Strong> Il ne faut rien retourner. Li>
- ne
ne renvoie pas code> n'importe quoi. strong> ne ne renvoie pas code> le printf code>. Pourquoi voudriez-vous faire cela? Vous voulez seulement imprimer les caractères. retour code> quitte immédiatement la fonction. LI>
ol>
Vous n'avez jamais appelé Le code> retour code> Vous avez le sens in Tout événement, puisque la valeur de retour de Func code>, donc bien sûr ça ne fait rien. L'erreur dans votre titre de question "Le contrôle peut atteindre la fin de la fonction non vide)" est parce que vous avez déclaré
Func code> pour retourner
char code>, mais la mise en œuvre ne
retourner code> n'importe quoi si
n code> est inférieur ou égal à 0 (la boucle se termine immédiatement).
printf code> n'est pas vraiment pertinente ici. Et il imprime le même nombre de panneaux de livre (
# code>) sur chaque ligne, pas un nombre croissant. Je soupçonne que vous voulez quelque chose comme (changements notés avec des commentaires inline): p>
En effet à 4. J'ai oublié une plage in int '(0, int (n))' car l'entrée donne une chaîne non pas un int. Le code devrait faire une pyramide très basique
Vous n'appelez pas
Func code>.
Avez-vous oublié d'appeler
Func code>?
De plus, votre boucle interne devrait aller jusqu'à
j code> pas
n code>.
printf ("% i \ n", i); code> devrait être
printf ("% d \ n", i); code>
Est
get_int code> fourni pour vous? Ce n'est pas une fonction standard. Sinon,
scanf code> serait utile
Ce code est probablement une bonne affaire plus compliquée qu'elle ne doit être. Vous pouvez obtenir votre n avec Printf et Scanf. Func semble ok, mais pourquoi retournez-vous un imprimeur là-bas?
La boucle interne de
Func code> retourne inconditionnellement de la fonction, de sorte que ce n'est pas une grande boucle.
@ikegami
i code> et
d code> sont synonymes comme spécifiant de conversion. Il y a un CS50.h qui fournit probablement get_int.
@Aprogrammer, je ne savais pas ça. Mais mon commentaire se tient ...
% d code> est presque universellement utilisé, donc
% d code> est beaucoup plus lisible que
% i code>. /// Ça pourrait. Ce n'est peut-être pas. C'est pourquoi j'ai demandé.
Il existe également un échange de pile séparé pour CS50 - cs50.stackexchange.com