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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

ITman007

中级黑马

  • 黑马币:63

  • 帖子:26

  • 精华:0

/**
* 定义一个结构体学生信息变量
*/

typedef struct
{
    //int stuentNum;
    char *name;
    Gender gender;
    int  age;
    int  score;
   
}Student;

//保存学生的数量

#define STUNUM 100

int realStuNum = 7;


//  全部学生信息

Student students[STUNUM] ={
    {"Jack",GenderMale,18,75},
    {"Rose",GenderFemale,17,80},
    {"Lilei",GenderMale,20,90},
    {"Lucy",GenderFemale,23,82},
    {"MeiMei",GenderFemale,25,73},
    {"Poly",GenderMale,30,72},
    {"Ming",GenderMale,15,60}};


/**
     *   提示用户输入姓名
     */
    printf("请输入你要查询的姓名:");
    char name[10];
    rewind(stdin);
    gets(name);
    puts(name);
    //fgets(stu.name, 20, stdin);
   
    // 遍历所有学生,查找与输入姓名相符的人并打印其信息
   
    for(int i = 0;i < realStuNum;i++)
    {
        if(students[i].name == name)
        {
            printf("%d\t%s\t%s\t%d \t %d\n",
                   i+1,
                   students[i].name,
                   students[i].gender == GenderMale?"男":"女",
                   students[i].age,
                   students[i].score);
            
        }
        else
        {
            printf("对不起,你查找的学生不存在\n");
        }
    }

为什么总是显示找不到?

3 个回复

倒序浏览
各种问题....如果你的程序可以跑起来,那就是你比较字符串的方法问题strcpy(str1,str2)==0来判断就好了
回复 使用道具 举报
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(){
  4.     enum Gender{
  5.         GenderMale,GenderFemale
  6.     };
  7.    
  8.     struct Student
  9.     {
  10.         //int stuentNum;
  11.         char *name;
  12.        enum  Gender gender;
  13.         int  age;
  14.         int  score;
  15.         
  16.     };
  17.    
  18.     //保存学生的数量
  19.    
  20. #define STUNUM 100
  21.    
  22.     int realStuNum = 7;
  23.    
  24.    
  25.     //  全部学生信息
  26.    
  27.    struct  Student stu[STUNUM] ={
  28.         {"Jack",GenderMale,18,75},
  29.         {"Rose",GenderFemale,17,80},
  30.         {"Lilei",GenderMale,20,90},
  31.         {"Lucy",GenderFemale,23,82},
  32.         {"MeiMei",GenderFemale,25,73},
  33.         {"Poly",GenderMale,30,72},
  34.         {"Ming",GenderMale,15,60}};
  35.    
  36.    
  37.     /**
  38.      *   提示用户输入姓名
  39.      */
  40.     printf("请输入你要查询的姓名:");
  41.     char name[10];
  42.     rewind(stdin);
  43.     gets(name);
  44.     puts(name);
  45.     //fgets(stu.name, 20, stdin);
  46.    
  47.     // 遍历所有学生,查找与输入姓名相符的人并打印其信息
  48.    
  49.     for(int i = 0;i < realStuNum;i++)
  50.     {
  51.         if(strcmp(name, stu[i].name)==0)
  52.         {
  53.             printf("%d\t%s\t%s\t%d \t %d\n",
  54.                    i+1,
  55.                    stu[i].name,
  56.                    stu[i].gender == GenderMale?"男":"女",
  57.                    stu[i].age,
  58.                    stu[i].score);
  59.             return 0;
  60.             
  61.         }
  62.       
  63.     }
  64.     printf("找不到学生\n");
  65. }
复制代码
回复 使用道具 举报
字符串是不能那么比较的;要用strcpy来比较
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马