| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 618 人关注过本帖
标题:这是一个结构数组!对于大虾们,绝对简单,本人很菜,找了很多答案,实在找 ...
只看楼主 加入收藏
tongyuedidi
Rank: 2
等 级:论坛游民
帖 子:35
专家分:33
注 册:2013-2-20
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:5 
这是一个结构数组!对于大虾们,绝对简单,本人很菜,找了很多答案,实在找不出,在上贴~
# include <stdio.h>
# include <string.h>
struct person//声明结构体类型struct person
{
    char name[20];//候选人姓名
    int count;//候选人得票数
}   leader[3]={"li",0,"zhang",0,"sun",0};//定义结构体数组并初始化

void main()
{
    int i,j;
    char leader_name[20];//定义字符数组
    for (i=1;i<=10;i++)
    {
        scanf ("%s", leader_name);//输入所选的候选人姓名
        for (j=1;j<3;j++)
            if(strcmp(leader_name, leader[j].name)==0) leader[j].count++;
            //如果输入的姓名和某一元素中name成员相同,就给该元素的count加1
    }
    printf ("\nResoult: \n");
    for (i=0;i<3;i++)
        printf ("%5s: %d\n", leader[i].name, leader[i].count);
    //输出数组所有元素中的信息
}




li
zhang
sun
zhang
li
zhang
sun
li
sun
zhang
以上是输入投票人员(数);以下是显示结果;
Resoult:
   li: 0
zhang: 4
  sun: 3
Press any key to continue


问题:li的投票结果为什么没有~显示0!代码是谭浩强书上的、、、、据说,谭浩强的书有很多的错误,真是误人子弟啊~

搜索更多相关主题的帖子: 姓名 include person leader 
2013-03-21 21:19
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:10 
for (j=1;j<3;j++)改为
   for (j=0;j<3;j++)

总有那身价贱的人给作业贴回复完整的代码
2013-03-21 21:25
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:2 
你把谭浩强书上的代码拍下来,传上来看看是不是书上写错了?让我也见识一下

总有那身价贱的人给作业贴回复完整的代码
2013-03-21 21:27
g270615179
Rank: 2
等 级:论坛游民
帖 子:32
专家分:63
注 册:2012-3-2
收藏
得分:3 
程序代码:
# include <stdio.h>
# include <string.h>
struct person//声明结构体类型struct person
{
    char name[20];//候选人姓名
    int count;//候选人得票数
}   leader[3]={"li",0,"zhang",0,"sun",0};//定义结构体数组并初始化

void main()
{
    int i,j;
    char leader_name[20];//定义字符数组
    for (i=1;i<=10;i++)
    {
        scanf ("%s", leader_name);//输入所选的候选人姓名
        for (j=0;j<3;j++)
            if(strcmp(leader_name, leader[j].name)==0) leader[j].count++;
            //如果输入的姓名和某一元素中name成员相同,就给该元素的count加1.应从0开始判断。
    }
    printf ("\nResoult: \n");
    for (i=0;i<3;i++)
        printf ("%5s: %d\n", leader[i].name, leader[i].count);
    //输出数组所有元素中的信息
}
for (j=0;j<3;j++)
2013-03-21 21:34
rjvsky
Rank: 3Rank: 3
来 自:陕西西安
等 级:论坛游侠
帖 子:77
专家分:106
注 册:2012-3-6
收藏
得分:5 
对于数组的下标你没弄懂吗?这明显是第一个数组元素访问不到,在c语言中的数组下标是从0开始的,因而你的内层循环只访问到了两个元素!所以第一个就是初始值零喽!

企业需要的人才,是真正可以给他们带来经济效益的人,而不是一大堆没用的证书,看淡证书,强化自己···
2013-03-21 21:40
luoshibin138
Rank: 1
等 级:新手上路
帖 子:11
专家分:8
注 册:2013-3-5
收藏
得分:0 
2013-03-21 22:12
快速回复:这是一个结构数组!对于大虾们,绝对简单,本人很菜,找了很多答案,实 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.072005 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved