読者です 読者をやめる 読者になる 読者になる

落書きノート

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

C++で問題を解く

勉強になりましたが、比較的簡単な部類だと思いました。スコープやstaticの静的記憶域期間です。

#include <iostream>

using namespace std;

int x = 75;

void print_x(){
  cout << "x = " << x << endl;
}

int main(void){
  cout << "x = " << x << endl;
  
  int x = 999;

  cout << "x = " << x << endl;

  for(int i = 1; i <= 5; i++){
    int x = i * 11;
    cout << "x = " << x << endl;
  }

  cout << "x = " << x << endl;
  cout << "::x = " << ::x << endl;
  print_x();

  return 0;
}



#include <iostream>

using namespace std;

int a[4];

int main(void){
  static int b[3];

  for(int i = 0; i < sizeof(a) / sizeof(a[0]); i++)
    cout << "a[" << i << "] = " << a[i] << endl;

  for(int i = 0; i < sizeof(b) / sizeof(b[0]); i++)
    cout << "b[" << i << "] = " << b[i] << endl;
  
  return 0;
}




#include <iostream>

using namespace std;

int c;

void put_count(){
  for(int i = 0; i < c; i++)
    cout << "put_count : " << i + 1 << "回目" << endl;
}

int main(void){

  cout << "関数put_countを呼び出す回数:";
  cin >> c;

  put_count();

  return 0;
}




#include <iostream>

using namespace std;

void put_count(){
  static int counter = 0;
  cout << "put_count : " << ++counter << "回目" << endl;
}

int main(void){
  int n;

  cout << "関数put_countを呼び出す回数 : ";
  cin >> n;

  for(int i = 0; i < n; i++)
    put_count();

  return 0;
}




#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int rand1(){
  static int rand_num = 0;
  static int pre_num = 0;

  do{
    rand_num = rand() % 10;
    if(pre_num == rand_num){
      continue;
    }else{
      pre_num = rand_num;
      return rand_num;
    }
  }while(true);
}

int main(void){
  int n;

  srand(time(NULL));

  cout << "乱数を生成する回数 : ";
  cin >> n;

  for(int i = 0; i < n; i++)
    cout << rand1() << endl;

  return 0;
}