您的位置:首页 > 其它

统计用户输入的一串数字中每个数字出现的次数

2012-02-22 22:39 489 查看
1.先判断用户输入的是否是数字,用if-else语句来判断;

2.将用户输入的数字字符串转换成char数组;

3.用for循环遍历每个字符,根据switch-case语句来逐一判断。

4.再建立一个int数组来接收判断后的结果,最后for循环输出。

class Program

{

static void Main(string[] args)

{

//计算用户输入的一串数字中每个数字出现的次数

Console.WriteLine("请输入一串数字");

string str = Console.ReadLine();

//将字符串转换为字符数组

char[] chnum = str.ToCharArray();

#region 判断用户输入的是否是数字

for (int i = 0; i < chnum.Length; i++)

{//判断每一个字符是否是数字 通过char的方法来判断

if (!char.IsNumber(chnum[i]))

{

Console.WriteLine("您的输入有误,请输入数字");

Console.ReadKey();

return;

}

}

//定义一个新的数组来保存计数

int[] count=new int[9];

#region for循环遍历

//for循环遍历

for (int i = 0; i < chnum.Length; i++)

{

switch (chnum[i])

{

case '1':

count[0]++;

break;

case '2':

count[1]++;

break;

case '3':

count[2]++;

break;

case '4':

count[3]++;

break;

case '5':

count[4]++;

break;

case '6':

count[5]++;

break;

case '7':

count[6]++;

break;

case '8':

count[7]++;

break;

case '9':

count[8]++;

break;

}

}

for (int i = 0; i < count.Length; i++)

{

Console.WriteLine("含有的数字 {0} 的个数是:{1}", i + 1, count[i]);

}

#endregion

Console.ReadKey();

}

}
不过,这种方法有两个缺点就是,如果用户输入的不是数字(如字母或符号等),程序会提示错误,并退出;再者,也会统计出用户没有输入过的数字的个数为0个,如果某些时候不想知道没有输入的数字的个数,这种解法很不合适,而且代码修改起来也很复杂。

用Dictionary来解

class Program

{

static void Main(string[] args)

{

Console.WriteLine("请输入数字");

string numbers = Console.ReadLine();

//创建集合 键 为数字 char类型 值为每个数字出现的次数 int类型

Dictionary<char, int> dict = new Dictionary<char, int>();

//将数字字符串转换为单个字符数组

char[] chs = numbers.ToCharArray();

for (int i = 0; i < chs.Length; i++)

{

//判断是否是数字 用到char的isnumber方法

if (char.IsNumber(chs[i]))

{

//如果键中已含有该数字,则将其对应的值+1,否则不存在,加入键中 值为1

if (!dict.ContainsKey(chs[i]))

{

//将每个数字字符作为键 存入 键值对中, 值初始为1

dict.Add(chs[i], 1);

}

else

{

//值+1

dict[chs[i]]++;

}

}

}

//循环遍历键值对输出

foreach (KeyValuePair<char,int> item in dict)

{

Console.WriteLine("数字:{0}出现了{1}次。",item.Key,item.Value);

}

Console.ReadKey();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐