m0_61376883 2021-08-30 22:19 采纳率: 100%
浏览 67
已结题

用C语言结构体实现至少5个用户的登录系统

如何用C语言结构体实现至少5个用户的登录系统
请给位大佬帮帮忙

  • 写回答

2条回答 默认 最新

  • a_big_oier 2021-08-30 22:20
    关注
    
    //希望我的回答对你的学习有帮助,请采纳
    #include <stdio.h>
    #include <string.h>
     
    struct Student
    {
        char Name[10];     //学生的姓名,使用字符数组存储,长度为 10
        char PhoneNumber[15];  //学生的电话号,使用字符数组存储,长度为 15
    }stu[5], temp;         //结构体数组,长度为 5,用来存放 5 个学生的信息
                    //临时变量,用在冒泡排序的过程中交换数据
     
    int main()
    {
        for (int i = 0; i < 5; i++)          //输入 5 个学生的基本信息
        {
            scanf_s("%s %s", stu[i].Name, 10, &stu[i].PhoneNumber, 15);    //输入字符串,使用 %s 标记。其中每个字符串使用“空格”分开
                                            //如果输入的字符串包含“空格”,使用 gets 函数
        }
     
        for (int i = 0; i < 4; i++)                  //冒泡排序,外层循环只需要循环(长度 - 1)次
                                        //因为剩下最后一个数据不需要比较
        {
            for (int j = 0; j < 4 - i; j++)                //第一次循环,比较的次数为(长度 - 1//每次循环的次数都在缩小
                                                                //因为每次循环之后,最值已经放在了数组的尾部
                                                                //所以在下一次循环时,就可以排除这个最值,把比较的范围
            {
                if (strcmp(stu[j].Name, stu[j + 1].Name) > 0)  //strcmp 由定义得到,它就是一个根据Ascii码,对字符串比较的函数
                                        //如果strcmp 返回 0 ,证明两个字符串 相等
                                        //如果strcmp 返回 - ,证明第一个字符串比第二个字符串小
                                        //这个小,是指在两个字符串中第一个不相同的字符在 Ascii码表中的相对位置
                                        //如果strcmp 返回 + ,证明第一个字符串比第二个字符串大
                                        //这个大,是指在两个字符串中第一个不相同的字符在 Ascii码表中的相对位置
                {
                    temp = stu[j];                    //进行数据交换
                    stu[j] = stu[j + 1];
                    stu[j + 1] = temp;
                }
            }
        }
     
        for (int i = 0; i < 5; i++)                  //输出 5 个学生的基本信息
        {
            printf("%s %s\n", stu[i].Name,stu[i].PhoneNumber);
        }
     
        getchar(); getchar();
     
        return 0;
    }
    

    不懂可以追问

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月8日
  • 已采纳回答 8月31日
  • 创建了问题 8月30日

悬赏问题

  • ¥15 matlab中使用gurobi时报错
  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂