flaot a=4.5f
需加f
flaot a=4.5f
需加f
第九十五课 编程题—第二大数和第一个出现一次的字符
我能想到的方法是冒泡排列后再输出倒数第二个数字。
做了几次没做出来,让我再继续想想。(2022.3.29)
//输入10个不相等的正整数,输出这10个正整数中的第二大的数。
//样例输入:3 5 7 2 9 5 3 10 3 8
//样例输出:9
string str = Console.ReadLine();
string[] strArray = str.Split(" ");
int[] intArray = new int[strArray.Length];
for(int i = 0; i < strArray.Length; i++)
{
int number = Convert.ToInt32(strArray[i]);
intArray[i] = number;
}
int max1 = 0;int max2 = 0;
for(int i = 0; i < intArray.Length; i++)
{
if (intArray[i] > max1)
{
max2 = max1;
max1 = intArray[i];
}
else
{
if (intArray[i] > max2)
{
max2 = intArray[i];
}
}
}
Console.Write("第一大值是:" + max1 + " 第二大值是:" + max2);
啊~~原来这么简单!!是我想复杂了,要不是听老师讲,现在是没憋出来呢!
原理:
用max1与每个数字比较,如果比较的数字比max1大,那么这个数字就给max1,然后max1被替下来的那个值给max2保存(当然,要先用max2保存max1不要的那个值,在把大于max1的数字赋值给max1);如果数字不大于max1的值,这个数字就与max2比较,如果这个数字大于max2,这个数字就与max2交换。
说的通俗些,保持max1最大,max2第二大,然后用数字和max1和max2分别比较,如果比自己大就拿过来。
10000000=-0=-128
for 确定循环次数
while 确定循环条件
do while 循环体至少被执行一次
case 1:
break;
default:
int a;
char b =(char)a;//强制转换为字符类型
%取余
{}中间表示取值
Convert.ToInt32(str);//只能将数字字符串转换为整数
前面加@使转义字符/失效
string 字符串
int 整数
doubt
ctrl a 全选
ctrl s 保存
ctrl z 撤销
ctrl x 剪切
F5运行代码
\n为转义字符(换行)
\t代表4个字符
行注释ctrl+k ctrl+c
取消注释ctrl+k ctrl+u
字体:Consolas/JetBrains Mono
工具-选项-文本编辑器-勾选行号
continue:中止当前循环,继续下次循环
break:中止整个循环
//3617
//7 1 6 3
//0*10
+7
//7*10
+1
//71*10
+6
//716*10
+3
int i=n%10;
number*=10;
number+=i;
n=n/10;
小类型可赋值给大类型
double i+=1.0/n(注意要加小数点才生效)
Console.WriteLine("Hello World!")
for循环中不写条件表达式的话,会默认为true,一直执行。
break;//跳出离他最近的循环
如:
for(int i=1 ; ; )
{
Console.WriteLine(i);
i++;
if(i>10)
{
break;//跳出for循环
}
}
当不满足条件表达式,do while执行一次循环,while一次都不执行
其他情况,do while和while没有区别