急!,。幼儿急疹会不会出两次这个C语言

本人初学c语言,不会做题,希望各位能救个急!!输入10个学生的3门课的成绩,分别用函数求:(1)每个学生的平均分;(2)按学生平均分降序排列输出学生信息;(3)每门课的平均分;(4)统计不及格学生,输出其相应信息;(5)编写一菜单主函数,菜单内容包括以上4点。
  C/C++ code  #include &stdio.h&//通讯录//排序还是有点问题的
#include &conio.h&
#include &string.h&
#include &stdlib.h&
#define N 100
struct student
{ char num[10];char name[10];char tel[10];};
void myprint()
|-----------------------------------------------|\n&);
请输入选项\n&);
printf(&\n&);
1`创建通讯录\n&);
2`显示通讯录\n&);
3`查询通讯录\n&);
4`修改通讯录\n&);
5`添加通讯录\n&);
6`删除通讯录\n&);
7`排序通讯录|\n&);
0`退出\n&);
printf(&\n&);
void mycreat(struct student *p,int n)
struct student *q=p;
FILE *fp=NULL;
fp=fopen(&d:\\jilu.dat&,&w&);
if(fp==NULL){printf(&error&);}
for(p=q;p-q&n;p++)
printf(&\n&);
printf(&第%d条记录:\n&,p-q+1);
printf(&学号:&);
{gets(p-&num);}
while(strcmp(p-&num,&&)==0);
printf(&姓名:&);
gets(p-&name);
printf(&电话:&);
gets(p-&tel);
fprintf(fp,&%23s%15s%15s\n&,p-&num,p-&name,p-&tel);
void mydisplay(struct student *p,int n)
FILE *fp=NULL;
fp=fopen(&d:\\jilu.dat&,&r&);
if(fp==NULL){printf(&error&);}
system(&cls&);
while(n&0)
fscanf(fp,&%23s%15s%15s&,p-&num,p-&name,p-&tel);
printf(&%23s%15s%15s\n&,p-&num,p-&name,p-&tel);
void mysearch(struct student *p,int n)
struct student *q=p;
int flag=0;
char c='\0',nm[10]=&&,nam[10]=&&;
printf(&\n按照学号查询(h)或姓名查询(m):\n&);
c=getche();
if(c=='h'||c=='H')
printf(&请输入要查询记录的学号:&);gets(nm);
for(p=q;p-q&n;p++)
if(strcmp(nm,p-&num)==0)
printf(&%23s%15s%15s\n&,p-&num,p-&name,p-&tel);
if(flag==0) printf(&wrong...\n&);
else if(c=='m'||c=='M')
printf(&请输入要查询记录的姓名:&);gets(nam);
for(p=q;p-q&n;p++)
if(strcmp(nam,p-&name)==0)
printf(&%23s%15s%15s\n&,p-&num,p-&name,p-&tel);
if(flag==0) printf(&wrong...\n&);
else printf(&wrong...\n&);
void mymodify(struct student *p,int n)
struct student *q=p;
FILE *fp=NULL;
char nam[10]=&&;
mydisplay(p,n);
printf(&请输入您想要修改记录的姓名:\n&);gets(nam);
for(p=q;p-q&n;p++)
if(strcmp(nam,p-&name)==0)
if(p-q==n)
printf(&wrong...&);
printf(&请输入正确的学号:&);
gets(p-&num);
while(strcmp(p-&num,&&)==0);//
printf(&请输入正确的姓名:&);//
gets(p-&name);
printf(&请输入正确的电话:&);
gets(p-&tel);
fp=fopen(&d:\\jilu.dat&,&w&);
if(fp==NULL){printf(&error&); exit(0);}
for(p=q;p-q&n;p++)
fprintf(fp,&%23s%15s%15s\n&,p-&num,p-&name,p-&tel);
fclose(fp);
void myadd(struct student *p,int n)
FILE *fp=NULL;
struct student *q=p;
char c='\n',tempnum[10]=&&,tempname[10]=&&,temptel[10]=&&;
printf(&\n&);
while(strcmp(p-&num,&&)!=0)
printf(&%23s%15s%15s\n&,p-&num,p-&name,p-&tel);
printf(&请输入新纪录的学号:&);
gets(tempnum);
while(strcmp(tempnum,&&)==0);
printf(&请输入新纪录的姓名:&);
gets(tempname);
printf(&请输入新纪录的电话:&);
gets(temptel);
for(p=q;p-q&n;p++)
if(strcmp(tempnum,p-&num)==0||strcmp(temptel,p-&tel)==0)
printf(&学号或电话号码需要重新输入吗(Y/N) &);
c=getche();
putchar('\n');
if(p-q==n)
strcpy(p-&num,tempnum);
strcpy(p-&name,tempname);
strcpy(p-&tel,temptel);
}while(c=='y'||c=='Y');
fp=fopen(&d:\\jilu.dat&,&w&);
if(fp==NULL){printf(&error&);}
for(p=q;p-q&=n;p++)
fprintf(fp,&%23s%15s%15s\n&,p-&num,p-&name,p-&tel);
fclose(fp);
void mydelete(struct student *p,int n)
FILE *fp=NULL;
struct student *q=p;
char c[10]=&&,tempnum[10]=&&,tempname[10]=&&,temptel[10]=&&,choose='\0';
mydisplay(p,n);
printf(&选择删除记录的方式:学号(h)姓名(m)&);
choose=getche();
printf(&\n&);
if(choose=='m'||choose=='M')
printf(&删除的记录:&);
for(;p-q&n;p++)
if(strcmp(c,p-&name)==0)
for(;p-q&n-1;p++)
strcpy(p-&num,(p+1)-&num);
strcpy(p-&name,(p+1)-&name);
strcpy(p-&tel,(p+1)-&tel);
else printf(&no\n&);
else if(choose=='h'||choose=='H')
printf(&删除的记录:&);
for(;p-q&n;p++)
if(strcmp(c,p-&num)==0)
for(;p-q&n-1;p++)
strcpy(p-&num,(p+1)-&num);
strcpy(p-&name,(p+1)-&name);
strcpy(p-&tel,(p+1)-&tel);
else printf(&no&);
else printf(&wrong\n&);
fp=fopen(&d:\\jilu.dat&,&w&);
if(fp==NULL){printf(&error&);}
for(p=q;p-q&n-1;p++)
fprintf(fp,&%23s%15s%15s\n&,p-&num,p-&name,p-&tel);
fclose(fp);
void mysort(struct student *p,int n)//排序还是有点问题的
FILE *fp=NULL;
struct student *q=p,*w=p,*a=p;
char temp[10]=&&,c1='\0',c2='\0';
mydisplay(p,n);
printf(&选择按照学号(h)或姓名(m)排序:\n&);
c1=getche();
if(c1=='h'||c1=='H')
printf(&升序(s)或者降序(j)排列:&);
c2=getche();
if(c2=='s'||c2=='S')
for(;p-a&n;p++)
for(q=p+1;q-a&n;q++)
if(strcmp(w-&num,q-&num)&0) w=q;
strcpy(temp,w-&num);
strcpy(w-&num,p-&num);
strcpy(p-&num,temp);
strcpy(temp,w-&name);
strcpy(w-&name,p-&name);
strcpy(p-&name,temp);
strcpy(temp,w-&tel);
strcpy(w-&tel,p-&tel);
strcpy(p-&tel,temp);
else if(c2=='j'||c2=='J')
for(;p-a&n;p++)
for(q=p+1;q-a&n;q++)
if(strcmp(w-&num,q-&num)&0) w=q;
strcpy(temp,w-&num);
strcpy(w-&num,p-&num);
strcpy(p-&num,temp);
strcpy(temp,w-&name);
strcpy(w-&name,p-&name);
strcpy(p-&name,temp);
strcpy(temp,w-&tel);
strcpy(w-&tel,p-&tel);
strcpy(p-&tel,temp);
else printf(&555wrong...\n&);
else if(c1=='m'||c1=='M')
printf(&升序(s)或者降序(j)排列:&);
c2=getche();
if(c2=='s'||c2=='S')
for(;p-a&n;p++)
for(q=p+1;q-a&n;q++)
if(strcmp(w-&name,q-&name)&0) w=q;
strcpy(temp,w-&num);
strcpy(w-&num,p-&num);
strcpy(p-&num,temp);
strcpy(temp,w-&name);
strcpy(w-&name,p-&name);
strcpy(p-&name,temp);
strcpy(temp,w-&tel);
strcpy(w-&tel,p-&tel);
strcpy(p-&tel,temp);
else if(c2=='j'||c2=='J')
for(;p-a&n;p++)
for(q=p+1;q-a&n;q++)
if(strcmp(w-&name,q-&name)&0) w=q;
strcpy(temp,w-&num);
strcpy(w-&num,p-&num);
strcpy(p-&num,temp);
strcpy(temp,w-&name);
strcpy(w-&name,p-&name);
strcpy(p-&name,temp);
strcpy(temp,w-&tel);
strcpy(w-&tel,p-&tel);
strcpy(p-&tel,temp);
else printf(&555wrong...\n&);
else printf(&555wrong...\n&);
fp=fopen(&d:\\jilu.dat&,&w&);
if(fp==NULL){printf(&error&);}
for(p=a;p-a&=n;p++)
fprintf(fp,&%23s%15s%15s\n&,p-&num,p-&name,p-&tel);
fclose(fp);
char choose='\0',yes_no='\0';
struct student record[N]={0};
myprint();
:-)请选择(0-7):&);
choose=getche();
switch(choose)
case '1':mycreat(record,M);
case '2':mydisplay(record,M);
case '3':mysearch(record,M);
case '4':mymodify(record,M);
case '5':myadd(record,M);
case '6':mydelete(record,M);
case '7':mysort(record,M);
case '0':exit(0);
default :printf(&\nerror...\n&);
printf(&\n
:-)继续选择吗(y/n) \n&);
{yes_no=getch();}
while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
}while(yes_no=='Y'||yes_no=='y');
ilovegoogle急。。。。哪里错了????各位C语言大神!!!, 急。。。。哪里错了????各
急。。。。哪里错了????各位C语言大神!!! #include&stdio.h&#include&math.h&int main(void){int n,i,j;printf(&Enter:n&);scanf(&%d&,&n);sum=0;for(i=1;j=1;i&=n;i=(i+1)*pow(-1,i);j=j+1){sum=i/j+}printf(&sum=%f\n&,sum);return 0}D:\程序\Microsoft Visual Studio\vc\MyProjects\111\222.cpp(10) : error C2146: syntax error : mis缉互光就叱脚癸协含茅sing ')' before identifier 'i' liuliang摩 急。。。。哪里错了????各位C语言大神!!!
分号和逗号不分啊,你看你for循环用了几个分号,汗。for (i = 1, j = 1; i &=i=(i+1)*pow(-1,i), j = j + 1);不过 i=(i+1)*pow(-1,i) 这个会导致跳不出循环,死循环。sum=i/j+ i,j都是整形,sum为double没意义。应该sum=1.0*i/j+sum。
for(i=1;j=1;i&=n;i=(i+1)*pow(-1,i);缉互光就叱脚癸协含茅j=j+1)for 后面的 () 里面只能有2个分号。我猜你想要的应该是下面这样吧。for(i=1, j=1; i&=n; i=(i+1)*pow(-1,i), j=j+1)
for语句是三目运算符,你是不是for语句里面出问题了。
for(i=1,j=1;i&=n;i=(i+1)*pow(-1,i),j=j+1)966,690 十二月 独立访问用户
语言 & 开发
架构 & 设计
文化 & 方法
您目前处于:
Go,互联网时代的C语言
Go,互联网时代的C语言
欲知区块链、VR、TensorFlow等潮流技术和框架,请锁定
那么,为什么我们需要Go这样一门新语言呢?这门语言究竟肩负着怎样的使命而面世?那么,互联网时代的C语言需要哪些东西呢?首先,并行与分布式支持。多核化和集群化是互联网时代的典型特征。作为一个互联网时代的C语言,必须要让这门语言操作多核与计算机集群如单机一样容易。其次是软件工程支持,工程规模不断扩大是产业发展的必然趋势。单机时代语言可以只关心问题本身的解决。互联网时代的C语言还需要考虑软件品质保障、团队协作相关的话题。最后,编程哲学的重塑。计算机软件经历了数十年的发展,形成了多种学术流派,有面向过程编程、面向对象编程,函数式编程、面向消息编程等等。这些思想究竟孰优孰劣,众说纷纭。什么才是最佳的编程实践?在本次演讲中,我们将来看下Go作为互联网时代的C语言,是如何应对这些问题的。
上海七牛信息技术有限公司创始人,首席执行官,目前专注于云存储领域的产品研发。前盛大资深研究员,盛大祥云计划(盛大云前身)负责人,盛大网盘创建者。前金山技术总监,WPS Office 2005 首席架构师。金山实验室创始人,云存储团队组建者。
QCon是由InfoQ主办的全球顶级技术盛会,每年在伦敦、北京、东京、纽约、圣保罗、杭州、旧金山召开。自2007年3月份首次举办以来,已经有包括传统制造、金融、电信、互联网、航空航天等领域的近万名架构师、项目经理、团队领导者和高级开发人员参加过QCon大会。
秉承"促进软件开发领域知识与创新的传播"原则,QCon各项议题专为中高端技术人员设计,内容源于实践并面向社区。演讲嘉宾依据各重点和热点话题,分享技术趋势和最佳实践;作为主办方,InfoQ努力为参会者提供良好的学习和交流环境。
相关厂商内容
相关赞助商
QCon北京-18日,北京&国家会议中心,
告诉我们您的想法
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
哎,presenter语言表达不流畅,听的急人
hsu jeffrey
不要用C语言的思想去理解异步IO,这样是无法理解的。
讲的太棒了
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
赞助商链接
架构 & 设计
文化 & 方法
<及所有内容,版权所有 &#169;
C4Media Inc.
服务器由 提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司
京ICP备号-7
注意:如果要修改您的邮箱,我们将会发送确认邮件到您原来的邮箱。
使用现有的公司名称
修改公司名称为:
公司性质:
使用现有的公司性质
修改公司性质为:
使用现有的公司规模
修改公司规模为:
使用现在的国家
使用现在的省份
Subscribe to our newsletter?
Subscribe to our industry email notices?
我们发现您在使用ad blocker。
我们理解您使用ad blocker的初衷,但为了保证InfoQ能够继续以免费方式为您服务,我们需要您的支持。InfoQ绝不会在未经您许可的情况下将您的数据提供给第三方。我们仅将其用于向读者发送相关广告内容。请您将InfoQ添加至白名单,感谢您的理解与支持。谭浩强,最全面的谭浩强文章 - 电子工程世界网
在电子工程世界为您找到如下关于“谭浩强”的新闻
谭浩强资料下载
谭浩强习题答案...
谭浩强教授,我国著名计算机教育专家。1934年生。1958年清华大学毕业。学生时代曾担任清华大学学生会主席、北京市人民代表。他是我国计算机普及和高校计算机基础教育开拓者之一,现任全国高等院校计算机基础教育研究会会长、教育部全国计算机应用技术证书考试委员会主任委员。 谭浩强教授创造了3个世界纪录:(1)20年来他(及和他人合作)共编著出版了130本计算机著作,此外主编了250多本计算机书籍,是出版...
谭浩强c语言_1
谭浩强c语言_1...
C程序设计(第四版)谭浩强 C程序设计(第四版)谭浩强...
谭浩强C语言程序设计(第四版)2010年最新版 简介
由谭浩强教授著、清华大学出版社出版的《C程序设计》是一本公认的学习C语言程序设计的经典教材。根据C语言的发展和计算机教学的需要,作者在《C程序设计(第三版)》的基础上进行了修订。本书按照C语言的新标准C 99进行介绍,所有程序都符合C 99的规定,使编写程序更加规范;对C语言和程序设计的基本概念和要点讲解透彻,全面而深入;按照作者提出的...
谭浩强主编,清华大学出版社,国内学习C语言的一本经典教材,跟大家分享
内容简介:
  谭浩强c语言程序设计(第3版)电子书
   1 C语言概述
   1.1 C语言的发展过程
   1.2 当代最优秀的程序设计语言
   1.3 C语言版本
   1.4 C语言的特点
   1.5 面向对象的程序设计语言
   1.6 C和C++...
谭浩强C语言全书word版. 下载“谭浩强C语言全书word版”...
谭浩强的C语言题集,重点记录谭浩强的重点题目,对C语言的联系很有用...
谭浩强C语言教程Word版.rar谭浩强C语言教程Word版.rar...
谭浩强c语言电子书全本.rar 谭浩强c语言电子书全本.rar...
谭浩强相关帖子
现在开始要学C语言的知识;可是到网上找了C语言的视频一点没看懂;买了两本谭浩强的书;也看不懂。请教高手我该从哪里找到切入点 关于怎样学C
语言 跟着视频学习,他敲代码你也在自己电脑上面敲,一步一步来。这种东西急不得,一点一点收获
视频与课本结合。看最简单的例子,跟着敲程序。像一些最基本的赋值语句,应该还差不多理解吧。一点点接触稍微难一点的。逐渐掌握常用的那些。个别东西感觉太费劲,可以放一放...
谭浩强的C语言全部看完了,我想这也为我后来的编程打好了基础吧,到了大学我仿佛变了一个人似的,参加学院学校的社团和学生会弄的风风火火的,成绩也一直是专业前茅,各种竞赛也是弄得风生水起的,也谈了几个女盆友,感觉大学生活过得丰富多彩,后来由于竞赛获得了保研资格,我毫不犹豫的选择了中南,因为这是我一直追赶的表哥读过的地方。
好啦,说了这么多废话,稍微总结一下吧,首先填写志愿的时候一定要以专业为主,学校...
好吧”DULM-XC#课最后的考试,看到一女生对着屏幕快要哭了,最后不忍心,偷偷帮她完成了考试……然后……并没有然后了Cypress柏第一次上机,找不到vc怎么打开(桌面上没有快捷方式),最后问了旁边同学。由于是学的谭浩强的书,第一次打印输出的好像是”this is my first program!”。后面经常听老师讲到”hello world”程序,很长一段时间都以为这是个什么很复杂的东东...
C语言程序设计&&课件!!!
C语言程序设计-谭浩强...
汇编语言掌握得不够好。这次课程设计通过自己的努力,同学的帮助,还有老师的辛勤指导下,最终顺利完成了。
7 参考文献
[1] 郑郁正.单片机原理及应用[M].四川大学出版社,2003.7.
[2] 谭浩强.C程序设计(第二版)[M].清华大学出版社,1999.6.
[3] 王晓君.安国臣等. MCS—51及兼容单片机原理与选型[Z]. 北京-电子工业出版社, 2003.2.
[4] 杨全胜.胡...
谭浩强C语言
谭浩强C语言
感谢分享。...
51单片机 这什么节奏,51单片机。发个谭浩强的C语言????
谢谢!我来看看!
c语言就c语言吧,怎么还51?
。。。。。。。。。。。。。C就C,,还51,,,点点点~~~估计你自己根据这份资料来学51单片机上的编程知识之类的吧。。
51 用C语言?不可以??
谁规定大?
谭浩强不玩单片机滴
谭老还健在吧,中国牛人。
对不起各位,本人新人一个不太懂,刚进这个网站...
语言实战之类的就可以啊。各种具体应用。网上一搜很多的。
本帖最后由 曾经in 于
23:29 编辑
C语言用单片机上就不是纯的
纯C入门建议谭浩强 C程序设计
C语言单片机编程建议 郭天祥的 了解单片机如何运行,配置,各种接口等
了解C和单片机的联系后看单片机数据手册深入学习单片机
C语言是基础 相当于工具,不管是单片机编程还是PC编程都是在C的规则基础上,C的...
u32通常是unsigned long,uint32_t
lcofjp 发表于
你可以搜索他们的定义
u32通常是unsigned long,uint32_t
我是看一篇帖子上说的,他对u32的说法我也不是很认同,这和平时学的谭浩强的C语言的表达不一样
楼上正解;
这是个类型定义,你可以查看u8定义的地方就能明白了,使用的是C语言中的...
当然小说是少不了,偶尔还看看心理 经济方面的书
本帖最后由 青城山下 于
19:00 编辑
一般文学类的看的是电子书,到了大二大三专业书看了:谭浩强的《C语言》,郭天祥的《新概念51单片机教程》,后来由单片机向FPGA方面学习,看了夏宇闻的《Verilog数字系统设计教程》,在FPGA具体应用上有《EDA技术及应用》,《Xilinx FPGA开发实用教程(第2版...
谭浩强视频
谭浩强创意
你可能感兴趣的标签
热门资源推荐21:59 提问
救急!求大神这段C语言改写成汇编
#define PageUp
#define PageDown 0x5100
#define Home
#define End
#define Esc
void char2hex(char xx, char s[]) /* 把8位数转化成16进制格式 /
char t[] = "ABCDEF";
s[0] = t[(xx && 4) & 0x0F]; / 高4位 /
s[1] = t[xx & 0x0F];
/ 低4位 */
void long2hex(long offset, char s[]) /* 把32位数转化成16进制格式 /
for(i=0; i&4; i++)
offset = _lrotl(offset, 8); / 循环左移8位, 把高8位移到低8位 /
xx = offset & 0xFF;
/ 高24位置0, 保留低8位 /
char2hex(xx, &s[i*2]);
/ 把8位数转化成16进制格式 */
void show_this_row(int row, long offset, char buf[], int bytes_on_row)
/* 显示当前一行:
数组首地址
当前行字节数 /
char far *vp = (char far *)0xB8000000;
": xx xx xx xx|xx xx xx xx|xx xx xx xx|xx xx xx xx
................";
上述3个数字是竖线对应位置元素的下标;
数组s的内容就是每行的输出格式:
其中左侧8个0表示当前偏移地址;
其中xx代表16进制格式的一个字节;
其中s[59]开始共16个点代表数组buf各个元素对应的ASCII字符。/
char pattern[] =
strcpy(s, pattern);
long2hex(offset, s); / 把32位偏移地址转化成16进制格式填入s左侧8个'0'处 /
for(i=0; i&bytes_on_ i++) / 把buf中各个字节转化成16进制格式填入s中的xx处 /
char2hex(buf[i], s+10+i*3);
for(i=0; i&bytes_on_ i++) / 把buf中各个字节填入s右侧小数点处 /
s[59+i] = buf[i];
vp = vp + row*80*2;
/ 计算row行对应的视频地址 /
for(i=0; i&sizeof(s)-1; i++)
vp[i*2] = s[i];
if(i&59 && s[i] == '|')
/ 把竖线的前景色设为高亮度白色 /
vp[i*2+1] = 0x0F;
/ 其它字符的前景色设为白色 */
vp[i*2+1] = 0x07;
void clear_this_page(void)
/* 清除屏幕0~15行 /
char far *vp = (char far *)0xB8000000;
for(i=0; i&16; i++)
/ 汇编中可以使用rep stosw填入80*16个0020h */
for(j=0; j&80; j++)
*(vp+(i*80+j)*2) = ' ';
*(vp+(i*80+j)*2+1) = 0;
void show_this_page(char buf[], long offset, int bytes_in_buf)
/* 显示当前页:
数组首地址
当前页字节数 /
int i, rows, bytes_on_
clear_this_page();
rows = (bytes_in_buf + 15) / 16; / 计算当前页的行数 /
for(i=0; i& i++)
bytes_on_row = (i == rows-1) ? (bytes_in_buf - i*16) : 16; / 当前行的字节数 /
show_this_row(i, offset+i*16, &buf[i*16], bytes_on_row); / 显示这一行 */
char filename[100];
char buf[256];
handle, key, bytes_in_
long file_size, offset,
puts("Please input filename:");
gets(filename); /* 输入文件名; 汇编中可以调用int 21h的0Ah功能 /
handle = _open(filename, 0); / 打开文件, 返回句柄;
汇编对应调用:
mov ah, 3Dh
mov al, 0; 对应_open()的第2个参数, 表示只读方式
mov dx, offset filename
mov handle, ax/
if(handle == -1)
puts("Cannot open file!");
exit(0); / 汇编对应调用:
mov ah, 4Ch
mov al, 0; 对应exit()中的参数
file_size = lseek(handle, 0, 2); / 移动文件指针;
汇编对应调用:
mov ah, 42h
mov al, 2; 对应lseek()的第3个参数,
表示以EOF为参照点进行移动
mov bx, handle
mov cx, 0; \ 对应lseek()的第2个参数
mov dx, 0; /
mov word ptr file_size[2], dx
mov word ptr file_size[0], ax/
offset = 0;
n = file_size -
if(n &= 256)
bytes_in_buf = 256;
bytes_in_buf =
lseek(handle, offset, 0);
/ 移动文件指针;
汇编对应调用:
mov ah, 42h
mov al, 0; 对应lseek()的第3个参数,
表示以偏移0作为参照点进行移动
mov bx, handle
mov cx, word ptr offset[2]; \cx:dx合一起构成
mov dx, word ptr offset[0]; /32位值=offset
_read(handle, buf, bytes_in_buf); / 读取文件中的bytes_in_buf个字节到buf中
汇编对应调用:
mov ah, 3Fh
mov bx, handle
mov cx, bytes_in_buf
mov dx, data
mov ds, dx
mov dx, offset buf
show_this_page(buf, offset, bytes_in_buf);
key = bioskey(0); / 键盘输入;
汇编对应调用:
switch(key)
case PageUp:
offset = offset - 256;
if(offset & 0)
offset = 0;
case PageDown:
if(offset + 256 & file_size)
offset = offset + 256;
case Home:
offset = 0;
offset = file_size - file_size % 256;
if(offset == file_size)
offset = file_size - 256;
} while(key != Esc);
_close(handle); / 关闭文件;
汇编对应调用:
mov ah, 3Eh
mov bx, handle
按赞数排序
编译后反编译就是汇编了
同上,你这个代码也太多了,你反汇编后再试着修改一下应该问题就可以了!
其他相似问题

我要回帖

更多关于 学完c语言不会写程序 的文章

 

随机推荐