Vienmatis masyvas

Teorija.

 

Užduotys.

Duotas vienmatis masyvas A[n] (masyvo elementai surašyti faile “duomenys.txt”, o elementų kiekis įvedamas klaviatūra). Parašykite programą, kuri:

  1. rastų mažiausią masyvo elementą;
  2. didžiausią masyvo elementą pakeistų duotu skaičiumi k;
  3. sukeistų didžiausią masyvo elementą vietomis su mažiausiu;
  4. nustatytų kas masyve pirmiau yra – didžiausias masyvo elementas ar mažiausias;
  5. pašalintų mažiausią (didžiausią) masyvo elementą iš masyvo;
  6. surikiuotų masyvą mažėjimo (didėjimo) tvarka.

Pavyzdžiai.

Didžiausio masyvo elemento bei jo vietos radimas

#include <iostream>
#include <fstream>

using namespace std;

main ()
{
int n, i, max, maxv, A[20];
cout << “Kiek masyve elementų” << endl;
cin >> n;
ifstream F (“duomenys.txt”);
for (i = 0; i < n; i++)
F >> A[i];
F. close ();
max = A[0];
maxv = 0;
for (i = 1; i < n; i++)
if (A[i] > max)
{
max = A[i];
maxv = i;}
cout << “Pradinis masyvas” << endl;
for (i = 0; i < n; i++)
cout << A[i] << ” “;
cout << “didžiausias masyvo elemtas yra ” << max << “, jo indekas – ” << maxv << endl;
return 0;
}

Masyvo rikiavimas

#include <iostream>
#include <fstream>

using namespace std;

main ()
{
int n, i, j, p, A[50];
cout << “Kiek masyve elementų” << endl;
cin >> n;
ifstream F (“duomenys.txt”);
for (i = 0; i < n; i++)
F >> A[i];
F. close ();

cout << “Pradinis masyvas” << endl;
for (i = 0; i < n; i++)
cout << A[i] << ” “;
cout << endl;

for (i = 0; i < n-1; i++)
for (j = i + 1; j < n; j++)
if (A[i] > A[j])
{
p = A[i];
A[i] = A[j];
A[j] = p;}
cout << “Surikiuotas masyvas” << endl;
for (i = 0; i < n; i++)
cout << A[i] << ” “;
cout << endl;
return 0;
}

 

Pašalinkite duoto skaičiaus n didžiausią skaitmenį.

#include <iostream>

using namespace std;

main ()
{
int n, kiek, i, max, maxv, A[10], B[10];
cout << “Įveskite skaičių” << endl;
cin >> n;
// skaičiaus skaitmenis sudedame į masyvą
kiek = 0;
while (n>0)
{
A[kiek] = n % 10;
kiek++;
n = n / 10;
}

//sukeičiame masyvo elementus
for (i=0; i<kiek; i++)
B[i] = A[kiek-i-1];

//surandame didžiausią masyvo elementą bei jo vietą
max = B[0];
maxv = 0;
for (i = 1; i < kiek; i++)
if (B[i] > max)
{
max = B[i];
maxv = i;}

//šaliname didžiausią masyvo elementą
for (i=maxv; i<kiek-1; i++)
B[i] = B[i+1];

//atspausdiname masyvo elementus – tai atsakymas (vaizdinis)
for (i=0; i<kiek-1; i++)
cout << B[i];

return 0;
}