
#include "stdioh"
#define MAXLEN 100
typedef int DataType;
typedef struct{
DataType data[MAXLEN];
int length;
}sqList;
void ListInit(sqList L){
L->length=0;
}
int ListInsert(sqList L,int i,DataType x){
int j;
if(i<1||i>L->length+1)
return 0;
if(L->length==MAXLEN)
return 0;
for(j=L->length;j>=i;j--)
L->data[j]=L->data[j-1];
L->data[i-1]=x;
L->length++;
return 1;
}
int ListDelete(sqList L,int i,DataType e){
int j;
if(i<1||i>L->length)
return 0;
e=L->data[i-1];
for(j=i;j<L->length;j++)
L->data[i-1]=L->data[i];
L->length--;
return 1;
}
main()
{
sqList x;
int n,i,y;
ListInit(&x);
for(i=0;i<5;i++){
printf("请输入第%d个数:",i+1);
scanf("%d",&n);
xdata[i]=n;
}
xlength=i;
for(i=0;i<xlength;i++)
printf("%d ",xdata[i]);
printf("\n");
ListInsert(&x,4,7);
for(i=0;i<xlength;i++)
printf("%d ",xdata[i]);
printf("\n");
ListDelete(&x,5,&y);
for(i=0;i<xlength;i++)
printf("%d ",xdata[i]);
printf("\n");
}
除等于2外,在不同的情况下有不同的答案:
1、在二进制时。1+1=10;
2、布尔代数时。1+1=1;
3、作为代表时。如哥德巴赫猜想;
4、单位不同时。如1小时加1分等于61分;
5、在急转弯时。如1加1,答案是11;
6、特殊情况下。如一个男人加如一个孕妇等于三个人;
7、实际需要时。如一尺布加一斤米等于一袋米;
8、智力测验时。如一滴水加一滴水等于一滴水;
9、在猜字谜时。如一加一,答案是王;一加一等于,答案是田、由、甲、申等;
10。。。。。。。
11。。。。。。。
12。。。。。。。
13。。。。。。。
最佳答案
求
我写了一个完整的。程序试运行正常。运行效果如下图。
希望对您有帮助!
#include"stdioh"
#include "stdlibh"
int charu(int a[])
{
int n,i=0;
while(a[i]!=0)
i++;
printf("\n该数列长度为%d。\n",i);
printf("请输入要插入元素的位置n(n<=%d)(在第%d位插入即在末尾增加一个元素):\n",i+1,i+1);
while(1)
{
scanf("%d",&n);
if(n>=1&&n<=i+1)
break;
printf("请输入0-%d以内的数字:\n",i+1);
}
for(i=i-1;i>=n-1;i--)
a[i+1]=a[i];
printf("请输入要添加的数:\n");
scanf("%d",&a[n-1]);
printf("新数列为:\n");
for(i=0;a[i]!=0;i++)
printf("%d\t",a[i]);
return a[20];
}
void chazhao1(int a[])/顺序查找/
{
int n=0,num;
printf("请输入要查找的数:\n");
scanf("%d",&num);
for(int i=0;a[i]!=0;i++)
if(a[i]==num)
{
printf("第%d位为%d。\n",i,num);
n=n+1;
}
if(n==0)
printf("没找到该数!\n");
}
void chazhao2(int a[])/折半查找/
{
int num,set=0,end=0,i;
while(a[end]!=0)
end++;
end=end-1;
i=(set+end)/2;
printf("请输入要查找的数:\n");
scanf("%d",&num);
while(set<=end)
{
if(a[i]>num)
end=i-1;
else
if(a[i]<num)
set=i+1;
else break;
i=(set+end)/2;
}
if(set>end)
printf("没找到该数!\n");
else
printf("第%d位为%d。\n",i+1,num);
}
int paixu1(int a[])
{
int n=0;
for(int i=0;a[i]!=0;i++)
n=n+1;
for(i=1;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
if(a[j]>a[j+1])
{
int t;
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
}
printf("排序后的数列为:\n");
for(i=0;a[i]!=0;i++)
printf("%d\t",a[i]);
return a[20];
}
int paixu2(int a[])
{
int n=0;
for(int i=0;a[i]!=0;i++)
n=n+1;
int min;
for(i=0;i<n-1;i++)
{
min=i;
for(int j=i+1;j<n;j++)
if(a[j]<a[min])
min=j;
if(min!=i)
{
int t;
t=a[i];a[i]=a[min];a[min]=t;
}
}
printf("排序后的数列为:\n");
for(i=0;a[i]!=0;i++)
printf("%d\t",a[i]);
return a[20];
}
void xianshi(int a[])
{
for(int i=0;a[i]!=0;i++)
printf("%d\t",a[i]);
}
void screen()
{
printf("\n请选择:\n");
printf("1显示所有数\n");
printf("2插入一个数\n");
printf("3顺序查找一个数\n");
printf("4冒泡排序\n");
printf("5选择排序\n");
printf("6折半查找一个数(注意:折半查找只能在排序后使用)\n");
printf("7退出程序\n");
}
void main()
{
int a[20]={21,23,14,5,56,17,31,85,72};
int i;
printf("原数列为:\n");
for(i=0;a[i]!=0;i++)
printf("%d\t",a[i]);
printf("\n该数列长度为%d。\n",i);
int c;
while(1)
{
screen();
scanf("%d",&c);
switch (c)
{
case 1:xianshi(a);break;
case 2:a[20]=charu(a);break;
case 3:chazhao1(a);break;
case 4:a[20]=paixu1(a);break;
case 5:a[20]=paixu2(a);break;
case 6:chazhao2(a);break;
case 7:exit(0);
default :printf("输入的数字错误。\n请重新输入:\n");
}
continue;
}
}
建立方法很多,线性表是顺序表的顺序存储结构,这里我给你写个简单的例子参考一下,只要理解了,怎么写都不会错:
具体代码如下:
#include <stdioh>
typedef struct{
int data[100];
int length;
}Seqlist;//定义Seq这个新的数据类型
void creat(Seqlist &L);//建立线性表
void show(Seqlist L);//显示线性表
int main()
{
Seqlist L;
Llength=0;//初始化线性表的长度为0
creat(L);
show(L);
return 0;
}
void creat(Seqlist &L)
{
int a;
printf("请输入要创建的元素的个数:\t");
scanf("%d",&a);
for(int i=0;i<a;i++)
{
printf("请输入第%d个元素\t",i+1);
scanf("%d",&Ldata[i]);
Llength++;
}
}
void show(Seqlist L)
{
int i;
printf("线性表中的元素为:\n");
for(i=0;i<Llength;i++)
printf("%d\t",Ldata[i]);
printf("\n");
}
程序测试结果如下:
1、封面
2、编制说明
3、工程费用计算程序表
4、组织措施费项目表
5、工程预算书(分部分项 、技术措施)
6、主材单价表
这样很明确了吧,作用看各个表的名字就知道了,另外如果需要增加什么表格按那边自己要求来
以上就是关于请大家帮忙用c语言编一个顺序表的源程序全部的内容,包括:请大家帮忙用c语言编一个顺序表的源程序、C程序将顺序表的元素按升序排列,如输入1 3 5 7 9 2 4 6 8 0,排序后为0 -33686019 1 2 3 4 5 6 7 8、求高人帮编一个有关顺序表的C语言程序,望速回,非常感谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)