using Systeem;
c
using Systeem;
c
string str = Console.ReadLine();
string[] strArray = str.Split(' '); //去掉空格
int[] intArray = new int[strArray.Length]; //创建整数数组 长度跟去掉空格的数组一致
for (int i = 0; i < strArray.Length; i++) //遍历数组
{
int num = Convert.ToInt32(strArray[i]); //将字符数字转换成整数类型
intArray[i] = num; //存储整数到数组
}
//得到有序的数组
int max = 0; //最大值
int second = 0; //第二大值
for (int i=0;i<intArray.Length; i++)
{
if (max<intArray[i]) //判断并输出最大值
{
second = max; //存储到第二大值
max = intArray[i];
}
if(second <intArray[i] && intArray[i] < max) //如果<=max 并且<=second 就是第二大值
{
second = intArray[i];
}
}
Console.WriteLine(second);
Console.ReadKey();
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;
}
intmax1 = 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.WriteLine(max2);
static woid Main(string[] args){
string str = Console.ReadLine();
char temp ="";
for(int i =0; i < str.Length; i+){
int count =0 ;
for(int j=0; j< str.Length; j++){
if (str[j] = str[i{
count++ ;
if (count ==2){
break;
}
}
}
if (count==1)
temp =str[i];
break;
}
)
if(temp='"){
console.writeLine(no");
}
else{
console.writeLine(temp);
}
}
}
)
第九十五课 编程题—第二大数和第一个出现一次的字符
我能想到的方法是冒泡排列后再输出倒数第二个数字。
做了几次没做出来,让我再继续想想。(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分别比较,如果比自己大就拿过来。