位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言 结构体类型程序举例

提问人:刘团圆发布时间:2020-12-02

    由于结构体可以将存在内在联系的不同数据类型结合为一个整体,所以结构体用处非常广泛,灵活使用结构体对于提高程序的结构体清晰性非常有好处。下面举几个例子来介绍结构体的用法。

【例题】统计选票

    设计一个统计选票的程序:某次选举有3个候选人,参加投票人员有15人,设计一个程序实现将这15个人的选票中选中的候选人编号输入,统计出这3个人的票数。

算法分析:

将候选人的信息定义为一个结构体,该结构体中包括候选人编号、候选人票数等信息:

struct vote

{

    char no[5]; 

    int number;

};

定义一个vote型数组,数组个数为3,代表3个候选人的信息。

定义一个函数stat()进行票数统计,函数形参为vote型数组,结束main()函数传递的实参数组名。函数中使用一个循环输入15个投票人所选择的候选人编号:

如果输入的候选人编号为“1001”,第一个候选人加1票。

如果输入的候选人编号为“1002”,第二个候选人加1票。

如果输入的候选人编号为“1003”,第三个候选人加1票。

程序如下:

#include < stdio.h >

#include <string.h>

void stat(struct vote v[]);

struct vote       /*定义选票结构体类型*/

{

    char no[5]; 

    int number;

};


main()

{

    int i;

    struct vote v[3]={{"1001",0},{"1002",0},{"1003",0}}; 

    stat(v);

    for(i=0;i<3; i++)            /*输出三个人的选票数*/

        printf("%s %d\n",v[i].no,v[i].number);

}

void stat (struct vote v[])    /* 统计选票 */

{

    int i,other=0;

    char cno [5];            /*候选人编号*/

    for (i=l; i<=15;i++)

    {

        printf("please input the no of candidate :\n");

        scanf("%s",cno); 

        if(strcmp(cno,"1001")==0) 

            v[0].number++;

        else if(strcmp(cno,"1002")==0) 

            v[1].number++; 

        else if(strcmp(cno,"1003")==0)

            v[2].number++;

        else

            other++;

    }

}

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部