go经典练习题涉及流程控制-字符串-struct-map的数据类型的处理
one:求1到100之间的质数
package main import (
"fmt"
) func isPrime(n int) bool {
var flag = true
for j := 2; j < n; j++ {
if n % j == 0 { //计算质数,如果这个数能被自己整除哪么它就是质数
flag = false
break
}
}
return flag
} func main() {
var n int = 100
for i := 2; i < n; i++ {
if isPrime(i) {
fmt.Printf("%d is prime\n", i)
}
}
}
two:统计字符串中有哪些单词并统计出出现次数
package main import (
"fmt"
) func addWord(wordCount map[string]int, chars []rune) {
words := string(chars)
if len(words) > 0 {
count, ok := wordCount[words]
if !ok {
wordCount[words] = 1 } else {
wordCount[words] = count + 1 }
}
} func main() {
str := "how are hou! you are welcome!"
var tmp []rune
var wordCount map[string]int = make(map[string]int, 10)
var chars []rune = []rune(str)
for i := 0; i < len(str); i++ {
if str[i] >= 'a' && str[i] <= 'z'|| str[i] >= 'A' && str[i] <= 'Z' {
tmp = append(tmp, chars[i])
} else {
addWord(wordCount, tmp)
tmp = tmp[0:0]
}
}
if len(tmp) > 0 {
addWord(wordCount, tmp)
}
for k,v := range wordCount {
fmt.Printf("key:%s v:%d\n", k, v)
}
}
Three:统计字符串中每一个字符个数
package main import (
"fmt"
) func addWord(charCount map[rune]int, char rune) { count, ok := charCount[char]
if !ok {
charCount[char] = 1 } else {
charCount[char] = count + 1 } } func main() {
str := "how are hou! you are welcome!中国"
var charCount map[rune]int = make(map[rune]int, 10)
var chars []rune = []rune(str)
for i := 0; i < len(chars); i++ {
addWord(charCount, chars[i])
}
for k,v := range charCount {
fmt.Printf("key:%c v:%d\n", k, v)
}
}
Four:简易版学生信息管理系统
package main import (
"os"
"fmt"
) type Student struct {
Id string
Name string
Age int
Sex string
Score float32
} func showMenu() {
fmt.Printf("please select:\n")
fmt.Printf("1.添加学生信息\n")
fmt.Printf("2.修改学生信息\n")
fmt.Printf("3.显示学生列表\n")
fmt.Printf("4.退出\n") } func getStudentInfo() Student {
var stu Student
fmt.Printf("Please input Id:\n")
fmt.Scanf("%s\n",&stu.Id) fmt.Printf("Please input name:\n")
fmt.Scanf("%s\n",&stu.Name) fmt.Printf("Please input Age:\n")
fmt.Scanf("%d\n",&stu.Age) fmt.Printf("Please input Sex:\n")
fmt.Scanf("%s\n",&stu.Sex) fmt.Printf("Please input Score:\n")
fmt.Scanf("%f\n",&stu.Score)
return stu
} func addStudent(allStudent map[string]Student) {
stu := getStudentInfo()
_, ok := allStudent[stu.Id]
if ok {
fmt.Printf("studnet %s is exists\n",stu.Id)
return
}
allStudent[stu.Id] = stu
} func modifyStudent(allStudent map[string]Student) {
stu := getStudentInfo()
_, ok := allStudent[stu.Id]
if !ok {
fmt.Printf("studnet %s is not exists\n",stu.Id)
return
}
allStudent[stu.Id] = stu
} func showStudnetList(allStudent map[string]Student) {
for _, val := range allStudent {
fmt.Printf("Id:%s\nName:%s\nAge:%d\nSex:%s\nScore:%f\n", val.Id, val.Name, val.Age, val.Sex, val.Score) }
}
func main() {
var sallStudent map[string]Student = make(map[string]Student, 10)
for {
showMenu()
var sel int
fmt.Println("-------------------------")
fmt.Scanf("%d\n", &sel)
switch sel {
case 1:
addStudent(sallStudent)
case 2:
case 3:
showStudnetList(sallStudent)
case 4:
os.Exit(0)
}
}
}
go经典练习题涉及流程控制-字符串-struct-map的数据类型的处理的更多相关文章
- swift_简单值 | 元祖 | 流程控制 | 字符串 | 集合
//: Playground - noun: a place where people can play import Cocoa var str = "Hello, playground& ...
- Go语言学习笔记-流程控制(二)
Go语言流程控制 字典类型Map 1.上节遗留:map字典类型 变量声明:var myMap map[string] PersonInfo 其中,myMap是变量名,string是键的类型,Perso ...
- Go 从入门到精通(三)字符串,时间,流程控制,函数
一.strings和strconv的使用 strings strings.HasPrefix(s string,preffix string) bool:判断字符串s是否以prefix开头 stirn ...
- day2(字符串、格式化输出、运算符、流程控制)
一.字符串 在Python中,加了引号的字符都被认为是字符串! 单引号.双引号.多引号的区别? 单引号和 双引号没有任何区别,但是某种情况下需要单双配合 如 msg = " My name ...
- python的学习笔记01_3 基本运算符 流程控制if while 字符串常用办法
基本运算符 运算符 计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算.比较运算.逻辑运算.赋值运算.成员运算.身份运算.位运算,今天我们暂只学习算数运算.比较运算.逻辑运 ...
- 【二】php 字符串操作及三大流程控制
字符串操作: trim:去除字符串开始位置和结束位置的空格 ltrim:去除开始处的空格 rtrim:去除结束处的空格 strtoupper:将字符串转换为大写 strtolower:将字符串转换为小 ...
- golang基础之三-字符串,时间,流程控制,函数
strings和strconv的使用 strings strings.HasPrefix(s string,preffix string) bool:判断字符串s是否以prefix开头 stirngs ...
- Python基础总结(字符串常用,数字类型转换,基本运算符与流程控制)
一.字符串常用操作 #Python strip() 方法用于移除字符串头尾指定的字符(默认为空格) name='*egon**' print(name.strip('*'))#移除 name 变量对应 ...
- python基础(字符串常用、数字类型转换、基本运算符与流程控制)
一.字符串常用操作: #! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "Z'N'Y" # Date: 2 ...
随机推荐
- 从零开始的全栈工程师——js篇2.3
自加和自减 =赋值运算 他的顺序是从右往左 从后往前 var a=12; 声明一个变量并将12赋值给aa=a+2; 将a+2赋值给a简写a+=3; a=a+3a+=1; a++ 在自己原有的基础上加1 ...
- 使用Qt生成第一个窗口程序
一.打开QtCreater,点击New Project 二.在Qt中,最常用的窗口程序为widgets控件程序,这里我们选择Qt Widgets Application 三.Qt生成的debug和re ...
- MVC 控制器向View传值的三种方法(转)
1.提供视图模型对象 你能把一个对象作为View方法的参数传递给视图. public ViewResult Index() { DateTime date = DateTime.Now; return ...
- log4j-初识
1.配置文件介绍: 1.1. 控制台输出:log4j.rootLogger=DEBUG, Console ,File #Console log4j.appender.Console=org.apach ...
- ZooKeeper保证之单一视图(Single System Image)
由于ZooKeeper的数据模型简单且全部在内存中,ZooKeeper的速度非常快.它提供了一系列保证(Guarantees): • 顺序一致性(Sequential Consistency) • 原 ...
- WCF的问题
使用service调用WCF的时候,有时候会出现 其他信息: HTTP 无法注册 URL 进程不具有此命名空间的访问权限 这样的问题,这时候就需要进行如下尝试: 1,VS的管理权限使用管理员的权限. ...
- 【HHHOJ】NOIP模拟赛 玖 解题报告
点此进入比赛 得分: \(100+20+100=220\)(还不错) 排名: \(Rank\ 16\) \(Rating\):\(+20\) \(T1\):[HHHOJ263]「NOIP模拟赛 玖」三 ...
- 【BZOJ2002】[HNOI2010] 弹飞绵羊(大力分块)
点此看题面 大致题意: 有\(n\)个弹力装置,当到达第\(i\)个装置时,会被弹到第\(i+k_i\)个装置,若不存在第\(i+k_i\)个装置,就会被弹飞.有两种操作,一种操作是将\(k_x\)改 ...
- dojo中类的继承
类似于c# java等后台语言,在基于类的面向对象编程中,通常需要在子类中扩展某些父类的方法,这时可以在子类的方法中,先调用从父类继承的方法,然后再执行子类自定义的操作.凡是使用declare创建的类 ...
- iterable -------JavaScript
本文摘要:http://www.liaoxuefeng.com/ 遍历Array可以采用下标循环,遍历Map和Set就无法使用下标.为了统一集合类型,ES6标准引入了新的iterable类型,Arra ...