英文:
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
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论