请问为什么输入14位的数字学号却显示10位乱组数字,改如何更改呢

//采用顺序线性表解决宿舍管理问题 (C语言)
#include
#include
#include
#define N 40 //线性表存储空间的初始分配量
#define increase 10 //线性表存储空间的分配量增量
int f,t=0; //定义全局变量
typedef struct

{
char name[20];
int num; //学号和房号都为整型
int room;
}stu;
stu stud;
typedef struct
{
int length; //当前长度
stu elem; //存储空间基址
int listsize; //当前分配的存储容量
}linklist;

void init(linklist &l)//线性表初始化
{
l.length=0;
l.elem=(stu *)malloc(N*sizeof(stu ));
l.listsize=N;
}
void menu()//操作菜单
{
printf("\n");
printf(" *
*************请按键选择操作****************\n");
printf("\n");printf("\n");
printf(" 1 按姓名排序 2 按学号排序\n");
printf("\n");
printf(" 3 按房号排序 4 按姓名查找\n");
printf("\n");
printf(" 5 按学号查找 6 按房号查找\n");
printf("\n");
printf(" 7 按学号插入 8 按学号删除\n");
printf("\n"); printf("\n"); printf("\n"); printf("\n");
printf("提示:当输入的数字键为0时,退出操作\n");
if(t==1)
{
printf("请输入数字键(1~8为操作键):");//1~8为有效数字操作键
scanf("%d",&f);
if(f9)
{
system("cls");
printf("\n");
printf("输入数字不对,请在原处重输!\n"); printf("\n");
menu();
}
}

}

void disp() //返回主界面
{
char c;
fflush(stdin);
printf("\n");
printf("请按任意键进入主界面:");
scanf("%c",&c);
system("cls");
}
void panduan3() //如果已无学生记录则返回主界面
{
printf("\n");
printf("已无学生记录\n");
printf("\n");
disp();
menu();
}

void shuru(linklist l) //输入学生的信息
{
printf("请输入姓名:");
fflush(stdin); // 清空输入缓冲区,得到正确的输入数据
gets(stud.name); //输入一行字符串(姓名)
printf("请输入学号:");
scanf("%d",&stud.num);
printf("请输入房号:");
scanf("%d",&stud.room);
}
void create(linklist &l)//创建学生信息表
{
if(l.length>=l.listsize) //判断学生的人数是否超过初值,如果超过,则重新分配
{
stu newbase;
newbase=(stu
)realloc11111(l.elem,(N+increase)*sizeof(stu ));
l.elem=newbase;
l.listsize+=increase;
}
int i=2;
char ch;
printf("\n");
printf(" **************************开始创建线性表***************************\n");printf("\n");
printf("请输入第1个学生的信息\n");
shuru(l); //调用输入函数
ch=getchar();
strcpy111(l.elem[l.length].name,stud.name);
l.elem[l.length].num=stud.num;
l.elem[l.length].room=stud.room;
l.length++;
printf("\n");
printf("是否继续输入?:");
scanf("%c",&ch);
printf("\n");printf("\n");
while(ch=='y')
{

   printf("请输入第%d个学生的信息\n",i);
   shuru(l);
strcpy(l.elem[l.length].name,stud.name);
    l.elem[l.length].num=stud.num;
    l.elem[l.length].room=stud.room;
    l.length++;
i++;
ch=getchar(); printf("\n");
printf("是否继续输入?<y/n>:");
scanf("%c",&ch);
printf("\n");printf("\n");
}

if(ch=='n') system111("cls");

}
void sort3(linklist &l)//按房号排序(采用冒泡排序)
{
int i,j;
stu temp;
for(i=0;i for(j=i+1;j if(l.elem[i].room>l.elem[j].room)
{
temp=l.elem[i];
l.elem[i]=l.elem[j];
l.elem[j]=temp;
}

}

void sort2(linklist &l)//按学号排序(采用冒泡排序)
{
int i,j;
stu temp;
for(i=0;i for(j=i+1;j if(l.elem[i].num>l.elem[j].num)
{
temp=l.elem[i];
l.elem[i]=l.elem[j];
l.elem[j]=temp;
}

}
void sort1(linklist &l)//按姓名排序(采用冒泡排序)
{
int i,j;
stu temp;
for(i=0;i for(j=i+1;j if(strcmp(l.elem[i].name,l.elem[j].name)>0)
{
temp=l.elem[i];
l.elem[i]=l.elem[j];
l.elem[j]=temp;
}

}
void print1(linklist &l)//打印学生信息
{
int i;
printf("\n");
printf("姓名 学号 房号\n");printf("\n");
for(i=0;i<l.length;i++)
printf("%-15s %-3d %5d\n",l.elem[i].name,l.elem[i].num,l.elem[i].room);
}
void print2(linklist &l,int mid) //打印查找到的学生信息
{

    printf("查找成功----->该学生信息为:\n");
    printf("姓名          学号     房号\n");printf("\n");
    printf("%-15s %-5d %-5d\n",l.elem[mid].name,l.elem[mid].num,l.elem[mid].room);

}
int panduan1(char ch) //判断是否继续查找
{

scanf("%c",&ch);
    printf("是否继续查找?<y/n>:");
    fflush(stdin);
    scanf("%c",&ch);
    if(ch=='y')
    {
        system("cls");
        return(1);
    }

else
    return 0;

}
int panduan2(char ch) //如果学生不存在,判断是否继续查找
{
scanf("%c",&ch);
printf("该学生不存在,是否继续查找?:");
fflush(stdin);
scanf("%c",&ch);
if(ch=='y')
{
system("cls");
return(1);
}

else
    return 0;

}
void chazhao3(linklist &l)//按房号从小到大查找(采用二分查找)
{
if(l.length==0) panduan3(); //此函数功能为:返回主界面
else
{
int low=0,high=l.length,mid,flag=0;//flag作为标志符,为1则表示查找成功,否则没有所要查找的学生
int m;
char ch;
printf("\n");printf("\n");
printf("按房号查找----->请输入要查找的房号:");

    scanf("%d",&m);
    printf("\n");
    while(low<=high)
    {
         mid=(low+high)/2;
        if(m==l.elem[mid].room)
        {
            flag=1;
            break;
        }
        else if(m>l.elem[mid].room)
        low=mid+1;
        else 
            high=mid-1;
    }
    if(flag==1) 
    {
        print2(l,mid);
        if(panduan1(ch))    //调用判断函数1
            chazhao3(l);
        else 
        {
            system("cls");
            menu();
        }

    }
    else 
    {

        if(panduan2(ch))  //调用判断函数2
            chazhao3(l);
           else 
        {
            system("cls");
            menu();
        }
    }
}

}
void chazhao2(linklist &l)//按学号从小到大查找(采用二分查找)
{
if(l.length==0) panduan3();
else
{
int low=0,high=l.length,mid,flag=0;
int n;
char ch;
printf("\n");printf("\n");
printf("按学号查找----->请输入要查找的学号:");

    scanf("%d",&n);
    printf("\n");
    while(low<=high)
    {
         mid=(low+high)/2;
        if(n==l.elem[mid].num)
        {
            flag=1;
            break;
        }
    else if(n>l.elem[mid].num)
        low=mid+1;
        else 
            high=mid-1;
    }
    if(flag==1) 
    {
        print2(l,mid);
    if(panduan1(ch)) 
        chazhao2(l);
    else 
        {
            system("cls");
            menu();
        }

    }
    else
    {
           if(panduan2(ch))     chazhao2(l);

           else 
           {
            system("cls");
            menu();
           }
    }
}

}
void chazhao1(linklist &l)//按姓名从小到大查找(采用二分查找)
{

if(l.length==0) panduan3();
else
{
int low=0,high=l.length,mid,flag=0;
printf("\n");printf("\n");
printf("按姓名查找----->请输入要查找的姓名:");
char a[15],ch;
scanf("%s",a);
printf("\n");
while(low<=high)
{
mid=(low+high)/2;
if(strcmp(a,l.elem[mid].name)==0)
{
flag=1;
break;
}
else if(strcmp(a,l.elem[mid].name)>0)
low=mid+1;
else
high=mid-1;
}
if(flag==1)
{
print2(l,mid); //打印查找到的学生的信息
if(panduan1(ch)) chazhao1(l);
else
{
system("cls");
menu();
}
}

    else
    {
            if(panduan2(ch))    chazhao1(l);
            else 
            {
                system("cls");
                menu();
            }
    }
}

}
void insert(linklist &l)//按学号从小到大插入该学生
{
int i,j,k;
char ch;
printf("\n");
printf("插入的学生信息为:\n");
printf("姓名:");
fflush(stdin);// 清空输入缓冲区,得到正确的输入数据
gets(stud.name);

printf("学号:"); scanf("%d",&stud.num);
printf("房号:"); scanf("%d",&stud.room);
if(l.length==0)
{
strcpy(l.elem[l.length].name,stud.name);
l.elem[l.length].num=stud.num;
l.elem[l.length].room=stud.room;

    }   
for(i=0;i<l.length;i++)
{
 if(stud.num<l.elem[i].num)
    {
        k=i;
        for(j=l.length;j>k;j--)
            l.elem[j]=l.elem[j-1];
        strcpy(l.elem[k].name,stud.name);
        l.elem[k].num=stud.num;
        l.elem[k].room=stud.room;
        break;
    }
    else 
    {
        strcpy(l.elem[l.length].name,stud.name);
        l.elem[l.length].num=stud.num;
        l.elem[l.length].room=stud.room;
    }   

}
    l.length++;
    fflush(stdin);
    printf("\n");
    printf("是否继续插入?<y/n>:");
    scanf("%c",&ch);
    if(ch=='y') insert(l);
    else system("cls");

}

void Delete(linklist &l)//按学号删除该学生
{
int i,j,k=-1;
char ch;
printf("\n");printf("\n");
printf("请输入要删除学生的学号:");
scanf("%d",&stud.num);
for(i=0;i<l.length;i++)
{
if(stud.num==l.elem[i].num)
{
printf("该学生的信息为:\n");printf("\n");
printf("%-15s %-3d %7d\n",l.elem[i].name,l.elem[i].num,l.elem[i].room);
k=i;
for(j=k;j<l.length-1;j++)
l.elem[j]=l.elem[j+1];

            printf("\n");
            break;
        }

    }
    if(i>=l.length) printf("该学生不存在\n");
    if(k>=0)l.length--;
    fflush(stdin);
    printf("\n");
    printf("是否继续删除?<y/n>:");
    scanf("%c",&ch);
    system("cls");
    if(ch=='y') Delete(l);
    else system("cls");

}
int main() //主函数
{
linklist l; //定义线性表 l
init(l); //调用初始化函数
char ch;
system("color a");
printf("\n");
printf(" *************************欢迎进入宿舍管理查询系统*************************\n");
printf("\n");
printf("请按任意键开始操作:");
scanf("%c",&ch);
system("cls");//将屏幕先前显示的内容清理掉
create(l); //调用线性表创建函数
system("cls");
t=1;
menu(); //调用主菜单函数

while(f!=0)
{

system("cls");
    switch(f)
    {
    case 1: sort1(l);    //调用按姓名排序函数  
        printf("\n");
           if(l.length==0)
           {
               printf("已无学生记录\n");
               printf("\n");
               disp();
               menu();
           }
            else
            {
            printf("按姓名排序:\n");
            print1(l);
            disp();   //调用返回主界面
            menu();    

            }
            break;

    case 2: sort2(l);   //调用按学号排序函数 
        printf("\n");
            if(l.length==0) 
            {
                printf("已无学生记录\n");
                printf("\n");
                disp();
                menu();
            }
            else
            {
            printf("按学号排序:\n");
            print1(l);
            disp();
            menu();
            }break;

    case 3: sort3(l);   //调用按房号排序函数 
        printf("\n");
           if(l.length==0) 
           {
               printf("已无学生记录\n");
               printf("\n");
               disp();
               menu();
           }
            else
            {
            printf("按房号排序:\n");
            print1(l);
            disp();
            menu();
            }break; 

    case 4:sort1(l);      //先调用按姓名排序函数进行排序 
        chazhao1(l);   //再调用按姓名查找函数进行(二分)查找 
           break;   
    case 5: sort2(l);     //先调用按学号排序函数进行排序 
           chazhao2(l);    //再调用按学号查找函数进行(二分)查找 
           break;
    case 6: sort3(l);      //先调用按房号排序函数进行排序 
          chazhao3(l);     //再调用按房号查找函数进行(二分)查找
          break;
    case 7: sort2(l);      //调用插入函数
          insert(l);      
          system("cls");
        printf("显示插入后的学生信息:\n");print1(l);
        disp();
           menu();
           break;
    case 8: Delete(l);     //调用删除函数

        if(l.length==0)
        {
            printf("\n");
            printf("学生记录已被删除完\n");
            printf("\n");
            disp();
           menu();
        }
        else
        {
        printf("显示删除后的学生信息:\n");
        print1(l);
        disp();
        menu();
        }

        break;
    }
}return 0; 

}

1个回答

整数表示范围是-21亿~21亿(2的31次方),不能表示14位。

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 学号应该用字符串
2 年多之前 回复
fight_in_dl
战在春秋 回复qq_37408011: 能否把题目相关的代码摘出来? 既复现问题,又是最少代码量。
2 年多之前 回复
qq_37408011
hht238000 我改成longlong长整型还是不对呀
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
利用DOS系统功能调用编写汇编程序,在屏幕上显示自己学号的后4个数字符号
-
为什么按学号查询,查哪个学号都显示所有
-
用结构体数组存储某班的30名学生的信息,每个学生的数据项有学号
-
Java程序,输入学生学号成绩啥的,用数组,可以生成class但不能运行
-
sqlite数据导出为csv格式19位数字是科学计数法怎么解决
-
怎样从一组学号中筛选出在表中查不到的学号?
-
按学号递增排序;当 C=2时,按姓名的非递减字典序排序,运用的是C语言怎么做,谢谢
-
C语言数据结构输出学号,表示各个学生的成绩,以学号递增顺序给出,第一个学生学号为1
-
SQL查询没有选择某门课的所有学生的姓名学号
-
c语言/c++回答输入学号,名字(字符串),分数,按分数排序
-
C#windows应用程序如何将输入的信息保存在数组中?
-
C语言C语言的问题 储存五名学生的信息 姓名学号总成绩 输出最高分最低分的
-
在c中关于数字型变量的存储
-
sql查询,显示不满足where条件的列
-
按学号查找的判断,求大神详解
-
已知有若干个学生的数据(包括学号、姓名和一门课程的成绩)请编程实现
-
为什么文件不能读取哇,其他的都可以,定义的学号是字符型~
-
为什么我按照学号查询查哪个学号都是查出全部,下边有我的代码,哪位大神会的,求详解求改正谢谢了
-
最简单的输入然后显示为输出的问题!!
-
程序员竟然钟爱这个!我 low了
今天和一帮程序员大佬群里闲聊(需要入群的可以加最底下微信哦~)聊着聊着竟然扯到鞋子一直在讨论穿什么鞋子比较耐脏然后一帮大佬集中围殴小白鞋说小白鞋虽然百搭但是太容易脏,太不...
程序员实用工具网站
目录 1、搜索引擎 2、PPT 3、图片操作 4、文件共享 5、应届生招聘 6、程序员面试题库 7、办公、开发软件 8、高清图片、视频素材网站 9、项目开源 10、在线工具宝典大全 程序员开发需要具备良好的信息检索能力,为了备忘(收藏夹真是满了),将开发过程中常用的网站进行整理。 1、搜索引擎 1.1、秘迹搜索 一款无敌有良心、无敌安全的搜索引擎,不会收集私人信息,保...
996下的程序员,该如何保证自己的身体健康?
作者:陈大鱼头github:KRISACHAN自从开始写代码之后,一天里大部分的时间都贡献了给了电脑跟那张从X总办公室里搬回来的人体工学椅了。鱼头也经历过无数次的 肥胖 ...
史上最详细的IDEA优雅整合Maven+SSM框架(详细思路+附带源码)
网上很多整合SSM博客文章并不能让初探ssm的同学思路完全的清晰,可以试着关掉整合教程,摇两下头骨,哈一大口气,就在万事具备的时候,开整,这个时候你可能思路全无 ~中招了咩~ ,还有一些同学依旧在使用eclipse或者Myeclipse开发,我想对这些朋友说IDEA 的编译速度很快,人生苦短,来不及解释了,直接上手idea吧。这篇文章每一步搭建过程都测试过了,应该不会有什么差错。本文章还有个比较优秀的特点,就是idea的使用,基本上关于idea的操作都算是比较详细的,所以不用太担心不会撸idea!最后,本文
全球最厉害的 14 位程序员!
来源 | ITWorld 整理自网络全球最厉害的 14 位程序员是谁?今天就让我们一起来了解一下吧,排名不分先后。01. Jon Skeet个人名望:程序技术问答网站 S...
我花了一夜用数据结构给女朋友写个H5走迷宫游戏
起因 又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而 怨气满满! 而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有啥作用。而我答道:能干事情多了,比如写个迷宫小游戏啥的! 当我码完字准备睡觉时:写不好别睡觉! 分析 如果用数据结构与算法造出东西来呢? ...
招人!入职阿里仅1年,我和做AI的程序员薪资翻了2倍!
最近在知乎上,关于AI的这个话题又被顶起来,其中,这条回答让人印象深刻:在这短短的一条信息里,无疑显示出:AI行业缺人,高端岗位80万年薪恐怕也招不来!小编上周在一个AI...
什么是大公司病(太形象了)
点击蓝色“五分钟学算法”关注我哟加个“星标”,天天中午 12:15,一起学算法作者 | 南之鱼来源 | 芝麻观点(chinamkt)所谓大企业病,一般都具有机构臃肿、多重...
让程序员崩溃的瞬间(非程序员勿入)
今天给大家带来点快乐,程序员才能看懂。 来源:https://zhuanlan.zhihu.com/p/47066521 1. 公司实习生找 Bug 2.在调试时,将断点设置在错误的位置 3.当我有一个很棒的调试想法时 4.偶然间看到自己多年前写的代码 5.当我第一次启动我的单元测试时 ...
Spring高级技术梳理
Spring高级技术梳理 序言正文SpringDate部分Spring全家桶之SpringData——预科阶段Spring全家桶之SpringData——Spring 整合Hibernate与Hibernate JpaSpring全家桶之SpringData——Spring Data JPASpring全家桶之SpringData——SpringData RedisSpringBoot部分Sp...
Git 天天用 但是 Git 原理你了解吗?
Git 原理 做技术一定要知其然知其所以然,意思就是:知道它是这样的,更知道它为什么是这样的。我主要通过4块内容来简单介绍 Git 是原理是什么样的。这4块内容如下: Git 存储目录结构介绍 Git 是如何存储的 Git 的对象 Git引用 当然 Git 原理不仅仅包含这些,想要更深入了解请查看官方教程 https://git-scm.com/book/zh/v2/。 本文内容是我在 Git...
Android——微信自动回复实现
首先本文的测试微信版本是7.0.3 ,亲测可以使用。 需要实现-抓取微信自动回复消息的功能点。 一.首先打开DDMS,使用按钮。 在微信中回复一个消息 点击Stop Method Profiling。 二.查看生成的报表,观察到如下两个方法 其中1应该是发送消息的接口方法。2应该是UI层显示的方法。 三.首先分析第一个方法: 1.,可以看到,参数值是String,返...
分享靠写代码赚钱的一些门路
作者 mezod,译者 josephchang10如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。今天给大家分享一个精彩...
对计算机专业来说学历真的重要吗?
我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ...
技术人员要拿百万年薪,必须要经历这9个段位
很多人都问,技术人员如何成长,每个阶段又是怎样的,如何才能走出当前的迷茫,实现自我的突破。所以我结合我自己10多年的从业经验,总结了技术人员成长的9个段位,希望对大家的职...
8000字干货:那些很厉害的人是怎么构建知识体系的
本文约8000字,正常阅读需要15~20分钟。读完本文可以获得如下收益: 分辨知识和知识体系的差别 理解如何用八大问发现知识的连接点; 掌握致用类知识体系的构建方法; 能够应用甜蜜区模型找到特定领域来构建知识体系。 1. 知识体系?有必要吗? 小张准备通过跑步锻炼身体,可因为之前听说过小腿变粗、膝盖受伤、猝死等等与跑步有关的意外状况,有点担心自己会掉进各种坑里,就在微信上问朋友圈一直晒跑步...
万字长文!线性代数的本质课程笔记完整合集
点击上方“Datawhale”,选择“星标”公众号第一时间获取价值内容系列目录1.向量究竟是什么https://www.bilibili.com/video/av5987...
Java 网络爬虫,就是这么的简单
这是 Java 网络爬虫系列文章的第一篇,如果你还不知道 Java 网络爬虫系列文章,请参看 学 Java 网络爬虫,需要哪些基础知识。第一篇是关于 Java 网络爬虫入门内容,在该篇中我们以采集虎扑列表新闻的新闻标题和详情页为例,需要提取的内容如下图所示: 我们需要提取图中圈出来的文字及其对应的链接,在提取的过程中,我们会使用两种方式来提取,一种是 Jsoup 的方式,另一种是 httpcli...
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件
文章目录前言一、nginx简介1. 什么是 nginx 和可以做什么事情2.Nginx 作为 web 服务器3. 正向代理4. 反向代理5. 动静分离6.动静分离二、Nginx 的安装三、 Nginx 的常用命令和配置文件四、 Nginx 配置实例 1 反向代理五、 Nginx 配置实例 2 负载均衡六、 Nginx 配置实例 3 动静分离七、 Nginx 的高可用集群 前言 一、nginx简介...
Java 爬虫遇上数据异步加载,试试这两种办法!
这是 Java 爬虫系列博文的第三篇,在上一篇 Java 爬虫遇到需要登录的网站,该怎么办? 中,我们简单的讲解了爬虫时遇到登录问题的解决办法,在这篇文章中我们一起来聊一聊爬虫时遇到数据异步加载的问题,这也是爬虫中常见的问题。 现在很多都是前后端分离项目,这会使得数据异步加载问题更加突出,所以你在爬虫时遇到这类问题不必惊讶,不必慌张。对于这类问题的解决办法总体来说有以下两种: 1、内置一个浏览器内...
Angular 入门教程系列:39:使用ng-alain进行开发
在前面的文章中介绍过ng-alain,当时在使用的时候还显得不是很方便,最简单的一个demo运行的都不是非常流畅。而目前的版本已经做有较大的改进,再这个基础上进行二次开发,尤其是一些后端的平台或者监控的平台看起来都比较不错。在这篇文章中继续来确认一下使用的感受。
相关热词 c#俄罗斯方块源码 c# linq原理 c# 装箱有什么用 c#集合 复制 c# 一个字符串分组 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类