Go数组反转练习

package main
//要求:随机生成5个数字,求和 并将其翻转打印
//思路
//1.随机生成五个数 rand.Intn()函数
//2、当我们得到随机数后 就放到一个数组 int数组
//3、反转打印 交换次数len/2 倒数第一个和第一个交换 。。。

import (
"math/rand"
"time"
"fmt"
)
var arrnum [5]int
var arrlen =len(arrnum) //多次调用 将其设置成全局变量
func main(){
r := rand.New(rand.NewSource(time.Now().UnixNano()))
sum := 0
for i := 0 ;i<arrlen;i++ {
arrnum[i] =r.Intn(1000)
sum += arrnum[i]
}
fmt.Println(sum)
fmt.Println(arrnum)
temp := 0 //临时变量
for i :=0 ;i <arrlen /2;i++{
temp = arrnum[arrlen-1-i]
arrnum[arrlen-1-i] = arrnum[i]
arrnum[i] =temp

}
fmt.Println(arrnum)

}

数组使用的注意事项和细节

1) 数组是多个相同类型数据的组合,一个数组一旦声明/定义了,其长度是固定的, 不能动态变化
2) var arr []int 这时 arr 就是一个 slice 切片,切片后面专门讲解,不急哈.
3) 数组中的元素可以是任何数据类型,包括值类型和引用类型,但是不能混用。
4) 数组创建后,如果没有赋值,有默认值(零值)
数值类型数组:默认值为 0
字符串数组: 默认值为 ""
bool 数组: 默认值为 false

5) 使用数组的步骤

  1. 声明数组并开辟空间
    2 给数组各个元素赋值(默认零值)
    3 使用数组
    6) 数组的下标是从 0 开始的
    7) 数组下标必须在指定范围内使用,否则报 panic:数组越界,比如 var arr [5]int 则有效下标为 0-4
    8) Go 的数组属值类型, 在默认情况下是值传递, 因此会进行值拷贝。数组间不会相互影响
    9) 如想在其它函数中,去修改原来的数组,可以使用引用传递(指针方式)
    10) 长度是数组类型的一部分,在传递函数参数时 需要考虑数组的长度,看下面案例

原文地址:https://blog.51cto.com/dreamlinux/2360464

时间: 2024-10-12 16:20:06

Go数组反转练习的相关文章

最大值、最小值、平均值、和、数组反转、数组排序

import java.util.Arrays; import java.util.Scanner; public class ArrayUtils {     //获取数组的最大值     public static void main(String[] args) { //        int[] arr=new int[]{12,4,76,-9,0,44,-87,66};         int num;         Scanner s;                  while

golang 数组反转

我做hackerearth上题目记录,具体的题目描述是这样的: Given the size and the elements of array A, print all the elements in reverse order. Input: First line of input contains, N - size of the array. Following N lines, each contains one integer, i{th} element of the array

关于字符串反转和数组反转的问题

关于反转这个问题,在晚上查了些资料,有很多非常不错的思想,要熟练的掌握这些思想,现在把这些总结如下: 字符串反转: 1 import java.util.Stack; 2 3 public class StringInverse { 4 public static void main(String[] args) { 5 System.out.println(reverse7("abcde")); 6 } 7 //方式一 8 public static String reverse1(

数组反转显示

class Program { static void Main(string[] args) { #region 数组内容反转 string[] names = { "马云", "李彦宏", "马化腾", "乔布斯", "比尔盖茨" }; ReverseArray(names); for (int i = 0; i < names.Length; i++) { Console.WriteLine(n

一道面试题分享(数组反转排列)

题 目如下:一个数组求反转结果,不使用Reverse方法. 面试时没过,当时有点紧张,知道是与高中知识数列有关.后来又在网上恶补了一下,也在网上找到了一个解决方案.先贴下网上的解决方案. class Program { static void Main(string[] args) { int[] ts=new[] {1,2,3,4,5,6,7}; int[] ts2 = new int[ts.Length]; for (var i = 0; i < ts.Length; i++) { ts2[

java--将数组反转

java源代码示例展示: public static void main(String[] args) { String [] a = {"1","2","3"}; System.out.print("初始数组a为:\n"); for (String string : a) { System.out.print(string + "\t"); } String [] b = reverseArray(a);

php实现数组反转

php里面有个函数可以反转数组,工作中也经常用到,非常方便.今天来自己实现这样的功能. $arr = [2,5,6,1,8,16,12]; function reverse($arr){ $left = 0; $right = count($arr) -1; $temp = []; while ($left <= $right){ $temp[$left] = $arr[$right]; $temp[$right] = $arr[$left]; $left++; $right--; } ksor

C#数组反转

static void Main(string[] arr) { string[] names = { "老杨1", "老李2", "老王3", "老牛4", "老虎5", "老磁6" }; for (int i = 0; i < names.Length/2; i++) { string temp = names[i]; names[i] = names[(names.Lengt

数组反转

#include <stdio.h> int main(void) { int a[11] = {111,20,123,4543,556,34,5,54,43,234,53}; int i ; for(i=0;i<11;i++){ printf("%d\t",a[i]); } printf("\n"); for(i=0;i<=4;i++){ int tmp = a[i]; a[i]= a[10-i]; a[10-i] = tmp; } for