-1
votes

Pourquoi ma boucle "for" ne fonctionne que deux fois?

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. xxx

alors pourquoi mon pour la boucle fonctionne seulement deux fois au lieu de cinq?


7 commentaires

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 boucle?


L'énoncé numb5 = (numéro5% 10000)% 1000% 100% 10; est mathématiquement identique à numb5 = numéro5% 10; .


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.


4 Réponses :


0
votes

Vous pensez vraiment cela. xxx

le voir en action ici .


7 commentaires

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 devrait produire 135 , pas 10305 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.



0
votes

Il suffit de faire j dans la deuxième boucle sur j <5 et vous pouvez obtenir une somme de cinq numéros compressés à 5 chiffres pour n fois.


2 commentaires

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?



0
votes

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


1 commentaires

Son ok je le répare déjà mais ty pour l'aide que j'apprécie.



0
votes
#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);
}

0 commentaires