{int n
int k
int cha}
typedef struct pb PCB
PCB a[10]void creat()
{static int pi=1
int k,l=0,m
printf("plase input n0:")
scanf("%d",&m)
for(k=1k<=10k++)
if (a[k].n==m)
l=1
if (l==1)
{printf("error!\n")
creat()}
else
{a[pi].n=m
printf("\n")
printf("plase input k0:")
scanf("%d",&a[pi].k)
printf("\n")
a[pi++].cha=4}}void destory()
{int i,num,k=0
printf(" plase input destory number:")
scanf("%d",&num)
for(i=1i<=10i++)
if(a[i].n==num) k=i
if(k!=0)
{a[k].n=0a[k].k=0a[k].cha=0}
else
printf("No have this destory number!\n")}void wakeup()
{int i,k,m,l
printf("请输入n0:")
scanf("%d",&m)
for(k=1k<=10k++)
if (a[k].n==m)
l=k
a[l].cha=1 /*唤醒->静止就绪*/}void active()
{int i,k,m,l
printf("请输入n0:")
scanf("%d",&m)
for(k=1k<=10k++)
if (a[k].n==m)
l=k
a[l].cha=3/*激活->活动就绪*/}void dse()
{int i,k,m,l
printf("请输入n0:")
scanf("%d",&m)
for(k=1k<=10k++)
if (a[k].n==m)
l=k
a[l].cha=4 /*阻塞->活动阻塞*/}void swpend()
{int i,k,m,l
printf("请输入n0:")
scanf("%d",&m)
for(k=1k<=10k++)
if (a[k].n==m)
l=k
a[l].cha=2/* 挂起->静止阻塞 */}void look()
{int i
printf("\t\t�pcb n0 k0 cha\n")
for (i=1i<=10i++)
printf("\t\t%d\t%d\t%d\t%d\n",i,a[i].n,a[i].k,a[i].cha)
printf("\t1--静止就绪 2--静止阻塞 3--活动就绪 4--活动阻塞 5--运行\n")}void zt() /* 改变状态*/
{int i,k,m,l
printf("请输入n0:")
scanf("%d",&m)
for(k=1k<=10k++)
if (a[k].n==m)
l=k
printf("请输入当前状态:")
scanf("%d",&a[l].cha)
look()}void yxs() /*改变优先数*/
{int i,k,m,l
printf("请输入此棚春n0:")
scanf("%d",&m)
for(k=1k<=10k++)
if (a[k].n==m)
l=k
printf("请输入优先数:")
scanf("%d",&a[l].k)
look()}main()
{int d
clrscr()
do
{
printf("\t\t*************** CHOICE *****************\n")
printf("\t\t* 1--------------进程创建森耐 *\n")
printf("\t\t* 2--------------进和饥程撤消 *\n")
printf("\t\t* 3--------------阻塞 *\n")
printf("\t\t* 4--------------唤醒 *\n")
printf("\t\t* 5--------------挂起 *\n")
printf("\t\t* 6--------------激活 *\n")
printf("\t\t* 7--------------查看状态 *\n")
printf("\t\t* 8--------------改变状态 *\n")
printf("\t\t* 9--------------改变优先数 *\n")
printf("\t\t* 0--------------退出 *\n")
printf("\t\t****************************************\n")
printf("\t\t�请选择(0-9):")
scanf("%d",&d)
printf("\n")
switch(d)
{
case 1: creat()break
case 2: destory()break
case 3: dse()break
case 4: wakeup()break
case 5: swpend()break
case 6: active()break
case 7:look()break
case 8:zt()break
case 9:yxs()break
case 0: exit(0)
}
}
while(d!=0)
}
没有反应的原因有很多种。比如错误输入,类型错误,代码逻辑错误。不禅运同的情况应该分开分析。2.
例如 scanf("%lf %lf\n"森慎,&x,&e)
这样的语句在回车后就没有反应,必须输入\n后才会有反应。
因为非输出控制符必须原样输入。\n在scanf函数当中并不是控制符,这里没当成换行贺春梁符使用。用scanf 不要加入“\n”非输入控制符,系统在运行时会自动换行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)