21xrx.com
2024-12-22 22:53:39 Sunday
登录
文章检索 我的文章 写文章
「C++经典代码」:10个不可错过的示例程序
2023-07-04 17:40:15 深夜i     --     --
C++ 经典 代码 示例程序 10个

C++作为一门流行的面向对象编程语言,其语法简单易学,功能丰富。为了帮助初学者更好地掌握C++语言,本文介绍了10个经典的C++示例程序,供大家参考学习。

1. Hello World

这是C++初学者所熟悉的第一个示例程序,通过输出一行“Hello World”来展示C++的基本语法。


#include <iostream>

using namespace std;

int main()

cout << "Hello World" << endl;

return 0;

2. 猜数字

这个小游戏可以让用户猜一个由程序随机生成的数字,通过判断用户输入的数字与正确答案的大小关系给出相应的提示,直到用户猜中为止。


#include <iostream>

#include <cstdlib>

#include <ctime>

using namespace std;

int main()

{

int num, guess, count = 0;

srand(time(0));

num = rand() % 100 + 1;

cout << "Guess the number between 1 and 100." << endl;

do {

   count++;

   cout << "Enter your guess: ";

   cin >> guess;

   if (guess > num)

     cout << "Too high, try again." << endl;

   else if (guess < num)

     cout << "Too low, try again." << endl;

   else

     cout << "Congratulations! You guessed it in " << count << " tries" << endl;

} while (guess != num);

return 0;

}

3. 计算器

这是一个简单的四则运算计算器,可进行加、减、乘、除运算。


#include <iostream>

using namespace std;

int main()

{

char op;

double num1, num2;

cout << "Enter operator (+, -, *, /): ";

cin >> op;

cout << "Enter two operands: ";

cin >> num1 >> num2;

switch (op)

{

   case '+':

     cout << num1 + num2 << endl;

     break;

   case '-':

     cout << num1 - num2 << endl;

     break;

   case '*':

     cout << num1 * num2 << endl;

     break;

   case '/':

     cout << num1 / num2 << endl;

     break;

   default:

     cout << "Invalid operator" << endl;

     break;

}

return 0;

}

4. 排序算法

这个示例程序展示了三种排序算法:冒泡排序、选择排序和插入排序。这三种算法都是基于比较的排序算法,它们使用不同的方法对数据进行排序。


#include <iostream>

using namespace std;

void bubble_sort(int arr[], int n)

{

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

   for (int j = 0; j < n - i - 1; j++)

     if (arr[j] > arr[j+1])

       swap(arr[j], arr[j+1]);

}

void selection_sort(int arr[], int n)

{

for (int i = 0; i < n-1; i++)

{

   int min = i;

   for (int j = i+1; j < n; j++)

     if (arr[j] < arr[min])

       min = j;

   swap(arr[i], arr[min]);

}

}

void insertion_sort(int arr[], int n)

{

for (int i = 1; i < n; i++)

{

   int key = arr[i];

   int j = i-1;

   while (j >= 0 && arr[j] > key)

   {

     arr[j+1] = arr[j];

     j--;

   }

   arr[j+1] = key;

}

}

int main()

{

int arr[] = 10;

int n = sizeof(arr)/sizeof(arr[0]);

bubble_sort(arr, n);

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

   cout << arr[i] << " ";

cout << endl;

int arr2[] = 10;

selection_sort(arr2, n);

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

   cout << arr2[i] << " ";

cout << endl;

int arr3[] = 9;

insertion_sort(arr3, n);

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

   cout << arr3[i] << " ";

return 0;

}

5. 斐波那契数列

斐波那契数列是一个数列,其每一项都是前两项的和。这个示例程序展示了如何计算前n项斐波那契数列的值。


#include <iostream>

using namespace std;

int fibonacci(int n)

{

if (n == 0) return 0;

else if (n == 1) return 1;

else return fibonacci(n-1) + fibonacci(n-2);

}

int main()

{

int n;

cout << "Enter n: ";

cin >> n;

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

   cout << fibonacci(i) << " ";

return 0;

}

6. 矩阵乘法

这个示例程序展示了如何计算两个矩阵的乘积。


#include <iostream>

using namespace std;

void multiply(int A[][3], int B[][2], int C[][2])

{

for (int i = 0; i < 2; i++)

   for (int j = 0; j < 2; j++)

     C[i][j] = 0;

for (int i = 0; i < 2; i++)

   for (int j = 0; j < 2; j++)

     for (int k = 0; k < 3; k++)

       C[i][j] += A[i][k] * B[k][j];

for (int i = 0; i < 2; i++)

{

   for (int j = 0; j < 2; j++)

     cout << C[i][j] << " ";

   cout << endl;

}

}

int main()

{

int A[2][3] = { 2, 4};

int B[3][2] = { 8, 9, 12};

int C[2][2];

multiply(A, B, C);

return 0;

}

7. 内存管理

C++的内存管理很灵活,但也需要手动管理。这个示例程序展示了如何在堆上分配和释放内存。


#include <iostream>

using namespace std;

int main()

{

int n;

cout << "Enter the number of elements: ";

cin >> n;

int* arr = new int[n];

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

   arr[i] = i+1;

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

   cout << arr[i] << " ";

delete[] arr;

return 0;

}

8. 文件读写

文件读写是C++的常见操作,这个示例程序展示了如何从文件中读取数据并将其存储到数组中。


#include <iostream>

#include <fstream>

using namespace std;

int main()

{

int n;

ifstream infile("data.txt");

infile >> n;

int* arr = new int[n];

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

   infile >> arr[i];

infile.close();

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

   cout << arr[i] << " ";

delete[] arr;

return 0;

}

9. 异常处理

C++有异常机制来处理程序中的错误和异常情况,这个示例程序展示了如何捕获和处理异常。


#include <iostream>

using namespace std;

int divide(int a, int b)

{

if (b == 0) throw "Division by zero";

return a / b;

}

int main()

{

int x, y;

cout << "Enter two integers: ";

cin >> x >> y;

try {

   int z = divide(x, y);

   cout << "Result: " << z << endl;

}

catch(const char* msg) {

   cerr << msg << endl;

}

return 0;

}

10. 多线程

多线程可以更有效地利用计算机的资源,这个示例程序展示了如何创建一个多线程的程序。


#include <iostream>

#include <thread>

using namespace std;

void print_numbers(int n)

{

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

   cout << i << " ";

cout << endl;

}

int main()

{

int n = 10;

thread t(print_numbers, n);

t.join();

return 0;

}

这10个示例程序可以让读者更好地了解和掌握C++语言的基本语法和常见编程技巧。希望读者能够通过模仿和实践,逐步掌握C++的编程能力。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复