求C语言投票系统源代码代码的注释。

Python021

求C语言投票系统源代码代码的注释。,第1张

#include<stdio.h>

#include<conio.h>

struct hxr

{

int m

int point

} hxr[3]//选票结构体

void main()

{

int i=0,j=0,k,temp=0

char x,y,z

struct hxr hxr[3]

for(i=0i<3i++)//初始化选票结构体

{

hxr[i].m=i

hxr[i].point=0

}

printf("请输入投票总人数\n")

scanf("%d",&k)

printf("请输入投票\n")

getchar()

for(i=1i<=ki++)

{

scanf("%c%c%c",&x,&y,&z) //输入选票

getchar()

if(x!=y&&x!=z&&y!=z)//3个选票不能相同否则为无效选票

{

hxr[0].point+=(x=='a'?5:(y=='a'?3:(z=='a'?2:0))) //统计a的得票数,切输入3个选票从左到右得分分别是5.3.2

hxr[1].point+=(x=='b'?5:(y=='b'?3:(z=='b'?2:0)))

hxr[2].point+=(x=='c'?5:(y=='c'?3:(z=='c'?2:0)))

printf(" point: %d %d %d\n",hxr[0].point,hxr[1].point,hxr[2].point) //输出a,b,c的得分

continue

}

printf("此票无效\n")

}

for(i=0i<3i++)//分别输出a,b,c的得分

{

if(temp<hxr[i].point)

{

temp=hxr[i].point

j='a'+i

}

printf("people %c point %d\n",'a'+hxr[i].m,hxr[i].point)

}

if(((hxr[0].point==hxr[1].point)&&hxr[0].point>=hxr[2].point&&hxr[1].point>=hxr[2].point ) ||( (hxr[0].point==hxr[2].point)&&hxr[0].point>=hxr[1].point&&hxr[2].point>=hxr[1].point) ||((hxr[1].point==hxr[2].point)&&hxr[1].point>=hxr[0].point&&hxr[2].point>=hxr[0].point))

printf("重新投票\n")

else

{ printf("祝贺%c当选冠军\n",j) }

getchar()

}

提示输入,可以直接输入下标,0~2。

这样就不需要判断了。还能避免输入错误。

提示输入的文字建议用循环动态生成。这样方便后期扩展,比如变成5个人。

提示输入的文字大致可以这样写:

把数组大小定义成常量,方便修改,比如#define SIZE 3

printf("请输入对应数字,为下列人物投票:")

for(i=0i<SIZEi++)

printf("%d:%s ",i,arr[i].name)

这样后面输入只要输入结构数组下标,就可以直接++,无需判断。

#include <stdio.h>

void sort(int a[][2],int n) {

int i,j,k,t

for(i = 0 i < n - 1 ++i) {

k = i

for(j = i + 1 j <n ++j) {

if(a[k][1] < a[j][1])

k = j

}

if(k != i) {

t = a[k][0]

a[k][0] = a[i][0]

a[i][0] = t

t = a[k][1]

a[k][1] = a[i][1]

a[i][1] = t

}

}

}

void show(int a[][2], int n) {

int i

for(i = 0 i < n ++i)

printf("No%02d %d\n",a[i][0],a[i][1])

printf("\n")

}

int main() {

int i,candidate,n = 10,a[10][2]

for(i = 0 i < n ++i) {

a[i][0] = i + 1

a[i][1] = 0

}

for(i = 0 i < 20 ++i) {

printf("第%d/20个人投票:",i + 1)

scanf("%d",&candidate)

if(candidate >= 1 && candidate <= 10)

++a[candidate - 1][1]

}

sort(a,n)

show(a,n)

return 0

}