Λιγο βοήθεια με τη C

Dimitris Mexis m65 at vivodinet.gr
Fri Jun 2 17:43:21 EEST 2006


On Fri, 02 Jun 2006 00:17:35 +0300, Chameleon wrote:

> An lew malakies einai epeidh eimai piwmenos. Exw katebasei ikanh 
> posothta ouzou.
> 

Den the se parexigousa etsi kai alleos...

> 
> Auto poy xrhsimopoieis einai C++
> an 8eleis C sketh, xrhsimopoihse printf anti gia cout.
> 

C++ rulez, apla i C einai voliki ores ores

> Anti na xrhsimopoieis auto to blakwdes algori8mo ta3inomhshs, 
> xrhsimopoihse quick sort.
> 

Den einai vlakodes o algorithmos taxinomisis, giati den einai provlima
aftos...

> Den xreiazetai na ton ylopoihseis. yparxei etoimos sthn ANSI C.
> 
> apo to MSDN:

LINUX!

> ----------------------
> Performs a quick sort.
> 
> 
> void qsort(
>     void *base,
>     size_t num,
>     size_t width,
>     int (__cdecl *compare )(const void *, const void *)
> );
> 
> 
> 
> Parameters
> base
> Start of target array.	****** matrix
> 
> num
> Array size in elements.	****** sizeof( matrix )/sizeof( matrix[0] )
> 
> width
> Element size in bytes.	****** sizeof double
> 
> compare
> Comparison function. The first parameter is a pointer to the key for the
> search and the second parameter is a pointer to the array element to be
> compared with the key.
> -----------------------
> 
> prepei na ylopoihseis mia synarthsh poy na elegxei tous dyo double.
> (mesw pointer o elegxos)
> 
> 
> 
> 
> 
> An telika to 8eleis se C++ xrhsimopoihse ena map<double, int>. Auto den
> 8elei kan ta3inomhsh.
> 

STL? ox!

> An to 8eleis se C, gia kalytera, ta3inomhse ta kai meta kane ena struct
> san ki auto:
> 
> struct {
> 	double key;
> 	int freq;
> } map_element;
> 

Diladi na tsekaro se kathe key, an ehei bei se proigoumeno key o arithmos
pou tha theso...kai i antistixi sixnotita emfanisis...

> mporeis na epistrefeis ena pointer se array apo map_element apo thn
> freq_array. Prepei na kaneis allocation mesa sth freq_array kai
> deallocation ektos auths. Auto den einai kalh texnikh programmatismoy.
> Protimhse na kaneis allocation sthn main me osa stoixeia exei to arxiko
> array (ektos ki an 3ereis kati allo gia thn poikilia twn stoixeiwn) kai
> deallocation pali sth main (den 8a exoun xrhsimopoih8ei ola ta stoixeia
> tou neou array pi8anon)
> 
> 
> Asxeto, alla eisai ligo off-topic.
> dokimase to comp.lang.c h comp.lang.c++ h akoma kalytera to
> alt.comp.lang.learn.c-c++
> 
> 

Eixa kairo na kano ena post edo... :-)

> 
> Dimitris Mexis wrote:
>> Exo ton parakato kodika, pistevo oti tha nai efkolo poli, se kapoion na
>> to trexi me ena gcc apla...
>> To provlima einai oti stelno loipon, mia matrix[] array stin sinartisi
>> selsort(), mou sortari tin array, pame kala, stelno meta tin matrix[]
>> array sto freq_array() kai pragmati petixeno na perno, poses times ehei
>> vrei...OMOS. Exo kolisi sto pos telika na paro mia struct(?), array(?),
>> list(? den xero kai STL ), me tis metavlites kai tin sixnotita apla pou
>> emfanizontai...diladi mia nea isos matrix, pou na leei oti telika to 1
>> to de 1 , to 2 to vrike 3, klp klp, kai oxi 1,1,2,2,2,3,3,4 klp klp...
>> Prospatho na vgalo mia routina pou apla na mou epistrefi tin sixnotita
>> emfaniseis ton apotelesmaton tis matrix....(Me para poli apla logia)
>> :-)
>> Efharisto!
>> 
>> void freq_array( double mtx[], int elements ){ //The mtx is a ghost of
>> the matrix I transfer, VORSICHT!!!
>> 
>> 	selsort( mtx, elements );
>> 
>> 	int found = 0;
>> 	
>> 	cout << "...after!" << endl;
>> 	for ( int i = 0; i < elements; i++ ){
>> 		for ( int x = 0; x < elements; x++ ){
>> 			if ( mtx[x] == mtx[i] ){
>> 				found++;
>> 				}
>> 				}
>> 		cout << "Found value :" << mtx[i] << ", times :" << found << endl;
>> 		found = 0;
>> 	}
>> 	}
>> 	}
>> //Selection Sort function
>> //Takes two parameters:
>> //int *array- the array with the numbers to be sorted //int size- the
>> size of the array
>> void selsort( double *array,int size){
>> 	int min;int b;
>> 	//This loop goes through the whole array for( int a = 0; a < size-1;
>> 	a++ ){
>> 		b=a;
>> 		min=array[b];	//Get the current value
>> 				//...and check if any of the rest numbers is lower
>> 		for(int j=a+1;j<size;j++){
>> 			if( array[j]< min ){
>> 				b = j;
>> 				min = array[b]; //...and if yes, then get it
>> 			}
>> 			}
>> 		//Switch the values...
>> 		array[b]=array[a];
>> 		array[a]=min;
>> 	}
>> 	}
>> 	}
>> int main(int argc, char *argv[])
>> {
>> 	double matrix[10];
>> 	cout << "before..." << endl;
>> 	for ( int i = 0; i < 10; i++ ){
>> 		matrix[i] = 10 - i;
>> 		matrix[3] = 3;
>> 		matrix[4] = 3;
>> 		matrix[1] = 2;
>> 		matrix[0] = 0;
>> 		cout << matrix[i] << endl;
>> 		}
>> 	freq_array( matrix, ( sizeof( matrix )/sizeof( matrix[0] ) ) );
>> 	
>> 	exit(0);
>> }
>> 
>>




More information about the Linux-greek-users mailing list