eMatematikas Prisijunk Forumas Užduotys Testai Pradžia

Kiek kartu pasikartoja skaicius masyve?Reikia paaiskinimo.C++


Sveiki,tarkim turime mas[5]={3,2,3,2,1}.Kaip rasti kiek kartu konkretus skaicius pasikartoja masyve ?

Susikurk kintamąjį kuriame saugosi pasikartojimų skaičių. Tada cikle eik pro visus masyvo elementus ir kiekvienoje iteracijoje tikrink ar masyvo elementas lygus kažkokiam konkrečiam konkrečiam skaičiui. Jei pasikartoja, tai prie to pradžioje aprašyto kintamojo pridėk 1.

valdas3Susikurk kintamąjį kuriame saugosi pasikartojimų skaičių. Tada cikle eik pro visus masyvo elementus ir kiekvienoje iteracijoje tikrink ar masyvo elementas lygus kažkokiam konkrečiam konkrečiam skaičiui. Jei pasikartoja, tai prie to pradžioje aprašyto kintamojo pridėk 1.

pakeista prieš 11 m

Nelabai suprantu ką nori padaryti. Nori suskaičiuoti kiek masyve yra pasikartojančių skaičių? Jei taip, tai tada tai galima padaryti išrikiavus masyvą ir tada einant per masyvą tikrinti ar i-tasis ir (i+1)-itasis elementai yra lygus. Na pvz., išrikiavus masyvą M={3,2,3,2,1,2} gauname N={1, 2, 2, 2, 3, 3}. Masyve susidaro grupės vienodų skaičių, tereikia suskaičiuoti kiek kiekvienoje grupėje yra narių. Bet manau, kad galima kaip nors paprasčiau išspręsti šį uždavinį.

brilliant
valdas3Susikurk kintamąjį kuriame saugosi pasikartojimų skaičių. Tada cikle eik pro visus masyvo elementus ir kiekvienoje iteracijoje tikrink ar masyvo elementas lygus kažkokiam konkrečiam konkrečiam skaičiui. Jei pasikartoja, tai prie to pradžioje aprašyto kintamojo pridėk 1.


Na taip išeitų jei iš anskto žinau masyvo skaičius.O jei ne?Atsiprašau už durnus klausimus,gal kažko nesupratau,dar tik mokaus. Jei konkrečiai,sprendžiu šitą uždavinį : https://www.ematematikas.lt/upload/uploads/50000/4500/54536/thumb/p19807i4jv1gpeffm1ql11pl7foj1.png

https://www.ematematikas.lt/upload/uploads/50000/4500/54582/thumb/p198qlloli9kjovm97n17jm1jo31.png

Vis dėlto, gal kas galėtų pagelbėti su šia užduotimi?

pakeista prieš 11 m


#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;

const char CDfv[] = "Duomenys.txt";
const char CRfv[] = "Atsakymas.txt";
const int Max = 1000;

void skaityti(int A[], int & n, int & k);
void skirstymas(int A[], int B[], int n, int k);
int suma(int B[], int k);

int main ()
{
    int n;          //gamintoju skaicius
    int k;          //konteinerio talpa
    int A[Max];    //gaminiai
    int B[Max];

    skaityti(A, n, k);
    skirstymas(A, B, n, k);
    ofstream fr (CRfv);
    fr << suma(B, k) << endl;
    for(int i=k; i>0; i--)
        fr << B[i] << endl;
    fr.close ();
    return 0;
}

void skaityti(int A[], int & n, int & k)
{
    ifstream fd (CDfv);
    fd >> n >> k;
    for (int i=0; i<n; i++)
        fd >> A[i];
    fd.close ();
}

void skirstymas(int A[], int B[], int n, int k)
{
    for(int i=0; i<k; i++)
        B[i]=0;
    for(int i=0;i<n;i++)
        for(int j=k;j>0;j--)
        {
          B[j]+=A[i]/j;
          A[i]=A[i]%j;
        }
}

int suma(int B[], int k)
{
    int sum=0;
    for(int i=0; i<k; i++)
        sum+=B[i];
    return sum;
}

laimonas1367
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;

const char CDfv[] = "Duomenys.txt";
const char CRfv[] = "Atsakymas.txt";
const int Max = 1000;

void skaityti(int A[], int & n, int & k);
void skirstymas(int A[], int B[], int n, int k);
int suma(int B[], int k);

int main ()
{
    int n;          //gamintoju skaicius
    int k;          //konteinerio talpa
    int A[Max];    //gaminiai
    int B[Max];

    skaityti(A, n, k);
    skirstymas(A, B, n, k);
    ofstream fr (CRfv);
    fr << suma(B, k) << endl;
    for(int i=k; i>0; i--)
        fr << B[i] << endl;
    fr.close ();
    return 0;
}

void skaityti(int A[], int & n, int & k)
{
    ifstream fd (CDfv);
    fd >> n >> k;
    for (int i=0; i<n; i++)
        fd >> A[i];
    fd.close ();
}

void skirstymas(int A[], int B[], int n, int k)
{
    for(int i=0; i<k; i++)
        B[i]=0;
    for(int i=0;i<n;i++)
        for(int j=k;j>0;j--)
        {
          B[j]+=A[i]/j;
          A[i]=A[i]%j;
        }
}

int suma(int B[], int k)
{
    int sum=0;
    for(int i=0; i<k; i++)
        sum+=B[i];
    return sum;
}


Labai ačiū, bet aš nesuprantu to skirstymo. Jei nesunku, galėtum durnai paaiškint?

Nori sudalyvauti šioje temoje ir parašyti savo pranešimą? Prisijungti »