|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
只是一个简单的游戏,删除数字的,可我一直看不懂,谁能解释一下#include<stdio.h>
#include<time.h>
#include<stdlib.h>
typedef struct{
int rear;
int *arr;
int map;
}queue;
void Init(queue *q) //初始化指针
{
q->map=0;
q->rear=0;
}
void Del(queue *q)
{
q->map++;
}
void Insert(queue *q, int number)
{
q->arr[q->rear] = number;//把数组元素插入结构体中
q->rear++;
}
void main(){
int rows[3][5]; //3x5数组
int i,j,k,number,count,equal;
char input;
queue *q;
q=malloc(sizeof(queue)); //分配结构体内存空间。
q->arr = malloc(sizeof(int) * 6);
srand(time(NULL));
for(i=0;i<3;i++) //在3x5数组上随机输入1-6之间的数字
for(j=0;j<5;j++)
rows[i][j]=(rand()% 5)+1;//1-6
do{
system("cls");
for(i=0;i<3;i++){
for(j=0;j<5;j++)
printf("%d ",rows[i][j]);//显示数组画面
printf("\n");
}
input = getch(); //输入数字
number = input - 48;//将字符转化成数字。
for(i=0;i<5;i++){
Init(q);//初始化指针
count=0;
for(j=2;j>-1;j--)
Insert(q,rows[j][i]);
for(j=2,count=0,equal=0;j>-1;j--,count++)
if(rows[j][i]==number && equal == count)
equal++;
//清除数字并且要补上数字。
for(j=0;j<equal;j++){
Del(q);
Insert(q,(rand()% 5)+1);
}
//把处理好的数组内容储存到arr数组。
for(j=2,k=q->map;k<q->rear;k++,j--)
rows[j][i]=q->arr[k];
}
printf("\n");
}while(number !=-21); //ESC退出。
} |
|