3.
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
A选手说:B第一,我第三。
B选手说:我第二,E第四。
C选手说:我第一,D第二。
D选手说:C最后,我第三。
E选手说:我第四,A第一。
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。
4.
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
现在请根据这些信息,写一个程序来确定到底谁是凶手。
#include<stdio.h>
#define N 5
int main()
{
int a[N][N]={0};
int i=0;
int j=0;
for(i=0; i<N; i++)
for(j=0; j<N; j++)
{
if( (j==0)||(i==j) )
{
a[i][j]=1;
}
else
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
printf("%5d ",a[i][j]);
if(i==j)
{
printf("\n");
}
}
system("pause");
return 0;
}
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define ROW 3
#define LINE 3
void init_board(char arr[ROW][LINE])//初始化棋盘
{
int i=0,j=0;
for(i=0;i<ROW;i++)
for(j=0;j<LINE;j++)
{
arr[ROW][LINE]=' ';
}
}
void print_board(char arr[ROW][LINE])//打印棋盘
{
int i=0;
for(i=0;i<ROW;i++)
{
printf(" %c | %c | %c \n",arr[i][0],arr[i][1],arr[i][2]);
if(i!=2)
{
printf("---|---|---\n");
}
}
}
void check_board(char arr[ROW][LINE])//检查棋盘是否已满
{
int i=0,j=0;
for(i=0;i<ROW;i++)
for(j=0;j<LINE;j++)
{
void game(char arr[ROW][LINE]);
void print_order(char arr[ROW][LINE]);
if(arr[ROW][LINE]!=' ')
return 0;
else
return 1;
}
}
void player_move(char arr[ROW][LINE])//玩家输入
{
int i,j=0;
int row=0,line=0;
printf("请输入放旗子位置的坐标:");
scanf("%d %d",&row,&line);
row--;
line--;
while(1)
{
if(arr[row][line]==' ')
{
arr[row][line]='X';
print_board(arr);
break;
}
else
{
printf("坐标已被占用\n");
continue;
}
}
}
void computer_move(char arr[ROW][LINE])//电脑输入
{
int ret=0;
int i,j=0;
int row=0,line=0;
scanf("%d%d",&row,&line);
srand((unsigned)time(NULL));
row=rand()%3;
line=rand()%3;
while(1)
{
if( arr[row][line]==' ')
{
arr[row][line]='Y';
print_board(arr);
break;
}
else
printf("坐标已被占用\n");
continue;
}
}
void win(char arr[ROW][LINE])//判断输赢
{
int i=0,j=0;
for(i=0;i<ROW;i++)
for(j=0;j<LINE;j++)
{
char print_order(char arr[ROW][LINE]);
if( ((arr[i][0]==arr[i][1])&&(arr[i][1]==arr[i][2]=='X'))
|| ((arr[j][0]==arr[j][1])&&(arr[j][1]==arr[j][2]=='X'))
|| ((arr[1][1]==arr[2][2])&&(arr[2][2]==arr[3][3]=='X'))
|| ((arr[1][3]==arr[2][2])&&(arr[2][2]==arr[3][1]=='X')) )
{
printf("玩家赢得游戏!\n");
print_order(arr);
}
else if(((arr[i][0]==arr[i][1])&&(arr[i][1]==arr[i][2]=='Y'))
|| ((arr[j][0]==arr[j][1])&&(arr[j][1]==arr[j][2]=='Y'))
|| ((arr[1][1]==arr[2][2])&&(arr[2][2]==arr[3][3]=='Y'))
|| ((arr[1][3]==arr[2][2])&&(arr[2][2]==arr[3][1]=='Y')))
{
printf("电脑赢得游戏!\n");
print_order(arr);
}
else
{
printf("平局!\n");
print_order(arr);
}
}
}
char print_order(char arr[ROW][LINE])//打印菜单
{
int num=0;
printf("*********************\n");
printf("*******棋盘游戏******\n");
printf("*********************\n");
printf("请输入数字0或1,输入0游戏结束,输入1游戏继续\n");
scanf("%d",&num);
if(num)
{
void game(char arr[ROW][LINE]);
game(arr);
}
else
{
;
return 0;
}
}
void game(char arr[ROW][LINE])//游戏过程
{
print_board(arr);
player_move(arr);
win(arr);
computer_move(arr);
win(arr);
}
int main()
{
char arr[ROW][LINE]={' '};
void game(char arr[ROW][LINE]);
char print_order(char arr[ROW][LINE]);
print_order( arr);
game(arr);
print_order( arr);
system("pause");
return 0;
}