统计用户输入的一串数字中每个数字出现的次数
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();
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();
相关文章推荐
- C#控制台 统计用户输入的一串数字中每个数字出现的次数
- 统计用户输入的一串数字中每个数字出现的次数
- 统计用户输入的一串数字中每个数字出现的次数
- 统计用户输入的一串数字中每个数字出现的次数和Winform ComboBox拥有(name,values)
- 统计用户输入的一串数字中每个数字出现的次数
- C#面试题统计用户输入的一串数字中每个数字出现的次数
- 统计用户输入的一串数字中每个数字出现的次数
- 第13周-项目1-小玩文件-用键盘输入文件名,统计输出文件中每个字母、数字字符出现的次数
- 输入数量不确定的[0,9]范围内的整数,统计每个数字出现的次数,输入-1时结束程序。
- 提示用户输入的一个长度8位正整数数字 , 我们来统计这个数字中的每一位上出现的数字的重复次数 :
- awk统计用户输入错误的验证码每个字母出现的次数
- 输入一串字母,统计每个字母的出现的个数并将出现次数最多的字母输出
- java编程:输入一串小写字符串,统计每个字母出现的次数
- BZOJ 1833 数字计数(统计[a,b]每个数字出现次数)
- 输入一串以#为结束的字母,统计出现的次数,并用冒泡法排序?
- 编写一个程序统计输入字符串中: 各个数字、空白字符、以及其他所有字符出现的次数
- 输入任意字符串,统计字符串中每个字符出现的次数
- 编写一个程序统计输入字符串中:各个数字,空白字符,以及其他所有字符常出现的次数。
- 随机生成 50 个数字,每个数字的范围在 [10, 50] 之间,统计每个数字出现的次数,最后将每个数字和它出现的次数打印出来
- 随机产生50个数字,每个数字的范围是[10, 50],统计每个数字出现的次数