insort函数c语言 c语言insert

主函数输入一个十个元素的整型数组 , 调用函数实现对该数组元素自小到大的插入法排序 。#includestdio.h
void sortt(int *x,int N)
{int i,j,tmp;
for(i=1; iN; i)
{ tmp=x[i];//让位
for(j=i-1; j=0x[j]tmp; j--)// 移位
x[j 1]=x[j];
x[j 1]=tmp; //归位
}
for(i=0; iN; i)printf("%d ",x[i]);
}
void main()
{ int x[10];
int k;
for(k=0;k10;k)
scanf("%d",x[k]);
sortt(x,10);
}
标准insort函数c语言的插入排序
编写一个函数 void Insort(int x[][2],int n)实现:将二维整型数组x中的n行数据按第二列的值从大到小排列单纯的排序非常简单,冒泡法解决 , 你这么久都没回访了 我也不打算贴代码了 。网上各种算法 。楼下的yearlz是错的 。
void Insort(int x[][2],int n)
这样的引用是不对的 。
void 代表无返回值,无返回值的函数你要如何排序 。
C语言在引用一个数组 并且 想要将计算结果 返回给数组时 , 必须
1定义数组 并且指针
2为数组申请内存空间
3将数组指针传递给函数
C语言题目我曾经做过一个通讯录管理,希望你能用得上
通讯录管理
#includestdio.h
#includemalloc.h
#include string.h
#include conio.h
#define NULL 0
#includeWINDOWS.h
struct list
{
char name[30];
char phone[20];
char email[30];
char position[50];
char title[20];
struct list *next;
};//个人信息
/**************************函数声明***************************/
void menu(struct list *head);//功能菜单
struct list *acces(struct list *head);//添加
void reword(struct list *re);//修改
void show(struct list *head);//显示
struct list *find(struct list *head);//查找
struct list *sort(struct list *head,struct list *insort);//排序
/************************功能菜单函数**************************/
void menu(struct list *head)
{char op;
do{
printf("\n\t\t***************************************************");
printf("\n\t\t*******欢迎使用本系统,请选择您所需要的服务:********");
printf("\n\t\t***************************************************");
printf("\n\t\t*Menu selection*");
printf("\n\t\t*1.添加新联系人*");
printf("\n\t\t*2.显示联系人基本信息*");
printf("\n\t\t*3.查找联系人*");
printf("\n\t\t*4.退出本程序*");
printf("\n\t\t***************************************************");//head=reword(head)修改函数
printf("\n请选择您所需要的服务:");
op=getch();
switch(op)
{
case '1':head=acces(head);
break;
case '2':show(head);
break;
case '3':head=find(head);
break;
case '4':
break;
default:
printf("\n\t\t\t输入错误!");
break;
}
}
while(op!='4');
}
/**************************添加新联系人************************/
struct list *acces(struct list *head)
{
int i,n;
char ch;
struct list *pnew,*ptail;//定义结构体指针变量
pnew=(struct list *)malloc(sizeof(struct list));//创建新节点
ptail=pnew;
printf("\n\t请输入需要添加的个数:");
scanf("%d",n);
printf("\t\t\t请输入姓名:");
scanf("%s",pnew-name);//输入新成员姓名
printf("\t\t\t请输入电话号码:");scanf("%s",pnew-phone);//输入新成员电话号码
printf("\t\t\t请输入电子邮件:");scanf("%s",pnew-email);//输入新成员电子邮件
printf("\t\t\t请输入职务:");scanf("%s",pnew-position);//输入新成员职务
printf("\t\t\t请输入职称:");scanf("%s",pnew-title);//输入新成员职称
printf("\n");
pnew-next=NULL;
head=sort(head,pnew);
for(i=1;in;i)
{
pnew=(struct list *)malloc(sizeof(struct list));
printf("\t\t\t请输入姓名:");scanf("%s",pnew-name);
printf("\t\t\t请输入电话号码:");scanf("%s",pnew-phone);
printf("\t\t\t请输入电子邮件:");scanf("%s",pnew-email);
printf("\t\t\t请输入职务:");scanf("%s",pnew-position);
printf("\t\t\t请输入职称:");scanf("%s",pnew-title);
printf("\n");
pnew-next=NULL;
head=sort(head,pnew);
}
printf("\n\t\t***************************************************");
printf("\n\t\t*添加成功*");
printf("\n\t\t*返回主菜单*");
printf("\n\t\t***************************************************");
getch();
return(head);
}
/**************************显示学生信息************************/
void show(struct list *head)
{
struct list *p;
p=head;
if(NULL==p)
printf("没有联系人!");
else printf("\n姓名电话Email职务职称\n");
while(p!=NULL)
{
printf("%s\t%s\t\t%s\t\t%s\t\t%s\n",p-name,p-phone,p-email,p-position,p-title);
p=p-next;
}
printf("\n显示完毕!");
}
/**************************查找学生信息菜单列表************************/
struct list *find(struct list *head)
{
struct list *find1(struct list *head);
struct list *find2(struct list *head);
struct list *find3(struct list *head);
struct list *find4(struct list *head);
struct list *find5(struct list *head);
char op;
printf("\n\t\t***************************************************");
printf("\n\t\t*Menu selection*");
printf("\n\t\t*1.查找联系人姓名*");
printf("\n\t\t*2.查找联系人电话号码*");
printf("\n\t\t*3.查找联系人电子邮件*");
printf("\n\t\t*4.查找联系人职务*");
printf("\n\t\t*5.查找联系人职称*");
printf("\n\t\t*6.退出本程序*");
printf("\n\t\t***************************************************");
printf("\n\t\t\t请选择您所需要的服务:");
op=getch();
switch(op)
{
case '1':head=find1(head);
break;
case '2':head=find2(head);
break;
case '3':head=find3(head);
break;
case '4':head=find4(head);
break;
case '5':head=find5(head);
break;
case '6':getchar();
break;
default:
printf("\n输入错误!");
break;
}
return head;
}
/***************查找新联系人一 姓名查找*****************/
struct list *find1(struct list *head)
{
char fname[30];
struct list *p1,*p2,*p3;
char ch;
printf("\n请输入您要查找的联系人的姓名:");
scanf("%s",fname);
if (head==NULL)
{
printf("没有联系人!");
goto end;
}
else p1=head;
while(0!=strcmp(fname,p1-name)p1-next!=NULL)
{
p2=p1;p1=p1-next;
}
p3=p1;
if(0==strcmp(fname,p1-name))
{
printf("\n姓名电话Email职务职称\n");
printf("%s\t%s\t\t%s\t\t%s\t\t%s\n",p3-name,p3-phone,p3-email,p3-position,p3-title);
printf("\n\t\t***************************************************");
printf("\n\t\t*Menu selection*");
printf("\n\t\t*1.修改信息*");
printf("\n\t\t*2.继续查找联系人*");
printf("\n\t\t*3.删除当前联系人*");
printf("\n\t\t*4.返回主菜单*");
printf("\n\t\t***************************************************");
printf("\n\t\t请选择您所需要的服务:");
ch=getch();
switch(ch)
{
case '1':reword(p1);
break;
case '2':head=find(head);
break;
case '3':
{
if(p1==head)head=p1-next;
else p2-next=p1-next;
printf("成功删除!");
}
break;
case '4':void menu(struct list *head);
break;
default:
printf("\n输入错误!");
break;
}
}
else printf("没有找到!!!!");
end:
return(head);
}
/***************查找新联系人二 电话查找*****************/
struct list *find2(struct list *head)
{
char fphone[30];
struct list *p1,*p2,*p3;
char ch;
printf("\n请输入您要查找的联系人的电话:");
scanf("%s",fphone);
if (head==NULL)
{
printf("没有联系人!");
goto end;
}
else p1=head;
while(0!=strcmp(fphone,p1-name)p1-next!=NULL)
{
p2=p1;p1=p1-next;
}
p3=p1;
if(0==strcmp(fphone,p1-name))
{
printf("\n姓名电话Email职务职称\n");
printf("%s\t%s\t\t%s\t\t%s\t\t%s\n",p3-name,p3-phone,p3-email,p3-position,p3-title);
printf("\n\t\t***************************************************");
printf("\n\t\t*Menu selection*");
printf("\n\t\t*1.修改信息*");
printf("\n\t\t*2.继续查找联系人*");
printf("\n\t\t*3.删除当前联系人*");
printf("\n\t\t*4.返回主菜单*");
printf("\n\t\t***************************************************");
printf("\n\t\t请选择您所需要的服务:");
ch=getch();
switch(ch)
{
case '1':reword(p1);
break;
case '2':head=find(head);
break;
case '3':
{
if(p1==head)head=p1-next;
else p2-next=p1-next;
printf("成功删除!");
}
break;
case '4':void menu(struct list *head);
break;
default:
printf("\n输入错误!");
break;
}
}
else printf("没有找到!!!!");
end:
return(head);
}
/***************查找新联系人三 email查找*****************/
struct list *find3(struct list *head)
{
char femail[30];
struct list *p1,*p2,*p3;
char ch;
printf("\n请输入您要查找的联系人的Email:");
scanf("%s",femail);
if (head==NULL)
{
printf("没有联系人!");
goto end;
}
else p1=head;
while(0!=strcmp(femail,p1-name)p1-next!=NULL)
{
p2=p1;p1=p1-next;
}
p3=p1;
if(0==strcmp(femail,p1-name))
{
printf("\n姓名电话Email职务职称\n");
printf("%s\t%s\t\t%s\t\t%s\t\t%s\n",p3-name,p3-phone,p3-email,p3-position,p3-title);
printf("\n\t\t***************************************************");
printf("\n\t\t*Menu selection*");
printf("\n\t\t*1.修改信息*");
printf("\n\t\t*2.继续查找联系人*");
printf("\n\t\t*3.删除当前联系人*");
printf("\n\t\t*4.返回主菜单*");
printf("\n\t\t***************************************************");
printf("\n\t\t请选择您所需要的服务:");
ch=getch();
switch(ch)
{
case '1':reword(p1);
break;
case '2':head=find(head);
break;
case '3':
{
if(p1==head)head=p1-next;
else p2-next=p1-next;
printf("成功删除!");
}
break;
case '4':void menu(struct list *head);
break;
default:
printf("\n输入错误!");
break;
}
}
else printf("没有找到!!!!");
end:
return(head);
}
/***************查找新联系人四 职务查找*****************/
struct list *find4(struct list *head)
{
char fposition[30];
struct list *p1,*p2,*p3;
char ch;
printf("\n请输入您要查找的联系人的职务:");
scanf("%s",fposition);
if (head==NULL)
{
printf("没有联系人!");
goto end;
}
else p1=head;
while(0!=strcmp(fposition,p1-name)p1-next!=NULL)
{
p2=p1;p1=p1-next;
}
p3=p1;
if(0==strcmp(fposition,p1-name))
{
printf("\n姓名电话Email职务职称\n");
printf("%s\t%s\t\t%s\t\t%s\t\t%s\n",p3-name,p3-phone,p3-email,p3-position,p3-title);
printf("\n\t\t***************************************************");
printf("\n\t\t*Menu selection*");
printf("\n\t\t*1.修改信息*");
printf("\n\t\t*2.继续查找联系人*");
printf("\n\t\t*3.删除当前联系人*");
printf("\n\t\t*4.返回主菜单*");
printf("\n\t\t***************************************************");
printf("\n\t\t请选择您所需要的服务:");
ch=getch();
switch(ch)
{
case '1':reword(p1);
break;
case '2':head=find(head);
break;
case '3':
{
if(p1==head)head=p1-next;
else p2-next=p1-next;
printf("成功删除!");
}
break;
case '4':void menu(struct list *head);
break;
default:
printf("\n输入错误!");
break;
}
}
else printf("没有找到!!!!");
end:
return(head);
}
/***************查找新联系人五 职称查找*****************/
struct list *find5(struct list *head)
{
char ftitle[30];
struct list *p1,*p2,*p3;
char ch;
printf("\n请输入您要查找的联系人的职称:");
scanf("%s",ftitle);
if (head==NULL)
{
printf("没有联系人!");
goto end;
}
else p1=head;
while(0!=strcmp(ftitle,p1-name)p1-next!=NULL)
{
p2=p1;p1=p1-next;
}
p3=p1;
if(0==strcmp(ftitle,p1-name))
{
printf("\n姓名电话Email职务职称\n");
printf("%s\t%s\t\t%s\t\t%s\t\t%s\n",p3-name,p3-phone,p3-email,p3-position,p3-title);
printf("\n\t\t***************************************************");
printf("\n\t\t*Menu selection*");
printf("\n\t\t*1.修改信息*");
printf("\n\t\t*2.继续查找联系人*");
printf("\n\t\t*3.删除当前联系人*");
printf("\n\t\t*4.返回主菜单*");
printf("\n\t\t***************************************************");
printf("\n\t\t请选择您所需要的服务:");
ch=getch();
switch(ch)
{
case '1':reword(p1);
break;
case '2':head=find(head);
break;
case '3':
{
if(p1==head)head=p1-next;
else p2-next=p1-next;
printf("成功删除!");
}
break;
case '4':void menu(struct list *head);
break;
default:
printf("\n输入错误!");
break;
}
}
else printf("没有找到!!!!");
end:
return(head);
}
/***************修改联系人*****************/
void reword(struct list *re)
{
printf("\n请依次输入修改后的姓名;电话号码;email;职务;职称信息.\n输入后以回车键进行下一项输入!\n");
scanf("%s",re-name);
scanf("%s",re-phone);
scanf("%s",re-position);
scanf("%s",re-email);
scanf("%s",re-title);
}
/***************排序*****************/
struct list *sort(struct list *head,struct list *insort)
{
struct list *p1,*p2;
if(NULL==head)
{
head=insort;
insort-next=NULL;
}
else
{
p1=p2=head;
while(0=strcmp(p1-name,insort-name)NULL!=p1-next)
{
p2=p1;
p1=p1-next;
}
if(NULL==p1-next)
{
p1-next=insort;
insort-next=NULL;
}
else
{
if(p2==head)head=insort;
else p2-next=insort;
insort-next=p1;
}
}
return head;
}
/***************主函数*****************/
void main()
{
int system(const char*);
system("color 2e");
struct list *head=NULL;
menu(head);
}
C语言排序错在哪里不通过#include stdio.h
void insort(int s[],int n)
{
int i,j;
for (i=2;i=n;i)
{
s[0]=s[i];
j=i-1;
while(s[0]s[j])
{
s[j 1]=s[j];
j--;
}
s[j 1]=s[0];
}
}
void main()
{
int a[11],i;
printf("请输入10个数据: \n");
for(i=1;i=10;i)
scanf("%d",a[i]);
printf("原始顺序: \n");
for (i=1;i11;i)
printf("]",a[i]);
insort(a,10);
printf("\n 插入数据排序后顺序: \n");
for(i=1;i11;i)
printf("]",a[i]);
printf("\n");
}
1、j=i-1后面没有;
2、printf("5d",a[i]);5前面缺少%
代码是给你改好后的
【insort函数c语言 c语言insert】关于insort函数c语言和c语言insert的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读