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:
- rastų mažiausią masyvo elementą;
- didžiausią masyvo elementą pakeistų duotu skaičiumi k;
- sukeistų didžiausią masyvo elementą vietomis su mažiausiu;
- nustatytų kas masyve pirmiau yra – didžiausias masyvo elementas ar mažiausias;
- pašalintų mažiausią (didžiausią) masyvo elementą iš masyvo;
- 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;
}