C++ koncówka kodu || Początkujący

0

Witam mam problem z końcówką kodu :

using namespace std;

int main() {

int a[6]={1,2,3,4,5,6};
int i = 0;
int x;
int parzysta=0;
int suma;

for(;a[i]<a[6];i++){
	for(int potega=1;potega<1024;potega*=2){
	x=potega%10;
	for(int parzysta=0;parzysta<=6;parzysta+=2){
	cout << a[i] << x << parzysta << "  ";	
	
	}}}}
	

Chciałbym jeszcze do tego dać warunek że wyświetlają się tylko liczby których suma cyfr jest podzielna na przykład przez 4. I wpadłem na pomysł żeby na końcu dać dodatkową zmienna suma która będzie sumą cyfr czyli "int suma=a[i]+x+parzysta;" i dać warunek if(suma%4==0) to wypisujemy te liczby , ale coś nie wychodzi. ;/

Proszę bardzo o pomoc

1

Podaj cały kod, co tam Próbowałes i Wytłumacz co to ma robić.

0

Jak masz tablicę int t[6];, to wolno się odwoływać do t[0], t[1], ..., t[5]. Ty w swoim kodzie robisz t[6] (w warunku pętli), co jest niepoprawne (nie wspominając, że ta tablica to w ogóle nie jest potrzebna do niczego).

0
#include <iostream>
using namespace std;

int main() {

int a[]={ 1 , 2 , 5 , 6 , 7 , 9 };
int i = 0;
int x;
int parzysta=0;
int suma;

for(;a[i]<a[5];i++){
        for(int potega=1;potega<=64;potega*=2){
            x=potega%10;
                for(int parzysta=0;parzysta<=6;parzysta+=2){
                    suma=(a[i]+x+parzysta);
                        if(suma%7==0){
                            cout << a[i] << x << parzysta<< "  ";
    }}}}}

To jest cały kod , chce żeby cyfra setek była z wektora a[] , cyfra dziesiątek potęgami 2 a cyfra jedności parzysta a suma cyfr drukowanych podzielna przez 7

0

No i w czym problem? Bo chyba teraz tak właśnie działa.

0

Chcesz uzyskać taki wynik:
124 142 214 284 520 610 626 644 680 716 786 914 984?

zatem:

for(;i<6;++i){
        for(int potega=1;potega<=8;potega*=2)

i wywal x

PS.Jakby ktoś się pytał - 1 to 2^0, więc warunek chyba spełniony.

0

Problem jest w wyrażeniu x=potega%10 , gdzie dla wartości potega powyżej 10 x może przyjmować nieprawidłowe wartości ( np. 6 )
Lepiej jest to napisać w prostszej postaci:

for( const auto& a : {1,2,5,6,7,9} )
{
    for( const auto& b : {1,2,4,8} )
    {
        for( const auto& c : {0,2,4,6,8} )
        {
            if( (a+b+c)%7 == 0 ) cout << a << b << c << "\n";
        }
    }
}
2

A ja się pytam: co ten kod właściwie ma robić?
Z tak napisanego kodu trudno to ustalić, szczególnie, że najprawdopodobniej jest niepoprawny (z jakiegoś powodu wątek został założony).
Jeśli rozwiązujesz jakieś zadanie, podaj jego pełną treść (najlepiej jako link do zadania).

0
Serechiel napisał(a):

Chcesz uzyskać taki wynik:
124 142 214 284 520 610 626 644 680 716 786 914 984?

zatem:

for(;i<6;++i){
        for(int potega=1;potega<=8;potega*=2)

i wywal x

PS.Jakby ktoś się pytał - 1 to 2^0, więc warunek chyba spełniony.

No właśnie chciałbym uzyskać wynik : 124 142 214 248 284 518 520 588 610 626 644 680 716 786 914 948 984
ale brakuje mi albo jest nadmiar tych liczb

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