slice.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package main
  2. import (
  3. "fmt"
  4. )
  5. func main() {
  6. // foo1()
  7. // foo2()
  8. // foo3()
  9. // maximum()
  10. // foo4()
  11. foo5()
  12. }
  13. func foo1() {
  14. var cnt, val int
  15. var s []int
  16. fmt.Scan(&cnt)
  17. for i := 0; i < cnt; i++ {
  18. fmt.Scan(&val)
  19. s = append(s, val)
  20. }
  21. fmt.Println(s)
  22. }
  23. // Ввод слайса
  24. func foo2() {
  25. var n int
  26. fmt.Scan(&n)
  27. buf := make([]int, n)
  28. for i := 0; i < n; i++ {
  29. fmt.Scan(&buf[i])
  30. }
  31. for i := 0; i < n; i++ {
  32. if i%3 == 0 {
  33. fmt.Print(buf[i], " ")
  34. }
  35. }
  36. // fmt.Println(buf)
  37. }
  38. func foo3() {
  39. var n int
  40. fmt.Scan(&n)
  41. buf := make([]int, n)
  42. for i := 0; i < n; i++ {
  43. fmt.Scan(&buf[i])
  44. }
  45. for i := 0; i < n; i++ {
  46. if buf[i]%3 == 0 {
  47. fmt.Print(buf[i], " ")
  48. }
  49. }
  50. }
  51. func maximum() {
  52. var n int
  53. fmt.Scan(&n)
  54. numbers := make([]int, n)
  55. for i := 0; i < n; i++ {
  56. fmt.Scan(&numbers[i])
  57. }
  58. max := numbers[0]
  59. maxIndex := 0
  60. for i := 0; i < n; i++ {
  61. if numbers[i] > max {
  62. max = numbers[i]
  63. maxIndex = i
  64. }
  65. }
  66. fmt.Println(max)
  67. fmt.Println(maxIndex)
  68. }
  69. func foo4() {
  70. // [строки][столбцы]
  71. a := [2][2]string{
  72. {"a[0][0]", "a[0][1]"},
  73. {"a[1][0]", "a[1][1]"},
  74. }
  75. fmt.Println(a)
  76. // двумерный слайс чере make
  77. s := make([][]int, 2) // 2 строки
  78. s[0] = make([]int, 2) // 5 столбцов в первой строке
  79. s[1] = make([]int, 10) // 10 столбцов во второй строке
  80. }
  81. func foo5() {
  82. numbers := [][]int{
  83. {1, 2, 3},
  84. {4, 5, 6},
  85. {7, 8, 9},
  86. }
  87. rows := 3
  88. cols := 3
  89. for i := 0; i < rows; i++ {
  90. fmt.Printf("Строка %d: ", i+1)
  91. for j := 0; j < cols; j++ {
  92. fmt.Print(numbers[i][j], " ")
  93. }
  94. fmt.Println()
  95. }
  96. }