鱼C论坛

 找回密码
 立即注册
查看: 2903|回复: 2

c 数据结构

[复制链接]
发表于 2011-12-25 19:26:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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退出。
}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-25 20:21:12 | 显示全部楼层
晕死了
不懂了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-26 20:29:08 | 显示全部楼层
这是神马游戏,运行之后感觉没啥规律
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-10 10:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表