[关闭]
@fiy-fish 2015-06-27T18:07:37.000000Z 字数 819 阅读 1324

结构体数组

C


  1. #include <stdio.h>
  2. #include <stdbool.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5. #include "time.h"
  6. struct person{
  7. char name[30];
  8. int count;
  9. //这里定义一个结构体数组,并给他初始化!
  10. }leader[3]={"li",0,"zhang",0,"sun",0};//leader[3]={"name1",0,"name2",0,"name3",0}
  11. int main()
  12. {
  13. int i,j;
  14. char leader_name[20];
  15. //给rand()函数种时间种子
  16. srand((unsigned)time(NULL));
  17. char *p = leader_name;
  18. char *t=NULL;
  19. for (i=1; i<=10; i++) {
  20. //进行10次投票
  21. //凡是遇到字符串或者字符串数组都要用字符串函数,类如 strlen,strcpy,strcmp,strcat等!
  22. //用leader[rand()%3].name复制到leader_name字符数组里面
  23. t=strcpy(p, leader[rand()%3].name);//括号里面的都是指针变量
  24. // strcpy的返回值是 指针p
  25. printf("%s\t",t);
  26. printf("%s\n",p);
  27. for(j=0;j<3;j++)
  28. {
  29. //利用循环判断得票的老师,同时计数
  30. //这里访问结构体变量只能用点运算符,如果是结构体指针变量就必须用“->”运算符
  31. if(strcmp(p,leader[j].name)==0) leader[j].count++;
  32. }
  33. }
  34. printf("\nResult:\n");
  35. for(i=0;i<3;i++)
  36. printf("\t%15s:%5d\n",leader[i].name,leader[i].count);
  37. // 这里的\t%15s:%5d\n 仅仅是为了美观
  38. return 0;
  39. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注