当前位置: 首页 > 知识库问答 >
问题:

使用提供一个全局变量二义性[重复]

高高雅
2023-03-14
#include <iostream>
#include "unistd.h"
#include <cstdlib>
#include<bits/stdc++.h>
using namespace std;
char a[3][3];
int count=0;
char player_flag ='X';
void init()
{
  a[0][0]='1';
  a[0][1]='2';
  a[0][2]='3';
  a[1][0]='4';
  a[1][1]='5';
  a[1][2]='6';
  a[2][0]='7';
  a[2][1]='8';
  a[2][2]='9';
}
void show()
{
  for(int i=0;i<3;i++)
{ for(int j=0;j<3;j++) cout<<a[i][j] << " " ;
  cout << "\n" ;
}}
void entry(int n,char player_flag)
{
  for(int i=0;i<3;i++)
  { for(int j=0;j<3;j++)
    { if(n==(i*3+j+1))
      {if(a[i][j]=='X'||a[i][j]=='O')
      {  int n;
      cout<<"invalid entry enter another position\n";
      cin>>n; entry(n,player_flag);
       }
      else  a[i][j]=player_flag;
    }}}}
void turn()
{
  if(player_flag=='X') player_flag='O';
  else player_flag ='X';
}
void check()
{ int i,j;
  for(i=0,j=0;j<3;i=0,j++)
  {if(a[i][j]==a[i+1][j]&&a[i+1][j]==a[i+2][j]) {cout<<"\n"<<a[i][j]<<" wins \n"; exit(0);}}
  for(i=0,j=0;i<3;j=0,i++)
  {if(a[i][j]==a[i][j+1]&&a[i][j+1]==a[i][j+2]) {cout<<"\n"<<a[i][j]<<" wins \n"; exit(0);}}
   if(a[0][0]==a[1][1]&&a[1][1]==a[2][2])
   {cout<<"\n"<<a[0][0]<<" wins";exit(0);}
   else if(a[0][2]==a[1][1]&&a[1][1]==a[2][0])
   {cout<<"\n"<<a[0][2]<<" wins";exit(0);}
   else if(count>=9){ cout<<"\nits a draw\n"; exit(0);}}
int main()
{  init(); show();
  while(1)
{  int n; count++;
 cout<<"player "<<player_flag<<" turn: enter position to put \n"; cin>>n;
  entry(n,player_flag);
  system("clear");
  show();
  check();
  turn();`
}}

这是许多模棱两可的计数错误之一。

PS:如果不包括bits/stdc++,那么它可以正常工作,只有当bits/stdc++使用时,错误才会弹出。任何回复都是鼓励的,谢谢!

共有1个答案

满昊然
2023-03-14

std::count是标准库中的函数。
http://www.cplusplus.com/reference/algorithm/count/

由于使用命名空间std,“count”可以引用std::count或变量count

您需要重命名变量,或者停止使用std命名空间。
您也可以只包含您需要的C++头,而不是包含所有这些头的bits/stdc++.h。

 类似资料:
  • 问题内容: 是否可以使用webpack定义全局变量以产生如下所示的结果: 我看到的所有示例都使用外部文件 问题答案: 有几种方法可以处理全局变量: 1)将变量放入模块中。 Webpack仅对模块进行一次评估,因此您的实例保持全局状态,并在模块之间进行更改。 因此,如果您创建像a之类的东西并导出所有全局变量的对象,则可以读取/写入这些全局变量。您可以导入一个模块,从功能中对对象进行更改,然后导入另一

  • 问题内容: 我还是Python的新手,我一直在尝试提高Python脚本的性能,因此我在有或没有全局变量的情况下对其进行了测试。我给它计时,令我惊讶的是,它在声明了全局变量的情况下运行得更快,而不是将局部变量传递给函数。这是怎么回事?我以为局部变量的执行速度更快?(我知道全球人并不安全,我仍然很好奇。) 问题答案: 当地人应该更快 根据此页面上的本地人和全球人: 当一行代码要求输入变量x的值时,Py

  • 问题内容: 在以下片段中 内部是一个新变量, 外部 将保持为空。 通过显式定义短变量定义并将其替换为赋值,似乎可以正确地初始化外部变量 有没有一种更简单的方法来指定内部变量,而不是实际上是作用域变量,而是全局变量?我在想类似的东西,但这在包本身内部无效。 问题答案: 不,就是这样。只是 New()( https://golang.org/doc/effective_go.html#allocati

  • 本文向大家介绍使用配置类定义Codeigniter全局变量,包括了使用配置类定义Codeigniter全局变量的使用技巧和注意事项,需要的朋友参考一下 CodeIgniter中公共函数不能追加,可以通过 helper 辅助函数实现。 创建 common_helper.php 文件,定义所需公共函数,存放至 application/helpers 目录中。 在 application/config/

  • 我想在调用这个函数的时候 初始化一次这个参数全局变量 后续辉修改这个参数的值 我这样写 报错了 请问如何修改呢?

  • 本文向大家介绍PHP 用户定义的全局变量,包括了PHP 用户定义的全局变量的使用技巧和注意事项,需要的朋友参考一下 示例 任何函数或类之外的范围都是全局范围。当PHP脚本包含另一个脚本(使用include或require)时,范围保持不变。如果脚本包含在任何函数或类的外部,则其全局变量包含在同一全局范围内,但是如果脚本包含在函数内部,则所包含脚本中的变量位于函数的范围内。 在函数或类方法的范围内,