c# - 我试图在字符串和重复指令的帮助下解决的问题,但在控制台上结果不是我所期望的
问题描述
using System;
class Program
{
static void Main(string[] args)
{
string candidateName = Console.ReadLine();
string input = Console.ReadLine();
int numberOfAdmittedPersons = Convert.ToInt32(input);
string result = string.Empty;
for (int i = 1; i <= numberOfAdmittedPersons; i++)
{
string listOfAllAdmittedPersons = Console.ReadLine();
{
if (i != numberOfAdmittedPersons)
{
result += listOfAllAdmittedPersons;
}
}
}
if (result.Contains(candidateName))
{
Console.WriteLine("true");
}
else
{
Console.WriteLine("false");
}
}
}
应用程序在第一行接收候选 C 的名称(由用户输入)。下一行包含被录取的人数(也是由用户输入的)。然后是所有被录取的人的列表,每行一个人(也是由用户输入的)。
如果候选人 C 被录取(在列表中找到 C),我必须申请显示“True”,如果候选人被拒绝(C 不在列表中),则显示“False”,例如:如果我输入:
John
3
George
Maria
John
控制台将显示:true
但我得到的结果是:false
。
我可以做些什么来更正我的代码?
解决方案
您的代码有几个问题。导致您的错误的原因是这一行:
if (i != numberOfAdmittedPersons)
这意味着没有将姓氏添加到您的字符串中。
然而还有另一个问题。给定以下输入:
MAX
2
AMA
XAVIER
结果将是true
字符串AMAXAVIER
包含字符串MAX
。答案是使用集合,例如:
string[] result = new string[numberOfAdmittedPersons];
for (int i = 0; i < numberOfAdmittedPersons; i++)
{
result[i] = Console.ReadLine();
}
if (result.Contains(candidateName))
{
...
推荐阅读
- python-3.x - 使用 django-rest-auth 和 allauth 进行 Google 身份验证
- javascript - Cloudinary 视频集成反应找不到元素 ID
- java - GRPC ConnectivityState 不能正常工作?
- amazon-web-services - 已解决 AWS CloudFormation 创建堆栈。未解决的资源依赖关系
- java - 为立即加入 JDA 的用户 jda 赋予角色的最佳方式是什么
- javascript - 找不到模块“./App.svelte”或其对应的类型声明
- reactjs - React 中 Material UI DatePicker 中的最小和最大日期
- javascript - 如果存在重复值,则防止推送到数组
- sql - 将 int var 值设置为通配符
- r - 如何根据特定列的特定文本拆分数据框