c语言中的排序问题,搞蒙了!

问题描述

c语言中的排序问题,搞蒙了!

void sortbyname(){

int i,j;

struct student temp;

FILE fp; fp=fopen ("D:student.txt","rb+");

for (i=0;i<num;i++)
fread(&student[i],sizeof(struct student),1,fp); fclose(fp);

system("cls");

printf("tt************** 下面是通讯录所有信息************n");

printf("n 学号 姓名 年龄 性别 出生年月 地址 电话 E-mail n");

for (i=0;i
printf("nn");
for(i=0;i
for(j=0;j0) {temp=student[j];

student[j]=student[j+1];

student[j+1]=temp; }

printf("tt*************** 下面是排序后通讯录所有信息************n");
printf("n 学号 姓名 年龄 性别 出生年月 地址 电话 E-mail n");
for (i=0;i<num;i++) printf("t%st%st%st%st%st%st%st%sn",student[i].num,student[i].name,student[i].age,student[i].sex,student[i].csny,student[i].address,student[i].tel,student[i].email); printf("nn");fp=fopen ("d:student.txt","wb"); for(j=0;j<num;j++)
fwrite(&student[j],sizeof(struct student),1,fp); fclose(fp);
printf("nn*******按任意键返回主界面********n"); getch();index();
system("cls");}
另外
char name[20]
如果是数字就是排序成功,如果是文字,那么输出就多多少少的不行,求大神解决!!!!

解决方案

for (i=0;i printf("nn");
for(i=0;i for(j=0;j0) {temp=student[j];

student[j]=student[j+1];

student[j+1]=temp; }

那两个for循环怎么看起来这么诡异,是我太LOW了吗?理解不到,求赐教

解决方案二:

应该是你的字符比较处理的有问题,可以仔细看看,

解决方案三:

你程序就没有比较关系怎么排序?

时间: 2024-08-30 07:32:57

c语言中的排序问题,搞蒙了!的相关文章

C语言指针冒泡排序问题

问题描述 C语言指针冒泡排序问题 #include#include int main(){ void sort(char *name[]int n); char * alphabet[ ]={""Follow me""BASIC""Great Wall""FORTRAN""Computer design""}; int n = 5; sort(alphabetn); for(int i=

c语言-C语言中如何把字符串&amp;amp;quot;2A&amp;amp;quot;转换成0x2A?

问题描述 C语言中如何把字符串"2A"转换成0x2A? 如题:C语言中如何把字符串""2A""转换成0x2A?有没有现成的函数,或者提供一直转换思路? 解决方案 思路:对字符串中每个字符判断是 0 到 9,还是 A 到 F对这两种情况进行处理,是第一种减去 0x30 就是对应的数字:第二种减去 'A',再加上 10.如果字母有小写的情况,也需要考虑. 解决方案二: 思路,手写的.int result = 0;for (int i = 0; i &

c语言-C语言中分号的使用,不了解定义属不属于语句(初学者)

问题描述 C语言中分号的使用,不了解定义属不属于语句(初学者) 各位前辈,小生初学C语言,目前自学中,但是在看程序的过程中卡在分号的地方 #include<stdio.h>int main(){int max(int x int y);int abc;scanf(""%d%d""&a&b);c=max(ab);printf(""max=%dn""c);return 0;}int max(int x

java-C语言中顺序线性表的合并

问题描述 C语言中顺序线性表的合并 结构体类型变量作为函数参数只能作为指针传递吗?为什么我写一个函数参数是结构体,下面引用时报错 typedef struct { char name[10]; char sex; long num; }ElemType;//自定义元素类型. typedef struct{ ElemType *elem;//存储空间基址. int length;//当前长度. int listsize;//当前分配的存储容量(以sizeof(ElemType)为单位). }SqL

C语言中字符串的格式化

本文整理转载自:http://wenku.baidu.com/view/065d62fff705cc1755270989.html C语言中格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]类型, 其中方括号[]中的项为可选项. 一.类型 我们用一定的字符用以表示输出数据的类型,其格式符和意义下表所示: 字符                                    意义 a                 浮点数.十六进制数字和p-计数法(C99) A    

对C++和Go语言中接口的理解

一直对接口没有什么概念,感觉接口就是C++中的多态.个人理解,接口的作用就是让外部调用者不用关心这个类的类型,让公用的逻辑可以重用. 一个例子: 我们说燕子会飞,会喝水.按照一般的写法,我们需要定义一个燕子的类,然后写了会飞的函数.假设有这么个流程,燕子飞到河边,喝水.这个过程中要用燕子类的指针调用.这个过程没问题,能很快搞定. 没过多久,PM需要加功能(你懂的),我们要写个鸽子飞到河边,喝水.鸽子的飞法和喝水方法与燕子自然不同.鸽子类必然要重写.但是飞到河边,喝水.这个流程能不能复用呢.因为如

c语言-C语言中的命令行参数有什么作用?

问题描述 C语言中的命令行参数有什么作用? 最近再学习C语言,在学习到命令行参数的问题的时候搞清楚了命令行参数的用法以及怎么实现的,但是目前无法理解命令行参数到底在实际编程当中的作用是是什么? 希望得到好心人的帮助,谢谢. 解决方案 你可以做一个实验.按键盘上ctrl右边的windows键,不松手,再按下r,打开运行对话框. 输入如下命令 explorer 运行,你会打开一个我的电脑的窗口,默认显示的是你的文档或者当前目录. 关闭,再输入 explorer c: 这次打开我的电脑,并且默认显示的

牛根生手里已无蒙牛股份 中粮或更换蒙牛高管层

据经济之声报道,蒙牛创始人牛根生再次成为关注的焦点,这缘于一篇关于牛根生减持蒙牛228万股.套现20亿港币的报道,但是由牛根生捐赠并发起的慈善机构老牛基金会的人却澄清,这和牛根生没有半毛钱关系.不过这件事却扯出牛根生和三个上市公司不得不说的故事. 媒体关于牛根生再次减持蒙牛228万股,套现20亿港币的报道,使得这家曾经的"中国乳业总冠军"再次http://www.aliyun.com/zixun/aggregation/35420.html">前景不明起来.不过老牛基金

在C语言中调用C++做的动态链接库_C 语言

今天在做东西的时候遇到一个问题,就是如何在C语言中调用C++做的动态链接库so文件 如果你有一个c++做的动态链接库.so文件,而你只有一些相关类的声明, 那么你如何用c调用呢,别着急,本文通过一个小小的例子,让你能够很爽的搞定.   链接库头文件: head.h class A { public: A(); virtual ~A(); int gt(); int pt(); private: int s; }; firstso.cpp #include <iostream> #include