英文:
Insertion sort in golang
问题
包含在上述代码中的错误是:
- 
在
trace函数中,fmt.Println("%d",A[i])应该改为fmt.Printf("%d",A[i]),以便正确打印元素。 - 
在
insertionSort函数中,return int应该改为return 0,以便返回正确的整数值。 - 
在
main函数中,scanf("%d",&N)应该改为fmt.Scanf("%d",&N),以便正确读取输入。 - 
在
main函数中,for i:= 0; i < N; i++中的i变量已经在函数签名中声明,不需要再次声明。 - 
在
main函数中,return 0应该改为return,因为main函数的返回类型是void。 
以上是代码中的错误和需要更正的部分。
英文:
package main
    import(
      "fmt"
    )
Output an element of the sequence in turn.
func trace(A[]int,N int){
  for i :=0; i < N; i++{
    if i > 0 {
      fmt.Println(" ")
      fmt.Println("%d",A[i])
    }
  }
    fmt.Println("\n")
}
0-rigin
func insertionSort(A[]int, N int) (int int) {
      for i := 0; i < N; i++{
        v := A[i]
        j := i -  1
        for j >= 0 && A[j] > 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("%d",&N)
      for i:= 0;  i < N; i++ {
        scanf("%d",&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
 
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论