A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhangjianbin 中级黑马   /  2015-4-27 14:00  /  2000 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <string.h>
#include <stdio.h>
struct Person                               // 声明结构体类型struct
{char name[20];                           // 候选人姓名
    int count;                               // 候选人得票数
} leader[3]={"Li",0,"Zhang",0,"Fun",0};    // 定义结构体数组并初始化

int main()
{
    int i,j;
    char leader_name[20];                    // 定义字符数组
    for (i=1;i<=3;i++)
    {
        scanf("%s",leader_name);              // 输入所选的候选人姓名
        for(j=0;j<3;j++)

            if(strcmp(leader_name,leader[j].name)== 0)
                leader[j].count++;

    }
    printf("\nResult:\n");
    for(i=0;i<3;i++)
        printf("%5s:%d\n",leader.name,leader.count);
    return 0;
}

运行结果:

明显错误  错在哪啊??

9 个回复

倒序浏览
学习学习  看不懂表示
回复 使用道具 举报
首先,最后打印那里有错误,应该是leader[i].name,leader[i].count。你想说的错误是指打印结果都为0吧,那是因为你的初始数据名字首字母是大写的,但是你输入的全是小写,结果当然不对了,你的程序是区分大小写的,其他没错
回复 使用道具 举报
这个。。。编译根本都不会通过啊。自己查一下就清楚了。
回复 使用道具 举报
#include <string.h> #include <stdio.h> struct Person                               // 声明结构体类型struct {         char name[20];                           // 候选人姓名     int count;                               // 候选人得票数 } leader[3]={"Li",0,"Zhang",0,"Fun",0};    // 定义结构体数组并初始化  int main() {     int i,j;     char leader_name[20];                    // 定义字符数组     for (i=1;i<=3;i++)     {         scanf("%s",leader_name);              // 输入所选的候选人姓名         for(j=0;j<3;j++)         {                              if(strcmp(leader_name,leader[j].name)== 0)                 leader[j].count++;         }       }     printf("\nResult:\n");     for(i=0;i<3;i++)         printf("%5s:%d\n",leader[i].name,leader[i].count);     return 0; }
回复 使用道具 举报
匡璐 发表于 2015-4-27 21:42
学习学习  看不懂表示

#include <string.h>
#include <stdio.h>
struct Person                               // 声明结构体类型struct
{
        char name[20];                           // 候选人姓名
    int count;                               // 候选人得票数
} leader[3]={"Li",0,"Zhang",0,"Fun",0};    // 定义结构体数组并初始化

int main()
{
    int i,j;
    char leader_name[20];                    // 定义字符数组
    for (i=1;i<=3;i++)
    {
        scanf("%s",leader_name);              // 输入所选的候选人姓名
        for(j=0;j<3;j++)
        {
               
            if(strcmp(leader_name,leader[j].name)== 0)
                leader[j].count++;
        }


    }
    printf("\nResult:\n");
    for(i=0;i<3;i++)
        printf("%5s:%d\n",leader.name,leader.count);
    return 0;
}
回复 使用道具 举报
#include <string.h>
#include <stdio.h>
struct Person                               // 声明结构体类型struct
{
        char name[20];                           // 候选人姓名
    int count;                               // 候选人得票数
} leader[3]={"Li",0,"Zhang",0,"Fun",0};    // 定义结构体数组并初始化

int main()
{
    int i,j;
    char leader_name[20];                    // 定义字符数组
    for (i=1;i<=3;i++)
    {
        scanf("%s",leader_name);              // 输入所选的候选人姓名
        for(j=0;j<3;j++)
        {
               
            if(strcmp(leader_name,leader[j].name)== 0)
                leader[j].count++;
        }//这里最好括起来


    }
    printf("\nResult:\n");
    for(i=0;i<3;i++)
        printf("%5s:%d\n",leader[i].name,leader[i].count);//这里面没有下标
    return 0;
}
回复 使用道具 举报
shenxian88 发表于 2015-4-29 12:50
#include
#include
struct Person                               // 声明结构体类型struct

非常感谢
回复 使用道具 举报
你定义那个结构体数组不把他括起来的吗,这样系统会默认这个结构体数组里面有6个元素,然后把他们赋值到你定义的两种变量,大括号里面应该再加三个大括号。
回复 使用道具 举报
再申明结构体的时候可以给成员变量赋值。。。你这赋值方法有问题。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马