第一题:
#include
#define MAX 100
typedef int datatype;
typedef struct
{
datatype data;
}record;
typedef struct
{
record r[MAX+1];
int length;
}table;
void creat(table *tab)
{
printf("输入需要排列的数字个数:最大100n");
scanf("%d",&tab->length);
for(int i=1;ilength;i++)
{ printf("请输入第%d个数据:",i);
scanf("%d",&tab->r[i]);
}
}
void print(table *tab)
{
x05for(int i=1;ilength;i++)
x05{
x05 printf("%4d",tab->r[i]);
x05} printf("n");
}
void insertsort(table *tab)
{
x05 int i,j;
x05 printf("原始数据为:");
x05 print(tab);
x05 for(i=2;ilength;i++)
x05 {
x05 j=i-1;
x05 tab->r[0].data=tab->r[i].data;
x05 while(tab->r[0].datar[j].data)
x05 {
x05x05 tab->r[j+1].data=tab->r[j].data;
x05x05 j--;
x05
x05 }
x05 tab->r[j+1].data=tab->r[0].data;
x05 x05 printf("第%d次为 :",i-1);
x05 print(tab);
x05 }
}
void main()
{
table tab;
creat(&tab);
insertsort(&tab);
}
第二题:
#include
#define MAX 100
typedef int datatype;
typedef struct
{
datatype data;
}record;
typedef struct
{
record r[MAX+1];
int length;
}table;
void creat(table *tab)
{
printf("输入需要插入的数字个数:最大100");
scanf("%d",&tab->length);
for(int i=1;ilength;i++)
{ printf("请输入第%d个数据:",i);
scanf("%d",&tab->r[i]);
}
}
void print(table *tab)
{
x05for(int i=1;ilength;i++)
x05{
x05 printf("%4d",tab->r[i]);
x05} printf("n");
}
void find(table *tab)
{ int find;
int i,j,left,right,mid;
x05printf("输入你要查找的数:");
x05scanf("%d",&find);
x05for(i=2;ilength;i++)
x05{
x05 left=1;
x05 right=i-1;
x05 tab->r[0].data=find;
x05 while(leftr[0].datar[mid].data)
x05x05x05 right=mid-1;
x05x05 else left=mid+1;
x05 }
x05 if(tab->r[left].data==find)printf("n你要查找的数在第%d个",left);
x05}
}
void main()
{
table tab;
creat(&tab);
print(&tab);
find(&tab);
}