落書きノート

ふと自分が気になった事を書いてます

C++で問題を解く

諸事情により次の記事はRubyを書くかも…。障害が起きたというわけではないです。

#include <iostream>

using namespace std;

int main(void){
  int* p;
  int a[5];

  p = &a[0];

  for(int i = 0; i < 5; i++){
    a[i] = i + 1;
  }

  for(int j = 0; j < 5; j++){
    cout << "a[" << j << "] = " << a[j] << " ";
    cout << "*(a+" << j << ") = " << *(a + j) << " ";
    cout << "&a[" << j << "] = " << &a[j] << " ";
    cout << "a+" << j << " = " << a + j << " ";
    cout << endl;
  }

  return 0;
}


#include <iostream>

using namespace std;

int main(void){
  int a[5] = {1,2,3,4,5};
  int* p = a;

  for(int j = 0; j < 5; j++){
    cout << "a[" << j << "] = " << a[j] << " ";
    cout << "*(a+" << j << ") = " << *(a + j) << " ";
    cout << "&a[" << j << "] = " << &a[j] << " ";
    cout << "a+" << j << " = " << a + j << " ";
    cout << endl;
  }

  return 0;
}



#include <iostream>
#include <typeinfo>

using namespace std;

void reverse(int a[], int n){
  cout << typeid(a).name() << endl;

  for(int i = 0; i < n / 2; i++){
    int t = a[i];
    a[i] = a[n - i - 1];
    a[n - i - 1] = t;
  }
}

int main(void){
  const int n = 5;
  int c[n];

  for(int i = 0; i < n; i++){
    cout << "c[" << i << "]:"; cin >> c[i];
  }

  reverse(c, n);

  cout << "反転しました。" << endl;

  for(int i = 0; i < n; i++){
    cout << "c[" << i << "]:" << c[i] << endl;
  }

  return 0;
}




#include <iostream>

using namespace std;

void swap(int* a, int* b){
  int t = *a;
  *a = *b;
  *b = t;
}

void reverse(int a[], int n){
  for(int j = 0; j < n / 2; j++){
    swap(&a[j], &a[n - j - 1]);
  }
}

int main(void){
  const int n = 5;
  int c[n];

  for(int i = 0; i < n; i++){
    cout << "c[" << i << "]:"; cin >> c[i];
  }

  reverse(c, n);

  cout << "反転しました。" << endl;

  for(int k = 0; k < n; k++){
    cout << "c[" << k << "]:" << c[k] << endl;
  }

  return 0;
}