Console.writeLine("Hello World!");
Console.writeLine("Hello World!");
Windows系统里面,每行结尾其实是“<回车><换行>”,即“ \r\n”
char a = (char)Console.Read();
char b = (char)Console.Read();
Console.WriteLine("-------");
Console.WriteLine(a);
Console.WriteLine("-------");
Console.WriteLine(b);
Console.WriteLine("-------");
Console.WriteLine(a == '\r' && b == '\n');
直接敲回车,结果为true
第六十五课 编程题(循环体的标志位)
1. 随机输入一个整数num,输出一个新的数,新数恰好与原数每一位上的数字相反,(如果原数末尾有多个零,输出的新数高位不含0)。
int num = Convert.ToInt32(Console.ReadLine());
int temp = 1;
int he = 0;
string fei = "";
while (num > 1)
{
int i = num % 10;
num = num / 10;
if (i > 0)
{
fei += i;
}
}
Console.WriteLine(fei);
我这属于作弊不?嘿嘿!先学到这儿,我再想想。
2. 输入一个整数,如果这个数字末尾有数字0,则将末尾的0全部去掉,直到遇到不是零的数字,但输入的整数中间的0保留。
(这个我还没想好!!看了老师的讲解我也得好好反应反应,脑子被搅和乱了。)
int n= Convert.ToInt32(Console.ReadLine());
bool yudao = false;
while (n != 0)
{
int i = n % 10;
if(yudao == false)
{
if (i != 0)
{
Console.Write(i);
yudao = true;
}
}
else{
Console.Write(i);
}
n = n / 10;
利用bool的两个判断的性质,来从一个判断中跳到另一个判断,这样的方法很好用,很经典Console.Write(i);
yudao = true;
这里的输出语句输出了一个数字,就是被判断不为零的第一个数字,所以要输出一下,然后将判断更改为另一面,就是true,跳出满足false条件的判断。
标志位:(个人定义的哈)
标记一个条件来判断,从而满足条件后跳出此标记的判断,并进入另一条语句。
其实没那么难,如果当时反应不过来就先干别的,回头再想,逻辑这东西如果不是天生的好,那么大家就都一样。
第六十四课 编程题
1. 编写一个程序,打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方等于该数本身,例如153 = 1 * 1 * 1 * 5 * 5 * 5 * 3 * 3 * 3,所以153是“水仙花数”。
for(int i = 100; i<=999; i++)
{
int ge = i % 10;
int shi = (i / 10) % 10;
int bai = i / 100;
if (i == ge * ge * ge + shi * shi * shi + bai * bai * bai)
{
Console.WriteLine(i);
}
}
三位数中的水仙花数,那就从最小的三位数一个个检查到最大的三位数,所以要在这起见遍历三位数,满足条件的打印出来。
2. 输入任意一个位数未知的整数,输出这个数每一位上的数字,输出的时候,从各位开始输出,霉输出一个数字换一行。
int n= Convert.ToInt32(Console.ReadLine());
while (n > 0)
{
int a = n % 10;
n = n / 10;
Console.WriteLine(a);
}
2. 随机输入一个位数未知的整数,去除这个整数各个位上的0,形成新的数,并输出。输入的数字n大于0,小于1000000。样例输入20603样例输出263
int n= Convert.ToInt32(Console.ReadLine());
int temp = 0;
int i = 1;
while (n > 1)
{
int a = n % 10;
n = n / 10;
if( a > 0)
{
temp += a * i;
i *= 10;
}
}
Console.WriteLine(temp);
//是注释
/*
*/ 多行注释
\ 转义
\n 换行
\t 四个空格?
\\ 表现为一个\
\"代表一个"
\n da'biao换行
第六十三课 编程题(复利的威力)
1. 已知sn=1+1/2+1/3+......1/n,显然对于任意一个整数k,当n足够大的时候,sn大于k。现输入一个整数k(1<=k<=15),要求计算出一个最小的n,使得sn>k。输入一个整数k,输出一个整数n。
样例:输入1,输出2.
int k= Convert.ToInt32(Console.ReadLine());
double sn = 0;
int n = 0;
if (1 <= k && k <= 15)
{
while (sn <= k)
{
n++;
sn += 1.0 / n;
}
Console.WriteLine(n);
}
else
{
Console.WriteLine("您的输入错误");
}
注:
难点在于n的赋值和n++的位置,放在前面就要赋值为0;放在后面就要提前赋值为1,那么输出的时候n的值就要减去1。
2. 我国现有14亿人口,按照每年0.1%的增长速度,n年后将有多少人呢?
int n =Convert.ToInt32(Console.ReadLine());
double x = Convert.ToInt32(Console.ReadLine());
for(int i = 1; i <= n; i++)
{
x += x * 0.001;
}
Console.WriteLine(x);
修改成老师的答案:
int n =Convert.ToInt32(Console.ReadLine());
double x = Convert.ToInt32(Console.ReadLine());
for(int i = 1; i <= n; i++)
{
x *= 1.001;
}
Console.WriteLine(x);
我终于知道人口增长统计表里的小数是怎么来的了,曾经还吐槽人家人口怎么还能有小数?怎么还能有半个人?唉!
3. 农夫约翰在去年赚了一大笔钱!他想要把这些钱用于投资,并对自己能得到多少收益感到好奇。已知投资的复合年利率为R(0到20之间的整数)。约翰现有总值为M的钱(100到1000000之间的整数)。他清楚地知道自己要投资y年(范围0到400)。请帮助他计算最终他会有多少钱。并输出它的整数部分。
数据保证输出结果在32位有符号整数范围内。
输入三个整数r、m、y,输出整数,即最终拥有多少钱。
Console.WriteLine("输入投资复合利率值");
double r = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入投资金额");
double temp = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入投资年数");
int y = Convert.ToInt32(Console.ReadLine());
if (0 < r && r <= 20 && 100 < temp && temp < 1000000 && 0 < y && y < 400)
{
for(int i = 0; i < y; i++)
{
temp += temp * (r / 100.0);
}
int m = (int)temp;
Console.WriteLine("利率为:"+r+"%"+" "+"收益金额为:"+m+" "+"投资年数为:"+y+"年");
}
else
{
Console.WriteLine("输入正确数值");
改成老师的答案:
Console.WriteLine("输入投资复合利率值");
double r = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入投资金额");
double m = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入投资年数");
int y = Convert.ToInt32(Console.ReadLine());
if (0 < r && r <= 20 && 100 < m && m < 1000000 && 0 < y && y < 400)
{
for(int i = 0; i < y; i++)
{
m = (int)(m+(m * (r / 100.0)));
}
Console.WriteLine("利率为:"+r+"%"+" "+"收益金额为:"+m+" "+"投资年数为:"+y+"年");
}
else
{
Console.WriteLine("输入正确数值");
008-程序的基本语法

007-运行第一个HelloWorld程序
第1个语法输出:
Console.WriteLine("Hello World!");
using System; //注释:引入命名空间
namespace _001_开始
namespace 跟上的命名空间的名字,默认不能已数字开始,一般使用英文
class program 创建了类
main 创建了一个main方法
005-安装一下VS2019
004-CSharp编程语言介绍
4.1C#简介
C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言、运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
C#是由C和C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,而绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
4.2
003-什么是编程语言
3.1 Unity、Unreal对比
Unity-C#
开发难度小
Unreal
开发难度大
C#-002什么是计算机
第六十二课 编程题
1. 输入一个整数a和一个正数n,计算乘方a的n次方。
int a = Convert.ToInt32(Console.ReadLine());
int n = Convert.ToInt32(Console.ReadLine());
int he = 1;
for(int i = 1; i <= n; i++)
{
he *= a;
}
Console.WriteLine(he);
注:
累加、累乘都表示“和”里面有几个=后面的数,“和”的意义在于=后面数值的个数,设置“和”的起始值需要好好想想。
2. 输入整数n,输出整数n的阶乘。
int n= Convert.ToInt32(Console.ReadLine());
int a = 1;
int he = 1;
for (int i = 0; i < n ; i++)
{
he = he * a;
a++;
}
Console.WriteLine(he);
修改成老师的答案:
int n= Convert.ToInt32(Console.ReadLine());
int he = 1;
for (int i = 0; i < n ; i++)
{
he *= i;
}
Console.WriteLine(he);
i不是变量吗?不能用吗?不在for域内吗?还重新定义一个变量?是不是脑抽,是不是脑抽,是不是脑抽??
3. 输入q和n,求下面公式的结果?
![]()
Console.WriteLine("输入一个整数");
int q= Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入整数的平方值");
int n= Convert.ToInt32(Console.ReadLine());
int he = 1;
int zh = 1;
for( int i = 0; i < n; i ++)
{
he *= q;
zh += he;
}
Console.WriteLine(zh);
判断是否是回文字符串
string str=Console.WriteLine();
bool isHui=true;
for ( int i = 0 ; i < str.Length / 2 ; i++ )
{
if ( str [ i ] != str [ str.Length - 1 - i ]);
{
isHui=falue;
break;
}
}
第六十一课 编程题
1. 一个球从某一高度落下来,每次落地后反跳回原来高度的一半,再落下。编程计算球第10次反弹多高?在第10次落地时,共经过多少米?输入球的初始高度,输出反弹多高,和经过了多少米?
double n= Convert.ToInt32(Console.ReadLine());
double hi = n;
for (int i = 0; i < 10; i++)
{
hi /= 2;
}
Console.WriteLine(hi);
double zhi = 2 * n;
double sun = n;
for (int i = 0; i < 9; i++)
{
zhi /= 2;
sun += zhi;
}
Console.WriteLine(sun);
多画一画,多数一数就没问题了,我相信我不会有问题,差点没被这题给绕死,脑子是个号东西,我得长一个了。
注释代码ctrl+k ctrl+c
取消注释k+u
Main方法
using System 引入命名空间
namespace + 命名空间名称(不能用数字开头)
第六十课 编程题do...while的使用情况
1.三个循环语句的区别:
①for确定循环次数。
②while确定循环条件。
③do...while循环体至少执行一次。
2. 让用户输入整数,如果用户输入的不是0,就继续输入,如果输入的是0,结束输入,并输出所有整数的和。
int n= Convert.ToInt32(Console.ReadLine());
int sum = n;
while (n != 0)
{
n = Convert.ToInt32(Console.ReadLine());
sum += n;
}
Console.Write(sum);
这道题难在while()中的变量无法提前定义,所以,先输入一个数,定义出输入变量,这时就解决了while()中的变量问题。
但要注意,int sum = ? sum用来统计输出的整数的和,而这里int sum = n;因为在while循环中 n = Convert.ToInt32(Console.WriteLine());
是第二次输入并进入循环,所以,int sum=n ; 是第一次输入后sum有的第一次德到的值。
3. 用do...while语句来写:
int a = 0;
int temp = 0;
do
{
a = Convert.ToInt32(Console.ReadLine());
temp += a;
} while ( a != 0 );
Console.WriteLine(temp);
注:两个语句的写法中,表示和的变量的初始化不一样(额~这里我就加它初始化吧),再就看定义变量的方法不一样。
先写一个数值进去的定义变量的方法和厚些入一个变量的方法
先执行一次的循环可以用do...while来写。但我怎么感觉这个是根据写程序的手法来定的呢?如果能这么写才用的do...while,如果不用也是可以的,感觉跟B格有关,哈哈哈...