Order a vector in c -
#include <stdio.h> #include <conio.h> #include <string.h> void change(int *v[]) { int tmp; (int = 0; < 10; i++) { (int j = + 1; j< 10; j++) if (*v[i] > *v[j]) { tmp = *v[i]; *v[i] = *v[j]; *v[j] = tmp; } } } void main() { int v[10]; (int = 0; < 10; i++) { printf("enter value v[%d]: \n", i); scanf("%d", &v[i]); } printf("the vector is: \n"); (int = 0; < 10; i++) printf("value on position %d %d \n", i, v[i]); change(&v[]); // think here problem printf("\n\n after function call, vector is: \n"); (int = 0; < 10; i++) printf("value on position %d %d \n", i, v[i]); getch(); }
i need ordonate vector don't know how pass value of vector function. can me solve , explain me , make me understand, important. thank guys !
the function must declared like
void change(int v[]) { ^^^^^^
and called like
changes( v );
as result have change these statements
if (*v[i] > *v[j]) { tmp = *v[i]; *v[i] = *v[j]; *v[j] = tmp;
like
if ( v[i] > v[j]) { tmp = v[i]; v[i] = v[j]; v[j] = tmp;
the function can like
void change( int v[] ) { ( int = 0; < 10; i++ ) { ( int j = + 1; j< 10; j++ ) { if ( v[i] > v[j] ) { int tmp = v[i]; v[i] = v[j]; v[j] = tmp; } } } }
take account better if function deal arrays of different sizes. in case must have second parameter specify number of elements in array. example
void change( int v[], size_t n ) { ( size_t = 0; < n; i++ ) { ( size_t j = + 1; j < n; j++ ) { if ( v[i] > v[j] ) { int tmp = v[i]; v[i] = v[j]; v[j] = tmp; } } } }
and function can called like
change( v, 10 );
Comments
Post a Comment