求C语言⼀C++高手,救救我吧!!这题目好难!!

2025-01-21 03:02:45
推荐回答(4个)
回答1:

//今天没有时间了,过几天吧
typedef struct computer{
info *next;
int do;//有人正在用为1,有人将要用为2,空机为0
}computer, c[20];

typedef struct info{
long date;//什么时间,格式如200807131850
int num;//几个时间段
info *next;//接一下
long tel;//电话
};

void init(computer c[],int n)
{//初始化
int i;
for(i=0;i}
int search(long date, int num,long tel int n,computer c[])
{//看有没有空机
int i;
info *q,*qt;
for(i=0;i{
if(c[i].do==0)
{q=(info*)malloc(sizeof(info));
*q.date=date;
*q.num=num;
*q.tel=tel;
q.next=c[i].next;
c[i].next=q.next;
c[i].do=2;
return i;
}
for(qt=c[i].next;*qt!=NULL;qt=qt.next)
{
if((*qt.date+(*qt.num)*2*100)<=date
&&((*qt.next.q.date+(*qt.next.qt.num)*2*100)>=(date+num*2*100))
||qt.next==NULL)
{

q=(info*)malloc(sizeof(info));
*q.date=date;
*q.num=num;
*q.tel=tel;
q.next=c[i].next;
c[i].next=q.next;
c[i].do=2;
return i;
}
return (-1);
}
}

}

int del(int i,long date, int num)
{
info *qt,*q;
for(qt=c[i].next;*qt!=NULL;qt=qt.next)
{
if(*qt.date==date&&qt.num==num)
{
qt.next=qt.next.next;
free(qt);
if(c[i].next==NULL)c[i].do=0;
return OK;
}
}
}
void currnt(computer c[])
{
for(i=0;i{
long date;
info *q;
q=c[i].next;
date=date();//时间这可能想一点办法
if((q.date+q.num*2*100)<=date)
{
c[i].next=q.next;
free(q);
if(c[i].next==NULL)
c[i].do=0;
else c[i].do=2;
}
if(q.date=date)
c[i].do=1;
}
}

void input(char inster){
info in;
if(inster=='I' || inster=='i'){
printf("输入你的要上的时间(格式如200807151630),时间段(如:2),电话如:02088888888\n");
scanf("%l%d%d".in.date,in.num,in.tel);
i=search(in.date, in.num,in.tel , n, c);
if(i<0){printf("对不起,现在没有符合你要求的机子\n");}
else printf("你的机子是%d\n",i);
}

#include
#define TURE 1
#define OK 1

main()
{//还有一个什么等待的是什么,我不明白
int n;
info in;
long seelp;
seelp=0;
n=20;//20台机
init( c, n);
printf("1. 想预约吗?是(I or i);\n");
printf("2. 你想取消预约吗?是(D or d);\n");
while(TURE){

c=getchar();
switch(c){
case 'I':
case 'i':
input(c);
break;
case 'D':
case 'd':
printf("输入你的要上的时间(格式如200807151630),时间段(如:2),电话如:02088888888\n");
scanf("%l%d%d".in.date,in.num,in.tel);
del(in);
break;

}

if(seelp++==1000000000)
{//先睡睡
currnt( c);
seelp=0;
}
}
}
}
}

回答2:

楼主你真小气.

回答3:

知道题目难还不给分。。

回答4:

就只有25分了