鱼C论坛

 找回密码
 立即注册
查看: 4036|回复: 11

c语言 结构体

[复制链接]
发表于 2013-5-13 21:33:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zoe琦 于 2013-5-14 13:10 编辑

题目:一个学生包含他的或她的数字,名字和性别属性。写一个结构,包含了上述三个成员。数男生的人数在N学生你定义。写一个用户定义的函数来计算数量的男学生。
请各位大神帮忙。。这是我写的程序,但是无法打印出n的值。




[i][i][i][i]#include "stdio.h"
#include "conio.h"

struct student
{
   int num;
   char name[10];
   char sex[4];
}stu[5];
main()
{   int i,n=0;
    char boy;
    printf("Enter studen number,name and sex:\n");
    for(i=0;i<5;i++)
    {
      scanf("%d %s %s",stu[i].num,stu[i].name,stu[i].sex);
    }
    for(i=0;i<5;i++)
    {
      if(stu.sex==boy)
      n++;
    }
    printf("There are %d boy.\n",n);
    getch();
}

[/i][/i][/i]
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-5-13 21:34:56 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-13 21:46:11 | 显示全部楼层
好像gets()函数原型为:
char *gets(char *s); 说明是从标准读入数据保存到s所旨向的内存空间 , 是读入一个字符串的吧, 不能用来读入一个int吧?!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-13 22:25:29 | 显示全部楼层
我只是路过打酱油的。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-5-14 13:10:24 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-14 13:58:00 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
3#的回答貌似比较靠谱 定义的变量类型不一样吧 int型的不能靠char读取?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-17 20:20:03 | 显示全部楼层
LZ严重错误
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-17 20:21:10 | 显示全部楼层
#include "stdio.h"
#include "conio.h"
#define N 1
struct student
{
   int num;
   char *name;
   char *sex;
}stu[N];
int main()
{   int i,n=0;
    char boy;
    printf("Enter studen number,name and sex:\n");
    for(i=0;i<N;i++)
    {
      scanf("%d%s%s\n",&stu[i].num,stu[i].name,stu[i].sex);
    }
    for(i=0;i<N;i++)
    {
      if(stu[i].sex=='m')
          n++;
    }
    printf("There are %d boy.\n",n);

}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-17 21:57:59 | 显示全部楼层
感恩无私的分享与奉献 :)
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-17 22:24:09 | 显示全部楼层

struct student
{
   int num;
   char *name;
   char *sex;
}stu[N];
你在结构体中定义了指针,在使用时却没有给他开辟空间,这能对吗?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-17 22:30:28 | 显示全部楼层
scanf("%d %s %s",stu.num,stu.name,stu.sex);
if(stu.sex==boy)
楼主,你不看编译器的提示信息么?
C语言字符串的比较需要调用库函数 strcmp,不能直接操作
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-19 00:11:48 | 显示全部楼层
我只是路过打酱油的。
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-28 14:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表