Insertion sort in golang

huangapple go评论81阅读模式
英文:

Insertion sort in golang

问题

包含在上述代码中的错误是:

  1. trace函数中,fmt.Println("%d",A[i])应该改为fmt.Printf("%d",A[i]),以便正确打印元素。

  2. insertionSort函数中,return int应该改为return 0,以便返回正确的整数值。

  3. main函数中,scanf("%d",&N)应该改为fmt.Scanf("%d",&N),以便正确读取输入。

  4. main函数中,for i:= 0; i < N; i++中的i变量已经在函数签名中声明,不需要再次声明。

  5. main函数中,return 0应该改为return,因为main函数的返回类型是void

以上是代码中的错误和需要更正的部分。

英文:
package main
    import(
      &quot;fmt&quot;
    )

Output an element of the sequence in turn.

func trace(A[]int,N int){
  for i :=0; i &lt; N; i++{
    if i &gt; 0 {
      fmt.Println(&quot; &quot;)
      fmt.Println(&quot;%d&quot;,A[i])
    }
  }
    fmt.Println(&quot;\n&quot;)
}

0-rigin

func insertionSort(A[]int, N int) (int int) {
      for i := 0; i &lt; N; i++{
        v := A[i]
        j := i -  1
        for j &gt;= 0 &amp;&amp; A[j] &gt; v{
          A[j + 1] = A[j]
          j--
        }
          A[ j + 1 ] = v
          trace(A,N)
      }
      return int
    }

The above code has an error and the code below also has an error.

   func main() {
      var N,i,j int
      var A[100]int
      scanf(&quot;%d&quot;,&amp;N)
      for i:= 0;  i &lt; N; i++ {
        scanf(&quot;%d&quot;,&amp;A[i])
      }
      fmt.Println(trace(A,N))
      fmt.Println(insertionSort(A,N))
    
      return 0
    }

This is all in C and lots of the errors occured in Main.

go1.5.2

答案1

得分: 0

几件事情:

  • scanf不是一个函数(你可能想要使用fmt.Scanf)
  • 数组不是切片([100]int是一种不同的类型,与[]int不同)
  • 你不能打印trace(A,N),因为它不返回一个值
英文:

A couple of things:

  • scanf isn't a function (you probably want fmt.Scanf)
  • arrays aren't slices ( [100]int is a different type than []int)
  • you can't print trace(A,N) because it doesn't return a value

huangapple
  • 本文由 发表于 2016年4月6日 23:54:47
  • 转载请务必保留本文链接:https://go.coder-hub.com/36456232.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定