标题:急急~!~!高手来帮个忙~!
只看楼主
yj36963
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-4-28
 问题点数:0 回复次数:2 
急急~!~!高手来帮个忙~!
怎么能让当你输入Y循环执行,输入N退出,代码改咋弄!~!谢谢了啊~
#include <stdio.h>
#include <string.h>
void main()
{
    int print1(int need);
    int print2(int allocation);
    int available[3]={10,5,7};
    int max[5][3]={7,5,3,3,2,2,9,0,2,2,2,2,4,3,3};
    int allocation[5][3]={0};
    int need[5][3]={7,5,3,3,2,2,9,0,2,2,2,2,4,3,3};
    int i,j,k,m,n,p;
    char t;

    printf("------------------------------------------\n系统可用的资源数为:\n");
    printf("资源0:%d     资源1:%d     资源2:%d",available[0] ,available[1] ,available[2]);
    printf("\n------------------------------------------\n各进程还需要的资源量:\n");
    for(i=0;i<5;i++)
    {

         printf("进程%d:   ",i);
        for(j=0;j<3;j++)
          printf("资源%d:%d     ",j,need[i][j]);
        printf("\n");
    }
    printf("\n------------------------------------------\n各进程已得到的资源量:\n");
        for(i=0;i<5;i++)
    {

         printf("进程%d:   ",i);
        for(j=0;j<3;j++)
          printf("资源%d:%d     ",j,allocation[i][j]);
        printf("\n");
    }
         printf("如想继续银行家算法演示,请按‘y’键继续或‘n’键退出:");
          scanf("%c",&t);
            
    
    while(t=='y')
        
    {
            
          printf("请输入您要申请资源的进程号:");
            scanf("%d",&k);
        if(k>=0&&k<5)
        {
            printf("请输入进程%d申请的资源数:",k);
            scanf("%d%d%d",&m,&n,&p);
            printf("资源0的申请数:%d",m);
            printf("资源1的申请数:%d",n);
            printf("资源2的申请数:%d",p);
        }
        need[k][0]=need[k][0]-m;
        need[k][1]=need[k][1]-n;
        need[k][2]=need[k][2]-p;
        allocation[k][0]=allocation[k][0]+m;
        allocation[k][1]=allocation[k][1]+n;
        allocation[k][2]=allocation[k][2]+p;

         printf("\n------------------------------------------\n各进程还需要的资源量:\n");
           for(i=0;i<5;i++)
           {

            printf("进程%d:   ",i);
            for(j=0;j<3;j++)
              printf("资源%d:%d     ",j,need[i][j]);
            printf("\n");
           }
          printf("\n------------------------------------------\n各进程已得到的资源量:\n");
             for(i=0;i<5;i++)
              {

            printf("进程%d:   ",i);
              for(j=0;j<3;j++)
             printf("资源%d:%d     ",j,allocation[i][j]);
            printf("\n");
             }
          printf("如想继续银行家算法演示,请按‘y’键继续或‘n’键退出:");
          scanf("%c",&t);
        
           
            
             
    }
   
    
    
        
}


怎么能让当你输入Y循环执行,输入N退出,代码改咋弄!~!谢谢了啊~!
搜索更多相关主题的帖子: allocation available include 
2008-04-28 16:37
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
#include"stdio.h"
int judge()
{  
    char c;
    while(c=getchar())
    {
    fflush(stdin);
    if(c!='n'&&c!='y')
    {
        printf("\n你输入不符合要求,请输入n或y:");
        
        continue;
    }
    if(c=='n')
        return 1;
    if(c=='y')
        return 0;
    }
}
int main()
{
    
    while(judge());
    return 0;
}

学习需要安静。。海盗要重新来过。。
2008-04-28 17:04
飞陨
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2008-3-19
得分:0 
`~`这个方法比较多了.
我喜欢用for循环..
这样写
for(;;)
{
    /*把程序的主体写在这里面,然后提供一个跳出循环的方法...就比如你说的输入
n键退出,只要声明一个变量char c,每次迭代的时候询问是否继续...把输入的值赋给c,然后一个
if("n" == c)
    break;
就好了
*/
}
2008-04-28 17:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-211489-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.417563 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved