投票,可以检查被投票人员与备选人员姓名是否一样,而不采用strcmp函数,自己定义一个可以判断两个字符串是否一样的函数
#include <stdio.h>
//#include <string.h>
int f(char* x,char* y) //定义,检查两个字符串是否相同的函数
{
int j;
for(;*x!=0||*y!=0;x++,y++)
{
j=0;
if(*x!=*y)
{
j=1;break;
}
}
if(j==1)
{
return 0;
}
else
{
return 1;
}
}//检查两个字符串是否相等
//相等返回1;不相等返回0;
struct //结构体
{
char name[20];
int count;
}a[3]={"wang",0,"zhang",0,"li",0};
int main(void)
{
int i,j,k;
char b[20]; //定义一个字符型数组用来存放输入的姓名
for(i=0;i<5;i++)
{
printf("please enter name:");
scanf("%s",b);
for(j=0;j<3;j++) //判断投的姓名与备选的姓名是否一样
{
k=1;
if(f(b,a[j].name)) //if(strcmp(b,a[j].name)==0 )
{
k=0;
break;
}
}
if (k==1) //如果投的姓名,备选名单没有,提示重新输入姓名
{
printf("There is an error in your input\n");
i--;
continue;
}
for(j=0;j<3;j++)
{
if(f(b,a[j].name)) //if(strcmp(b,a[j].name)==0 )
a[j].count++;
}
}
for(i=0;i<3;i++)
{
printf("%s %d\n",a[i].name,a[i].count);
}
}