30812人加入学习
(83人评价)
C#编程-第一季-编程基础-宇宙最简单2021最新版

制作完成于2021年10月10日,使用Visual Studio 2019

价格 免费

第六十五课  编程题(循环体的标志位)

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 四个空格?

\\ 表现为一个\

\"代表一个"

[展开全文]

第六十三课  编程题(复利的威力)

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("输入正确数值");

 

[展开全文]

007-运行第一个HelloWorld程序

第1个语法输出:

Console.WriteLine("Hello World!");

using System; //注释:引入命名空间 

namespace _001_开始

namespace 跟上的命名空间的名字,默认不能已数字开始,一般使用英文

class program     创建了类

main    创建了一个main方法

[展开全文]

005-安装一下VS2019

IDE Integrated Development Environment)集成开发环境
编辑 编译 运⾏调试
编程⼯具:VS2019
Visual Studio 2019
号称宇宙第⼀IDE
VS社区版 - 下载安装
下载地址
https://visualstudio.microsoft.com/zh-hans/downloads/
[展开全文]

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什么是计算机

2.1社么是计算机
⼈:⾝体+灵魂(思想、意识、思维)
计算机:硬件+软件
2.1硬件
网卡、声卡、CPU、主板、内存、硬盘、内存、显卡
2.2
系统
[展开全文]

第六十二课  编程题

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,求下面公式的结果?

{1+q}^{1}+{q}^{2}+{q}^{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

[展开全文]

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格有关,哈哈哈...

[展开全文]

第五十九课  变量的作用域

1. 变量的作用域是向内的不能向外。如果在变量所在的域中还有下一个域,那么也起作用,如果在所在的域外,那么就不起作用了。

2.在不同作用域中变量是可以重复的,如果在同一个作用域中则不可以重复的。

3.for( int j = 0 ; j < 10 ; j++ )

{

}

int j = 0;这个变量时在for内的,属于for域之内的。

[展开全文]

第五十八课  for循环的其它情况

1. for循环:

for( 初始条件;条件判断;递增 ) 

{

循环体;

}

for括号内的三个条件都可以不写,初始条件和递增都可以写在其他地方,条件判断如果不写默认为true。

for语句的{}可以省略,估计也和if语句一样,只执行接下来的一条。

2. break只跳出所在的循环。

int i =1;

for( ; ; )

{

Console.WriteLine( i );

i++;

if ( i>10 )

{

break;

}

}

[展开全文]

授课教师

问问题加入A计划,有专门负责答疑的老师哦!!!

课程特色

下载资料(1)
视频(117)
图文(3)