首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在c++中嵌套for循环

在c++中嵌套for循环
EN

Stack Overflow用户
提问于 2011-03-07 22:56:25
回答 2查看 369关注 0票数 1

在编写以下函数之前,我所做的是将数字1到52分配给一副52张牌(在4行13列的2d阵列中).now我希望以一种在一行中有2个显示器的方式打印包含数字的牌(按升序排列)...

代码语言:javascript
复制
void DeckOfCards::deal()  
{  
   // initialize suit array  
   static const char *suit[ 4 ] =   
      { "Hearts", "Diamonds", "Clubs", "Spades" };  

   // initialize face array  
   static const char *face[ 13 ] =   
      { "Ace", "Deuce", "Three", "Four", "Five", "Six", "Seven",     
      "Eight", "Nine", "Ten", "Jack", "Queen", "King" };  

   // for each of the 52 cards  
   for ( int card = 1; card <= 52; card++ )  
   {
      // loop through rows of deck  
      for ( int row = 0; row <= 3; row++ )  
      {
         // loop through columns of deck for current row  
         for ( int column = 0; column <= 12; column++ )  
         {  
            // if slot contains current card, display card  
            if ( deck[ row ][ column ] == card )   
            {  
               cout << setw( 5 ) << right << face[ column ]   
                  << " of " << setw( 8 ) << left << suit[ row ]  
                  << ( card % 2 == 0 ? '\n' : '\t' );  
            } // end if  
         } // end innermost for  
      } // end inner for  
   } // end outer for  
} // end function deal   

但是,如果我更改for statemants的顺序,即先是行,然后是列,然后是card...what,那么我得到的是一个完全不同的输出布局……在一个line....it中没有两个输出是完全disordered...why的,请告诉我?

EN

回答 2

Stack Overflow用户

发布于 2011-03-07 23:05:30

卡片循环可能不是必需的。取而代之的是,在内部循环中,从行和列计算card。

改变行和列循环的顺序预计会改变输出(行主要或列主要)

票数 1
EN

Stack Overflow用户

发布于 2011-03-07 23:19:25

如果你先划,再列,再打牌,你会先得到所有的红心,然后是所有的方块,梅花和黑桃,然后依次是A,Deuce,3.国王

它是否放入一个额外的列取决于“卡片”,这是它在包中的随机位置,所以无论它是否会给你换行符,这几乎就像抛硬币一样,除了你保证它会准确地这样做26次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5221134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档