C言語経典アルゴリズム練習一(バブルソート)
1371 ワード
***
1.関数宣言は初回符号化時に忘れ、教訓一;
2.長さを知らない配列空間がどのように操作されるか分からないので、動的な割り当てを学び、malloc関数がヘッダファイルにあることを知り、収穫した.
3.またdoubleタイプがprintf()とscanf()で%fか%lfかを忘れ、今回は記憶を深め、教訓2;
4.ポインタ表示形式で配列空間を申請できることを知っていて、概念は特にはっきりしていないで、後のCの学習の中で重点的に学習して補って、収穫の2;
5.最初は固定配列を書いていたので、これは何度も修正したコードなので、プログラミングプログラミングなどの手順を踏まなかったのですが、これは重視して、次回は書き直したほうがいいです.サボってはいけません.
1.関数宣言は初回符号化時に忘れ、教訓一;
2.長さを知らない配列空間がどのように操作されるか分からないので、動的な割り当てを学び、malloc関数がヘッダファイルにあることを知り、収穫した.
3.またdoubleタイプがprintf()とscanf()で%fか%lfかを忘れ、今回は記憶を深め、教訓2;
4.ポインタ表示形式で配列空間を申請できることを知っていて、概念は特にはっきりしていないで、後のCの学習の中で重点的に学習して補って、収穫の2;
5.最初は固定配列を書いていたので、これは何度も修正したコードなので、プログラミングプログラミングなどの手順を踏まなかったのですが、これは重視して、次回は書き直したほうがいいです.サボってはいけません.
#include
#include
double * arrReturn(double*, int);// , , ( )
int main(void){
int n;
printf(" ?
");
scanf("%d", &n );
double *arr =(double *) malloc(n * sizeof(double));//
for(int j = 0; j < n; j ++){
printf(" %d
", j + 1);
scanf("%lf", &arr[j]);
}
double *m = arrReturn(arr, n);
for(int i = 0; i < n; i ++){
printf("%0.6f
", m[i]);
}
return 0;
}
double *arrReturn(double *arr , int n){
int i;
for(i = 0; i < n - 1; i++ ){//n-1
int j,temp = 0;
for(j = 0; j < n - i - 1; j ++ ){// i n-1-i
if(arr[j] > arr[j + 1]){// ,
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}