Ⅰ 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();//我這軟體的格式
}