Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Problem: Funkcje rekurencyjne sum w tablicy.


metin123

Rekomendowane odpowiedzi

Opublikowano
Treść
Napisz program który losuje 100 elementów z przedziału od 50 do 100 liczby całkowite,
sumę wszystkich liczb nieparzystych, parzystych, podzielnych przez 3, 10
wydrukuje wylosowane liczby w kolejności odwrotnej, wydrukuje wszystkie sumy
obliczy sumę sum, tą sumę ogólną rozbije na cyfry i zapisze je do drugiej tablicy.
 
Wgl tego nie ogarniam, nie chce gotowego rozwiązania no ale nwm jak zacząć :/
Zrobić coś zrobiłem, ale źle xD
 

#include <iostream>
#include <cstdlib>
#include <cmath>
#include <ctime>      
using namespace std;
int nieparzyste(int n, int *Tab)
{
	for(int k=0; k<101;k++)
	{
	if (Tab[k]%2==0) return Tab[k];
	else return n;
	}
}  
int parzyste(int n, int *Tab)
{
	for(int k=0; k<101;k++)
	{
	if (Tab[k]%2!=0) return Tab[k];
	else return n;
	}
}  
int trzy(int n, int *Tab)
{
	for(int k=0; k<101;k++)
	{
	if (Tab[k]%3==0) return Tab[k];
	else return n;
	}
}  
int dziesiec(int n, int *Tab)
{
	for(int k=0; k<101;k++)
	{
	if (Tab[k]%10==0) return Tab[k];
	else return n;
	}
}  
	
int main()

{
	const int max=1000;
	srand(time(NULL));
	int p=50, q=150; int T[max]={0};
	for(int i=0; i<101; i++) T[i]=p+rand()%(q-p+1);
	for(int i=101; i>0; i--) cout<<T[i]<<" ";
	cout<<endl;
	cout<<"Suma liczb nieparzystych: "<<nieparzyste(i,*(T+max));
	cout<<"Suma liczb parzystych: "<<parzyste(i,*(T+max));
	cout<<"Suma liczb podzielnych przez 3: "<<trzy(i,*(T+max));
	cout<<"Suma liczb podzielnych przez 10: "<<dziesiec(i,*(T+max));
	cout<<"Suma sum: "<<nieparzyste(i,*(T+max))+parzyste(i,*(T+max))+trzy(i,*(T+max))+dziesiec(i,*(T+max));
	

 system ("pause");
return 0;
}

 

Opublikowano

Ten kod to bałagan... 

 

1) suma nieparzystych powinna zwracać sumę nieparzystych, a nie pierwszą wartość parzystą. Stwórz zmienną (nadaj jej zero), dajesz warunek taki jak dałeś, tylko odwrotny (!= zamiast ==). Jeśli warunek się spełni, dodajesz wartość do sumy. A na końcu zwracasz wartość.

 

2) W parzystych na odwrót jak w nieparzystych. Jeśli reszta z dzielenia przez dwa jest zero, dodaj wartość tablicy do sumy.

 

3) w reszcie tak jak w parzystych.

 

4) pętle - przypominam, że zmienne w tablicy indeksujemy od 0 do n-1, gdzie n to ilość elementów tablicy.

 

 

 

Naucz się podstaw, od tego zacznij.

 

PS W temacie wyczytałem "rekurencyjne". Mają być rekurencyjne?


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

troche sobie skomplikowales robote

#include <iostream>
#include <cmath>
#include <cstdlib>
#include <vector>
using namespace std;

int main()
{
    srand(time(0));
    int sumaNieparzystych = 0;
    int sumaParzystych = 0;
    int sumaPrzez3 = 0;
    int sumaPrzez10 = 0;
    int wylosowana = 0;
    
    vector<int> liczby;
    
    for(int i = 0; i < 101; ++i)
    {
        wylosowana = rand()%50+51;
        if(wylosowana % 2 == 0)
            sumaParzystych+=wylosowana;
         if(wylosowana % 2 != 0)
            sumaNieparzystych+= wylosowana;
         if(wylosowana % 3 == 0)
            sumaPrzez3+=wylosowana;
         if(wylosowana % 10 == 0)
            sumaPrzez10+=wylosowana;
            
        liczby.push_back(wylosowana);
    }
    for(int i = 100; i>=0; --i)
        cout << "Wylosowane: " << liczby[i] << endl;
    
    
    cout << sumaParzystych << endl << sumaNieparzystych << endl
    << sumaPrzez3 << endl << sumaPrzez10 << endl;

    int ogolnaSuma = sumaParzystych+sumaNieparzystych+sumaPrzez3+sumaPrzez10;
    cout << "Suma sum: " << ogolnaSuma <<endl;
    string cyfry = to_string(ogolnaSuma); //ogolna suma bedzie max 5 cyfrowa
    char tCyfry[5]; //tablic cyfr
    for(int i = 0; i < 5; ++i)
        tCyfry[i]=cyfry[i];
        
    return 0;
}

http://ideone.com/1VhnBf

 

@@pisalem w ideone to.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...