Pass by Value vs. Pass by Reference
#include
#include
using namespace std;
int inc(int number);
int main()
{
int n = 8;
cout << "Before calling function, n is " << n << endl;
int result = inc(n);
cout << "After calling function, n is " << n << endl;
cout << "Result is " << result << endl;
}
int inc(int number)
{
++number;
return number;
}
Pass by Reference via Reference Parameters
#include
#include
using namespace std;
int squarebyvalue (int number);
void squarebyreference (int & number);
int main()
{
int n1 = 8;
cout << "Before call, value is " << n1 << endl;
cout << squarebyvalue(n1) << endl;
cout << "After call, value is " << n1 << endl
int n2 = 9;
cout << "Before call, value is " << n2 << endl;
squarebyreference(n2);
cout << "After call, value is " << n2 << endl;
}
int squarebyvalue (int number)
{
return number * number;
}
void squarebyreference (int & number)
{
number = number * number;
}
Test rand and srand time
#include
#include
#include
#include
using namespace std;
int main()
{
cout << "Rand_max is " << rand_max << endl;
for (int i = 0; i < 10; ++i)
{
cout << rand() % 100 << " ";
}
cout << endl;
srand(time(0));
for (int i = 0; i < 10; ++i)
{
cout << rand() % 100 << " ";
}
cout << endl;
}
Test rand()'s Distribution
#include
#include
#include
#include
#include
using namespace std;
const int total_count = 2000000;
const int num_faces = 6;
int frequencies[6] = {0};
int main()
{
srand(time(0));
for (int i = 0; i < total_count; ++i)
{
++frequencies[rand() % 6];
}
cout << fixed << setprecision(2);
for (int i = 0; i < num_faces; i++)
{
cout << i+1 << ": " << frequencies[i]
<< " (" << 100.0 * frequencies[i] / total_count << "%)" << endl;
}
}
File IO
#include
#include
#include
#include
using namespace std;
int main()
{
ifstream fin;
ofstream fout;
fin.open("in.txt");
if (!fin.is_open())
{
cerr << "error: open input file failed" << endl;
abort();
}
int sum = 0, number, count = 0;
while (!(fin.eof()))
{
fin >> number;
sum += number;
++count;
}
double average = double(sum) / count;
cout << "Count = " << count << " average = " << average << endl;
fin.close();
fout.open("out.txt");
if (!fout.is_open())
{
cerr << "error: open output file failed" << endl;
abort();
}
fout << average;
fout.close();
return 0;
}
No comments:
Post a Comment