第八十九课 编程题-取得最小值
1. 完全发蒙,前半部分听明白了,后半部分就浆糊了。。。。。。。我先上班去。
输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。
思路一共分三步:(不复杂,只是让你眼花缭乱,老师讲得很清楚,集中注意力都能听得懂)
①将用户输入的字符串转换为整数型数组。
②利用遍历索引来逐个与设定的第一个数值比较大小,找出最小值和最小值的索引。
③将找出的最小值以索引的形式与原来设定的第一个数值交换索引,也就是在整数型数组中交换它俩的位置,最后用foreach遍历输出他们就OK。
string str = Console.ReadLine();//获得用户输入字符串。
string[] strArray = str.Split(" ");//用空格为标志将用户字符串拆分成字符串组。
int[] intArray = new int[strArray.Length];//创建一个整数型数组,长度是被拆分后的用户输入字符串的长度。
for(int i = 0; i < strArray.Length; i++)//for循环中的长度为拆分用户输入字符串组的长度。
{
int number = Convert.ToInt32(strArray[i]);//将每个拆分后的字符串转换为整形数值。
intArray[i] = number;//将转换后的整形数值保存在intArray数组变量中。
}
//①①①①①①以上将用户输入的字符串转换为整数型数组。①①①①①①①
int min = intArray[0];//拿出数组中第一个数值,以便用来与后面的数值做比较。
int minIndex = 0;//用来保存最小数值的索引值。
for(int i = 1; i < intArray.Length; i++)
{
if (intArray[i] < min)
{
min = intArray[i];
minIndex = i;
}
}
//②②②②②②②以上是利用遍历索引来逐个与设定的第一个数值比较大小,找出最小值和最小值的索引。②②②②②②②②
int temp = intArray[0];
intArray[0] = intArray[minIndex];
intArray[minIndex] = temp;//这三步用来将找出的最小值以索引形式来与第一个数值进行两个数值位置上的交换。
foreach(int t in intArray)//遍历数组中的每一个数值后并输出。
{
Console.Write(t + " ");
}
//③③③以上是将找出的最小值以索引的形式与原来设定的第一个数值交换索引,也就是在整数型数组中交换它俩的位置,最后用foreach遍历输出他们就OK。③③③
建议:看懂以后最好多次默写,这样可以锻炼逻辑思维和对程序的深度理解,熟练了再进下一步的学习。
哈哈,笨笨地写了一遍,年纪大了,记不住了。
string s = Console.ReadLine();
string[] a = s.Split(" ");
int[] num = new int[a.Length];
for(int i =0;i<s.Length; i++)
{
int b = Convert.ToInt32(a[i]);
num[i] = b;
}
int c = num[0];
int d = 0;
for(int i = 1; i < num.Length; i++)
{
if (num[i] < c)
{
c = num[i];
d = i;
}
}
int e = num[0];
num[0] = num[d];
num[d] = e;
foreach(int f in num)
{
Console.Write(f + " ");
}