21xrx.com
2024-12-22 23:00:48 Sunday
登录
文章检索 我的文章 写文章
"炫酷好玩!分享几个 C++ 有趣的代码"
2023-07-08 03:23:05 深夜i     --     --
C++ 代码 炫酷 好玩 分享

炫酷好玩!分享几个 C++ 有趣的代码

C++ 是一种面向对象编程语言,是许多工程师和开发者最喜欢使用的语言之一。C++ 有广泛的应用领域,从操作系统到游戏,从科学计算到机器人控制,无所不包。除了其广泛的应用范围,C++ 还可以让人们编写有趣的代码。下面分享几个 C++ 有趣的代码,希望能够激发大家对编程的兴趣。

1. Hello World —— 连接到互联网!

这个程序的优点就在于它不仅仅是一个常规的 Hello World 程序,而且还可以使用 Socket 将输出信息发送到互联网上。


#include <iostream>

#include <winsock2.h>

int main()

{

  // 初始化 Winsock

  WSADATA wsa_data;

  WSAStartup(MAKEWORD(2,2), &wsa_data);

  // 定义 Socket

  SOCKET socket_fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

  // 设置输出信息

  const char *message = "Hello World!";

  // 发送消息

  sockaddr_in server_addr;

  server_addr.sin_family = AF_INET;

  server_addr.sin_port = htons(5000);

  server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");

  sendto(socket_fd, message, strlen(message), 0, (sockaddr*)&server_addr, sizeof(server_addr));

  // 关闭 Socket

  closesocket(socket_fd);

  // 卸载 Winsock

  WSACleanup();

  return 0;

}

2. 矩阵乘法——3 秒洗牌

这个程序将演示如何使用 C++ 在矩阵上执行算术运算。它实际上是一个矩阵乘法程序,但我们将使用它来“洗牌”一个 52 张牌的牌堆。


#include <iostream>

#include <vector>

std::vector<std::vector<int>> multiply(const std::vector<std::vector<int>>& a, const std::vector<std::vector<int>>& b)

{

  int m = a.size();

  int n = b.size();

  int l = b[0].size();

  std::vector<std::vector<int>> ans(m, std::vector<int>(l, 0));

  for (int i = 0; i < m; i++) {

    for (int j = 0; j < l; j++) {

      for (int k = 0; k < n; k++) {

        ans[i][j] += a[i][k] * b[k][j];

      }

    }

  }

  return ans;

}

int main()

{

  // 初始化牌堆

  std::vector<int> deck(52);

  for (int i = 0; i < 52; i++) deck[i] = i;

  // 初始化矩阵

  std::vector<std::vector<int>> matrix(52, std::vector<int>(52, 0));

  for (int i = 0; i < 51; i++) {

    matrix[i][i+1] = 1;

  }

  matrix[51][0] = 1;

  matrix = multiply(matrix, matrix);

  matrix = multiply(matrix, matrix);

  // 使用矩阵乘法 “洗牌”牌堆

  std::vector<int> new_deck(52);

  for (int i = 0; i < 52; i++) {

    new_deck[i] = deck[matrix[i][0] % 52];

  }

  // 输出结果

  for (int i = 0; i < 52; i++) {

    std::cout << new_deck[i] << " ";

    if (i % 13 == 12) std::cout << std::endl;

  }

  return 0;

}

3. 摄氏度与华氏度转换——这太简单了!

这个程序将演示如何使用 C++ 来执行基本的温度转换。任何人都可以很容易地用公式将温度从摄氏度转换为华氏度,反之亦然。


#include <iostream>

double celsius_to_fahrenheit(double celsius)

{

  return celsius * 9 / 5 + 32;

}

double fahrenheit_to_celsius(double fahrenheit)

{

  return (fahrenheit - 32) * 5 / 9;

}

int main()

{

  std::cout << "32 degrees Celsius is " << celsius_to_fahrenheit(32) << " degrees Fahrenheit." << std::endl;

  std::cout << "212 degrees Fahrenheit is " << fahrenheit_to_celsius(212) << " degrees Celsius." << std::endl;

  return 0;

}

总之,以上提供的仅仅是三个简单的例子,但它们向我们展示了 C++ 中有趣的事情。在旅程中,有太多的东西在等着我们去探索。只要有好奇心和热情,使用 C++ 编程将不再不寻常。

  
  

评论区

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