使用go语言1. 请用循环语句实现以下圣诞树 2. 请编程实现从键盘输入一门课程成绩,为其分级,等级为优秀、良好、中等、及格和不及格。要求用两种方式实现:if...else if 方式和 switch case 方式。 1. 编程实现由键盘输入任意个数的整数,将其中的奇数和偶数构成两个切片输出。 2. 编程实现从键盘输入三个整数,用子函数方式求三个数的和及均值(浮点型),并打印输出。 3. 编程实现从键盘上输入若干整数,找出其中的素数,以切片的形式输出,并统计所有素数之和。 1. 编程实现带缓冲的从标准输入设备获取任意内容,以“#”结束输入,并打印输出。 2. 编程实现从键盘、文件、字符串等三个不同来源读取数据并打印输出。
时间: 2023-06-15 12:03:55 浏览: 110
1. 循环语句实现圣诞树:
```go
package main
import "fmt"
func main() {
var n int
fmt.Print("请输入圣诞树层数:")
fmt.Scan(&n)
for i := 1; i <= n; i++ {
for j := 1; j <= n-i; j++ {
fmt.Print(" ")
}
for k := 1; k <= i*2-1; k++ {
fmt.Print("*")
}
fmt.Println()
}
for i := 1; i <= n/3; i++ {
for j := 1; j <= n-2; j++ {
fmt.Print(" ")
}
fmt.Println("***")
}
}
```
2. 分级成绩:
- if...else if:
```go
package main
import "fmt"
func main() {
var score int
fmt.Print("请输入分数:")
fmt.Scan(&score)
if score >= 90 {
fmt.Println("优秀")
} else if score >= 80 {
fmt.Println("良好")
} else if score >= 70 {
fmt.Println("中等")
} else if score >= 60 {
fmt.Println("及格")
} else {
fmt.Println("不及格")
}
}
```
- switch case:
```go
package main
import "fmt"
func main() {
var score int
fmt.Print("请输入分数:")
fmt.Scan(&score)
switch {
case score >= 90:
fmt.Println("优秀")
case score >= 80:
fmt.Println("良好")
case score >= 70:
fmt.Println("中等")
case score >= 60:
fmt.Println("及格")
default:
fmt.Println("不及格")
}
}
```
3. 奇偶数切片:
```go
package main
import "fmt"
func main() {
var nums []int
var n int
fmt.Print("请输入整数个数:")
fmt.Scan(&n)
for i := 0; i < n; i++ {
var num int
fmt.Print("请输入一个整数:")
fmt.Scan(&num)
nums = append(nums, num)
}
var oddNums []int
var evenNums []int
for _, num := range nums {
if num%2 == 0 {
evenNums = append(evenNums, num)
} else {
oddNums = append(oddNums, num)
}
}
fmt.Println("奇数:", oddNums)
fmt.Println("偶数:", evenNums)
}
```
4. 求和和均值:
```go
package main
import "fmt"
func main() {
var a, b, c int
fmt.Print("请输入三个整数:")
fmt.Scan(&a, &b, &c)
sum := add(a, b, c)
avg := float64(sum) / 3
fmt.Println("和:", sum)
fmt.Println("均值:", avg)
}
func add(nums ...int) int {
sum := 0
for _, num := range nums {
sum += num
}
return sum
}
```
5. 素数切片:
```go
package main
import "fmt"
func main() {
var nums []int
var n int
fmt.Print("请输入整数个数:")
fmt.Scan(&n)
for i := 0; i < n; i++ {
var num int
fmt.Print("请输入一个整数:")
fmt.Scan(&num)
nums = append(nums, num)
}
var primeNums []int
var primeSum int
for _, num := range nums {
if isPrime(num) {
primeNums = append(primeNums, num)
primeSum += num
}
}
fmt.Println("素数:", primeNums)
fmt.Println("素数之和:", primeSum)
}
func isPrime(num int) bool {
if num <= 1 {
return false
}
for i := 2; i*i <= num; i++ {
if num%i == 0 {
return false
}
}
return true
}
```
6. 带缓冲的输入输出:
```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
fmt.Println("请输入任意内容,以#结束输入:")
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanLines)
var input string
for scanner.Scan() {
line := scanner.Text()
if line == "#" {
break
}
input += line + "\n"
}
fmt.Println("您输入的内容是:")
fmt.Println(input)
}
```
7. 从不同来源读取数据:
```go
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
// 从键盘读取数据
fmt.Println("请从键盘输入一段文本:")
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
fmt.Println("您输入的内容是:", scanner.Text())
// 从文件读取数据
file, err := os.Open("test.txt")
if err != nil {
fmt.Println("打开文件失败:", err)
return
}
defer file.Close()
scanner = bufio.NewScanner(file)
var fileContent string
for scanner.Scan() {
fileContent += scanner.Text() + "\n"
}
fmt.Println("文件内容是:")
fmt.Println(fileContent)
// 从字符串读取数据
str := "这是一个字符串,用于测试。"
scanner = bufio.NewScanner(strings.NewReader(str))
var strContent string
for scanner.Scan() {
strContent += scanner.Text() + "\n"
}
fmt.Println("字符串内容是:")
fmt.Println(strContent)
}
```
阅读全文