发布网友 发布时间:2022-04-23 15:49
共4个回答
热心网友 时间:2023-10-08 21:55
#include<stdio.h>
void main()
{
int sum[3]={0},n,i,j,flag;
int num[3]={5,3,2},max;
char p;
printf("请输入投票人数: ");
scanf("%d",&n);
printf("请输入每个人票(如:X Y Z):\n");
for(i=0;i<n;i++)
{
for(j=0;j<3;j++)
{
getchar();
scanf("%c",&p);
switch(p)
{
case 'X':sum[0]+=num[j];break;
case 'Y':sum[1]+=num[j];break;
case 'Z':sum[2]+=num[j];break;
}
}
}
max=sum[0];
for(i=1;i<3;i++)
if(max<sum[i])
max=sum[i];
for(i=0;i<3;i++)
{
if(max==sum[i])
{
flag=i;
break;
}
}
printf("投票结果为:\n");
printf("X:%d Y:%d Z:%d\n",sum[0],sum[1],sum[2]);
switch(flag)
{
case 0:printf("年度先进工作者是:X\n");break;
case 1:printf("年度先进工作者是:Y\n");break;
case 2:printf("年度先进工作者是:Z\n");break;
}
}
可能有点繁琐,不知符不符合你的要求。
热心网友 时间:2023-10-08 21:55
#include "stdio.h"
#include "stdlib.h"
void getstr(mystr,mylong)
char *mystr;
int mylong;
{
char ch;
int i;
ch=getchar();
for (i=0;i<mylong;i++)
{
if (ch!='\n')
{*(mystr+i)=ch;
ch=getchar();}
}
}
////////////////////////////
int check(mystr,mylong)
char *mystr;
int mylong;
{
int i,j;
for (i=0;i<mylong-1;i++)
{
for (j=i+1;j<mylong;j++)
{
if (*(mystr+i)==*(mystr+j))
return 1;
}
}
return 0;
}
/////////////////////////////
struct tinfo
{
char name;
int num;
};
main()
{
struct tinfo info[3];
char str[3];
char temp;
info[0].name='x';
info[0].num=0;
info[1].name='y';
info[1].num=0;
info[2].name='z';
info[2].num=0;
int i,j,k,l,flag;
printf("输入参加投票的人数:");
scanf("%d%c",&i,&temp);
printf("输入%d次投票内容\n",i);
for (j=0;j<i;j++)
{ flag=0;
printf("输入投票内容:(如xyz,yzx,zxy...):") ;
for (k=0;k<3;k++) str[k]='\0';
getstr(str,3);
flag=check(str,3);
if (flag==1) {printf("投票内容错误\n");continue;}
for (k=0;k<3;k++)
{
if (k==0)
{
for (l=0;l<3;l++)
{
if (info[l].name==*(str+k)) info[l].num=info[l].num+5;
}
}
if (k==1)
{
for (l=0;l<3;l++)
{
if (info[l].name==*(str+k)) info[l].num=info[l].num+3;
}
}
if (k==2)
{
for (l=0;l<3;l++)
{
if (info[l].name==*(str+k)) info[l].num=info[l].num+2;
}
}
}
}
for (k=0;k<3;k++)
printf("%c的票数为:%d\n",info[k].name,info[k].num);
}
热心网友 时间:2023-10-08 21:56
# include <stdio.h>
# define N 3
# define M 3
struct person
{
char a;
char b;
char c;
};
void vote(struct person pn[],int r[])
{
int i=0;
char f;
while(i<N)
{
if((pn[i].a==pn[i].b)||(pn[i].a==pn[i].c)||(pn[i].c==pn[i].b))
i++;
else
{
switch(pn[i].a)
{
case 'x':
{
r[0]+=5;
if(pn[i].b=='y')
{
r[1]+=3;
r[2]+=2;
}
else
{
r[1]+=2;
r[2]+=3;
}
}
case 'y':
{
r[1]+=5;
if(pn[i].b=='x')
{
r[0]+=3;
r[2]+=2;
}
else
{
r[0]+=2;
r[2]+=3;
}
}
case 'z':
{
r[2]+=5;
if(pn[i].b=='y')
{
r[1]+=3;
r[0]+=2;
}
else
{
r[1]+=2;
r[0]+=3;
}
}
}
}
}
}
void main()
{
int i;
int results[M];
struct person persons[N];
for(i=0;i<N;i++)
{
printf("please input persons[%d]:",i);
scanf("%c %c %c",&persons[i].a,&persons[i].b,&persons[i].c);
}
printf("\n");
vote(persons,results);
for(i=0;i<M;i++)
{
printf("results[%d]=%d",i,results[i]);
}
printf("\n");
system("pause");
}
热心网友 时间:2023-10-08 21:57
等答案!