搜索
有爱,有技术,有你^_^)y
╱人◕‿‿◕人╲订下契约(注册新用户)

合作站点账号登陆

QQ登录

只需一步,快速开始

快捷导航
查看: 3058|回复: 61
收起左侧

从键盘上输入两个整数,由用户回答它们的和,差,积,...

[复制链接]

签到天数: 5 天

连续签到: 1 天

[LV.2]偶尔看看I

39

主题

56

好友

9747

积分

中二病

Dark Frame Master!

积分
9747
发表于 2013-1-29 23:54:53 | 显示全部楼层 |阅读模式

╱人◕‿‿◕人╲定下契约

您需要 登录 才可以下载或查看,没有账号?╱人◕‿‿◕人╲订下契约(注册新用户)

x
本帖最后由 绯色の胖子 于 2015-6-12 18:12 编辑

题目:从键盘上输入两个整数,由用户回答它们的和,差,积,商和取余运算结果,并统计出正确答案的个数。

代码:
[mw_shl_code=applescript,true]using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("if you want to exit this program,press enter directly.");
            try { ToDo(); }
            catch (Exception ex) { Console.WriteLine(ex); }
        }

        public static void ToDo()
        {
            int a = 0;
            int b = 0;
            int c = 0;
            int result1=0;
            int result2=0;
            int i=0;
            
            do
            {   
                Console.WriteLine("input first num");
                a = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("input second num:");
                b = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("input operator:1=plus,2=minuse,3=multiply,4=devide");
                c = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("input result:");
                result1 = Convert.ToInt32(Console.ReadLine());
                switch (c)
                {
                    case 1:
                    result2 = a + b;
                    break;

                    case 2:
                    result2 = a - b;
                    break;  
                  
                    case 3:
                    result2 = a * b;
                    break;   
               
                    case 4:
                    result2 = a / b;
                    break;
                    default :
                    break;
                }
                if (result1 == result2)
                {
                    i++;
                }
                Console.WriteLine("correct time is {0}", i);
            } while (i>0);
            
        }
    }
}
[/mw_shl_code]

纯自学……没老师……
求建议,求优化!

评分

参与人数 1宅币 +5 收起 理由
Mr_Alex + 5 o(* ̄▽ ̄*)ブ 发糖 鼓励发帖

查看全部评分

欢迎光临PSP/PSV吧!3月:即将统计各服的基友列表。即将开展分享攻略心得活动。新浪微博
回复

使用道具 举报

签到天数: 5 天

连续签到: 1 天

[LV.2]偶尔看看I

39

主题

56

好友

9747

积分

中二病

Dark Frame Master!

积分
9747
 楼主| 发表于 2013-1-29 23:55:36 | 显示全部楼层
本来想做个枚举来处理加减乘除的……
可不会从键盘获取……求教!
欢迎光临PSP/PSV吧!3月:即将统计各服的基友列表。即将开展分享攻略心得活动。新浪微博
回复 支持 0 反对 1

使用道具 举报

该用户从未签到

2

主题

18

好友

7901

积分

序章

积分
7901
发表于 2013-1-30 14:18:15 | 显示全部楼层
其实这样就可以了,如果你是打算换成输入“1+2”然后猜答案的话,会更麻烦,因为你读入的是字符串,你还需要判断那部分属于数字,哪部分属于运算符。对于初学者来说可能麻烦点,如果你学过正则表达式的话可以用正则表达式来做,会容易一点。当然我也是属于菜鸟等级的,所以也不能提供多大的帮助
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 0 反对 1

使用道具 举报

签到天数: 3 天

连续签到: 1 天

[LV.2]偶尔看看I

41

主题

60

好友

2万

积分

第一章

守望者

积分
21763
发表于 2013-1-30 14:25:13 | 显示全部楼层
挺好的,只是,你的循环的跳出条件是不是有问题~~

如果i>0就一直循环 ?那岂不是只要回答正确一个,就要无限次的回答了
如果有来生,要做一棵树,站成永恒,没有悲欢的姿势。一半在土里安详,一半在风里飞扬,一半洒落阴凉,一半沐浴阳光,非常沉默非常骄傲,从不依靠从不寻找。
回复 支持 反对

使用道具 举报

签到天数: 5 天

连续签到: 1 天

[LV.2]偶尔看看I

39

主题

56

好友

9747

积分

中二病

Dark Frame Master!

积分
9747
 楼主| 发表于 2013-1-30 14:44:07 | 显示全部楼层

啊……没打算让他跳出……应该是1>0就一直循环……
欢迎光临PSP/PSV吧!3月:即将统计各服的基友列表。即将开展分享攻略心得活动。新浪微博
回复 支持 反对

使用道具 举报

签到天数: 3 天

连续签到: 1 天

[LV.2]偶尔看看I

41

主题

60

好友

2万

积分

第一章

守望者

积分
21763
发表于 2013-1-30 14:46:29 | 显示全部楼层
s_ki11 发表于 2013-1-30 14:44
啊……没打算让他跳出……应该是1>0就一直循环……

噗。。。有这样的么 程序一打开就不打算关闭了 ?
如果有来生,要做一棵树,站成永恒,没有悲欢的姿势。一半在土里安详,一半在风里飞扬,一半洒落阴凉,一半沐浴阳光,非常沉默非常骄傲,从不依靠从不寻找。
回复 支持 反对

使用道具 举报

签到天数: 5 天

连续签到: 1 天

[LV.2]偶尔看看I

39

主题

56

好友

9747

积分

中二病

Dark Frame Master!

积分
9747
 楼主| 发表于 2013-1-30 14:48:17 | 显示全部楼层
Mr_Alex 发表于 2013-1-30 14:46
噗。。。有这样的么 程序一打开就不打算关闭了 ?

程序显示的第一行话是……
Console.WriteLine("if you want to exit this program,press enter directly.")
欢迎光临PSP/PSV吧!3月:即将统计各服的基友列表。即将开展分享攻略心得活动。新浪微博
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

0

好友

608

积分

New Game

积分
608
发表于 2013-1-31 00:34:44 | 显示全部楼层
建议用窗口做做看  C#窗口还是很容易的
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

18

好友

7901

积分

序章

积分
7901
发表于 2013-2-1 00:56:03 | 显示全部楼层
s_ki11 发表于 2013-1-30 14:44
啊……没打算让他跳出……应该是1>0就一直循环……

LZ的程序中已经使用了try,而convert.toint32()这个方法当你直接输入回车或者其他不是数字的字符串时会直接抛出异常,从而执行catch里面的语句,所以是可以跳出的。而程序最开始部也说也直接输入回车就可以跳出了么?我看程序的时候以为LZ有注意到这点,但看评论好像没有注意?这个点挺重要的,值得关注一下啊LZ。这个程序利用这点退出我觉得还是挺巧妙的。

点评

嘿嘿,不过这个方法不太好哇……其实想找更好的方法目前没想到。  发表于 2013-2-1 01:14
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

18

好友

7901

积分

序章

积分
7901
发表于 2013-2-1 01:17:13 | 显示全部楼层
如果LZ是用winform做的话就会简单点,用控制台的话差不多就这样..当然也也可以在每次循环开始的时候询问是否要退出,是的话就跳出循环
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

235

主题

249

好友

5万

积分

技术宅认证程序员

积分
52156
发表于 2013-2-2 17:04:38 | 显示全部楼层
应该要判断输入的是否是int整形吧~
这个应该很容易想到o(* ̄▽ ̄*)o
❤钱伯我的爱!组长一生推❤
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

7

好友

1074

积分

Continue

积分
1074
发表于 2013-2-4 00:46:53 | 显示全部楼层
把加减乘除封成4个方法,用一个get方法来设置入参和选择的运算

基于委托、表驱动之类的去取运算方法,从而去点switch块,这样不是更nice么
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

签到天数: 5 天

连续签到: 1 天

[LV.2]偶尔看看I

39

主题

56

好友

9747

积分

中二病

Dark Frame Master!

积分
9747
 楼主| 发表于 2013-2-5 16:28:56 | 显示全部楼层
2012好想回家 发表于 2013-2-2 17:04
应该要判断输入的是否是int整形吧~
这个应该很容易想到o(* ̄▽ ̄*)o

想到了 求方法 。
欢迎光临PSP/PSV吧!3月:即将统计各服的基友列表。即将开展分享攻略心得活动。新浪微博
回复 支持 反对

使用道具 举报

签到天数: 5 天

连续签到: 1 天

[LV.2]偶尔看看I

39

主题

56

好友

9747

积分

中二病

Dark Frame Master!

积分
9747
 楼主| 发表于 2013-2-5 16:39:18 | 显示全部楼层
老虚__颜艺森赛 发表于 2013-2-4 00:46
把加减乘除封成4个方法,用一个get方法来设置入参和选择的运算

基于委托、表驱动之类的去取运算方法,从而 ...

嗯!可惜还不会用get!
欢迎光临PSP/PSV吧!3月:即将统计各服的基友列表。即将开展分享攻略心得活动。新浪微博
回复 支持 反对

使用道具 举报

该用户从未签到

235

主题

249

好友

5万

积分

技术宅认证程序员

积分
52156
发表于 2013-2-5 18:22:14 | 显示全部楼层
s_ki11 发表于 2013-2-5 16:28
想到了 求方法 。

只要在if里判断convert.Toint32(num) 能不能成功就可以了
❤钱伯我的爱!组长一生推❤
回复 支持 反对

使用道具 举报

本版积分规则

小黑屋|手机版|技术宅(Z站|基宅) ( 粤ICP备18082987号-1 )

GMT+8, 2025-7-8 01:15 , Processed in 0.167760 second(s), 29 queries , Redis On.

Copyright © 2018 技术宅社区

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表