变量名用驼峰命名法,方法名和函数名用帕斯卡命名法
变量名用驼峰命名法,方法名和函数名用帕斯卡命名法
@后的转义字符不识别
string str = @"www.sikiedu.com"
第七十八课 类型的转换(显示和隐式转换)
1. 隐式转换:
sbyte a = 23;
int b =1000;
b=a;
他们都是数据类型中的整数类型,其中int类型比sbyte类型大,盛放的字符多,所以小的放在大的里面是可以的,不用过多得操作。
sbyte a = 23;
int b =1000;
a = (sbyte)b;
如果大的数据类型放在小的数据类型里面就需要强制转换了,也叫做强塞。这就需要强制转换操作了(sbyte)。
2. 类型的转换得是同一类型之间的转换,比如数字类型之间可以相互转换,但是我们不能把一个字符串转换成整数类型,但是要把一个数字字符串转换成数字的话,我们是有对应的方法。
Convert.ToInt32(Console.ReadLine());
Convert.ToInt32 这是方法。将数字字符串转换成数字的方法。
Console.ReadLine(); 获得字符串。
int a = Convert.ToInt32("1234");
将数字字符串转换成数字赋值给int类型的变量a
3. 将数字转换成字符串:
方法1:
string a = 123+"";
让123与空字符组拼就会转换成一个字符串。
方法2:
string b = Convert.ToString(123);
引用了一种方法将数字转换成字符串。
第七十七课 基本数据类型—浮点(小数)类型
1. float与double
float要比double的数据类型小
float f = 4.5f;
如果后面不加f,4.5被默认为double类型,那么这里就不成立,意思是要把大的数据类型放在小的数据类型中是不合理的;后面加上f,说明4.5就是float类型。(加上大写的F或小写的f都可以)
2.字符类型可以当做一个整形类型赋值给int类型的,因为没个字符类型的字符在阿斯克码对照表中都对应一个数字。
学习方法
做练习 多试验 多百度(谷歌更好) 不用深入
不懂就问跳过,
ctrl+k, ctrl+c 注释
ctrl+k, ctrl+u 取消注释
第七十五课 猜数字小游戏
1. Random ad = new Random();
int a =ad.Next(11);
(个人理解)ad为随机变量,new Random()为随机变量的方法,然后可以int一个整数型来装.Nex后面的数字,我想这里是不是也可以装别的类型的东西呢?
2.随机数的取值范围
Random ad = new Random();
int a =ad.Next(1,20);
其实取值是从1到19,其中不包括最大的数20.
3. 猜数字游戏,随机生成一个正整数,用户输入一个数字,如果输入的数字小于随机生成的正整数,那么就输出“输入的数字小了”,反而反之,如果输入的数字与随机生成的数字相同,则输出“恭喜你,猜对了!”
Random ad = new Random();
int a =ad.Next(11);
while (true)
{
int b = Convert.ToInt32(Console.ReadLine());
if (b != a)
{
if (b > a)
{
Console.WriteLine("输入的数字大了");
}
else if (b < a)
{
Console.WriteLine("输入的数字小了");
}
}
else
{
Console.WriteLine("恭喜你,猜对了!");
break;
}
}
总结:
写完程序以后,需要再想想是不是能简化,是不是有啰嗦的地方和干脆没必要的地方。(额~可能能检查出来吧!我要44)
注释:Ctrl + K 然后Ctrl + C
取消注释:Ctrl +K 然后Ctrl + U
ctrl k ctrl c 注释
CTRL k ctrl u
第七十四课 编程题
1. 输入两个正整数num1和num2,输出这两个正整数的最大公约数。
int num1 = Convert.ToInt32(Console.ReadLine());
int num2 = Convert.ToInt32(Console.ReadLine());
int a = 0;
int b = 0;
if (num1 > num2)
{
a = num1;
num1 = num2;
num2 = a;
}
for(int i = 1; i <= num1; i++)
{
if (num1 % i == 0 && num2 % i == 0)
{
Console.WriteLine("共有公约数为:");
for(int j = 0; j < i; j++)
{
if (b < i)
{
b = i;
}
}
}
}
Console.Write(b);
我的方法是从最小公约数开始,一直到最大公约数,但只保留最后一个公约数,就是最大公约数,然后输出。
老师的方法,让遍历循环递减遍历,只输出第一个公约数,老师的方法简单。
第七十三课 九九乘法表和白文买鸡问题
1. 九九乘法表
for(int i =1; i <= 9; i++)
{
for(int j = 1; j <= i; j++)
{
Console.Write("{0}*{1}" + "="+"{2}"+" ", j, i,j*i);
}
Console.WriteLine();
}
i即代表行数,遍历起来也代表在每行输出的个数。
2. 白文买鸡
用100文钱买鸡,公鸡、母鸡、小鸡都要有。其中,公鸡3文钱一只,母鸡5文钱一只,小鸡2文钱一只,请问公鸡、母鸡、小鸡各买多少只刚好100文钱?
把所有的满足情况罗列出来。
用x表示公鸡,y表示母鸡,z表示小鸡
int x = 0; int temp = 0;
for (int i = 0; i < 34; i++)
{
x += 3;
int y = 0;
for (int j = 0; j < 20; j++)
{
y += 5;
int z = 0;
for (int t = 0; t < 50; t++)
{
z += 2;
if (x + y + z == 100)
{
Console.WriteLine("公鸡:{0}、母鸡:{1}、小鸡:{2}", x, y, z);
temp++;
}
}
}
}
Console.Write("共有{0}种情况",temp);
我滴天,憋死我了。
老师的方法简单,将各类的钱数放在if语句的判断里,这样就简化了。
case 1:
case 2 :
console.wirteline(" ");
break;
满足1或者2时 输出
第七十二课 利用循环嵌套输出各种各样的图形
1. 输入正整数n,输出n行,每行n个*的平行四边形。
样例输入5
样例输出
*****
*****
*****
*****
*****
int n= Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < n; i++)
{
for (int j = 0; j < i; j++)
{
Console.Write(" ");
}
for (int t = 0; t < n; t++)
{
Console.Write("*");
}
Console.WriteLine();
}
2. 输入一个正整数n,输出n层的右三角形。
样例输入4
样例输出
*
**
***
****
int n= Convert.ToInt32(Console.ReadLine());
for (int i = n; i > 0; i--)
{
for (int t = 1; t < i; t++)
{
Console.Write(" ");
}
for (int j = 0; j < n - (i - 1); j++)
{
Console.Write("*");
}
Console.WriteLine();
}
改成老师的方法:
int n = Convert.ToInt32(Console.ReadLine());
for(int i = 1; i <= n; i++)
{
for(int j = 0; j < n - i; j++)
{
Console.Write(" ");
}
for(int j = 0; j < i; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
老师的写法怎么看都想是代数,但这样的方法简洁直观。
int n= Convert.ToInt32(Console.ReadLine());
for(int i = 1; i <= n; i++)
{
for(int j = 0; j < n - i; j++)
{
Console.Write(" ");
}
for(int j = 0; j < i; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
我给大家按照代数的方法说一下哈。
设行数与每行字符为n,空格为j,星号为i。
每一样的空格为:n-i(i是遍历的,所以随着 i 的遍历,n-i的结果越来越少,所以每行空格越来越少)。
那么i代表*好,随着i++的遍历越来越多。
所以他们结合在一起就实现了以上星星的排列。
3. 输入一个正整数n,输出n层的等腰三角形。
样例输入4
样例输出
*
***
*****
*******
自己的写法:
int n= Convert.ToInt32(Console.ReadLine());
for (int i = n; i > 0; i--)
{
for (int t = 1; t < i; t++)
{
Console.Write(" ");
}
for (int j = 0; j < n - (i - 1); j++)
{
Console.Write("*");
}
for (int m = 2; m < n - (i - 2); m++)
{
Console.Write("*");
}
Console.WriteLine();
}
我的方法是,将上一题的星星排列方法基础上,再写一部分程序,将少的那部分星星加上。
(明天再来看老师的课,先忙一会去)
老师的方法:
int n= Convert.ToInt32(Console.ReadLine());
for(int i = 1; i <= n; i++)
{
for(int j = 0; j < n - i; j++)
{
Console.Write(" ");
}
for(int j = 0; j < 2 * i - 1; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
以后能一并写出来的就一并写出来,不分开写,看来是我将简单的问题复杂化了。
4. 输入一个正整数n,输出n层的菱形。
样例输入4
样例输出
*
***
*****
*******
*****
***
*
自己写的:
int n= Convert.ToInt32(Console.ReadLine());
for(int i = 0; i<= n; i++)
{
for(int j = 0; j < n - i; j++)
{
Console.Write(" ");
}
for(int j =0 ; j < 2*i-1; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
for(int i = n -1; i>0; i--)
{
for(int j = i; j < n ; j++)
{
Console.Write(" ");
}
for(int j = 0; j < i * 2 - 1; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
取模(求余) % 用于整数
+ - * / % int 计算出现小数时,会自动取整
第七十一课 利用循环嵌套输出三角形
1. 输入整数n,输出n层的三角形
样例输入3
样例输出
*
**
***
int n = Convert.ToInt32(Console.ReadLine());
string temp = "";
for(int i = 1; i <= n; i++)
{
temp += "*";
Console.WriteLine(temp);
}
改成老师的方法:
int n= Convert.ToInt32(Console.ReadLine());
for(int i = 1; i <= n; i++)
{
for (int j = 0; j < i; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
2. 输入整数n,输出n层的三角形的斜边。
样例输入5
样例输出
*
*
*
*
*
int n= Convert.ToInt32(Console.ReadLine());
for(int i = 0; i < n; i++)
{
for(int j = 0; j < i; j++)
{
Console.Write(" ");
}
Console.WriteLine("*");
}
第一层for语句写每行的输出,第二层for语句写每行中的输出。因为每行都有一个*号,那么*好就写在第一层for语句里面,第二层for就负责空格就行了。
空格难在第一行没有空格,那么我们就让输出的第一行没有空格。i是控制每个行的循环,i从1开始也好,从0开始也好,只是个循环次数,i终究是要到n或小于n的,从i到n是每一循环的过程,那么j是根据i的步骤来走的,那么如果j和i第一步不成立,在第二步开始有循环,这样就解决了第一步没有空格的问题了。
这东西很好玩,当时想有点乱,仔细想想也就那一个地方需要解决,然后就想点办法呗,实在不行不还有老师呢么。
3. 输入整数n,输出n层的三角形的斜边。
样例输入5
样例输出
*
*
*
*
*
int n= Convert.ToInt32(Console.ReadLine());
int t = n;
for (int i = 0; i < n; i++)
{
for (int j = t; j > 1; j--)
{
Console.Write(" ");
}
t--;
Console.WriteLine("*");
}
让从n递减,那么n还不能边,那就让t代替n来递减,我怎么感觉编程这玩应像代数呢?
老师的写法(还是老师的写法简单)
int n = Convert.ToInt32(Console.ReadLine());
for(int i = n; i > 0; i--)
{
for(int j = 1; j < i; j++)
{
Console.Write(" ");
}
Console.WriteLine("*");
}
n 、i、 j之间的关系
n:为总路程
i:是一步一步走完总路程的一个玩应
j:i每走一步,j都要从0走一次,至于是从第一步就开始来回跑还是从第二步开始来回跑,那就看设置是从0到i,还是从1到i,还是其他设置方法了。
为什么那么像类和shi li
为什么下完后打不开呢
ka4d*s6kkl8s*d9
Comsole.writeline("Hello World")
Commsole.readline()
第七十课 循环嵌套的基本用法
1. 输出每行10个*,共输出4行。
int temp = 0;
for(int i = 1; i <= 40; i++)
{
Console.Write("*");
temp++;
if(temp == 10)
{
Console.WriteLine();
temp = 0;
continue;
}
}
老师的写法:
int temp = 0;
for(int i = 1; i <= 4; i++)
{
for(int n = 1; n<=m; n++)
{
Console.Write("*");
}
Console.WriteLine();
}
2. 输入两个整数n和m,输出n行m列的*阵
int n= Convert.ToInt32(Console.ReadLine());
int m= Convert.ToInt32(Console.ReadLine());
int temp = 0;
for(int i = 1; i <= (n * m); i++)
{
Console.Write("*");
temp++;
if (temp == n)
{
Console.WriteLine();
temp = 0;
continue;
}
}
修改成老师的写法:
int n = Convert.ToInt32(Console.ReadLine());
int m = Convert.ToInt32(Console.ReadLine());
for(int a = 1; a <= n; a++)
{
for(int b = 1; b <= m; b++)
{
Console.Write("*");
}
Console.WriteLine();
}
还是老师的写法好。