La tâche que je faisais est d'entrer 5 nombres aléatoires à 5 chiffres, de les comprimer et de leur faire une somme. Alors, comment pouvons-nous les compresser? Nous nous débarrassons des deuxième et quatrième chiffre. Par exemple 12345 à 10305.
C'était mon code. p> alors pourquoi mon pour code> la boucle fonctionne seulement deux fois au lieu de cinq? p> p> p>
4 Réponses :
Vous pensez vraiment cela. le voir en action ici . p> p>
pas vraiment, l'homme que j'ai besoin d'insérer 5 fois 5 numéros différents qui sont 5 chiffres et exactement ce que je suis triste "compresser" juste pour obtenir le premier troisième et cinquième numéro par leurs propres positions comme dixièmes de cent et milliers, puis calculez la somme .
@Starterpack c'est exactement ce que cela fait.
Regardez, pas la somme de 1 + 3 + 5 mais 1000 + 300 + 5 comprenez-vous maintenant comment?
@Starterpack j'ai mal compris. Corrigé ci-dessus.
@StarterPack Votre message dit que 12345 code> devrait produire
135 code>, pas
10305 code> comme votre commentaire suggère. Lequel est-ce?
10305 Mais d'accord, c'est peut-être que mon mal j'ai un très mauvais anglais .. désolé cher.
@Starterpack j'ai mis à jour pour le faire à la fois. Ne vous inquiétez pas pour les Anglais - Je parle exactement une langue couramment.
Il suffit de faire j dans la deuxième boucle sur
j <5 code> et vous pouvez obtenir une somme de cinq numéros compressés à 5 chiffres pour
n code > fois. P>
Ce travail mais pourquoi je ne suis pas? Quand je veux mettre à l'échelle avec l'int i?
Ok je comprends mon erreur mon est 0 c'est donc nous allons et le 0 <0 puis sauvegardez-vous sur i et allez sur i ++ puis exécutez 0 <1 et j ++ viennent 1 <1 et encore nous faisons la même erreur?
Les erreurs que j'ai mentionnées dans l'extraites étaient le seul problème de repos tout allait bien. Veuillez vous reporter à l'extrait ci-joint.
// only two loops are required for(int i=0;i<5;i++){ scanf("%d",&number5); sum=0; while(number5){ num1=number5/10000; num1*=100;//it should be 100 isntead of 10000 num3=(number5%10000)%1000/100; num3*=10;// it should be 10 istead of 100 numb5=(number5%10000)%1000%100%10; numb5*=1; number5=0; } sum=num1+num3+numb5; printf("%d\n",sum); }
Son ok je le répare déjà mais ty pour l'aide que j'apprécie.
#include <stdio.h> #include <stdlib.h> int main() { int n=5,i,j,number5,num1,num3,numb5; int sum=0; for(i=0;i<n;i++) { scanf("%d",&number5);//runs 5 times to get 5 inputs sum+=(number5/10000)*10000; // take the value of first position sum+=((number5/100)%10)*100; // take the value of third position sum+=(number5%10);// take the value of fifth position } printf("%d",sum); }
Compresse? Qu'est-ce que ça veut dire?
@Eugenesh. Op signifie supprimer les chiffres. "Compresser" n'est pas vraiment le mot juste ici.
Pourquoi
j la condition dans le second
pour code> boucle?
L'énoncé
numb5 = (numéro5% 10000)% 1000% 100% 10; code> est mathématiquement identique à
numb5 = numéro5% 10; code>.
Si vous souhaitez saisir 5 numéros, tout ce dont vous avez besoin est une boucle qui fonctionne pour 5 itérations. Il n'y a pas besoin de 3 boucles imbriquées.
@ 3Dave tu as raison hein, et désolé pour mon mauvais anglais. Et que J
@interjay, j'ai besoin d'entrer 5 fois 5 numéros à 5 chiffres.