注意,只有关键代码,如何添加类、接口等请自行完成。之所以每个控制台程序都加一个Console.ReadLine(),是因为有些版本的Visual Studio执行完以后直接退出,加上会暂停在命令提示行窗口。
一、简单题
1、逆序字符串。
把输入的字符串中的内容逆置,并保存到新字符串,并输出新字符串的内容。
static void Main(string[] args)
{
Console.Write("请输入字符串:");
string str1 = string.Format(Console.ReadLine());
string str2="";
for (int i = str1.Length - 1; i >= 0; i--) {
str2 += str1[i];
}
Console.WriteLine("{0}的逆序字符串是:{1}",str1,str2);
Console.ReadLine();
}
2、判断是否构成三角形
已知三角形三条边长a,b,c,三边由用户输入,编程判断a、b、c的值是否构成三角形,如构成三角形,则计算并输出三角形的面积,否则输出“不能构成三角形”计算三角形面积公式为:
s=0.5*(a+b+c) ,area=
求三角形的面积area。
static void Main(string[] args)
{
double s,area;
Console.Write("请输入第1条边:");
int a=int.Parse(Console.ReadLine());
Console.Write("请输入第2条边:");
int b=int.Parse(Console.ReadLine());
Console.Write("请输入第3条边:");
int c=int.Parse(Console.ReadLine());
if (a + b < c || a + c < b || b + c < a)
{
Console.WriteLine("不构成三角形");
}
else
{
s = 0.5 * (double)(a + b + c);
area = Math.Sqrt(s * (s - a) * (s - b) * (s - c));
Console.WriteLine("三角形的面积为:{0}", area);
}
Console.ReadLine();
}
3、删除字符串中的数字
输入一个字符串str1,删除str1中其中所有的0-9的数字字符,输出处理后的字符串。
static void Main(string[] args)
{
string str1 = "";
string str2 = "";
Console.Write("输入一个字符串:");
str2=str1 =string.Format( Console.ReadLine());
//方法1,for循环,找到数字并删除
for (int i = 0; i < str2.Length; i++)
{
if (str2[i] >= '0' && str2[i] <= '9')
{
str2 = str2.Remove(i,1);
i--;//回退i
}
}
//方法2,用正则式删除
//str2 = Regex.Replace(str1, "[0-9]", "", RegexOptions.IgnoreCase);
Console.WriteLine("原字串:{0},删除数字后:{1}",str1,str2);
Console.ReadLine();
}
4、计算平均值并输出低于平均值的数
输入10个数,计算平均值,统计低于平均值数据个数并把低于平均值的数据输出。
static void Main(string[] args)
{
int []a=new int[10];
double ave;
int count=0,s=0;
for (int i = 0; i < 10; i++)
{
Console.Write("请输入第{0}个数:",i+1);
a[i] = int.Parse(Console.ReadLine());
s += a[i];
}
ave = s / 10;
Console.WriteLine("低于平均数的数是:");
for (int i = 0; i < 10; i++)
{
if (a[i] < ave) {
count++;
Console.Write("{0} ",a[i]);
}
}
Console.WriteLine();
Console.WriteLine("低于平均数的个数:{0}", count);
Console.ReadLine();
}
5、计算平均值并输出高于平均值的数
输入10个数,计算平均值,统计高于平均值数据个数并把高于平均值的数据输出。
方法一:
static void Main(string[] args)
{
int[] a = new int[10];
double ave;
int count = 0, s = 0;
for (int i = 0; i < 10; i++)
{
Console.Write("请输入第{0}个数:", i + 1);
a[i] = int.Parse(Console.ReadLine());
s += a[i];
}
ave = s / 10;
Console.WriteLine("高于平均数的数是:");
for (int i = 0; i < 10; i++)
{
if (a[i] > ave)
{
count++;
Console.Write("{0} ", a[i]);
}
}
Console.WriteLine();
Console.WriteLine("高于平均数的个数:{0}", count);
Console.ReadLine();
}
方法二:
static void Main(string[] args)
{
double ave;
int count = 0, s = 0;
ArrayList ar = new ArrayList();
char[] fg = { ',', ' ', ',' };//分割用的符号
Console.Write("请输入10个数字,用空格或逗号隔开:");
string st1 = Console.ReadLine();
ar.AddRange(st1.Split(fg));
for (int i = 0; i < ar.Count; i++)
{
s = s + Convert.ToInt32(ar[i]);
}
ave = s / (ar.Count);
Console.Write("高于平均数的数是:");
for (int i = 0; i < ar.Count; i++)
{
if (Convert.ToDouble(ar[i]) > ave)
{
count++;
Console.Write("{0} ", ar[i]);
}
}
Console.WriteLine();
Console.WriteLine("高于平均数的个数:{0}", count);
Console.ReadLine();
}
6、找最大数
输入一些整数,找出其中最大数和次最大数。
static void Main(string[] args)
{
ArrayList ar = new ArrayList();
char[] fg = { ',', ' ', ',' };//分割用的符号
Console.Write("请输入一串数字,用空格或逗号隔开:");
string st1=Console.ReadLine();
ar.AddRange(st1.Split(fg));
ar.Sort();
Console.WriteLine("输入的最大数是{0}\n输入的次大数是{1}", ar[ar.Count-1], ar[ar.Count - 2]);
Console.ReadLine();
}
7、找次大数
输入一些整数,找出其中最小数和次最小数。
static void Main(string[] args)
{
ArrayList ar = new ArrayList();
char[] fg = { ',', ' ', ',' };//分割用的符号
Console.Write("请输入一串数字,用空格或逗号隔开:");
string st1 = Console.ReadLine();
ar.AddRange(st1.Split(fg));
ar.Sort();//排序
Console.WriteLine("输入的最小数是{0}\n输入的次小数是{1}", ar[0], ar[1]);
Console.ReadLine();
}
8、数字去重
输入若干有序的正整数,对于相同的数据只保留一个,输出保留的数据。例如,输入数据是: 2,2,2,3,3,4,5,5,6,6,8,8,9,9,9,10,10,10 最终的输出结果是: 2,3,4,5,6,8,9,10。
static void Main(string[] args)
{
ArrayList ar = new ArrayList();
char[] fg = { ',', ' ', ',' };//分割用的符号
Console.Write("请输入一串有重复的数字,用空格或逗号隔开:");
string st1 = Console.ReadLine();
ar.AddRange(st1.Split(fg));
for (int i = 0; i < ar.Count - 1; i++)
{
for (int j = i + 1; j < ar.Count; j++)//j是i后面的字符
{
if (ar[i].Equals(ar[j]))
{
ar.RemoveAt(j);
j--;//回退j
}
}
}
Console.Write("去除重复项后的数字:");
foreach (var v in ar)
{
Console.Write("{0} ",v);
}
Console.ReadLine();
}
9、判断并转换整数
输入一个字符串,判断如果全是数字,将其转换成为一个整数,若包含其他符号,给出错误提示。
方法一:
static void Main(string[] args)
{
//方法1,输入的是连续字符串时可用
string str;
Console.Write("请输入一个字符串:");
str = Console.ReadLine();
bool flag = true;
foreach (char x in str)
{
if (x < '0' || x > '9')
{
flag = false;
break;
}
}
//if (flag) Console.WriteLine("整数为:{0}", str);//可以直接输出,但不符合题意,未转换为整数
if (flag) Console.WriteLine($"整数为:{int.Parse(str)}");
else Console.WriteLine("输入错误!");
Console.ReadLine();
}
方法二:
static void Main(string[] args)
{
//方法2,比较复杂,输入的是用空格或逗号隔开的字符串时可用
ArrayList ar = new ArrayList();
char[] fg = { ',', ' ', ',' };//分割用的符号
Console.Write("请输入一串数字,用空格或逗号隔开:");
string st1 = Console.ReadLine();
string st2 = "";
bool flag = true;
ar.AddRange(st1.Split(fg));
foreach (var i in ar)
{
if (char.Parse((string)i) < '0' || char.Parse((string)i) > '9')
{
flag = false;
break;
}
st2 = st2 + i;
}
if (flag) Console.WriteLine("连接后的整数为:{0}", int.Parse(st2));
else Console.WriteLine("输入错误");
Console.ReadLine();
}
10、奇数和偶数
输入20个正整数,分别统计并输出其中的奇数和偶数的个数,并分类输出所有奇数和偶数。
static void Main(string[] args)
{
ArrayList ar = new ArrayList();
ArrayList or = new ArrayList();
ArrayList jr = new ArrayList();
char[] fg = { ',', ' ', ',' };//分割用的符号
int js = 0, os = 0;
Console.Write("请输入20个数字,用空格或逗号隔开:");
string st1 = Console.ReadLine();
ar.AddRange(st1.Split(fg));
for (int i = 0; i < ar.Count; i++)
{
if (int.Parse((string)ar[i]) % 2 == 0)
{
or.Add(ar[i]);
os++;
}
else
{
jr.Add(ar[i]);
js++; }
}
Console.WriteLine("奇数有{0}个,分别是:",js);
foreach( var i in jr )
{
Console.Write("{0} ", i);
}
Console.WriteLine();
Console.WriteLine("偶数有{0}个,分别是:",os);
foreach (var i in or)
{
Console.Write("{0} ", i);
}
Console.ReadLine();
}
11、数字排序
从终端输入5个数,按从小到大的顺序输出。
方法一:
static void Main(string[] args)
{
ArrayList ar = new ArrayList();
char[] fg = { ',', ' ', ',' };//分割用的符号
Console.Write("请输入5个数字,用空格或逗号隔开:");
string st1 = Console.ReadLine();
string[] strings = st1.Split(fg);
foreach (string s in strings)
{
ar.Add(int.Parse(s));//必须转换为数字后再添加到arraylist
}
ar.Sort();//排序
Console.WriteLine("从小到大排序后为:");
foreach (var i in ar)
{
Console.Write("{0} ", i);
}
Console.ReadLine();
}
方法二:
static void Main(string[] args)
{
int[] num = new int[5];
int temp;
Console.WriteLine("请输入5个数");
for (int i = 0; i < num.Length; i++)
{
Console.Write("输入第{0}个数:", i + 1);
num[i] = int.Parse(Console.ReadLine());
}
for (int i = 0; i < num.Length - 1; i++)
{
for (int j = i + 1; j < num.Length; j++)
{
if (num[i] > num[j])
{
temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
}
Console.Write("从小到大顺序输出为:");
//for (int i = 0; i < num.Length; i++) Console.Write("{0} ", num[i]);//for循环输出
foreach (int i in num)//foreach循环输出
{
Console.Write("{0} ", i);
}
Console.ReadLine();
}
12、计算负数
从键盘读入20个数据到数组中,统计其中负数的个数,并计算这些负数之和。
方法一:
static void Main(string[] args)
{
//方法1,输入的时候比较麻烦
int[] num = new int[20];
int sum = 0, count = 0;
Console.WriteLine("请输入20个整数");
for (int i = 0; i < num.Length; i++)
{
Console.Write("请输入第{0}个数字:",i+1);
num[i] = int.Parse(Console.ReadLine());
if (num[i] < 0)
{
sum += num[i];
count++;
}
}
Console.WriteLine("负数的个数为:{0},和为:{1}", count, sum);
Console.ReadLine();
}
方法二:
static void Main(string[] args)
{
//方法2,略复杂,但可以随意输入
char[] fg = { ',', ' ', ',' };//分割用的符号
int count = 0;
int sum = 0;
Console.Write("请输入20数字,用空格或逗号隔开:");
string st1 = Console.ReadLine();
string[] strings = st1.Split(fg);
foreach (string s in strings)
{
if (int.Parse(s) < 0)
{
count++;
sum += int.Parse(s);
}
}
Console.WriteLine("共有负数{0}个,它们的和是:{1}", count, sum);
Console.ReadLine();
}
13、找出不能同时被2和5整除的数
求n以内(不包括n)不能同时被2和5整除(能被2或者5整除但不能同时被整除)的所有自然数之和的平方根s,n从键盘输入。
static void Main(string[] args)
{
Console.Write("请输入n:");
int sum = 0;int n;
n=int.Parse(Console.ReadLine());
for(int i = 0; i < n; i++)
{
if ((i % 5 == 0 && i % 2 != 0) || (i % 5 != 0 && i % 2 == 0))
//if(((i % 2 == 0) || (i % 5 == 0)) && !((i % 2 == 0) && (i % 5 == 0)))
{
sum += i;
}
}
Console.WriteLine("{0}以内不能同时被2和5整除的自然数和为{1},和的平方根是{2}",n,sum,Math.Sqrt(sum));
Console.ReadLine();
}
14、数字转星期
输入1~7之间的一个数字,输出它对应的星期几。例如输入1 输出Monday。
static void Main(string[] args)
{
Console.Write("请输入1到7的数字:");
int w=int.Parse(Console.ReadLine());
switch(w)
{
case 1:
Console.WriteLine("星期一Monday");
break;
case 2:
Console.WriteLine("星期二Tuesday");
break;
case 3:
Console.WriteLine("星期三Wednesday");
break;
case 4:
Console.WriteLine("星期四Thursday");
break;
case 5:
Console.WriteLine("星期五Friday");
break;
ca

最低0.47元/天 解锁文章
1435

被折叠的 条评论
为什么被折叠?



