C言語 ポインタ6(ポインタを使った配列のソート)
/* 配列の要素を降順に並べ替えて出力する。ソートと出力にポインタを使用する。 */ #include <stdio.h> int main(void) { int i, j, tmp = 0, n = 5; double d[] = {160.7,162.8,155.5,168.3,160.1}; double *p; p = d; printf("---ソート前---\n"); for(i = 0; i < n; i++){ printf("%6.1f", *(d+i)); } printf("\n"); for( i= 0; i < n-1;i++){ for(j = i+1; j < n; j++){ if(*(d+i) < *(d+j)){ tmp = *(d+i); *(d+i) = *(d+j); *(d+j) = tmp; } } } printf("---ソート後---\n"); for(i = 0; i < n; i++){ printf("%6.1f", *(d+i)); } printf("\n"); return 0; }