黑马程序员技术交流社区
标题: 大家给我看下这道题 [打印本页]
作者: zhangjianbin 时间: 2015-4-27 14:00
标题: 大家给我看下这道题
#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;
}
运行结果:
明显错误 错在哪啊??
作者: 匡璐 时间: 2015-4-27 21:42
学习学习 看不懂表示
作者: 流风124 时间: 2015-4-29 10:24
首先,最后打印那里有错误,应该是leader[i].name,leader[i].count。你想说的错误是指打印结果都为0吧,那是因为你的初始数据名字首字母是大写的,但是你输入的全是小写,结果当然不对了,你的程序是区分大小写的,其他没错
作者: dio925_heima 时间: 2015-4-29 11:13
这个。。。编译根本都不会通过啊。自己查一下就清楚了。
作者: shenxian88 时间: 2015-4-29 12:23
#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:41
#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;
}
作者: shenxian88 时间: 2015-4-29 12:50
#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-5-7 08:39
非常感谢
作者: asd26187 时间: 2015-5-7 09:24
你定义那个结构体数组不把他括起来的吗,这样系统会默认这个结构体数组里面有6个元素,然后把他们赋值到你定义的两种变量,大括号里面应该再加三个大括号。
作者: 张恒宇 时间: 2015-5-8 00:07
再申明结构体的时候可以给成员变量赋值。。。你这赋值方法有问题。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |