重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
c语言是函数式语言,所以函数很重要,举个例子 #includestdio.h int abc(int a ,int b) /* abc 前的 int 表示这个函数的返回值是整数,abc 是函数名称,括号里的是定义了两个参数它们都是整数*/ { int a=123; printf("%d",a); } 这个是我们自己写的函数,还有现成的c库函数,直接调用就行,限于篇幅,其实你仔细的抠书,书上都有,我就是看书学会的
我们拥有10余年网页设计和网站建设经验,从网站策划到网站制作,我们的网页设计师为您提供的解决方案。为企业提供成都网站制作、网站建设、微信开发、小程序设计、成都做手机网站、H5场景定制、等业务。无论您有什么样的网站设计或者设计方案要求,我们都将富于创造性的提供专业设计服务并满足您的需求。
ABCD 在BC之间插入 那么m=2 则找到第二个节点B的指针 这个很好实现吧
设一个N=1
p=head;
while(p-next!=NULL) //m=1 a后插入 m=4 d后插入 然后就是之间插入
{
IF(M==N) BERAK;
P=P-NEXT;
N++;
}
然后 TEMP=B-NEXT; B-NEXT=P;P-NEXT=TEMP;即可完成插入;;;
getc():
调用方式:int getc(FILE *stream)
它返回指定输入流stream的当前位置的下一个字符,并增加文件的位置指示器.
getch():
调用方式:int getch(void)
getch()从控制台读取一个字符,但不把该字符显示在屏幕上,也就是不回显.
getche():
调用方式:int getche(void)
getche()从控制台读取一个字符,把该字符显示在屏幕上,也就是回显.
getchar():
调有方式:int getchar(void)
getchar()从控制台读取一个字符,并回显,它和getch(),getche()的不同在于,它等到输入一个回车才结束,就算你输入了一个字符串,它也只取其中的第一个字符.
getchar()头文件为string.h,即需有# includestring.h
其他的头文件为conio.h
呃,你可以使用追问吗~我这太不方便了,请问你用的什么编译器?
呃,这样子啊,对gcc我不清楚了就,也许其不支持或者文件库不一样,你可以针对查查,
在vc中我试了没有问题。。。
/*主程序功能模块—-文件名:student.c*/
#define MAX_BAR 4 /*最大菜单数,可以自定*/
#include"io.h"
#include"dos.h"
#include"fcntl.h"
#include"stdio.h"
#include"stdlib.h"
#include"math.h"
#include"graphics.h"
#include"chi_asc.c" /*调用图形模式下汉字、字符共显功能*/
#include"public.c" /*按键定义功能*/
#include"mypcx.c" /*封面图象调用功能,此处为pcx图象*/
#include"stu_frame.c" /*框架绘制功能*/
#include"stu_sub.c" /*各子菜单功能*/
main()
{
/*old_bar、curr_bar表示上次选中的菜单、当前选中的菜单*/
/*old_sonbar curr_sonbar表示上次选中的子菜单、当前选中的子菜单*/
int i,key,key_son,old_bar,curr_bar,curr_sonbar,old_sonbar,size;
int save_startx,save_starty,save_endx,save_endy,sonbar_out=0;
void *buf;
int Driver,Mode;
char *pcx;
struct student_bar{
int start_x,start_y; /*起始横坐标,起始纵坐标*/
int length_x,length_y; /*菜单的长,菜单的宽*/
int num_son; /*包含子菜单的个数*/
char *p_father; /*菜单项名,*p_son[5]为子菜单名*/
char *p_son[5];}stu_bar[MAX_BAR]={
{10,45,120,25,4,"File Operation",{" Open file"," New file"," Save file","Exit system"}},
{130,45,120,25,3,"Data Edition",{" Add object","Delete object","Modify object"}},
{250,45,120,25,0,"File Print",{""}},
{370,45,120,25,0,"Help Message",{""}}
};/*定义各功能菜单的结构体*/
pcx="stusys4.pcx";
Set_Video_Mode(VGA256); /*转换屏幕到320*200*256色*/
PCX_Load_Screen(pcx,1); /*读取封面图象stusys4.pcx*/
Driver=DETECT,Mode=0;
initgraph(Driver,Mode,""); /*设置图象模式*/
cleardevice();
main_frame(BLUE,LIGHTGRAY); /*绘制主框架图,底色为蓝色*/
/*绘制菜单*/
for(i=0;iMAX_BAR;i++)
{
setcolor(BLUE);
rectangle(stu_bar[i].start_x, stu_bar[i].start_y, stu_bar[i].start_x+stu_bar[i].length_x, stu_bar[i].start_y+stu_bar[i].length_y);
puthz16(stu_bar[i].start_x+8,stu_bar[i].start_y+5,-8,BLUE,stu_bar[i].p_father);
}puthz16(stu_bar[0].start_x+8,stu_bar[0].start_y+5,-8,WHITE,stu_bar[0].p_father);
old_bar=0;curr_bar=0;
/*读取按键字符,如为ESC则退出*/
while((key=specialkey())!=ESC){
old_bar=curr_bar;
if(sonbar_out==1)sonbar_out=0;
if(key==LEFT){
if(curr_bar==0)curr_bar=3;
else curr_bar=curr_bar-1;
}/*LEFT finished*/
if(key==RIGHT){
if(curr_bar==3)curr_bar=0;
else curr_bar=curr_bar+1;
}/*RIGHT finished*/
/*如按键为ENTER,则绘制子菜单*/
if(key==ENTER){
save_startx=stu_bar[curr_bar].start_x;
save_starty=stu_bar[curr_bar].start_y+stu_bar[curr_bar].length_y+1;
save_endx=stu_bar[curr_bar].start_x+stu_bar[curr_bar].length_x;
/*保存子菜单展开后掩盖住的图象*/ save_endy=stu_bar[curr_bar].start_y+stu_bar[curr_bar].length_y+stu_bar[curr_bar].num_son*stu_bar[curr_bar].length_y+1;
size=imagesize(save_startx,save_starty,save_endx,save_endy);
if(size!=-1)
{
buf=malloc(size);
if(buf)getimage(save_startx,save_starty,save_endx,save_endy,buf);
else {printf("OUT MEMORY");exit(0);}
}
setviewport(save_startx,save_starty,save_endx,save_endy,1);
setcolor(WHITE);
clearviewport();
for(i=1;i=stu_bar[curr_bar].num_son;i++)
{
rectangle(0,0,stu_bar[curr_bar].length_x,i*stu_bar[curr_bar].length_y);
setfillstyle(SOLID_FILL,LIGHTGRAY);
floodfill(stu_bar[curr_bar].length_x-1,i*stu_bar[curr_bar].length_y-1,WHITE);
}
for(i=0;istu_bar[curr_bar].num_son;i++)
puthz16(8,i*stu_bar[curr_bar].length_y+5,-8,BLUE,stu_bar[curr_bar].p_son[i]);
puthz16(8,5,-8,WHITE,stu_bar[curr_bar].p_son[0]);
old_sonbar=0;curr_sonbar=0;
if(stu_bar[curr_bar].num_son)
while(((key_son=specialkey())!=ESC)sonbar_out==0){
old_sonbar=curr_sonbar;
if(key_son==UP){
if(curr_sonbar==0) curr_sonbar=stu_bar[curr_bar].num_son-1;
else curr_sonbar=curr_sonbar-1;
}
if(key_son==DOWN){
if(curr_sonbar==(stu_bar[curr_bar].num_son-1)) curr_sonbar=0;
else curr_sonbar=curr_sonbar+1;
}
puthz16(8,old_sonbar*stu_bar[curr_bar].length_y+5,-8,BLUE,stu_bar[curr_bar].p_son[old_sonbar]);
puthz16(8,curr_sonbar*stu_bar[curr_bar].length_y+5,-8,WHITE,stu_bar[curr_bar].p_son[curr_sonbar]);
if(key_son==ENTER){
setviewport(0,0,639,479,1);
putimage(save_startx,save_starty,buf,COPY_PUT);
free(buf);
sonbar_out=1;
if(curr_bar==0)
switch(curr_sonbar){
case 0:
fil_open(); /*调用stu_sub.c文件中fil_open()函数,打开文件*/
break;
case 1:
fil_new(); /*调用stu_sub.c文件中fil_new()函数,新建文件*/
break;
case 2:
fil_save(); /*调用stu_sub.c文件中fil_save()函数,保存文件*/
break;
case 3:
sys_exit(); /*调用stu_sub.c文件中sys_exit()函数,退出系统*/
}
if(curr_bar==1)
switch(curr_sonbar){
case 0:
dat_add(); /*调用stu_sub.c文件中dat_add()函数,添加记录*/
break;
case 1:
dat_dele(); /*调用stu_sub.c文件中dat_dele()函数,删除记录*/
break;
case 2:
dat_mod(); /*调用stu_sub.c文件中dat_mod()函数,修改记录*/
break;
}
} /*key_son=ENTER finished*/
}/*key_son all finished*/
if(sonbar_out==0){
setviewport(0,0,639,479,1);
putimage(save_startx,save_starty,buf,COPY_PUT);
free(buf); /*还原子菜单掩盖住的图象,并释放子菜单所占用的内存*/
}
/*如果子菜单项为0*/
if(!stu_bar[curr_bar].num_son){
if(curr_bar==2)
fil_prn(); /*调用stu_sub.c文件中fil_prn()函数,打印文件*/
if(curr_bar==3)
hel_mess(); /*调用stu_sub.c文件中hel_mess()函数,显示帮助信息*/
}
} /*ENTER finished*/
puthz16(stu_bar[old_bar].start_x+8,stu_bar[old_bar].start_y+5,-8,BLUE,stu_bar[old_bar].p_father);
puthz16(stu_bar[curr_bar].start_x+8,stu_bar[curr_bar].start_y+5,-8,WHITE,stu_bar[curr_bar].p_father);
}/*key all finished*/
fcloseall(); /*关闭所有文件*/
closegraph(); /*关闭图形状态*/
}
自己改改!!!
希望能解决您的问题。