110,528
社区成员
发帖
与我相关
我的任务
分享
//判读多选题答案正确性 answer:用户答案 correct正确答案
public static bool bolAnswer(string answer, string correct)
{
//把字符串转换成数组
char[] chrAnswer = answer.ToCharArray();
char[] chrCorrect = correct.ToCharArray();
//判断用户数据是否为空
if(answer.Length<1)
{
return false;
}
//判读用户答案长度是否与正确答案长度一致
else if (!answer.Length.Equals(correct.Length))
{
return false;
}
else
{
for (int i = 0; i < answer.Length; i++)
{
for (int j = 0; j < correct.Length; j++)
{
int n = 1;
if (chrAnswer[i] == chrCorrect[j])
{
break;
}
else
{
n++;
}
if (n > correct.Length)
{
return false;
}
}
}
return true;
}
}
public void Test()
{
Choice[] answer01_1 = new Choice[] { Choice.A, Choice.B, Choice.C };
Choice[] answer01_2 = new Choice[] { Choice.A, Choice.B, Choice.C, Choice.D };
Choice[] answer01_3 = new Choice[] { Choice.A, Choice.B };
Choice[] true_answer01 = new Choice[] { Choice.A, Choice.B, Choice.C };
//以下修改
Console.WriteLine(true_answer01.Intersect(answer01_1).Count() == answer01_1.Length && answer01_1.Length== true_answer01.Length);
Console.WriteLine(true_answer01.Intersect(answer01_2).Count() == answer01_2.Length && answer01_2.Length == true_answer01.Length);
Console.WriteLine(true_answer01.Intersect(answer01_3).Count() == answer01_3.Length && answer01_3.Length == true_answer01.Length);
//如果你用位操作,就更简单了。
Choice answer1_1 = Choice.A | Choice.B | Choice.C;
Choice answer1_2 = Choice.A | Choice.B | Choice.C | Choice.D;
Choice answer1_3 = Choice.A | Choice.C;
Choice true_answer1 = Choice.A | Choice.B | Choice.C;
Console.WriteLine(answer1_1 == true_answer1);
Console.WriteLine(answer1_2 == true_answer1);
Console.WriteLine(answer1_3 == true_answer1);
}
public void Test()
{
Choice[] answer01_1 = new Choice[] { Choice.A, Choice.B, Choice.C };
Choice[] answer01_2 = new Choice[] { Choice.A, Choice.B, Choice.C, Choice.D };
Choice[] true_answer01 = new Choice[] { Choice.A, Choice.B, Choice.C };
Console.WriteLine(true_answer01.Intersect(answer01_1).Count() == answer01_1.Length);
Console.WriteLine(true_answer01.Intersect(answer01_2).Count() == answer01_2.Length);
//如果你用位操作,就更简单了。
Choice answer1_1 = Choice.A | Choice.B | Choice.C;
Choice answer1_2 = Choice.A | Choice.B | Choice.C| Choice.D;
Choice answer1_3 = Choice.A | Choice.C ;
Choice true_answer1 = Choice.A | Choice.B | Choice.C;
Console.WriteLine(answer1_1 == true_answer1);
Console.WriteLine(answer1_2 == true_answer1);
Console.WriteLine(answer1_3 == true_answer1);
}
public enum Choice { A = 1, B = 2, C = 4, D = 8 }