case 1:
case 2 :
console.wirteline(" ");
break;
满足1或者2时 输出
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();
}
还是老师的写法好。
第六十八课 循环中的continue
1. continue和break
它们都是终止循环的。
continue:
终止当前循环,继续下次循环。
break:
终止整个循环。
/*int ge, shi,shi1, bai;//123
for (int a = 100;a < 1000; a++)
{
bai = a / 100;
shi = a % 100;
shi1 = shi / 10;
ge = shi % 10;
if ((ge * ge * ge) + (shi1 * shi1 * shi1) + (bai * bai * bai) == a)
{
Console.WriteLine(bai + ""+shi1 + "" + ge + "");
}
}*/
//1234
/*int n = Convert.ToInt32(Console.ReadLine());
for (; ; )
{
int ge = n % 10;
Console.WriteLine(ge);
n /= 10;
if (n == 0)
{
break;
}
}*/
//1204
int n = Convert.ToInt32(Console.ReadLine());
int x = 1000000;
while (x!=0)
{
int i = n / x;
if (i != 0)
{
n = n - x * i;
Console.Write(i);
}
x /= 10;
第六十八课 编程题(因数和质数)
1. 假设有个隧道,隧道以字符‘#’结束。挖矿的过程中,会遇到钻石‘*’和美金‘1’~‘9’,让矿工小六挖到隧道的尽头,假设每个钻石价值500美金,统计小六挖到了价值多少美金的收获。
样例输入:ka4d*s6kkl8s*d9fyo#
样例输出:1027
char c;
int number = 0;
int temp = 0;
int he = 0;
do
{
c = (char)Console.Read();
if (c >= '0' && c <= '9')
{
int num = c - '0';
number += num;
}
if (c == '*')
{
temp += 500;
}
} while (c != '#');
he += (number + temp);
Console.WriteLine(he);
还是练练do...while吧,嘿嘿!
修改:
char c;
int number = 0;
int he = 0;
do
{
c = (char)Console.Read();
if (c >= '0' && c <= '9')
{
int num = c - '0';
number += num;
}else
if (c == '*')
{
number += 500;
}
} while (c != '#');
Console.WriteLine(number);
number在语句执行中可以反复使用,不用在另定义一个变量了。if语句的使用时,如果只有两个分支条件,最好使用if...else if。
2. 输入一个整数,输出该整数的因数个数和所有因数,输入的整数大于0,小于100000
样例输入9
3
1 3 9
int n= Convert.ToInt32(Console.ReadLine());
int temp = 0;
for (int i = 1; i <= 100000; i++)
{
if (n % i == 0)
{
Console.Write(i + " ");
temp += 1;
}
}
Console.WriteLine();
Console.WriteLine(temp);
因为先输出的因数后输出的因数个数,这样的方法不符合题中的要求。
修改为:
int n= Convert.ToInt32(Console.ReadLine());
string cc = "";
int temp = 0;
for (int i = 1; i <= 100000; i++)
{
if (n % i == 0)
{
cc += i + " ";
temp += 1;
}
}
Console.WriteLine(temp);
Console.WriteLine(cc);
其实我一直有个认识误区,种以为用字符串来输出算是偏门的方式,现在理解了,只要编译简单,逻辑合理,结果输出无误,那么任何方法都可以用,它们都一样。
3. 输入一个正整数,判断该数是否是质数,输入的数字大于0,小于100000.
如果为质数输出yes,如果不是则输出no。
样例输入 103
输出yes
nt n = Convert.ToInt32(Console.ReadLine());
int temp = 0;
for(int i = 1; i <= 100000; i++)
{
if (n % i == 0)
{
temp++;
}
}
if (temp == 2)
{
Console.Write("yes");
}
else
{
Console.Write("no");
}
https://vlsualstudio.microft.com/downlo ad s/
老师可以纠正,我们的写法比较死,有些方法不熟
string a = Convert.ToString(Console.ReadLine());
string[] b = a.Split(" ");
int[] d = new int[b.Length];
for (int i = 0; i < b.Length; i++)
{
d[i] = Convert.ToInt32(b[i]);
}
for (int x = 0; x < d.Length; x++)
{
int suouin = x;
int NEW = d[x];
for (int i = x + 1; i < d.Length; i++)
{
if (NEW > d[i])
{
NEW = d[i];
suouin = i;
}
}
int linfgs = d[x];
d[x] = d[suouin];
d[suouin] = linfgs;
}
foreach (int f in d)
{
Console.Write(f + ",");
}
int[] xing = new int[(d.Length )+ 1];
Console.WriteLine(xing.Length);
Console.WriteLine("请再输入一个数");
int y = Convert.ToInt32(Console.ReadLine());
int[] z = new int[d.Length + 1];
int ysuoy = z.Length - 1;
for(int i = 0; i < d.Length; i++)
{
if (y <= d[i])
{
ysuoy = i;
break;
}
}
for(int i = 0; i < z.Length; i++)
{
if (i < ysuoy)
{
z[i] = d[i];
}else if (i == ysuoy)
{
z[i] = y;
}
else
{
z[i ] = d[i-1];
}
}
foreach(int f in z)
{
Console.Write(f + "/");
}
第六十七课 编程题(单个字符读取)
1. 数字和字符混合在一起,作为一个优秀的挖掘人员,把输入的数字挖出来,并计算这些数字的和,并输出,@作为输入的结束。
样例输入23a34a34@
样例输出19
bool temp = true;
int he = 0;
while (temp)
{
char a = (char)Console.Read();
if (a != '@')
{
if (a >= '0' && a <= '9')
{
int number = a - '0';
he += number;
}
}
else
{
temp = false;
}
}
Console.Write(he);
我是这样写的,真心不习惯用do...while语句,为什么用while都能些的非得要用do...while语句呢?可能经历的少吧。
第六十六课 编程题
1. 回文数指正序(从左到右)和倒序(从右到左)读都是一样的整数。输入一个数,判断是否是回文数。输入的整数大于0,小于1000000。如果是回文数输出yes,不是则输出no。
样例输入 2397 输出 no
样例输入2992 输出yes
int n= Convert.ToInt32(Console.ReadLine());
int b = n;
int number = 0;
while (b != 0)
{
int temp = b % 10;
number = number * 10;
number = number + temp;
b = b / 10;
}
Console.WriteLine(number);
if (number == n)
{
Console.WriteLine("yes");
}
else
{
Console.WriteLine("no");
}
编程如果慢慢学还蛮有意思的。
ctrl+k,ctrl+u注释
ctrl+k,ctrl+c取消注释
#inclunde
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