fork download
  1. #include <stdio.h>
  2.  
  3. // 入れ替え。配列のi番目とj番目を
  4. void swap(int a[], int i, int j){
  5. int temp;
  6. printf("入れ替え発生。%p配列の%d番目と%d番目を入れ替えます。\n", a, i, j );
  7. temp=a[i];
  8. a[i]=a[j];
  9. a[j]=temp;
  10. }
  11.  
  12. // 逆順に配列を並び替え
  13. void reverse(int a[], int n){
  14. int i;
  15. for( i=0 ; i<n/2;i++){
  16. swap( a, i, n-i-1 );
  17. }
  18. printf("\n");
  19. }
  20.  
  21. int main(void) {
  22. int data[4]={4,3,2,1};
  23. int data2[5]={1,3,5,7,9};
  24. int data3[6]={1,2,3,4,5,6};
  25.  
  26. reverse(data, 4);
  27. reverse(data2, 5);
  28. reverse(data3, 6);
  29.  
  30. return 0;
  31. }
  32.  
Success #stdin #stdout 0s 5512KB
stdin
Standard input is empty
stdout
入れ替え発生。0x7fff06d9aca0配列の0番目と3番目を入れ替えます。
入れ替え発生。0x7fff06d9aca0配列の1番目と2番目を入れ替えます。

入れ替え発生。0x7fff06d9acb0配列の0番目と4番目を入れ替えます。
入れ替え発生。0x7fff06d9acb0配列の1番目と3番目を入れ替えます。

入れ替え発生。0x7fff06d9acd0配列の0番目と5番目を入れ替えます。
入れ替え発生。0x7fff06d9acd0配列の1番目と4番目を入れ替えます。
入れ替え発生。0x7fff06d9acd0配列の2番目と3番目を入れ替えます。