作者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
→ summerpurple:如果不用while去寫 會很複雜嗎? 11/11 17:56
→ james732:你可以改用 for, 不過應該不會比較簡單 11/11 19:54
→ james732:for 跟 while 都不要的話,那就只好用 goto 了 11/11 19:55
推 lwecloud:為什麼不要用while? 11/11 20:40
→ summerpurple:沒有特別原因,只是想問問看有沒有不用while的寫法這 11/11 21:05
→ summerpurple:感謝james大大提供的方法^^ 11/11 22:40
推 hatasum:遞迴也可以阿 開一個function input:題目 11/12 00:10
→ hatasum:如果他答對,則再出題目呼叫同個function;否則就丟原題目 11/12 00:11
→ james732:遞迴一直進去,可能會有 stack overflow 問題 11/12 00:32
→ james732:雖然要回答到 overflow 應該也要玩得夠久...XD 11/12 00:32
推 linxiaoxi:遞回,且要防止退棧overflow,可以用異步方式 11/14 09:54
→ linxiaoxi:示例代碼推文寫不下,回復到看板里了 11/14 09:55