Q1mi / BlogComments

9 stars 0 forks source link

Go语言基础之数组 | 李文周的博客 #23

Open Q1mi opened 5 years ago

Q1mi commented 5 years ago

https://www.liwenzhou.com/posts/Go/05_array/

李文周的Blog

chengkanghua commented 5 years ago

数组初始化方法一 int后面要加{} 否则运行时候 .\test.go:6:18: type [3]int is not an expression

package main

import "fmt"

func main() {
    var testArray = [3]int{}
    var numArray = [3]int{1, 2}
    var cityArray = [3]string{"北京", "上海", "深圳"}
    fmt.Println(testArray)
    fmt.Println(numArray)
    fmt.Println(cityArray)
}
272909106 commented 5 years ago

package main

import "fmt"

func main() { h := [5]int{1, 3, 5, 7, 8} for i := 0; i < len(h); i++ { // fmt.Println(h[i]) num_up := h[i] // for u in range(i,len(h)) for u := i + 1; u < len(h); u++ { // fmt.Println(h[u]) num_down := h[u] sum := num_up + num_down // fmt.Println(sum) if sum == 8 { fmt.Println(i, u) } } } }

Q1mi commented 5 years ago

package main

import "fmt"

func main() { h := [5]int{1, 3, 5, 7, 8} for i := 0; i < len(h); i++ { // fmt.Println(h[i]) num_up := h[i] // for u in range(i,len(h)) for u := i + 1; u < len(h); u++ { // fmt.Println(h[u]) num_down := h[u] sum := num_up + num_down // fmt.Println(sum) if sum == 8 { fmt.Println(i, u) } } } }

变量名推荐使用驼峰命名法。

272909106 commented 5 years ago

@Q1mi

package main

import "fmt"

func main() { h := [5]int{1, 3, 5, 7, 8} for i := 0; i < len(h); i++ { // fmt.Println(h[i]) num_up := h[i] // for u in range(i,len(h)) for u := i + 1; u < len(h); u++ { // fmt.Println(h[u]) num_down := h[u] sum := num_up + num_down // fmt.Println(sum) if sum == 8 { fmt.Println(i, u) } } } }

变量名推荐使用驼峰命名法。

收到,以前写习惯了,慢慢改下

jacobwwang commented 5 years ago

@chengkanghua var testArray [3]int var testArray = [3]int{} 两种不同的写法哟

pidada commented 5 years ago

package main

import "fmt"

func main(){ fmt.Println("hello world") var numArray = [5]int{1, 3, 5, 7, 8} for i := 0; i < len(numArray); i++{ for j := i+1; j <len(numArray); j++{ if numArray[i] + numArray[j] == 8{ fmt.Println(i,j) } } } }

DemoRun commented 5 years ago

func main() { var sum int var num = [...]int{1, 3, 5, 7, 8} for i := 0; i < len(num); i++ { sum += num[i] } fmt.Println(sum)

for _, value1 := range num {
    for i := 0; i < len(num)/2; i++ {
        if value1+num[i] == 8 {
            fmt.Println(value1, num[i])
        }
    }
}

}

cuteculu commented 4 years ago

package main

import "fmt"

//求数组[1, 3, 5, 7, 8]所有元素的和
func Sum() {
    a := [5]int{1, 3, 5, 7, 8}
    sum := 0
    for _, i := range a {
        sum += i
    }
    fmt.Println(sum)
}

//找出数组中和为指定值的两个元素的下标,比如从数组[1, 3, 5, 7, 8]中找出和为8的两个元素的下标分别为(0,3)和(1,2)。
func Find() {
    a := [5]int{1, 3, 5, 7, 8}
    for i, j := range a {
        for l, k := range a[i+1:] {
            if j+k == 8 {
                fmt.Printf("(%d, %d)  ", i, l+i+1)
            }
        }
    }
}

func main() {
    Find()
}
cg430 commented 4 years ago

// 第一题 package main

import "fmt"

// 求数组[1, 3, 5, 7, 8]所有元素的和 func main() { var a = [...]int{1, 3, 5, 7, 8} var sum = 0 for _, value := range a { sum += value } fmt.Printf("sum=%d\n", sum) }

// 第二题 package main

import "fmt"

// 找出数组中和为指定值的两个元素的下标, // 比如从数组[1, 3, 5, 7, 8]中找出和为8的两个元素的下标分别为(0,3)和(1,2)。 func main() { a := [...]int{1, 3, 5, 7, 8} for i := 0; i < len(a); i++ { for j := i+1; j < len(a); j++ { if a[i] + a[j] == 8 { fmt.Printf("(%d, %d)\n", i, j) } } } }

ghost commented 4 years ago

1.

package main

import "fmt"

func sum(array [5]int) int {
    sum := 0
    for _, v := range array {
        sum = sum + v
    }
    return sum
}
func main() {
    var array = [5]int{1, 3, 5, 7, 8}
    fmt.Println("sum(array):", sum(array))
}

2.

package main

import "fmt"

func main() {
    var array = [5]int{1, 3, 5, 7, 8}
    length := len(array)
    const num = 8
    for i := 0; i < length-1; i++ {
        for j := i + 1; j < length; j++ {
            if array[i]+array[j] == num {
                fmt.Printf("(%d, %d) \n", i, j)
            }
        }
    }
}
code4happylife commented 4 years ago

package main

import "fmt"

func main() { sum := 0 arrTest := [...]int{1, 3, 5, 7, 8} for _, v := range arrTest { sum += v } fmt.Println("sum of array arrTest is", sum)

for i := 0;i < len(arrTest);i++{
    for j := 0;j < i;j++{
        if arrTest[i] + arrTest[j] == 8{
            fmt.Printf("%d + %d = %d\n",arrTest[i],arrTest[j],arrTest[i]+arrTest[j])
            fmt.Printf("%d,%d\n",i,j)

        }
    }
}

}

yeahQing commented 4 years ago
func test() {
    var arrayTest = [...]int{1, 3, 5, 7, 8}
    sum := 0
    for index, value := range arrayTest {
        sum += value
        for i := index + 1; i < len(arrayTest); i++ {
            if arrayTest[i]+value == 8 {
                fmt.Printf("(%v,%v)\n", index, i)
            }
        }
    }
    fmt.Println(sum)
}
heroliy commented 4 years ago

@yeahQing

func test() {
  var arrayTest = [...]int{1, 3, 5, 7, 8}
  sum := 0
  for index, value := range arrayTest {
      sum += value
      for i := index + 1; i < len(arrayTest); i++ {
          if arrayTest[i]+value == 8 {
              fmt.Printf("(%v,%v)\n", index, i)
          }
      }
  }
  fmt.Println(sum)
}
heroliy commented 4 years ago

func addSum(x [5]int) { sum := 0 for i := range x { sum += x[i] } fmt.Printf("sum=%d",sum) }

heroliy commented 4 years ago

func findSumEqEight(x [5]int) { for k, := range x { sum := 8 for i, := range x { if sum == x[k] + x[i] { fmt.Printf("(%d,%d)",k,i) } } } }

ccrice commented 4 years ago
package main

import "fmt"

func main() {
    var a = [...]int{1, 3, 5, 7, 8}
    for i := 0; i < len(a); i++ {
        for j := i + 1; j < len(a); j++ {
            if a[i]+a[j] == 8 {
                fmt.Println(i, j)
            }
        }
    }
}
jagaimotomato commented 4 years ago

下标 z := [...]int{1, 3, 5, 7, 8}

for i := 0; i < len(z); i++ {
    for j := i + 1; j < len(z); j++ {
        if z[i] + z[j] == 8 {
            fmt.Println(i, j)
        }
    }
}
Panlq commented 4 years ago
package main

import ("fmt")

func main() {
    Find(8)
}

func Find(c int) {
    // ----------------------
    arr := [...]int{1, 3, 5, 7, 8, 2, 4, 5, 0}
    b := map[int]int{}
    for i, v := range arr  {
        if _, ok := b[v]; ok {
            fmt.Printf("(%d, %d)", b[v], i)
        } else {
            b[c - arr[i]] = i
        }
    }
}
Jc-bobo commented 4 years ago
func main() {
    a := [...]int{1,3,5,7,8}
    sum := 0
    fmt.Println("两数之和为 8 的下标")
    for i := 0; i < len(a);i++ {
        sum += a[i]
        for j := i+1;j<len(a) ;j++  {
            if a[i] + a[j] == 8 {
                fmt.Printf("[%d,%d] \n",i,j)
            }
        }
    }
    fmt.Println("数组的元素之和为:",sum)
}
allenjia09 commented 4 years ago
exArray := [...]int{1, 3, 5, 7, 8}
//第一题
    sum := 0 //初始化和
    for _, v := range exArray {
        sum = sum + v
    }
    fmt.Println(sum)
       //第二题
    for in1, i := range exArray {
        for in2, j := range exArray {
            if i+j == 8 && i < j {
                fmt.Printf("(%d, %d)\n", in1, in2)
            }
        }
    }
quotar commented 4 years ago
a := [...]int{1, 3, 5, 7, 8}
//1.求数组[1, 3, 5, 7, 8]所有元素的和
sum := 0
for _, array := range a {
    fmt.Println(array)
    sum += array
}
fmt.Printf("sum=%b", sum)
//2.找出数组中和为指定值的两个元素的下标,比如从数组[1, 3, 5, 7, 8]中找出和为8的两个元素的下标分别为(0,3)和(1,2)。
for index1, value1 := range a {
    for index2, value2 := range a {
        if value2+value1 == 8 {
            if index1 < index2 {
                fmt.Println(index1, index2)
            }
        }
    }
}
mytea003 commented 4 years ago
func main() {
    //1、求数组[1, 3, 5, 7, 8]所有元素的和。
    a := [5]int{1, 3, 5, 7, 8} //人工计算应该为:24
    b := 0
    for _, v := range a {
        b += v
    }
    fmt.Println("数组a所有元素相加后共为:", b)
    //2、找出数组中和为指定值的两个元素的下标,比如从数组[1, 3, 5, 7, 8]中找出和为8的两个元素的下标分别为(0,3)和(1,2)。
    for i, v := range a {
        for i2, v2 := range a {
            if v+v2 == 8 && i < i2 {//前面的是条件,后面的是避免再出现换了位置而相同的元素下标。
                fmt.Printf("(%v,%v)", i, i2)
            }
        }
    }
}
wyhhh commented 4 years ago

取巧的方法 Leetcode第一题 两数之和 标准写法 只不过不会用map (滑稽)

package main

import `fmt`

func main() {
    // 1, 3, 5, 7, 8 target = 8
    a := [...]int{1, 3, 5, 7, 8}
    _map := [9]int{-1, -1, -1, -1, -1, -1, -1, -1, -1}
    for i, v := range a {
        if _map[8-v] != -1 {
            fmt.Println("/ _map[8-v] =", _map[8-v], "/ i =", i,)
        }
        _map[v] = i
    }
}
wcc4869 commented 4 years ago

package main

import "fmt"

func twoSum(nums []int, target int) {
    l := len(nums)
    for i := 0; i < l; i++ {
        for j := i + 1; j < l; j++ {
            if nums[i]+nums[j] == target {
                fmt.Printf("%d + %d = %d \n", nums[i], nums[j], target)
            }
        }
    }
}

func main() {
    // 1.
    var numArray = []int{1, 3, 5, 7, 8}
    var sum int
    for _, v := range numArray {
        sum += v
    }
    fmt.Println("sum = ", sum)

       // 2.
    twoSum(numArray, 8)
}
qidianbox commented 4 years ago

package main

import ( "fmt" ) //作业一

func main() {

c1 := [...]int{1, 3, 5, 7, 8}
var sum int
for _, c2 := range c1 {
    sum += c2
}
fmt.Println(sum)

}

fujiangyese commented 4 years ago
package main

import "fmt"

func main() {
    sum := 0
    a := [...]int{1,3,5,7,8}
    for _,v := range a{
        sum+=v
    }
    fmt.Println(sum)
    for i:=0;i<len(a);i++{
        for j:=i;j<len(a)-i;j++{
            if a[i]+a[j]==8{
                fmt.Printf("(%d,%d)\n",i,j)
            }
        }
    }
}
shuitianyise commented 4 years ago

func main() { m := [...]int{1, 3, 5, 7, 8}

for i := 0; i < len(m); i++ {
    for j := i + 1; j < len(m); j++ {
        sum := m[i] + m[j]
        if sum == 8 {
            fmt.Printf("%d,%d\n", i, j)
        }
    }
}

}

gonglf1212 commented 4 years ago
package main

import "fmt"

func main(){
    //求数组[1, 3, 5, 7, 8]所有元素的和
    i1 := [...]int {1, 3, 5, 7, 8}
    var sum int
    for _, v := range i1 {
        sum += v
    }
    fmt.Println(sum)

    //找出数组中和为指定值的两个元素的下标,比如从数组[1, 3, 5, 7, 8]中找出和为8的两个元素的下标分别为(0,3)和(1,2)。
    a1 := [...]int{1, 3, 5, 7, 8}
    aLen := len(a1)
    for i :=0; i < aLen; i++{
        for j := i+1; j< aLen; j++{
            if a1[i]+a1[j] == 8 {
                fmt.Printf("(%d, %d)", i, j)
            }
        }
    }
}
SmeagolYe commented 4 years ago

done

gitldy1013 commented 4 years ago
package main

import "fmt"

func main() {

    fmt.Printf("%T", "hello")
    var arr = [...]int{1, 3, 5, 7, 8}
    test1(arr)
    test2(arr)
}

func test1(arr [5]int) {
    //求数组[1, 3, 5, 7, 8]所有元素的和
    sum := 0
    for i := 0; i < len(arr); i++ {
        sum += arr[i]
    }
    fmt.Printf("数组之和为 %d \n", sum)
}

func test2(arr [5]int) {
    //找出数组中和为指定值的两个元素的下标,比如从数组[1, 3, 5, 7, 8]中找出和为8的两个元素的下标分别为(0,3)和(1,2)
    for index, val := range arr {
        for i := index+1; i< len(arr);i++  {
            if(val+arr[i])==8{
                fmt.Printf("(%d,%d)",index,i)
            }
        }
    }
}
younamebert commented 4 years ago

package main

import "fmt"

func sum(arrs [5]int) int { sum := 0 for _, val := range arrs { sum = sum + val } return sum }

func tsum(rows [5]int) int { r := 8

for key, val := range rows {
    for keys, vals := range rows {
        e := val + vals
        if e == r {
            fmt.Println(key, keys)

        }
    }

}
return 1

} func main() { arr := [...]string{"上海", "新疆"} fmt.Println(arr)

row := [...]int{2: 2, 10: 10}
fmt.Println(row)

arrs := [...]int{1, 3, 4, 7, 8}

res := sum(arrs)
fmt.Println(res)
//fmt.Println(arrs)

// 求和的数字
rows := [...]int{1, 3, 5, 7, 8}
// ios := 8
info := tsum(rows)

fmt.Println(info)

}

yuanyangjun123 commented 4 years ago

func con(a [5]int) int { sum := 0 for _, v := range(a){ sum = sum + v } //res := sum return sum }

func main() { a := [...]int{1, 3, 5, 7, 8} fmt.Println(con(a)) }

yuanyangjun123 commented 4 years ago

func search(a [5]int) { for i, v := range a { for j := i; j<len(a); j++ { if v+a[j] == 8 { fmt.Println(i, j) } } } } func main() { a := [...]int{1, 3, 5, 7, 8} //fmt.Println(con(a)) search(a) }

qj27 commented 4 years ago

func Exercise1(){ sum := 0 for ,r := range [5]int {1,3 ,5, 7, 8} { sum += r } fmt.Println("ExerciseOne:", sum) }

func Exercise_2(){ ArrayTest := [...]int{1, 3, 5, 7, 8} for i:=0;i<len(ArrayTest);i++{ for j:=i+1; j<len(ArrayTest);j++{ if ArrayTest[i]+ArrayTest[j] == 8{ fmt.Println("(",i,",",j,")") } } } }

Diuyon commented 4 years ago
// 求数组元素和
func sum()  {
    a := [...]int{1, 3, 5, 7, 8}

    var count int
    for _, num := range a {
        count += num
    }
    fmt.Println(count)
}

// 求和为指定数的下标组合
func targetIndex()  {
    target := 8
    a := [...]int{1, 3, 5, 7, 8}

    var flag map[int]int
    flag = make(map[int]int)
    for _, num := range a {
        flag[num] = -1
    }

    for i, num := range a {
        if flag[num] != -1 {
            fmt.Println(flag[num], i)
        }
        flag[target - num] = i
    }
}
yangfan16 commented 4 years ago

// 找出数组中和为指定值的两个元素的下标

func targetIndex(target int) {
    a := [...]int{1, 3, 5, 7, 8}

    var flag map[int]int
    flag = make(map[int]int)
    for _, num := range a {
        flag[num] = -1
    }

    for i, num := range a {
        if flag[num] != -1 {
            fmt.Println(flag[num], i)
        }
        flag[target-num] = i
    }
}
llystudy commented 4 years ago
for a := 0; a < len(bArray); a++ {
    for b := a; b < len(bArray); b++ {
        if a == b {
            continue
        } else {
            c := bArray[a] + bArray[b]
            if c == 8 {
                fmt.Printf("a=%v,b=%v\n", a, b)
            }
        }
    }

}
LnkSaber commented 4 years ago
func homeWorkThree(){
    a := [...]int{1, 3, 5, 7, 8}
    var sum int
    for _, val :=range a{
        sum += val
    }
    fmt.Println(sum)

    for i:=0; i<len(a); i++{
        for j:=i+1; j<len(a); j++{
            if(a[i]+a[j]==8){
                fmt.Println(i,j)
            }
        }
    }
}
oolool commented 4 years ago
func findIndex() {
    num := []int{1, 3, 5, 7, 8}
    for i, n := range num {
        for j := i; j < len(num); j++ {
            if n+num[j] == 8 {
                fmt.Printf("%v-%v\n", i, j)
            }
        }
    }
}
wunairen commented 4 years ago

package main

import ( "fmt" )

func main() { num := [...]int{1, 3, 5, 7, 8} var i int for _, s := range num { i += s } fmt.Println(i)

num1 := [...]int{1, 3, 5, 7, 8}

for a := 0; a < len(num1); a++ {
    for b := a + 1; b < len(num1); b++ {
        if num1[a]+num1[b] == 8 {
            fmt.Println(a, b)
        }
    }
}

}

666redhat commented 4 years ago

package main

import ( "fmt" )

func main() { a := [...]int{1,3,5,7,8} //求数组所有元素的和 sum = 0 for ii:=0; ii<len(a); ii++ { sum += a[ii] } fmt.Println(sum)

//找出数组中和为8的两个元素的下标
for ii:=0; ii<len(a); ii++{
    for jj:=ii+1; jj<len(a); jj++{
        if (a[ii] + a[jj]) == 8 {
            fmt.Printf("%v,%v\n",ii,jj)
        }
    }
}

}

fucheng53614 commented 3 years ago
//第一题 // 24
var n2 = []int{1, 3, 5, 7, 8}
var sum = 0
for _, i := range n2 {
    sum = sum + i
}
fmt.Println(sum)

//第二题 (0-3) (1-2)
for i := 0; i < len(n2); i++ {
    for j := i + 1; j < len(n2); j++ {
        if compare(n2[i], n2[j], n2) {
            fmt.Printf("%d-%d\n", i, j)
        }
    }
}

func compare(x int, y int, arr []int) bool { for v := range arr { if x+y == arr[v] { return true } } return false }

excaliburdraco commented 3 years ago

//练习题1 func sum(){ sumArray := []int {1,3,5,7,9} var sum int for _,i := range sumArray{ sum = sum + i } fmt.Println(sum) }

//练习题2 func sumTest(){ sumArray := []int {1,3,5,7,9} var sum int for i := 0; i < len(sumArray); i++{ for j := i+1; j < len(sumArray); j++{ sum = sumArray[i] + sumArray[j] if sum == 8 { fmt.Println(i,j) } } } }

bianpeijiang commented 3 years ago

//练习题2

func exec2() {
    arr := [...]int{1,3,5,7,8}
    for i:=0; i<len(arr)/2; i++ {  //这里只需要到一半就可以
        for j := i+1; j<len(arr); j++ {
            if (arr[i]+arr[j]) == 8 {
                fmt.Printf("(%d,%d)\n",i,j)
            }
        }
    }
}
typ0520 commented 3 years ago

数组是值类型这个描述有点不是很准确吧,测试了一下定长的数组传递到函数中时确实是值传递,如果是变长数组传递的是引用类型

func main() {
    nums1 := [3]int{1, 2, 3}
    nums2 := []int{1, 2, 3}

    fmt.Printf("&nums1: %p\n", &nums1)//&nums1: 0xc0000201e0
    fmt.Printf("&nums1[0]: %p\n", &nums1[0])//&nums1[0]: 0xc0000201e0
    fmt.Printf("&nums2: %p\n", &nums2)//&nums2: 0xc00000e1e0
    fmt.Printf("&nums2[0]: %p\n", &nums2[0])//&nums2[0]: 0xc000020200
    modifyArray1(nums1)
    modifyArray2(nums2)
}

func modifyArray1(x [3]int) {
    fmt.Printf("func &nums1: %p\n", &x)//func &nums1: 0xc000020220
    fmt.Printf("func &nums1[0]: %p\n", &x[0])//func &nums1[0]: 0xc000020220
}

func modifyArray2(x []int) {
    fmt.Printf("func &nums2: %p\n", &x)//func &nums2: 0xc00000e200
    fmt.Printf("func &nums2[0]: %p\n", &x[0])//func &nums2[0]: 0xc000020200
}
Q1mi commented 3 years ago

@typ0520 数组是值类型这个描述有点不是很准确吧,测试了一下定长的数组传递到函数中时确实是值传递,如果是变长数组传递的是引用类型

func main() {
  nums1 := [3]int{1, 2, 3}
  nums2 := []int{1, 2, 3}

  fmt.Printf("&nums1: %p\n", &nums1)//&nums1: 0xc0000201e0
  fmt.Printf("&nums1[0]: %p\n", &nums1[0])//&nums1[0]: 0xc0000201e0
  fmt.Printf("&nums2: %p\n", &nums2)//&nums2: 0xc00000e1e0
  fmt.Printf("&nums2[0]: %p\n", &nums2[0])//&nums2[0]: 0xc000020200
  modifyArray1(nums1)
  modifyArray2(nums2)
}

func modifyArray1(x [3]int) {
  fmt.Printf("func &nums1: %p\n", &x)//func &nums1: 0xc000020220
  fmt.Printf("func &nums1[0]: %p\n", &x[0])//func &nums1[0]: 0xc000020220
}

func modifyArray2(x []int) {
  fmt.Printf("func &nums2: %p\n", &x)//func &nums2: 0xc00000e200
  fmt.Printf("func &nums2[0]: %p\n", &x[0])//func &nums2[0]: 0xc000020200
}

Go语言中没有变长数组,你这里应该说的是切片(slice),切片属于引用类型,它包含一个底层数组的引用。

vinhsue commented 3 years ago
package main

import "fmt"

func main() {
    var a = [...]int{1, 3, 5, 7, 8}
    var sum = 0

    // 求和
    for _, i := range a {
        sum += i
    }
    fmt.Println("数组和为:", sum)

    // 输出和为8的元素下标
    for i, j := range a {
        for k, m := range a {
            if j+m == 8 && i < len(a)/2 {
                fmt.Printf("和为8的元素下标是:(%d, %d)\n", i, k)
            }
        }
    }
}
xjb714 commented 3 years ago

func main(){
         ar:=[]int{1,3,5,7,8}
    fmt.Println(sum(ar))
    fmt.Println(findTwoSum(ar,8))
}
func sum(ar []int) int {
    s:=0
    for _,v:=range(ar) {s+=v}
    return s
}
func findTwoSum(ar[] int,num int)([][2]int){
    l := len(ar)
    arr := [][2]int{}
    for i:=0;i<l;i++{
        for j:=i;j<l;j++{
            if ar[i]+ar[j]==num{
                arr=append(arr,[2]int{i,j})
            }
        }
    }
    return arr
}
youbj001 commented 3 years ago

package main

import "fmt"

/*  // 作业第一题
func addArray(a []int) int {
    total := 0
    for _, value := range a {
        total += value
    }
    return total
}

func main() {
    x := addArray([]int{1, 3, 5, 7, 8, 10})
    fmt.Println(x)
}
*/
// 作业第二题

func findIndex(a []int, b int) [][2]int {
    var x [][2]int
    for i := 0; i < len(a); i++ {
        for j := i + 1; j < len(a); j++ {
            if a[i]+a[j] == b {
                x = append(x, [2]int{i, j})
            }
        }
    }
    return x
}

func main() {
    a := []int{1, 3, 5, 7, 8, 6, 4, 4, 2}
    b := 8
    res := findIndex(a, b)
    fmt.Println(res)
}
Zhshengli commented 3 years ago
package main

import "fmt"

var my_array = [...]int{1, 3, 5, 7}

// 求数组之和
func add() {
    x := 0
    for _, v := range my_array {
        x += v
    }
    fmt.Println(x)
}

//找出数组中和为指定值的两个元素的下标 
func find(n int) {
    for i:=0;i<len(my_array);i++ {
        x := my_array[i]
        for j:=0;j<i;j++{
            y:=my_array[j]
            if x != y &&  x+y==n{
                    fmt.Println(i,j)
            }
        }
    }
}

func main() {
    add()
    find(4)
}