• 学会编辑代码——《狂人C》习题解答4(第二章习题7)


       
    /*
    父亲将2520个桔子分给六个儿子。分完后父亲说:
    "老大将分给你的桔子的1/8分给老二;
    老二拿到后连同原先的桔子分1/7给老三;
    老三拿到后连同原先的桔子分1/6给老四;
    老四拿到后连同原先的桔子分1/5给老五;
    老五拿到后连同原先的桔子分1/4给老六;
    老六拿到后连同原先的桔子分1/3给老大"。
    在分桔子的过程中并不存在分得分数个桔子的情形,
    结果大家手中的桔子正好一样多。问六兄弟原来手中各有多少桔子。
    */
    #include <stdio.h>
    #include <stdlib.h>
    
    #define JUZI_ZONGSHU 2520
    #define FENSHU  6
    
    #define XD1_XD2 8
    #define XD2_XD3 7
    #define XD3_XD4 6
    #define XD4_XD5 5
    #define XD5_XD6 4
    #define XD6_XD1 3
    
    int main( void )
    {
      int xd1 , xd2 , xd3 , xd4 , xd5 , xd6 ;//诸兄弟的桔子数 
      
      //结果大家手中的桔子正好一样多
        xd1 
      = xd2 
      = xd3 
      = xd4 
      = xd5 
      = xd6 
      = JUZI_ZONGSHU / FENSHU ;
      
      //老六分给老大之前
      xd6 =  xd6 / ( XD6_XD1 - 1 ) * XD6_XD1 ;
      xd1 -= xd6 / XD6_XD1 ;
    
      //老五分给老六之前
      xd5 =  xd5 / ( XD5_XD6 - 1 ) * XD5_XD6 ;
      xd6 -= xd5 / XD5_XD6 ;
    
      //老四分给老五之前
      xd4 =  xd4 / ( XD4_XD5 - 1 ) * XD4_XD5 ;
      xd5 -= xd4 / XD4_XD5 ;
    
      //老三分给老四之前
      xd3 =  xd3 / ( XD3_XD4 - 1 ) * XD3_XD4 ;
      xd4 -= xd3 / XD3_XD4 ;
      
      //老二分给老三之前
      xd2 =  xd2 / ( XD2_XD3 - 1 ) * XD2_XD3 ;
      xd3 -= xd2 / XD2_XD3 ;
    
      //老大分给老二之前
      xd1 =  xd1 / ( XD1_XD2 - 1 ) * XD1_XD2 ;
      xd2 -= xd1 / XD1_XD2 ;
    
    
      printf("六兄弟原来手中的桔子数分别为:");
      printf("%d %d %d %d %d %d\n" , 
              xd1 , xd2 , xd3 , xd4 , xd5 , xd6 );
      
      
      system("PAUSE");	
      return 0;
    }
    
        初学者往往一个字符一个字符地写代码,不仅效率低,而且容易出错。应该学会高效且不容易出错地编辑代码。
        以本题中的代码为例:
        //老六分给老大之前
        xd6xd6 / ( XD6_XD1 - 1 ) * XD6_XD1 ;
        xd1 -= xd6 / XD6_XD1 ;
        红色的标识符均应通过"复制"、"粘贴"的办法完成。这种方法不容易出错,而且效率也高。
        “//老五分给老六之前”之后的两行代码应该通过复制前面两行代码之后,通过“查找”、“替换”或"复制"、"粘贴"的办法完成。以后诸行代码同样应该依法炮制。
         一定要改掉逐个字符编辑代码的习惯。     
  • 相关阅读:
    窗体句柄总是0
    该函数设置由不同线程产生的窗口的显示状态。
    zip压缩解压缩 项目icsharpcode-SharpZipLib-e012155
    VS(Microsoft Visual Studio2010)工具打开项目所需的应用程序,出现未安装(.csproj)的应用程序的解决办法
    Cocoa深入学习:NSOperationQueue、NSRunLoop和线程安全
    iPhone 6出现后,如何将一份设计稿支持多个尺寸?
    iPhone/Mac Objective-C内存管理教程和原理剖析
    What does the “__block” keyword mean?
    UIView frame, bounds and center
    ARC __bridge modifiers demystified
  • 原文地址:https://www.cnblogs.com/KBTiller/p/2062331.html
Copyright © 2020-2023  润新知