永发信息网

c语言关于字符串如何进行数值大小比较

答案:2  悬赏:20  手机版
解决时间 2021-03-02 17:30
我有份作业是编一个学生成绩管理系统,一开始定义误用了数据类型,等功能都编了大半,码了几百行,到了最后一个排序功能时出问题了
我的id和grade都是用了字符串,无法直接进行大小比较,我
用了int x;sscanf(Students[i].student_id,"%d",&x)然后比较,还是不行
用了strcmp(Students[i].student_grade,x)>0,还是不行
struct StuInfo{
char student_id[30];
char student_name[30];
char student_class[10];
char student_grade[10];
}Students[MAX];

排序代码我用的是快速排序,用普通的顺序表排序验证该排序代码可行,但用于我的Students就无效了
我曾经尝试从头改成int,马上各种功能报错,改了半天都没办法,连其他管理功能都实现不了。

我其中一种排序代码是:
int char_compare(char a[30]){
int gradeid;
sscanf(a,"%d",&gradeid);
return gradeid;
}
void quick_sort_id(int l,int r){
int i,j;
int x;
if(l {
i=l;
j=r;
sscanf(Students[i].student_id,"%d",&x);
while(i {
while(ix)
j--;
if(i Students[i++]=Students[j];
while(i i++;
if(i Students[j--]=Students[i];

}
sprintf(Students[i].student_id,"%d",&x);
quick_sort_id(l,i-1);
quick_sort_id(i+1,r);
}
}
最佳答案
可一按照strcmp的原理,
对字符串数组的的每一个元素进行对比
全部回答
c语言是不管你什么,一律按ascii码比较,strcmp
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一个手机号一年能申请多少个QQ
绿色和什么颜色搭配在一起是蓝色
潍坊景蓝贸易有限公司地址在哪,我要去那里办
描写颜色的词语是什么意思
都没有人理我,我是不是果断卸载知道。。。?
人需要反思吗?
速食汇在什么地方啊,我要过去处理事情
怎么样的面糊用薄饼铛做出来的饼皮有韧性好吃
怎么修改电脑账户名
安健广场怎么去啊,有知道地址的么
加强水利和防灾减灾建设的措施包括(  )。
南苑宾馆地址在哪,我要去那里办事
求20号多玩lol每日精彩集锦的背景音乐
为什么别人华硕x550dp玩lol不卡,我的就特别
别克君越USB插上歌曲可以放,不出声音怎么回
推荐资讯
养生黑豆大米粥怎么做
康师傅的酸菜牛肉面有猪肉吗
Medicine should not be kept where it
海尚优品在哪里啊,我有事要去这个地方
嫁女大门对联(十九字)带横批
为什么用劫很难打锐雯。(刚刚被掉打了)
男主角叫安滋的日本动漫
你总会有爱上我的那一天,我会等着你的爱慢慢
昨可以组什么词
了解事实的意思
你好,中国平安保险意外险一般赔偿金要多久才
莱昂纳多 迪卡普里奥有没有出版的书籍?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?