當前位置:首頁 » 編程語言 » c語言選票系統
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言選票系統

發布時間: 2022-02-16 21:49:04

㈠ 求做c語言的投票系統

#include <stdio.h>
#include <stdlib.h>

typedef struct node
{ // 候選人結構
char name[8];
int num;
int score;
int tax;
}Node;

void shellSort( Node **, int );

int main(void)
{
int n = 0;
Node * pArray[9]={};//指針數組,長度9
int count = 0;
//int status = 1;
int vote = -1;

printf("Input the number of the candidates(1-9):\n");
scanf("%d", &n);
while(getchar()!='\n')
{
;
}

while (n>9 || n<1)
{
if (n>9)
{
printf("No, there cannot be so many candidates. Retry.\n");
}
else
{
printf("No candidates? It cannot be! Retry!\n");
}
scanf("%d", &n);
while(getchar()!='\n')
{
;
}
}

for (count=0; count<n; count++)
{
pArray[count] = (Node *)malloc(sizeof(Node));
pArray[count]->num = count+1;
pArray[count]->tax = 0;
pArray[count]->score = 0;
printf("Input No.%d candidate's name:\n", count+1);
gets(pArray[count]->name);
}

while (vote)
{
printf("Now, let us vote:\n*************\n");
for (count=0; count<n; count++)
{
printf("%d. %s\n", count+1, pArray[count]->name);
}
printf("0.quit\n*************\n");
scanf("%d", &vote);
while(getchar()!='\n')
{
;
}

while (vote<0 || vote>n)
{
printf("No joke, thank you. Revote.\n");
scanf("%d", &vote);
while(getchar()!='\n')
{
;
}

}
if (vote>0&&vote<=n)
{
pArray[vote-1]->score++;
}
}

printf("Finish voting. Let's find the winner......\n\n");

shellSort( pArray, n );

for (count=0; count<n; count++)
{
pArray[count]->tax=count+1;
printf("%d. %s %d votes.\n", count+1, pArray[count]->name, pArray[count]->score);
}

for(count=0; count<n; count++)
{
free(pArray[count]);
pArray[count] = NULL;
}

return 0;
}

void shellSort( Node *p[], int len )
{
const int Length = len;
int i = 0;
int j = 0;
int gap = 0;
Node *temp = NULL;

gap = Length/2;

while (gap>0)
{
for (i=gap; i<Length; i++)
{
j = i - gap;
temp = *(p+i);

while ( (j>=0) && (p[j]->score < temp->score) )
{
*(p+j+gap) = *(p+j);
j = j - gap;
}

*(p+j+gap) = temp;
}
gap /= 2;
}
}

運行與輸入方式:

1.程序提示,輸入候選人人數, 輸入數字(1-9),大於9或小於1或者輸入不合法字元會提示錯誤。

2.程序提示依次輸入候選人名字,不能超過7個字元(少了點,你題目給的,數組拉長點會更安全些)

3.按照程序提示的數字開始投票,或者退出。

4.投票過程結束後,程序調用shellSort(希爾排序)函數對所有參選人按照得票數目進行降序排序,並將排序結果輸出。

㈡ c語言 選票

。。。。。。。。好復雜

㈢ C語言投票系統

有一個函數推薦給你
memset(ch,0,sizeof(ch));
這個函數是將ch數組清零。

第一個參數,數組的首地址,也就是函數名
第二個參數,初始化為0
第三個參數,數組的大小
你的問題,早已經在十幾年前被c語言協會所發現,所以這個函數是在程序中清零數組的

#include<stdio.h>
#include<string.h>
void mian()
{int a,b,c,d,i;
a=0;b=0;c=0;d=0;
char q[10]="huang",w[10]="wang",e[10]="zhao",r[10]="yang",ch[10];
ch[10]={0};
printf("請開始投票\n");
for(i=0;i<10;i++)
{ gets(ch);
if(strcmp(ch,q)==0)
a=a+1;
if(strcmp(ch,w)==0)
b=b+1;
if(strcmp(ch,e)==0)
c=c+1;
if(strcmp(ch,r)==0)
d=d+1;
memset(ch,0,sizeof(ch);
}
printf("huang的票數為%d",a);
printf("wang的票數為%d",b);
printf("zhao的票數為%d",c);
printf("yang的票數為%d",d);
}