练习题

1.猜拳游戏

/*做个猜拳游戏
 * 要求1:要有相关的提示信息,比如,用户准备出拳
 * 要球2:主程序页面要有退出按钮
 * 可选:如果用户积分少于100,则提示用户信息积分不足直接退出游戏,如果超出100可以进行猜拳游戏,用户每赢一次,加分50,输一次减50
 * 
 * 规则:0:剪刀
 *      1 包子
 *         2 锤子
 * 
 * 电脑出拳随机0-2
 * 
 * 判断结果:0 0 提示打平
 *             0 1用户赢:积分+50
 *             0 2电脑赢 积分-50 
 */

代码实现

        Console.WriteLine ("0:剪刀 1 包子 2 锤子");
            Console.WriteLine ("按8退出游戏");
            int jf = 200;

            bool s = true;
            while (s) {
                int a = int.Parse (Console.ReadLine ());
                switch (a) {
                case 0:
                    Random ran = new Random ();
                    int RandKey = ran.Next (0, 3);
                    if (RandKey == 0) {
                        Console.WriteLine ("打平");
                        Console.WriteLine ("电脑出拳为:剪刀");
                        Console.WriteLine ("用户出拳为:剪刀");

                    }
                    if (RandKey == 1) {
                        Console.WriteLine ("用户赢");
                        Console.WriteLine ("电脑出拳为:包子");
                        Console.WriteLine ("用户出拳为:剪刀");
                        jf += 50;
                    }
                    if (RandKey == 2) {
                        Console.WriteLine ("电脑赢");
                        Console.WriteLine ("电脑出拳为:锤子");
                        Console.WriteLine ("用户出拳为:剪刀");
                        jf -= 50;
                    }
                    break;
                case 1: 
                    Random ra = new Random ();
                    int Rand = ra.Next (0, 3);
                    if (Rand == 0) {
                        Console.WriteLine ("用户赢");
                        Console.WriteLine ("电脑出拳为:剪刀");
                        Console.WriteLine ("用户出拳为:包子");

                    }
                    if (Rand == 1) { 
                        Console.WriteLine ("打平");
                        Console.WriteLine ("电脑出拳为:包子");
                        Console.WriteLine ("用户出拳为:包子");
                        jf -= 50;
                    }
                    if (Rand == 2) {
                        Console.WriteLine ("用户赢");
                        Console.WriteLine ("电脑出拳为:锤子");
                        Console.WriteLine ("用户出拳为:包子");
                        jf += 50;
                    }
                    break;
                case 2:
                    Random r = new Random ();
                    int Ra = r.Next (0, 3);
                    if (Ra == 0) {
                        Console.WriteLine ("用户赢");
                        Console.WriteLine ("电脑出拳为:剪刀");
                        Console.WriteLine ("用户出拳为:锤子");
                        jf += 50;

                    }
                    if (Ra == 1) {
                        Console.WriteLine ("电脑赢");
                        Console.WriteLine ("电脑出拳为:包子");
                        Console.WriteLine ("用户出拳为:锤子");
                        jf -= 50;
                    }
                    if (Ra == 2) {
                        Console.WriteLine ("打平");
                        Console.WriteLine ("电脑出拳为:锤子");
                        Console.WriteLine ("用户出拳为:锤子");
                    }
                    break;
                case 8:
                    s = false;
                    
                    break;
                default:
                    break;
                }
                Console.WriteLine ("积分为:{0}",jf);
                
            }


2. (**)找出下列整型数组中最大和最小值及其所在位置i。

                   int[] a={3,5,8,13,47,9};
            int[] b ={-23,45,14,65};
            int max = a [0];
            int min = a [0];
            int index = 0;
            int    index1 = 0;
            for (int i = 0; i <a.Length; i++) {
                if (max < a [i]) {
                    max = a [i];
                    index = i;
                    Console.WriteLine (max);
                } else if (min > a [i]) {
                
                    min = a [i];
                    index1 = i;
                }
            }

            Console.WriteLine ("最大值:{0} 所在位置:{1}最小值:{2} 所在位置:{3}",max,index,min,index1);
        }


 3. (**)已知abc+cba = 1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。

             for (int a = 0; a <= 9; a++) {
                for (int b = 0; b <=9; b++) {
                    for (int c = 0; c <=9; c++) {
                        if(((a*100)+(b*10+c))+((c*100)+(b*10)+(a))==1333)
                            Console.WriteLine ("{0} {1} {2}",a,b,c);
                    }
                }

        }



4. (****)输入n,分别用*输出边长为n的实心菱形和空心菱形。

        例如:n = 3时,输出:
                  *
                 ***
                *****
                 ***
                  *

                int n = 5;
            for (int i = 0; i < 2 * n - 1; i++) {
                if (i < n) {
                    for (int j = 0; j <  n + i; j++) {
                        if (j < n - i - 1) {
                            Console.Write (" ");
                        } else {
                            Console.Write ("*");
                        }
                    }
                    Console.WriteLine ();
                } 
                if (i >= n) {
                    for (int j = 0; j <  n + (2 * n - i) - 2; j++) {
                        if (j < n - (2 * n  - i - 1)) {
                            Console.Write (" ");
                        } else {
                            Console.Write ("*");
                        }
                    }
                    Console.WriteLine ();
                }
            }


              *
             * *
            *   *
             * *
              *

            int n = 11;
            for (int i = 0; i < 2 * n - 1; i++) {
                if (i < n) {
                    for (int j = 0; j <  n + i; j++) {
                        if (j < n - i - 1) {
                            Console.Write (" ");
                        } else if (j == (n - i - 1) || j == (n + i -1)) {
                            Console.Write ("*");
                        } else {
                            Console.Write (" ");
                        }

                    }
                    Console.WriteLine ();
                } 
                if (i >= n) {
                    for (int j = 0; j <  n + (2 * n - i) - 2; j++) {
                        if (j < n - (2 * n  - i - 1)) {
                            Console.Write (" ");
                        } else if (j == n - (2 * n  - i - 1) || j == n + (2 * n - i) - 3) {
                            Console.Write ("*");
                        } else {
                            Console.Write (" ");
                        }
                    }
                    Console.WriteLine ();
                }
            }


5. 分别用while、do...while、for循环打印1~100之间3的倍数

            //for

            for (int i = 1; i < 101; i++) 
            {
                if (i % 3 == 0)
                {
                    Console.WriteLine (i);
                }

            }

             // do....while
            int i=1;

            do {
                if(i%3==0)
                {
                    Console.WriteLine (i);
                }
                i++;
            } while(i < 101);

            int a = 1;
            while (a<101) {
                if (a % 3 == 0) {
                    Console.WriteLine (a);
                }
                a++;
            }

6. 用while和for循环打印出1-100之间7的倍数,个位为7的数,十位为7的倍数,不是7的倍数并且不包含7

            for (int a = 1; a <= 100; a++) {
                if (a % 7 == 0) {
                    Console.WriteLine ("7的倍数:{0}",a);
                }
                if (a%10==7) {
                    Console.WriteLine ("个位7的数:{0}",a);
                }
                if (a%100/10==7) {
                    Console.WriteLine ("十位7的数:{0}",a);
                }
                if (a % 7 != 0 && a % 10 != 7 && a % 100 / 10 != 7) {
                    Console.WriteLine ("不是7的倍数并且不包含7:{0}",a);
                }
                
            }

7. 使用嵌套循环产生下列图案:

                    $
                    $$
                    $$$
                    $$$$
                    $$$$$

            for (int i = 1; i <=5; i++) {
                for (int j = 1; j <=i; j++)  {
                    Console.Write ('$');
                }

                Console.WriteLine ();
            }


 8. 使用循环打印杨辉三角
                      *
                     ***
                    *****
            int n = 5; 
            for (int i = 1; i <= n; i+=2)
            { 
                Console.Write(new string(' ', n - i));
                for (int j = 1; j <= 2 * i; j++) 
                    Console.Write(" *"[j % 2]); 
                Console.WriteLine(); 
            } 

        }



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 知识点: 注:int类型默认32位有大小范围 且第一位为符号位 0 为正 1 为负 8.4作业 A:1、风力预警系...
    cGunsNRoses阅读 1,124评论 0 0
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,788评论 0 33
  • 1.单分支语句if if语句的表达式:if(条件){语句块1;语句块2}//如果我们if语句块只有一个语句,那么...
    Unity开发阅读 1,122评论 1 1
  • 今天这节课继续讨论,通过收取拥堵费来治理交通拥堵问题的经济学理由。 上一节课讨论了某段路如果要加收一个拥堵费,比如...
    AmberShao阅读 1,352评论 0 2
  • 我和老公都是爱散步踏青之人,这里有广阔的土地、清澈的小溪、浩瀚的天空,部队里家属很少,每当在夜间散步时,似我二人独...
    紫藤姑娘阅读 505评论 2 2