排行榜

  • 用户榜
  • 标签榜
  • 冲榜分奖金

频道

最新最热悬赏待采纳 筛选
  • 0

    回答

  • 11

    浏览

#include<iostream> #include<stdlib.h> #include <cstring> using namespace std; int main() { int a; int b; cin>>a>>b; //输入两个数的值 if(a>=1&&a<=10000&&b<=10000&&b>=1) { cout<<a<<" + "<<b<<" = "<<a+b; } else if(a>1&&a<=10000) { cout<<a <<" + "<<"?"<<" = "<<"?"; } else if(b>1&&b<=10000) { cout<<"?"<<" + "<<b<<" = "<<"?"; } else { cout<<"?"<<" + "<<"?"<<" = "<<"?"; } return 0; } 不正确  例如2. 18输出的是2+?=?  和要求的不符合  怎么处理这个问题呢??求指教!

  • 0

    回答

  • 10

    浏览

#include<stdio.h> #include<stdlib.h> #include<time.h> #define ROW 3 #define COL 3 void Displayboard(char board[ROW][COL],int row,int col) { int i=0; for(i=0;i<row;i++) { int j=0; for(j=0;j<col;j++) { printf(" %c ",board[i][j]); if(j<col-1) printf("|"); } printf("\n"); if (i<row-1) { for(j=0;j<col;j++) { printf("---"); if(j<col-1) printf("|"); } printf("\n"); } } } void playermove(char board[ROW][COL],int row,int col) { int x=0; int y=0; printf("玩家走;>\n"); while(1) { printf("请输入坐标;>"); scanf("%d%d",&x,&y); if(x>=1&&x<=row&&y>=1&&y<=col) { if (board[x-1][y-1]==' ') { board[x-1][y-1]='*'; } else { printf("该坐标被占用!\n"); } } else { printf("坐标非法,重新输入!\n"); } } } void computermove(char board[ROW][COL],int row,int col) { int x=0; int y=0; printf("电脑走;》\n"); while(1) { x=rand()%row; y=rand()%col; if(board[x][y]==' ') { board[x][y]='#'; break; } } } int isfull( char board[ROW][COL],int row,int col) { int i=0; int j=0; for(i=0;i<=row;i++) { for(j=0;j<=col;j++) { if(board[i][j]==' ') { return 0; } } } return 1; } char iswin(char board[ROW][COL],int row,int col) { int i=0; for(i=0;i<row;i++) { if(board[i][0]==board[i][1]&&board[i][1]==board[i][2]&&board[i][1]!=' ') { return board[i][1]; } } for(i=0;i<=col;i++) { if(board[0][i]==board[1][i]&&board[1][i]==board[2][i]&&board[1][i]!=' ') { return board[1][i]; } } if(board[0][0]==board[1][1]&&board[1][1]==board[2][2]&&board[1][1]!=' ') { return board[1][1]; } if(board[2][0]==board[1][1]&&board[1][1]==board[0][2]&&board[1][1]!=' ') { return board[1][1]; }//接下来判断平局 if(1==isfull(board,ROW,COL)) { return 'q'; } return 'C'; } void InitBoard( char board[ROW][COL],int row,int col) { int i=0; int j=0; for(i=0;i<row;i++) { for(j=0;j<col;j++) { board[i][j]=' '; } } } void menu() { printf("*****************************************\n"); printf("*********1.play 0.eixt****************\n"); printf("*****************************************\n"); } void game() { char ret=0; char board[ROW][COL]={0}; InitBoard(board,ROW,COL); Displayboard(board,ROW,COL); while(1) { playermove(board,ROW,COL); Displayboard(board,ROW,COL); //判断玩家是否赢 ret=iswin(board,ROW,COL); if(ret!='C') { break; } computermove(board,ROW,COL); Displayboard(board,ROW,COL); ret= iswin(board,ROW,COL); if(ret!='C') { break; } } if(ret=='*') { printf("玩家赢\n"); } else if(ret=='#') { printf("电脑赢\n"); } else { printf("平局\n"); } } void test() { int input=0; srand((unsigned int )time(NULL)); do { menu(); printf("请选择:>"); scanf("%d",&input); switch(input) { case 1: printf("三子棋\n"); game(); break; case 0: printf("退出游戏\n") ; break; default: printf("选择错误\n"); break; } }while(input); } int main() { test(); return 0; }