8:30-----9:04
奇怪的电梯
9:04-----9:30
Meteor shower S
没有思路,题意不能理解
11:00-----15:00 17:00----19:30
小猫游戏代码(我写是没有标记数组的代码,用标记数组的代码会简洁一点)
#include"stdio.h"
#include"string.h"
struct queue{
int data[1000];
int head;
int tail;
};//队列
struct stack{
int data[1000];
int top;
};//栈
int main()
{
struct queue q1,q2;
struct stack s;
int t,sign,x;
q1.head=1;q1.tail=1;
q2.head=1;q2.tail=1;
s.top=0;//桌面上牌数为0
for(t=1;t<=6;t++)
{
scanf("%d",&q1.data[q1.tail++]);
}
for(t=1;t<=6;t++)
{
scanf("%d",&q2.data[q2.tail++]);
}
while(q1.head<q1.tail&&q2.head<q2.tail)
{
x=q1.data[q1.head];
sign=0;
for(t=1;t<=s.top;t++)//判断牌是否等于栈里的任意一张牌
{
if(x==s.data[t])
{
sign=1;
break;
}
}
if(sign==0)//如果没有
{
q1.head++;
s.top++;
s.data[s.top]=x;//入栈
}
if(sign==1)//有
{
q1.head++;
q1.data[q1.tail++]=x;//放在队列末
while(s.data[s.top]!=x)
{
q1.data[q1.tail++]=s.data[s.top--];
}
q1.data[q1.tail++]=s.data[s.top--];//取到相同的那一张
}
if(q1.head==q1.tail)//如果head==tail为空队列
break;
x=q2.data[q2.head];
sign=0;
for(t=1;t<=s.top;t++)
{
if(x==s.data[t])
{
sign=1;
break;
}
}
if(sign==0)
{
q2.head++;
s.top++;
s.data[s.top]=x;
}
if(sign==1)
{
q2.head++;
q2.data[q2.tail++]=x;
while(s.data[s.top]!=x)
{
q2.data[q2.tail++]=s.data[s.top--];//出栈
}
q2.data[q2.tail++]=s.data[s.top--];
}
if(q2.head==q2.tail)
break;
}
if(q2.head==q2.tail)
{
printf("第一个人获胜\n");
printf("他手上的牌是:\n");
for(t=q1.head;t<q1.tail;t++)
{
printf("%d ",q1.data[t]);
}
printf("\n");
if(s.top<=0)
printf("牌面上没有牌。");
else
{
printf("牌面上的牌是:\n");
for(t=1;t<=s.top;t++)
{
printf("%d ",s.data[t]);
}
}
}
else
{
printf("第二个人获胜\n");
printf("他手上的牌是:\n");
for(t=q2.head;t<q2.tail;t++)
{
printf("%d ",q2.data[t]);
}
printf("\n");
if(s.top<=0)
printf("牌面上没有牌。");
else
{
printf("牌面上的牌是:\n");
for(t=1;t<=s.top;t++)
{
printf("%d ",s.data[t]);
}
}
}
return 0;
}
19:30----20:00
奇怪的电梯(C语言)_bu_xiang_tutou的博客-CSDN博客
共学习8小时。