Je dois écrire un programme dans lequel la valeur entière est entrée à partir de l'utilisateur et la chaîne doit être affichée à plusieurs reprises. Mais je reçois des erreurs.
3 Réponses :
Edit2: Dans les commentaires d'origine d'origine, des boucles de tout type sont interdites dans cette affectation.
Utiliser la récursion. p> alors vous pouvez appeler cela de votre principal Programme comme suit: P> printN(userInput, "Hi my name is ricky bobby");
La récursivité est surchargée pour cette tâche, lorsqu'une boucle simple suffira.
@RemyleBeau Veuillez lire le commentaire d'Original Askers, car ils indiquent très clairement que les boucles sont interdites dans son projet d'école.
@RemyleBeau sauf que l'OP a dit dans les commentaires que les boucles ne sont pas autorisées. Ouais, allez à la silhouette ...
std :: string code> n'a pas de constructeur qui répète une chaîne n fois (elle en a une pour répéter un seul caractère N fois). Ce dont vous avez besoin est une boucle à la place, par exemple:
L'adresseur original a déclaré que les boucles ne sont pas autorisées. Cela ne résout pas leur problème.
J'ai posté cette réponse avant de voir le commentaire sur cette restriction. J'ai répondu à la question actuelle qui a été posée, selon les directives de Stackoverflow. Ces restrictions n'étaient pas incluses dans la question.
Yup, c'est la façon la plus correcte de le faire sans restrictions.
Si vous ne pouvez pas utiliser de boucle, vous pouvez utiliser Notez que goto code> pour contourner la restriction:
goto code> est largement considérée comme mauvaise pratique. p> p>
AYXAN: Votre solution est acceptée en mission. Merci!
Goto est une façon assez non recommandée de faire ça
@Borissokolov La restriction est tout à fait irréaliste de toute façon. Dans le code réel, vous utiliseriez une boucle et avec la restriction donnée, goto code> est honnêtement le moyen le plus propre d'atteindre l'objectif (compte tenu de la taille du code)
@AYXAN, oui. Nous ne connaissons pas le but du laboratoire :)
@ user7377353 La chose est que ce type de réponse pourrait être utilisé pour toute question indiquant "Je ne peux pas utiliser de boucle". Cela prendrait une patience et beaucoup de temps libre à gaspiller de manière à proposer des solutions utilisant goto code>. Alors, qu'est-ce que vous apprenez vraiment de cela, sauf pour venir avec du code spaghetti pour résoudre des problèmes résolvables à l'aide des idiomes en boucle appropriées?
@Paulmckenzie: Je vais garder cela à l'esprit.
Ne regardez pas maintenant, mais cela littéralement est i> une boucle.
@CodyGray Apparemment, cela suffit à tromper tout le système de vérification automatique de l'instructeur d'OP utilise :-)
Je considérerais cela une boucle ..
Que croyez-vous
string (n, "bien fait"); code> devrait réellement faire? Il n'y a pas de telles constructoe pour
std :: string code>. Utilisez simplement une boucle.
Imprimer bien fait n fois
Où avez-vous défini
string code> pour faire cela?
Le constructeur que vous envisagez de construire une chaîne avec
N code> fois un seul caractère i>. Par exemple,
std :: string (3, 'a') code> est une chaîne équivalente à
"AAA" code>. Cela ne fonctionne que avec des caractères, pas des littéraux à chaîne.
Alors, comment puis-je réparer le code en utilisant n fois?
"Comment répéter la chaîne." - Utilisez une boucle. Imprimez la chaîne n'importe quel nombre de fois que vous voulez -
N code> semble être ce que vous voulez, alors allez-y avec ça. Un simple
pour code> boucle devrait faire.
Il doit être sans utiliser aucune sorte de boucle..et je ne sais pas autre que la boucle
"Il doit être sans utiliser de boucle" - maintenant c'est juste idiot / stupide. Vous voulez faire
foo code>
n code> fois, la chose naturelle est d'écrire une boucle. Exiger quoi que ce soit d'autre, il suffit de mettre des restrictions arbitraires et stupides sur la solution.
La récursion est-elle autorisée?
@Jesperjuhl: Je sais que c'est le défi de la mission.
@Mpops: désolé, je ne sais pas quelle récursion est
@ user7377353 De plus, vous devez définitivement mettre cette restriction dans la question elle-même. C'est la chose la plus triviale à faire dans n'importe quel langage de programmation et si une caractéristique fondamentale de cette langue est interdite dans votre mission, nous devrions savoir. Toute autre restriction?
@ user7377353 OK. Si nous sortons du royaume de la santé mentale, une solution impliquant des étiquettes et
goto code> être ok? Qu'en est-il de
setJMP code> /
longjmp code>? Est-ce que la récursive est ok? Qu'en est-il de simplement dérouler la boucle et de faire
foo code>
n code> fois en série?
@Cops: pas d'autres restrictions.
@ user7377353 "Il doit être sans aucune sorte de boucle..et je ne sais pas autre que la boucle" I> c'est une exigence extrêmement idiote et irréaliste. Jouez-vous code golf i>?
@ πννταῥεῖ: Désolé, mais c'est l'exigence ... c'est le défi qui nous est donné.
@ user7377353 "Je ne sais pas quelle récursion est" i> Je pense que cette mission / tâche vous a été donnée dans le cadre de la récursivité d'apprentissage .. Votre instructeur n'a-t-il sérieusement pas donné de notes ou de rien? Ou avez-vous manqué une classe? De toute façon, cette question est difficile à répondre sans le contexte de votre cours.
Y a-t-il une liaison sur la taille
n code> peut obtenir? Je veux dire une réponse folle est si (n <2) COUT "Bien fait"; Si (N <3) COUT "Bien fait"; Si (N <4) "Bien fait"; ...
@ user7377353 Si vous ne pouvez pas utiliser de boucle et que vous ne savez pas quelle récursion est, alors que pouvez-vous utiliser? Quelle est l'affectation réelle? Pouvez-vous Modifier Votre question à fournir cela? Je vote pour fermer cette question comme "trop large" sans cette clarté.
std :: vecteur s (n); STD :: Fill_N (S.Begin (), N, "Bien fait"); Code> Pas de boucles.
@RemyleBeau: - L'affectation consiste à imprimer bien fait autant de fois l'entrée de l'utilisateur sans utiliser de boucle
@Paulmckenzie ou vous pouvez utiliser un
std :: ostream_itéator code> au lieu de perdre la mémoire remplissant un
std :: vecteur code>, par exemple:
std :: Fill_N (STD :: Ostream_iterator (std :: cout, ""), n, "bien fait"); code>
De la réponse acceptée, il semble que la question doit être reproductible à utiliser
goto code>. Si c'est ce que cette question se résume, alors je pitié quiconque est dans cette classe donnant une mission comme celle-ci.