作者summerpurple (盛夏午後)
看板C_Sharp
标题[问题] 测试小朋友九九乘法表的程式问题
时间Fri Nov 11 16:09:04 2011
小弟我是刚学习C#的初学者,
有个程式目的是要用来检验小朋友的九九乘法表是否熟练,
要随机产生两个变数相乘,然後让小朋友输入答案,
若是答对,显示非常好,然後显示下一题(不一样的题目),
就这样一直下去.
若是答错,显示错了再试一次,然後显示同一题的题目,直到答对为止.
以上这是题目.
然後我想要把随机乱数出题的部分写成一个副程式,
判断小朋友输入的答案是否正确为另一个副程式
然後从主程式里面去呼叫,这样的方式去写,
我的问题是:
我不会让答对了的题目一直做下去,变成一直循环这样,
还有错了之後我不会让他在显示同样的题目,直到做对换题这样,
我一直想不出来该怎麽去修改,
想请有经验的高手们帮我看一下,
跟我指正一下哪里做错了…
我把我的程式PO上来,
请高手帮个忙,
谢谢你!!
以下是我的程式
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Multiplication
{
class Multiplication
{
public static void Main(string[] args)
{
Console.WriteLine("Welcome to Multiplication");
Console.WriteLine("Please answer the following
question");
int [] com;
com = question();
Correct(com[0],com[1]);
}
public static int[] question()
{
System.Random number = new Random();
int a = number.Next(1, 9);
int b = number.Next(1, 9);
Console.WriteLine("How much is {0} times {1}?", a, b);
int input = Convert.ToInt32(Console.ReadLine());
int ans = a * b;
int [] com = new int[]{input,ans};
return com;
}
public static void Correct(int input, int ans)
{
if (input != ans)
Console.WriteLine("No.Please try again.");
else
Console.WriteLine("Very Good!");
question();
}
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 58.115.161.98
2F:→ summerpurple:如果不用while去写 会很复杂吗? 11/11 17:56
3F:→ james732:你可以改用 for, 不过应该不会比较简单 11/11 19:54
4F:→ james732:for 跟 while 都不要的话,那就只好用 goto 了 11/11 19:55
5F:推 lwecloud:为什麽不要用while? 11/11 20:40
6F:→ summerpurple:没有特别原因,只是想问问看有没有不用while的写法这 11/11 21:05
7F:→ summerpurple:感谢james大大提供的方法^^ 11/11 22:40
8F:推 hatasum:递回也可以阿 开一个function input:题目 11/12 00:10
9F:→ hatasum:如果他答对,则再出题目呼叫同个function;否则就丢原题目 11/12 00:11
10F:→ james732:递回一直进去,可能会有 stack overflow 问题 11/12 00:32
11F:→ james732:虽然要回答到 overflow 应该也要玩得够久...XD 11/12 00:32
12F:推 linxiaoxi:递回,且要防止退栈overflow,可以用异步方式 11/14 09:54
13F:→ linxiaoxi:示例代码推文写不下,回复到看板里了 11/14 09:55