Ⅰ c语言选票程序怎么编写,用while写法
首先需求分析:
投票人票数多少,一对一投或一对多。
由于你问题需求不明确,我按照投票人每人1票,只给1个候选人投票或弃权。
函数功能分三个,分别:
一、初始化(这个函数改成输入就是信息登记模块)。
二、投票函数(我用随机数实现投票过程)。
三、统计投票结果。
下面是代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define MCDE 5//候选人数量
#define MVR 100//投票人数量
typedef struct candidate
{
char name[20];//候选人名称
int vote;//得票数
}CDE;
typedef struct voter
{
char name[20];//投票人名称
int vote;//票数
}VTR;
void init(CDE **cdep,VTR **vtrp);//初始化候选人及投票人信息
void tp(CDE *cdes,VTR *vtrs);//开始投票(随机)
void tj(CDE *cdes,VTR *vtrs);//统计投票结果
int main()
{
CDE *cdes=NULL;
VTR *vtrs=NULL;
init(&cdes,&vtrs);
tp(cdes,vtrs);
tj(cdes,vtrs);
return 0;
}
void tj(CDE *cdes,VTR *vtrs)
{
int i=100,index,waiver=0,max=0,inxSave;
while(i>0)
{
index=MVR-i;
if(vtrs[index].vote==-1)
waiver++;
i--;
}
printf(" 共%d人参与投票,%d人弃权 ",MVR-waiver,waiver);
i=MCDE;
while(i>0)
{
index=MCDE-i;
printf("候选人%s得票%d张 ",cdes[index].name,cdes[index].vote);
if(max<cdes[index].vote)
max=cdes[index].vote,inxSave=index;
i--;
}
printf("得票最多的候选人为:%s,%d票 ",cdes[inxSave].name,cdes[inxSave].vote);
}
void tp(CDE *cdes,VTR *vtrs)
{
int i=MVR,index,n,n2;
srand(time(NULL));
while(i>0)
{
index=MVR-i;
if(vtrs[index].vote>0)
{
n=rand()%MCDE;//随机0~MCDE-1,给对应候选人投票
n2=rand()%2;//随机0~1,1投票,0弃权
if(n2)
{
printf("%s给候选人:%s投了%d票 ",vtrs[index].name,cdes[n].name,vtrs[index].vote);
cdes[n].vote+=vtrs[index].vote;
vtrs[index].vote=0;
}
else
{
printf("%s选择弃权 ",vtrs[index].name);
vtrs[index].vote=-1;
}
}
i--;
}
}
void init(CDE **cdep,VTR **vtrp)
{
static CDE cdes[MCDE]={{"小王",0},{"小陈",0},{"小李",0},{"小丽",0},{"小艾",0}};
static VTR vtrs[MVR];
int i=MVR,index;
char strN[20];
while(i>0)
{
index=MVR-i;
strcpy(vtrs[index].name,"投票人");
itoa(index+1,strN,10);
strcat(vtrs[index].name,strN);
vtrs[index].vote=1;
i--;
}
*cdep=cdes,*vtrp=vtrs;
}
Ⅱ c语言 投票程序
给你写一个:
#include<stdio.h>
#define M 100 //投票人数上限
#define N 3 //候选人数
struct
{
char code; //代号
int score; //得分
} candidates[N], st; //候选人结构体数组
int main()
{
char candidate[M][N]; //投票
int n, c=0; //n: 实际投票人数,c: 有效选票
int i,j,k,t;
char tmp[N+1]; //存放投票的中间变量
int s[N]={5,3,2};
for(i=0; i<N; ++i)
{
printf("输入第 %d 个候选人的代号:", i+1);
scanf("%c", &candidates[i].code);
fflush(stdin); //清除回车符
candidates[i].score=0;
}
printf("输入投票人数:");
scanf("%d",&n);
for(i=0; i<n; ++i) //输入选票
{
printf("输入第 %d 张选票:", i+1);
scanf("%s",tmp);
candidate[i][0]=tmp[0];
candidate[i][1]=tmp[1];
candidate[i][2]=tmp[2];
if(tmp[0]==tmp[1] || tmp[1]==tmp[2] || tmp[0]==tmp[2])
printf("该票无效:%s\n", tmp);
else
{
//tmp[0]号候选人加5分;
//tmp[1]号候选人加3分;
//tmp[2]号候选人加2分;
c++;
for(j=0; j<N; ++j)
for(k=0; k<N; ++k)
if(candidates[k].code==tmp[j])
candidates[k].score+=s[j];
}
}
//得分排序
for(i=0; i<N-1; ++i)
{
k=i;
for(j=i+1; j<N; ++j)
if(candidates[j].score>candidates[k].score)
k=j;
st=candidates[i];
candidates[i]=candidates[k];
candidates[k]=st;
}
if(candidates[0].score==candidates[1].score)
printf("前两名得分是否相同,都是 %d 分,重新投票。", candidates[0].score);
else
{
printf("候选人\t得分\n");
for(i=0; i<N; ++i)
printf("%c\t%d\n", candidates[i].code, candidates[i].score);
printf("祝贺 %c 当选冠军!\n", candidates[0].code);
}
return 0;
}
Ⅲ C语言经典候选人投票问题
......
//#if(1)
int m=0;
for (i = 1; i < 3; i++)
{
if (leader[m].count < leader[i].count)
m=i;
}
printf("得票最多的是:%s\n", leader[m].name);
//#endif
return 0;
}
Ⅳ C语言 选票
#include <stdio.h>
#include <string.h>
int max_num(int a, int b)
{
if (a > b)
{
return a;
}
return b;
}
int main()
{
int a[4], i, j, n, big;
memset(a, 0, sizeof(a));//初始化a
scanf("%d",&n);
for (i = 0; i < n; i++)//进行投票,用数组a的下标表示人的代号
{
scanf("%d",&j);
if (j < 1 || j > 3)//容错处理
{
printf("选票错误无此人请重新选择\n");
i--;
continue;
}
a[j]++;
}
big = max_num(max_num(a[1], a[2]), a[3]);
if(big == a[1] && big != a[2] && big != a[3])
{
printf("A\n");
}
else if(big == a[2] && big != a[1] && big != a[3])
{
printf("B\n");
}
else if (big == a[3] && big != a[2] && big != a[1])
{
printf("C\n");
}
else
{
printf("NONE\n");
}
return 0;
}
Ⅳ C语言编程 投票选举班委委员
#include <stdio.h>
#include <stdlib.h>
struct student{
int xh; //学号
char xm[10]; //姓名
int flag; //已投票数
int flag_p; //被票数
int xp_xh[6]; //被选人学号
}stu[20];
//函数功能:录入学生信息
void lr()
{
int i;
for(i=0;i<=20;i++)
{
printf("学号:%d\n",i);
printf("请输入姓名:");
stu[i].xh=(i+1);
scanf("%c",&stu[i].xm);
stu[i].flag=0;
stu[i].flag_p=0;
stu[i].xp_xh[6]=0;
printf("\n");
printf("继续输入? ");
system("pause");
system("cls");
}
printf("学号\t");
printf("姓名\t");
printf("票数\n");
for(i=0;i<=20;i++)
{
printf("%d\t",stu[i].xh);
printf("%c\t",&stu[i].xm);
printf("%d",stu[i].flag_p);
}
}
//函数功能:投票,对数据进行操作 ,输出结果
void tp(int tpr,int tp)
{
int q=0;
if (stu[tpr-1].flag<6)
{
if (tpr>20 || tpr<0)
{
printf("输入有误!\n");
system("pause");
}
else{
q = stu[tpr-1].flag;
stu[tpr-1].xp_xh[q]=(tp-1);
stu[tpr-1].flag++;
stu[tp-1].flag_p++;
}
}
else{
printf("您已经投了6票!");
system("cls");
printf("投票结果:\t");
printf("学号\t姓名\t票数\t投票数\n");
for (int k=0;k<=20;k++)
printf("%d\t%c\t%d\t%d",stu[k].xh,&stu[k].xm,stu[k].flag_p,stu[k].flag);
system("/npause");
exit(1);
}
}
int mian()
{
int xh_tpr; //投票人学号
int xh_tp; //被投票人学号
lr();
start:
printf("请输入你的学号:");
scanf("%d",&xh_tpr);
printf("\n请输入你要投票人的学号:");
scanf("%d",&xh_tp);
tp(xh_tpr,xh_tp);
goto start;
}
Ⅵ C语言 投票程序
本报讯 (记者董哲 通讯员企公宣、管萱萱)拿着匕首去抢劫,抢了钱后还调戏被抢事主的女朋友。欺人太甚而又好色的劫匪,被事主抢过刀连捅三刀而一命呜呼,另一名劫匪也被捅伤逃命。
记者昨日从企石公安分局获悉,这宗离奇的杀人命案,警方仅用2个小时就成功破获,抓获抢劫犯罪嫌疑人1名,缴获被抢手机2部、钱包1个及作案用摩托车1辆、折叠匕首1把。
目前,该案在进一步侦查审理中。
路人报警:可能有人被车撞死
5月3日晚9时许,企石公安分局110指挥中心接到群众报案:在企石镇清湖村万丰大道弗莱特厂附近路段有一男子躺在地上,身旁有一辆摩托车倒在地上,疑遭车祸。
东山派出所民警、交警大队民警和120救护人员到达现场后,发现一男子仰躺在公路旁不能动弹,上身白色T恤衫被鲜血染红,一辆红色摩托车倒在该男子身边。经120医生证实,该男子上身有多处刀伤并已死亡。结合现场情况,初步判断该男子是被人用刀捅伤致死。
事主报案:遭人持刀抢劫
男子死因蹊跷,案情重大。警方迅即封锁保护现场,并将案情迅速上报。企石公安分局了解到,接到该案报警后不久,又接到一女事主报称其当晚与男友在清湖村弗莱特厂附近空地拍拖时,被两名骑一辆无牌摩托车的男子持刀抢劫,被抢走2部手机和1个钱包。
在差不多相同的时间、地点,接到两宗内容不同的报警,引起了专案组的高度重视。9时20分许,专案组民警找到了该报警的女事主张某。据张某反映,5月3日晚8时许,其与男友杨某从工厂出来,走到民营工业区道路旁边的草丛上聊天时,突然被两名骑一辆无牌摩托车的男子持刀抢劫,抢走他们身上2部手机、钱包和部分现金。
在被抢过程中,杨某与劫匪发生打斗,张某趁机逃到附近商店报警,随后不知男友及劫匪身在何处。后经张某现场辨认,死者就是当晚其中一名劫匪。
好色劫匪得寸进尺丢了命
专案组民警根据事主张某提供的情况,在杨某务工的工厂找到了杨某。杨某称,cheap newport cigarettes,他们两人于当晚被两名劫匪抢劫后,其中一名白衣劫匪还调戏张某,于是杨某趁另一名黑衣劫匪不注意,奋力抢过劫匪手中的小刀,顺势捅了黑衣男子三刀并将他推倒在地。
白衣男子见状,放开其女友张某后跑过来将杨某抱住,杨某未及多想就顺势同样捅了该白衣男子三刀,并互相推打起来。杨某大声叫喊求救,cheap marlboro cigarettes,两劫匪见状开着摩托车逃离了现场。
由于心中害怕和担心女友安危,杨某将两名劫匪捅伤后也迅速离开了现场,并将小刀抛弃在现场附近的路边。
受伤劫匪入院治疗被抓获
专案组一方面组织人员在现场搜集证据,另一方面派人走访查找另一劫匪行踪。专案组民警于当晚11时许在桥头医院抓获劫匪李某,缴回受害人被抢的2台手机、银行卡等财物。
经审讯,犯罪嫌疑人李某供述了当晚8时许,其伙同欧阳某驾驶一辆无牌摩托车从桥头镇朗下村出来,行至企石镇清湖村万丰大道一偏僻路段时,发现有一对男女在路边草丛中,遂上前对他们进行抢劫,monster beats justin,欧阳某还对张某进行调戏。
两人在抢劫过程中被男事主夺刀捅伤,惊慌之余就立即驾驶摩托车逃跑。但因伤势过重,两人骑摩托车行驶了100米左右,就连人带车翻倒在路边的草地上。李某见同伙不能动弹,就独自一人逃回到了桥头镇,被其姨父、姨妈等送到桥头医院救治,而欧阳某因伤势较重和失血过多休克当场死亡。
Ⅶ 急急急急急急!!!!一个关于用C语言写投票选举系统。
在strcpy(stu[0].name,gets(a1)); 的前面加入
fflush(stdin);,保证可以。
原因就是:scanf("%s",str1); 这条指令输入后留下了个回车符号,所以要清除此处的输入流。
Ⅷ c语言作业,班干选举系统。。
1、源代码如下
voidmain()
{
FILE*in,*out;
inth_n=3,x_n=5;//候选人,选举人个数
intmax;//最多票数
intmaxid=0;//最多票候选人
charstr[500];//暂存文件内容
structhx//候选人
{
intid;
charname[50];
intps;//得票数
};
structxp//选票
{
charhxname[50];
charxjname[50];
inthxid;//后选人编号
intxid;
};
structhxh_arr[3];//候选人数组
structxpx_arr[5];//选票数组
inti;
intwx=0;//无效票
for(i=0;i<h_n;i++)//生成候选人编号,初始化得票数
{
h_arr[i].id=(i+1);
h_arr[i].ps=0;
}
for(i=0;i<h_n;i++){
printf("请输入第%d个候选人名字:",(i+1));
scanf("%s",&h_arr[i].name);
}
for(i=0;i<h_n;i++)//显示候选人信息
{
printf("候选人%s,编号%d. ",h_arr[i].name,h_arr[i].id);
}
for(i=0;i<x_n;i++)//输入选票信息
{
printf("请输入第%d张选票信息: ",(i+1));
printf("候选人编号:");
scanf("%d",&x_arr[i].hxid);
}
//输出选票信息
for(i=0;i<x_n;i++)
{
printf("第%d个人选票%d ",(i+1),x_arr[i].hxid);
}
//处理选票,统计无效票,每个人得票数
for(i=0;i<x_n;i++)
{
inthxid=x_arr[i].hxid;
switch(hxid)
{
case1:
(h_arr[0].ps)++;
break;
case2:
h_arr[1].ps++;
break;
case3:
h_arr[2].ps++;
break;
default:
wx++;
break;
}
}
//计算得票数
for(i=0;i<h_n;i++)
{max=h_arr[i].ps;
printf("候选人%d得票数%d.",(i+1),h_arr[i].ps);
if(h_arr[i].ps>max)
{
maxid=i;
max=h_arr[i].ps;
}
}
printf("获选人姓名:%s,编号%d,得票数%d. ",h_arr[maxid].name,h_arr[maxid].id,h_arr[maxid].ps);
if((out=fopen("D:\ps.dat","w"))==NULL)//输出到文件中
{
printf("写文件无法打开");
exit(0);
}
fputs("allnumber",out);
fputs("wxnumber",out);
fputs("yxnumber",out);
if((in=fopen("D:\ps.dat","r"))==NULL)//读文件
{
printf("读文件无法打开");
exit(0);
}
fgets(str,0,in);
printf("%s",str);
fclose(out);
fclose(in);
getchar();
}
2、如果存在具体什么功能与题目要求不一致可以自己修改完善一下
Ⅸ 选举程序 C语言编写
#include "stdio.h"
int main()
{
int flag=1,i,a,b,c,x;
while(flag)
{
i=1;a=b=c=0;
printf("\n请投1,2,3任意一候选人\n");
while(i<=12)
{
if(i>12)
i=1;
scanf("%d",&x);
if(x>=1&&x<=3)
{
switch(x)
{
case 1:a++;i++;break;
case 2:b++;i++;break;
case 3:c++;i++;break;
}
}
else
printf("请投1,2,3任意一候选人\n");
}
if(a>=6 && b<6 && c<6)
{
printf("1当选\n");
flag=0;
}
else if(b>=6 && a<6 && c<6)
{
printf("2当选\n");
flag=0;
}
else if(c>=6 && a<6 && b<6)
{
printf("3当选\n");
flag=0;
}
else
{
printf("选举失败。重新开始");
flag=1;
} }
fflush(stdin);//我这软件的格式
getchar();//我这软件的格式
}