1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 7-3 选民投票 (8 分)编程统计候选人的得票数。有若干位候选人(n<=10) 候选人姓

7-3 选民投票 (8 分)编程统计候选人的得票数。有若干位候选人(n<=10) 候选人姓

时间:2019-01-12 17:33:02

相关推荐

7-3 选民投票 (8 分)编程统计候选人的得票数。有若干位候选人(n<=10) 候选人姓

7-3 选民投票 (8 分)

编程统计候选人的得票数。有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的名字(姓名最长为9个字节),若选民输错候选人姓名,则按废票处理。程序自动统计各候选人的得票结果,并按照得票数由高到低的顺序排序。最后输出各选票人得票结果和废票信息。

输入格式:

先输入候选人人数n和n名候选人姓名,再输入选民人数m和m位选民的选票。

输出格式:

先根据选票结果由高到低输出各候选人得票结果,再根据废票情况输出废票信息(换行后,输出提示信息“invalid vote:”,再输出废票信息)。

输入样例1:

3zhangliwang9WangZhangzhuangLILiaoZHANGWANGWangwang

输出样例1:

wang:4zhang:2li:1invalid vote:zhuangLiao

输入样例2:

2liuyang5LiuliuYANGyangLiu

输出样例2:

liu:3yang:2

#include<stdio.h>

#include<string.h>

struct STU

{

char name[15];

int de;

};

int main()

{

int n,m,i,j,f,g=0,y,l1,l2;

scanf("%d\n",&n);

struct STU a[n],t;

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

{

gets(a[i].name);

a[i].de=0;

}

scanf("%d\n",&m);

struct STU s[m];

for(i=0;i<m;i++)

gets(s[i].name);

for(i=0;i<m;i++)

{

for(j=0;j<n;j++)

{

f=1;

l1=strlen(s[i].name);

l2=strlen(a[j].name);

if(l1==l2)

{

for(y=0;y<l1;y++)

{

if(s[i].name[y]!=a[j].name[y]&&(s[i].name[y]-32)!=a[j].name[y]&&s[i].name[y]!=(a[j].name[y]-32))

{

f=0;

break;

}

}

if(f==1)

{

s[i].de=1;

a[j].de++;

break;

}

}

else

{

f=0;

}

}

if(f==0)

{ s[i].de=0;

g++;

}

}

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

{

for(j=0;j<n-i-1;j++)

{

if(a[j].de<a[j+1].de)

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

}

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

{

printf("%s:%d\n",a[i].name,a[i].de);

}

if(g)

{

printf("\ninvalid vote:\n");

for(i=0;i<m;i++)

if(s[i].de==0)

puts(s[i].name);

}

return 0;

}

#include<stdio.h>

#include<string.h>

struct STu

{

char name[10];

int p;

};

int main()

{

int n,i,j,y,f,g=0,l1,l2;

scanf("%d\n",&n);

struct STu a[n],t;

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

{

a[i].p=0;

gets(a[i].name);

}

int m;

scanf("%d\n",&m);

char z[m][10];

int x[m];

for(i=0;i<m;i++)

gets(z[i]);

for(i=0;i<m;i++)

{

l1=strlen(z[i]);

f=0;

for(j=0;j<n;j++)

{

l2=strlen(a[j].name);

if(l1==l2)

{

for(y=0;a[j].name[y]!='\0';y++)

{

if(!(z[i][y]==a[j].name[y]||z[i][y]==a[j].name[y]-32||z[i][y]==a[j].name[y]+32))

{

f=0;

break;

}

else

f=1;

}

if(f==1)

{

a[j].p++;

break;

}

}

}

x[i]=f;

if(f==0)

g++;

}

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

for(j=0;j<n-i-1;j++)

{

if(a[j].p<a[j+1].p)

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

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

printf("%s:%d\n",a[i].name,a[i].p);

if(g!=0)

{

printf("\ninvalid vote:\n");

for(i=0;i<m;i++)

{

if(x[i]==0)

{

puts(z[i]);

}

}

}

return 0;

}

7-3 选民投票 (8 分)编程统计候选人的得票数。有若干位候选人(n<=10) 候选人姓名从键盘输入(候选人姓名不区分大小写 姓名最长为9个字节) 若干位选民 选民每次输入一个得票的候选人的名字(

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。