Peršokti į turinį

Surikiuot is masyvo nuo maziausio iki didziausio ir isspausdint


Floatas

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2995 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki sprendziu si uzdavini http://konkursai.if.ktu.lt/index.php/pamokeliu-uzduotys-2/item/249-2-lygis-pam4-2016/5668-idomiausios-knygosir viskas kaip ir gerai , tik daba nezinau kaip surikiuotai isspausdint kaip duota knygurez.txt rezultatu pavyzdyje.

 

Turi buti taip:

Knygų įvertinimai:

1 11

2 8

3 8

4 11

5 10

 

O pas mane taip:

Knygu ivertinimai:
2 8
1 11
4 11
3 8
5 10
 

Kaip reiktu surikiuot?

 

Stai kodas kuri parases:

#include <iostream>
#include <fstream>

#define Max_Knygu 21 
#define Max_Skaitytoju 11

int Skaitytojai; // m
int Knygos; // n

//////////////////stulpeliai/////eilutes//////
int Knygu_Masyvas[Max_Knygu][Max_Skaitytoju];


int Maziausias(int knyga);
int Didziausias(int knyga);
void SkaitomeDuomenis();
void Vertinimai();

int main()
{
	SkaitomeDuomenis();
	Vertinimai();
}

void SkaitomeDuomenis()
{
	std::ifstream DuomFailas;
	DuomFailas.open("Knygos.txt");
	
	DuomFailas >> Knygos >> Skaitytojai;

	for(int i=0;i < Knygos;i++)
	{
		DuomFailas >> Knygu_Masyvas[i][0];
		for(int j=1;j < Skaitytojai+1;j++)
		{
			DuomFailas >> Knygu_Masyvas[i][j];
		}
	}
	DuomFailas.close();
}

int Didziausias(int knyga)
{
	int sk = 0;
	for(int i = 1;i < Skaitytojai+1;i++)
	{
		if(sk < Knygu_Masyvas[knyga][i])
		{
			sk = Knygu_Masyvas[knyga][i];
		}
	}
	return sk;
}

int Maziausias(int knyga)
{
	int sk = 10;
	for(int i = 1;i < Skaitytojai+1;i++)
	{
		if(sk > Knygu_Masyvas[knyga][i])
		{
			sk = Knygu_Masyvas[knyga][i];
		}
	}
	return sk;
}

void Vertinimai()
{
	std::ofstream RezFailas;
	RezFailas.open("knygosrez.txt");

	RezFailas << "Knygu ivertinimai:" << std::endl;

	for(int i = 0;i < Knygos;i++)
	{
		RezFailas << Knygu_Masyvas[i][0] << " " << Didziausias(i)+Maziausias(i) << std::endl;
		std::cout << Knygu_Masyvas[i][0] << " " << Didziausias(i) << " " << Maziausias(i) << std::endl;
	}
	RezFailas.close();
}
Nuoroda į komentarą
Dalintis per kitą puslapį

Tavo Dievas, tavo Gelbėtojas, tavo Angelas sargas yra Google, Google ir dar karta Google.

Tavo užduoty nematau nieko sudėtingo.

 

Galiu įklijuot iš Google surastos svetainės fragmentą (nelabai efektyvus, nes burbulo metodas, bet paprastas, patarčiau pasimokinti įvairesnių rikiavimo metodų)

void Burbulas(int *mas, int n) {
    int t;
    for(int i=0; i<n-1; i++){
        for(int j=0; j<n-i-1; j++){
            if(mas[j] > mas[j+1]){
                t = mas[j];
                mas[j] = mas[j+1];
                mas[j+1] = t;
            }
        }
    }
}

Ar sugebėsi suvalgyti ant lėkštutės patiektą patiekalą?

 

Klausi kaip gauti geriausiai ir blogiausiai įvertintas knygas iš masyvo. Kai turi surikiuotą masyvą, tau tereikia pasimti iš atitinkamo galo, jei surikiavai mažėjančia tvarka, tai blogiausi bus apačioje, geriausi viršuje.

 

Mąstyk, Šerlokai, mąstyk, gyvenime už tave niekas nesumąstys! :)

Nuoroda į komentarą
Dalintis per kitą puslapį


#include <iostream>

#include <fstream>

#define Max_Knygu 21

#define Max_Skaitytoju 11

int Skaitytojai; // m

int Knygos; // n

int Knygu_Masyvas[Max_Knygu][Max_Skaitytoju];

int Maziausias(int knyga);

int Didziausias(int knyga);

void SkaitomeDuomenis();

void Vertinimai();

void Rikiuoti();

int main()

{

SkaitomeDuomenis();

Rikiuoti();

Vertinimai();

}

void SkaitomeDuomenis()

{

std::ifstream DuomFailas;

DuomFailas.open("Knygos.txt");

DuomFailas >> Knygos >> Skaitytojai;

for(int i=0;i < Knygos;i++)

{

DuomFailas >> Knygu_Masyvas[0];

for(int j=1;j < Skaitytojai+1;j++)

{

DuomFailas >> Knygu_Masyvas[j];

}

}

DuomFailas.close();

}

int Didziausias(int knyga)

{

int sk = 0;

for(int i = 1;i < Skaitytojai+1;i++)

{

if(sk < Knygu_Masyvas[knyga])

{

sk = Knygu_Masyvas[knyga];

}

}

return sk;

}

int Maziausias(int knyga)

{

int sk = 10;

for(int i = 1;i < Skaitytojai+1;i++)

{

if(sk > Knygu_Masyvas[knyga])

{

sk = Knygu_Masyvas[knyga];

}

}

return sk;

}

void Vertinimai()

{

std::ofstream RezFailas;

RezFailas.open("knygosrez.txt");

RezFailas << "Knygu ivertinimai:" << std::endl;

for(int i = 0;i < Knygos;i++)

{

RezFailas << Knygu_Masyvas[0] << " " << Didziausias(i) + Maziausias(i) << std::endl;

std::cout << Knygu_Masyvas[0] << " " << Didziausias(i) + Maziausias(i) << std::endl;

}

RezFailas.close();

}

void Rikiuoti()

{

int temp;

for(int i=0;i<Knygos;i++){

for(int j=i+1;j<Knygos;j++){

if(Knygu_Masyvas[j][0]<Knygu_Masyvas[0]){

temp = Knygu_Masyvas[0];

Knygu_Masyvas[0] = Knygu_Masyvas[j][0];

Knygu_Masyvas[j][0] = temp;

}

}

}

}

Redaguota , nario GReddy
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2995 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...