数组2个练习之反转逆向输出元素等
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 数组2个小练习 { class Program { static void Main(string[] args) { #region 练习1 //练习1:将一个整数数组的每个元素进行如下的处理: // 如果元素是正数则将这个位置元素的值加1,如果元素是负数则将这个位置元素的值减1,如果元素是0,则不变。 int[] nums = { 1, -2, 3, -4, 8, 6, 0 }; for (int i = 0; i < nums.Length; i++) { if (nums[i] > 0) { nums[i]++; } if (nums[i] < 0) { nums[i]--; } Console.WriteLine(nums[i]); //输出数组中元素的每个值 } Console.ReadKey(); #endregion //练习2:将一个字符串数组的元素元素的顺序进行反转。如{"我","是","好人"}反转后是{"好人","是","我"}。第i个和第Lengt-i-1个进行交换。 /* a b c d e 交换后: e d c b a 5个元素需交换2次完成反转交换。 a b c d e f 交换后: f e d c b a 6个元素需交换3次完成反转交换。 推导出:N个元素,交换次数为N/2 数组元素:a b c d e f 数组序列:0 1 2 3 4 5 第一次交换:a跟f交换 0 5交换 i=0 Length-1 推导出:Length-1-i 第二次交换:b跟e交换 1 4交换 i=1 Length-1-1 推导出:Length - 1 - i 第三次交换:c跟d交换 2 3交换 i=2 Length-1-2 推导出:Length - 1 - i */ string[] text = { "a", "b", "c","d","e","f","g" }; for (int i = 0; i < text.Length / 2; i++) { string temp = text[i]; //先把元素i赋值给临时变量; text[i] = text[text.Length - 1 - i]; //接着交换元素 text[text.Length - 1 - i] = temp; //最后把临时变量中的值赋值给交换后的索引元素 } // 接着遍历数组元素后输出。 for (int i = 0; i < text.Length; i++) { Console.WriteLine(text[i]); } Console.ReadLine(); } } }