⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 先进先出算法1.c

📁 程序挺简单的 是本人在上信息管理时在代码设计做的一个学号校验
💻 C
字号:
main () 
    { 
        int cunchufangwenyemian[4];/*存储访问的页面*/ 
        int cunchujisuanguocheng[3][4];/*存储计算过程;*/ 
        int cunchushifoumingzhong[4];/*存储是否被命中*/
        int lie,hang;/*循环变量列,行*/ 
        int shifoumingzhong;/*在前一列的位置,没有则为0;*/ 
        int wenmenyemiangeshu=4;/*访问页面的个数*/

       /*第一步,初始化*/
      /*输入访问的页面,存到存储访问的页面的数组中*/

        for (lie=0;lie<4;lie++)    
        {
            printf("\n请输入第%d个页面:",lie); 
            scanf("%d",&cunchufangwenyemian[lie]); 
        }

       /*初始化计算过程数组*/ 
       for (lie=0;lie<4;lie++) 
       { 
            for(hang=0;hang<3;hang++) 
            {
                 cunchujisuanguocheng[hang][lie]=-1; 
            }
      }

      /*初始化是否没有命中的数组*/     
       for (lie=0;lie<4;lie++)
       { 
            cunchushifoumingzhong[lie]=0; 
       }

        /*第二步,计算*/

     /*察看是否命中*/      
     for     (wenmenyemiangeshu=0;wenmenyemiangeshu<4;wenmenyemiangeshu++) 
     { 
     /*对于某一列进行处理*/ 
          lie=wenmenyemiangeshu; 
          if (lie==0) /*如果为第一列*/ 
          { 
                cunchujisuanguocheng[0][lie]= cunchufangwenyemian[lie];  /*将页面落下来*/ 
               cunchushifoumingzhong[0]=0;                        /*是否命中为0,不命中*/
          } else 
          {/*如果不为第一列*/ 
                shifoumingzhong=0;   /*假设没命中*/
                for(hang=0;hang<3;hang++) 
                { 
                    if (     cunchujisuanguocheng[hang][lie-1]== cunchufangwenyemian[lie])
                    {
                        shifoumingzhong=hang+1;/*如果相同,则是否命中为命中的位置*/ 
                    }
                } 
                 cunchushifoumingzhong[lie]=shifoumingzhong;/*存储命中位置*/
          } 
          if (lie!=0) 
          { 
               if ((shifoumingzhong!=0))/*是否命中 */ 
               {/*如果命中,则不变*/ 
                     for(hang=0;hang<3;hang++) 
                     { 
                        cunchujisuanguocheng[hang][lie]=cunchujisuanguocheng[hang][lie-1];/*将上一列复制过来*/ 
                     } 
              } else 
              {/*如果没有命中,则向下移一位,新的进来*/ 
                    for(hang=2;hang>0;hang--)
                     { 
                       cunchujisuanguocheng[hang][lie]= cunchujisuanguocheng[hang-1][lie-1];/*将上一列逐个下移复制过来*/
                    } 
                    cunchujisuanguocheng[0][lie]=cunchufangwenyemian[lie];/*最上面的等于新进来的*/ 
              } 
         } 
     }

    
     /*第三步,输出*/ /*输出访问序列*/ 
     for (lie=0;lie<4;lie++) 
     { 
        printf("%d  ",cunchufangwenyemian[lie]); 
     } 
         printf("\n"); /*输出计算过程*/ 
     for (hang=0;hang<3;hang++) 
     { 
        for(lie=0;lie<4;lie++) 
        { 
            printf("%d   ",cunchujisuanguocheng[hang][lie]);
        } 
            printf("\n"); 
     } /*输出是否命中*/
     for (lie=0;lie<4;lie++) 
     { 
        printf("%d   ",cunchushifoumingzhong[lie]); 
     }

    }


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -