给我的感觉,知识点很少,学起来会很轻松,然而老师布置的作业却不轻松。
第一题:三个数 a = 9, b = 5, c = 4,给a,b,c三个数从小到大排序。
int a = 9, b = 5, c = 4, temp;
if (a > b)
{
//a与b交换:5 9 4
temp = a;
a = b;
b = temp;
}
if (a > c)
{
//a与c交换 4 9 5
temp = a;
a = c;
c = temp;
}
if (b > c)
{
//b与c交换 4 5 9
temp = b;
b = c;
c = temp;
}
Console.WriteLine("该三数由小到大排序:" + a + " " + b + " " + c);
第二题:输入一个整数,表示一个人的年龄,如果小于6岁,则输出“儿童”,6岁到13岁,输出“少儿”;14岁到18岁,输出“青少年”;18岁到35岁,输出“青年”;35岁到50岁,输出“中年”;50岁以上输出“中老年”。
int age = int.Parse(Console.ReadLine());
if (age < 6)
{
Console.WriteLine("儿童");
}
else if (age >= 6 && age < 13)
{
Console.WriteLine("少儿");
}
else if (age >= 18 && age < 35)
{
Console.WriteLine("青年");
}
else if (age >= 35 && age < 50)
{
Console.WriteLine("中年");
}
else if (age >= 50)
{
Console.WriteLine("老年");
}
第三题:用if语句完成:判断某年是闰年(年对4求余等于0并且对100求余不等于0或者对400求余等于0)
Console.WriteLine("请输入年份:");
int year = int.Parse(Console.ReadLine());
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
Console.WriteLine(year + "年为闰年");
}
第四题:输入某年某月某日,判断这一天是这一年的第几天?(用switch写)
Console.WriteLine("请输入年份");
int year = int.Parse(Console.ReadLine());
Console.WriteLine("请输入月份");
int month = int.Parse(Console.ReadLine());
int y = month;
Console.WriteLine("请输入日期");
int day = int.Parse(Console.ReadLine());
int data = 0, days = 0;
switch (month - 1)
{
case 1:
days = 31;
break;
case 2:
days = 59;
break;
case 3:
days = 90;
break;
case 4:
days = 120;
break;
case 5:
days = 151;
break;
case 6:
days = 181;
break;
case 7:
days = 212;
break;
case 8:
days = 243;
break;
case 9:
days = 273;
break;
case 10:
days = 304;
break;
case 11:
days = 335;
break;
case 12:
days = 365;
break;
}
//判断闰年和是否超过2月
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0 && month>3)
{
days += 1;
}
Console.WriteLine(days + day);
//学长直接教我用数组来求
Console.WriteLine("请输入年份");
int year = int.Parse(Console.ReadLine());
Console.WriteLine("请输入月份");
int month = int.Parse(Console.ReadLine());
Console.WriteLine("请输入日期");
int day = int.Parse(Console.ReadLine());
int data = 0;
int[] a = {
31, 28, 31, 30, 31, 30, 31, 31, 28, 31, 30, 31 };
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
a[1] = 29;
}
for (int i = 0; i < month - 1; i++)
{
data += a[i];
}
data = data + day;
Console.WriteLine("这一天是这一年的第多少天" + data);
第五题:求:1,1/3,1/5,1/7,1/9 的和
double sum = 0;
for (int i = 0; i <= 4; i++)//int-->double
{
sum += (1.0 / (2 * i + 1));//注意要1.0
}
Console.WriteLine(sum);
第六题:一根棒9米,每次砍一半,砍多少次棒长度小于0.006米
float a = 9f;
int num = 0;
while (a > 0.006)
{
a /= 2;
num++;
}
Console.WriteLine("砍" + num + "次后,棒长度小于0.006米,此时棒长" + a + "米");
第七题:画图效果如下:
/*
* *
* ***
* *****
* *******
* *****
* ***
* *
*/
for (int x = 0; x < 7; x++)//7行
{
//先正等腰三角形 4行
if (x <= 3) // 0 1 2 3
{
// 0 1 2 3 行
// 3 2 1 0 空格数
// 空格数=3-行
for (int i = 0; i < 3 - x; i++)
{
Console.Write(" ");
}
// 0 1 2 4 行
// 1 2 5 7 星星数
// 星星数=2*行+1
for (int i = 0; i < 2 * x + 1; i++)
{
Console.Write("*");
}
Console.WriteLine();
}
//倒等腰三角形 3行
if (x > 3) //4 5 6
{
// 4 5 6 行
// 1 2 3 空格数
//空格=行-3
for (int i = 0; i < x - 3; i++)
{
Console.Write(" ");
}
// 4 5 6 行 ( 行太大,不方便找规律,当作0 1 2 (行1),相当于(行-4)=(行1) )
// 0 1 2 (行1)
// 5 3 1 星星数
// 星星数=5-2*(行1) 将 (行-4)=(行1) 代入
// 星星数=13-2*行
for (int i = 0; i < 2 * (6 - x) + 1; i++)
{
Console.Write("*");
}
Console.WriteLine();
}
第八题:循环录入3位会员的信息,会员号合法(<4位整数>),显示录入信息;否则显示录入失败
(这题有点离谱,判断四位数,还得是整数)
for (int i = 1; i <= 3; i++)
{
try
{
Console.Write("请输入会员号(<4位整数>):");
string a = Console.ReadLine();
int b = int.Parse(a);
if (a.Length == 4)
{
Console.WriteLine("会员号合法!");
}
else
{
Console.WriteLine("会员号不合法!");
}
}
catch (Exception e)
{
Console.WriteLine("会员号不合法!");
}
}
第九题:100以内的一个整数,加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少
int x;
/*第一次加上100:100~200 开方:10~14, 100~196
*第二次加上168:268~368 开方:15~20,
*所以x: 0~96
*第一次完全平方数:10~14 (i)
*第二次完全平方数:15~20 (j)
*/
for (x = 0; x <= 96; x++)
{
for (int i = 10; i <= 14; i++)
{
if ((x + 100) == i * i)
{
for (int j = 15; j < 20; j++)
{
if ((x + 100 + 168) == j * j)
{
Console.WriteLine(x);//21
}
}
}
}
}
第十题:有5家衣服专卖店,每家最多购买3件。用户可以选择离开,可以买衣服 最后打印总共买了几件衣服
运行结果效果:
int num = 0;
for (int n = 1; n <= 5; n++)
{
Console.WriteLine("欢迎光临第" + n + "家专卖店");
for (int j = 1; j <= 3; j++)
{
Console.Write("要离开吗(y/n)? ");
string str = Console.ReadLine();
if (str == "y")
{
Console.WriteLine("离店结账");
break;
}
else if (str == "n")
{
Console.WriteLine("买了一件衣服");
num++;
}
else
{
Console.WriteLine("输入有误\n程序结束");
break;
}
}
Console.WriteLine();
}
Console.WriteLine("总共买了" + num + "件衣服");
第十一题:若有3个班级各4名学员参赛,计算每个班级参赛学员平均分,统计成绩大于85分学员数
运行效果如下:
int top = 0;
float average;
for (int i = 1; i <= 3; i++)
{
float sum = 0f;
Console.WriteLine("请输入第" + i + "个班级的成绩");
for (int s1 = 1; s1 <= 4; s1++)
{
Console.Write("第" + s1 + "个学员的成绩:");
int grade = int.Parse(Console.ReadLine());
sum += grade;
if (grade <= 85)
{
continue; }
top++;
}
average = sum / 4;
Console.WriteLine("第" + i + "个班级参赛学员的平均分是:" + average.ToString("0.0"));
Console.WriteLine();
}
Console.WriteLine("成绩85分以上的学员人数有" + top + "人");
第十二题:猜拳游戏
电脑随机:剪刀:0 石头:1 布:2
玩家:输入 0 1 2
switch判断:
1、数值相等就是平局
2、游戏规则:石头压剪刀 布压石头 剪刀压布
Random rnd = new Random();
int a = rnd.Next(0,3);
Console.WriteLine("电脑随机:剪刀:0 石头:1 布:2");
Console.WriteLine("玩家:输入 0 1 2");
Console.WriteLine("数值相等就是平局");
Console.WriteLine("游戏规则:石头压剪刀 布压石头 剪刀压布");
Console.WriteLine( "********************************************");
Console.WriteLine("请输入:");
int b = int.Parse(Console.ReadLine());
while (b!=0 && b!=1 && b != 2)
{
Console.Write("输入有误!请重新输入:");
b = int.Parse(Console.ReadLine());
}
switch (a)
{
case 0:
if (b==2)
{
Console.WriteLine("玩家胜:剪刀(电脑) VS 石头(玩家)");
}
if (b ==1)
{
Console.WriteLine("电脑胜:剪刀(电脑) VS 布(玩家)");
}
if (b == 0) {
Console.WriteLine("平局:双方都是剪刀"); }
break;
case 1:
if (b == 0)
{
Console.WriteLine("电脑胜:石头(电脑) VS 剪刀(玩家)");
}
if (b == 1) {
Console.WriteLine("平局:双方都是石头"); }
if (b == 2)
{
Console.WriteLine("玩家胜:石头(电脑) VS 布(玩家)");
}
break;
case 2:
if (b == 0) {
Console.WriteLine("玩家胜:布(电脑) VS 剪刀(玩家)"); }
if (b == 1) {
Console.WriteLine("电脑胜:布(电脑) VS 石头(玩家)"); }
if (b == 2) {
Console.WriteLine("平局:双方都是布"); }
break;
default:
Console.WriteLine("输入有误");
break;
}
老师布置的习题太给力了,脑细胞都不够用了。然后我自己写的大部分代码都比较繁琐,希望大佬在评论区可以给出更简单的。