Jak dodać zmienne w pętli?

0

Witam

To mój pierwszy post i jeden z pierwszych problemów z kodem.

Użytkownik wprowadza liczbę, z której program ma pomnożyć co drugą cyfrę od końca i dodać wyniki do siebie.
Udało mi się wyodrębnić co drugą liczbę ale po wielu próbach nie udało mi się
znaleźć rozwiązania, które dodawałoby wyniki z pętli (secTolastDigitx2)

Z góry dziękuję.

#include <cs50.h>
#include <stdio.h>

int main(void) {
    
    printf ("Number: ");
    int card_no = get_long_long();
    if (card_no<=0) { 
        printf("Please enter positive integer");
    }
    
            int card_noDiv10;
            card_noDiv10 = card_no/10;
            printf("%d\n",card_noDiv10);
        
        int startingSecLastDigit = (card_noDiv10 % 10)*2;
        printf("co druga liczba razy 2 : %d\n", startingSecLastDigit);
        
        
         while (card_noDiv10>0) 
         {
        
        card_noDiv10=card_noDiv10/100; //przesuwa przecinek o dwa miejsca
        printf ("numer karty obciety : %d\n",card_noDiv10);
     
        int secTolastDigitx2 = (card_noDiv10 % 10)*2;//zwraca liczbe po przecinku czyli reszte z dzielenia przez 10
        printf("co druga liczba razy 2 : %d\n", secTolastDigitx2);
        
2

Po 1: Po co cs50.h, na pewno nie jest on tutaj potrzebne, cokolwiek by to nie było?
Po 2: int wczytujesz funkcją nazywającą się get_long_long?? Albo long long, albo int?
Po 3: Prawda jest taka, że ja wciąż nie wiem, co chcesz osiągnąć. Możesz opisać to jaśniej, najlepiej na przykładzie? "pomnożyć co drugą cyfrę od końca" – pomnożyć te cyfry przez siebie? Przez stały czynnik? "Udało mi się wyodrębnić co drugą liczbę" – co to jest "co druga liczba"?

PRZYPUSZCZAM, ale pewien nie jestem, że chcesz wziąć do drugą cyfrę od końca, pomnożyć każdą z nich przez 2, a następnie wszystkie te tak pomnożone cyfry do siebie dodać. No to tak:

    #include <stdio.h>
     
    int main(void) {
    	unsigned long long n;
    	printf("Proszę wpisać liczbę naturalną 0 <= n <= 2^64-1:\n");
    	scanf("%llu", &n);
     
    	unsigned long long suma = 0;
    	n /= 10;
    	while(n > 0) {
    		unsigned long long pomnozona_cyfra = (n%10)*2; 
    		n /= 100;
     
    		printf("Kolejna pomnożona cyfra: %llu\n", pomnozona_cyfra);
    		suma += pomnozona_cyfra;
    	}
    	printf("Suma ww. pomnożonych cyfr: %llu\n", suma);
     
    	return 0;
    }

Jak np. wpiszesz temu programowi 12345, to weźmie z niego cyfry 4 oraz 2, pomnoży je przez 2 i doda: wychodzi 4*2 + 2*2 = 8 + 4 = 12.

Przeanalizuj go proszę.

EDIT: Przepraszam, źle zrobiłem powtarzanie pytania o liczbę jeśli wpisana liczba jest zła. Poprawię za chwilę.

0
  1. CS50.h to biblioteka kursu CS50 skad pobierana jest funkcja get_long_long. CS50 to kurs na edx.org, ktory aktualnie przerabiam.
  2. Jak wyżej.
  3. Twoje przypuszczenia są jak najbardziej słuszne. To moje pierwsze zmagania z kodem i sam czasami nie wiem co chcę osiągnąć :)

Twój kod robi robotę. Dzięki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1