@fiy-fish
2015-06-27T18:07:37.000000Z
字数 819
阅读 1324
C
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include <stdlib.h>
#include "time.h"
struct person{
char name[30];
int count;
//这里定义一个结构体数组,并给他初始化!
}leader[3]={"li",0,"zhang",0,"sun",0};//leader[3]={"name1",0,"name2",0,"name3",0}
int main()
{
int i,j;
char leader_name[20];
//给rand()函数种时间种子
srand((unsigned)time(NULL));
char *p = leader_name;
char *t=NULL;
for (i=1; i<=10; i++) {
//进行10次投票
//凡是遇到字符串或者字符串数组都要用字符串函数,类如 strlen,strcpy,strcmp,strcat等!
//用leader[rand()%3].name复制到leader_name字符数组里面
t=strcpy(p, leader[rand()%3].name);//括号里面的都是指针变量
// strcpy的返回值是 指针p
printf("%s\t",t);
printf("%s\n",p);
for(j=0;j<3;j++)
{
//利用循环判断得票的老师,同时计数
//这里访问结构体变量只能用点运算符,如果是结构体指针变量就必须用“->”运算符
if(strcmp(p,leader[j].name)==0) leader[j].count++;
}
}
printf("\nResult:\n");
for(i=0;i<3;i++)
printf("\t%15s:%5d\n",leader[i].name,leader[i].count);
// 这里的\t%15s:%5d\n 仅仅是为了美观
return 0;
}