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

Python024

求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()

}

#define PRT(j,k) printf("j的票数为%d",k); 这里你如果想要J显示你想要的内容的话直接 把j放在双引号的外面就可以了, #define PRT(j,k) printf(j“的票数为%d",k)但是这里注意的是你传入的j的值就一定要是字符串形式的,就比如 调用PRT(”jack“,10) 那么显示出来就会是 jack的票数为10 调试了一下发现要把hxr定义为hxr[2]才行 想了下也就是hxr要把\0也接收到才行 首先你定义hxr为char型,一个char型,你需要使用 %c 去接受,改成scanf("%c",&hxr); 还有 scanf以后注意谨慎使用,用多了以后你会发现 scanf会很容出问题。

#include"stdio.h"

#include"string.h"

struct People

{

char name[20]

int count

}leader[3]={"zhang",0,"li",0,"sun",0}

void main()

{

char leader_name[20]

int i,j

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

{

scanf("%s",leader_name)

for(j=0j<3j++)

if(strcmp(leader_name,leader[j].name)==0)

leader[j].count++

}

printf("the result:\n")

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

printf("%5s:%d\n",leader[i].name,leader[i].count)

}