首页 > 其他分享 >go实现投票并实时打印投票信息

go实现投票并实时打印投票信息

时间:2022-11-25 12:06:47浏览次数:38  
标签:count name students fmt 打印 ++ 投票 go sum


package main

import "fmt"

var students []Student
var flag bool = true

type Student struct {
no int // 候选人编号
name string // 候选热姓名
count int //得票数
}

func initInfo(){
fmt.Println("请输入参加候选的人数:")
sum := 0
fmt.Scanln(&sum)
students = make([]Student,0,sum)
for i := 1;i <= sum;i++ {
fmt.Println("请输入第 ",i,"位候选人姓名: ")
name := ""
fmt.Scanln(&name)

s := Student{i,name,0}
students = append(students,s)
}
}

func printInfo(){
// 排序 按照票数大小
for i := 1;i < len(students);i++{
for j := 0;j < len(students) -1 ;j++ {
if students[j].count < students[j+1].count {
students[j],students[j+1] = students[j+1],students[j]
}
}
}
for i := 0;i < len(students);i++ {
s := students[i]
fmt.Printf("[%d] %s 候选人,票数是:%d\n",s.no,s.name,s.count)
}
}

func getResult(){
sum := 0 //最高票数的人数
highCount := students[0].count
for i := 0;i < len(students);i++ {
if students[i].count == highCount {
sum++
}
}
if 1 == sum {
fmt.Printf("%s 候选人,获得最高票数: %d 票",students[0].name,students[0].count)
flag = false
} else {
for i := 0; i < sum ;i ++ {
fmt.Printf("%s候选人,\t",students[i].name)
}
fmt.Printf("均获得最高票数: %d 票,请重新投票\n",highCount)
students = students[:sum]
for i := 0;i < len(students);i++ {
students[i].no = i + 1
students[i].count = 0
}
}
}

func vote() {
for {
fmt.Println("请输入候选人编号,0表示退出")
n := 1
fmt.Scanln(&n)
//fmt.Println("n:",n)
if 0 == n {
fmt.Println("结束投票")
break
}else if n > 0 && n < len(students) {
students[n-1].count = students[n-1].count + 1
}else {
fmt.Println("此票无效,请重新输入:")
}
}
}


func main() {
initInfo()
for flag {
printInfo()
vote()
printInfo()
getResult()
}

}

标签:count,name,students,fmt,打印,++,投票,go,sum
From: https://blog.51cto.com/u_13940603/5886194

相关文章

  • 4 django_Adimn账户
    1.创建管理员账号退出服务器输入命令pythonmanage.pycreatesuperuser启动服务器pythonmanage.pyrunserver输入网址:http://127.0.0.1:8000/admin/logi......
  • GO mod not found
    Goget下载包的时候,会报错:go.modfilenotfoundincurrentdirectoryoranyparentdirectory.解决方法:初始化项目,比如我的项目名称叫GOWORKSPACEPSD:\goWorkSp......
  • Go语言开发环境搭建
    1go下载安装地址:https://golang.google.cn/dl/安装路径自己选一个,比如D:/go,qita安装都选下一步即可安装完把D:/go/bin添加到系统环境变量,就可以了,在CMD中输入......
  • GEE|Google Earth Engine报错Error in map(ID=LC08_123038_20190121) Element.copyPro
    本文以LANDSAT/LC08/C01/T1_SR数据集为例介绍Thesourceparameterisrequire应该如何解决。问题描述GEE平台提供了影像在线处理,在完成对数据集处理后,想要对数据进行......
  • HTTPS handshake returned error SEC_E_ALGORITHM_MISMATCH.
    HTTP/1.1502Fiddler-ConnectionFailedDate:Fri,25Nov202202:59:58GMTContent-Type:text/html;charset=UTF-8Connection:closeCache-Control:no-cache,must......
  • 一文熟悉 Go 的基础语法和基本数据类型
    耐心和持久胜过激烈和狂热。前言快速上手一门新的语言,首先要做的就是熟悉新语言的基本语法和基本数据类型,本文将对Go语言的基础语法和基本数据类型进行介绍。Hello,World!记......
  • 设置console打印样式
    在浏览器中:可以通过第一个参数加入%c来设置,第二个参数传css字符串  在node.js中Node的实现,是基于c语言的,因此Node的彩色打印其实与c语言类似\33[0m关闭所有属性......
  • go gin 打包到linux
     https://leeay.gitee.io/2022/08/12/go/go_gin%E9%A1%B9%E7%9B%AE%E6%89%93%E5%8C%85%E4%B8%8A%E7%BA%BF%E5%88%B0Linux%E6%9C%8D%E5%8A%A1%E5%99%A8/  goenv-w......
  • Django 创建子应用、目录结构、路由分发
    目录创建项目目录结构路由分发路由分组创建项目创建项目diango-adminstartprojectmy_project/项目名称创建子应用python3manage.pystartappapp01/子应用名称......
  • Django ORM模型一对一、一对多、多对多的操作详解
    一、快速创建项目1、创建项目>>django-adminstartprojecttest03_20181211>>pythonmanage.pystartappapp1 2、配置文件settings.py#1、数据库:(settings.p......