C++

Programovacie jazyky, rady, poradňa...
andrej32
Novice
Novice
Príspevky: 4
Registrovaný: 14 dec 2007, 15:06

C++

Príspevok od používateľa andrej32 »

nemohli by ste mi niekdo spravit tento algoritmus v jazyku C++. prosim
Zostavte algoritmus na nájdenie dvoch najmenších prvkov vektora B.
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Re: C++

Príspevok od používateľa beluský »

andrej32 napísal:nemohli by ste mi niekdo spravit tento algoritmus v jazyku C++. prosim
Zostavte algoritmus na nájdenie dvoch najmenších prvkov vektora B.
vektorom myslíš pole?
piton
King
King
Používateľov profilový obrázok
Príspevky: 1902
Registrovaný: 02 aug 2005, 0:31
Bydlisko: Hnojisko

Re: C++

Príspevok od používateľa piton »

beluský napísal:vektorom myslíš pole?
Ano, vektor je jednorozmerne pole.
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

môžeš si ten vektor utriediť vzostupne a potom vypíšeš prvé dva prvky...

Kód: Vybrať všetko

#include <stdio.h>

void maxsort(int a[], int n) 
{ 
	int i, j, max, pom; 

	for (i = n-1; i > 0; i--) 
	{
		max = 0;
			   
		for (j = 1; j <= i; j++) if (a[j] > a[max])  max = j;
		if (i != max) 
		{
			pom = a[max];
			a[max] = a[i];
			a[i] = pom;
		}
	} 
} 


void main ()
{
	int vektor[] = {2,3,4,5,6,1,7,8,9,-10};
	
	maxsort(vektor, sizeof(vektor)/sizeof(vektor[0]));
	printf("%d %d\n", vektor[0], vektor[1]);
}
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

beluský napísal:môžeš si ten vektor utriediť vzostupne a potom vypíšeš prvé dva prvky...
to je trochu blbe nemyslis? naco by si usporiadaval pole ked potrebujes najst iba 2 minimalne prvky. To sa da da aj jednym prechodom cez pole. Takto budes prechadzat niekolko krat
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

printf() sa používa v c, v c++ používaj cout

Kód: Vybrať všetko

#include <iostream>

using namespace std;

//---------------------------------------------------------------------------

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main()
{       int vektor[] = {2,3,4,5,6,8,9,-10,};
        int min1=NULL;
        int min2=NULL;

        for(int i=0; i<sizeof(vektor)/sizeof(vektor[0]);i++){
                if(vektor[i]<min2){
                        if(vektor[i]<min1){
                                min2=min1;
                                min1=vektor[i]; }
                        else min2=vektor[i];
                }
        }
        cout << "Minimum 1: " << min1 << endl << "Minimum 2: " << min2 << endl;
        system("pause");
        return 0;
}
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

mastermind napísal:to je trochu blbe nemyslis? naco by si usporiadaval pole ked potrebujes najst iba 2 minimalne prvky. To sa da da aj jednym prechodom cez pole. Takto budes prechadzat niekolko krat
hej viem, skúšal som to jedných prechodom, ale nejak som sa zamotal v podmienkach tak som to tak nechal :) ale keby som potreboval... ja neviem... napr. 1. ,3. a 5. prvok tak by to bolo vhodné robiť týmto spôsobom nie?
Či dá sa aj to jedným prechodom poľa (5 premenných?)?
andrej32
Novice
Novice
Príspevky: 4
Registrovaný: 14 dec 2007, 15:06

Príspevok od používateľa andrej32 »

Diky za pomoc
Napísať odpoveď