当前位置: 代码迷 >> C语言 >> [求助]一道顺序表的题
  详细解决方案

[求助]一道顺序表的题

热度:418   发布时间:2006-09-20 17:47:53.0
[求助]一道顺序表的题
将一顺序表A中的元素逆置。例如原来顺序表A中元素是100,90,80,70,60,50,40,逆置以后为40,50,60,70,80,90,100。算法所用的辅助空间要尽可能地少。

#include <stdio.h>
typedef struct
{ int datas[7];
int last;
} SEQUENLIST; 这个老师说是顺序表,可是具体怎么用呢?

? fun ( ? ,int 7)
{ int temp,i,n;
n=a.last/2;
for (i=0;i<n;i++)
{ temp=a.datas[i];
a.datas[i]=a.datas[7-1-i];
a.datas[7-1-i]=temp;
}
}

main()
{ int i;
struct a.datas[7]={100,90,80,70,60,50,40};
fun ( a.datas[] ,7);
for (i=0;i<a.last;i++)
printf("%d\n",a.datas[i]);
}
我这个一定错误百出吧,谁能帮我写个,让我看看
搜索更多相关的解决方案: 顺序  

----------------解决方案--------------------------------------------------------
看看这个行不?
#include"stdio.h"
typedef struct
{ int datas;
int last;
} seqlist;
void fun(seqlist a[],int n)
{
int i,j;
int temp;
i=0;j=n-1;
while(i<j)
{
temp=a[i].datas;
a[i].datas=a[j].datas;
a[j].datas=temp;
i++;j--;
}
}
main()
{ int i;
seqlist a[7];
printf("please input a array:\n");
for(i=0;i<7;i++)
scanf("%d",&a[i].datas);
fun(a,7);
printf("\n");
for (i=0;i<7;i++)
printf("%3d",a[i].datas);
getch();
}

----------------解决方案--------------------------------------------------------

#include <stdio.h>
typedef struct
{ int datas[7];
int last;
} SEQUENLIST;

void fun (SEQUENLIST *a)
{ int temp,i,n;
n=a->last/2;
for (i=0;i<n;i++)
{ temp=a->datas[i];
a->datas[i]=a->datas[a->last-1-i];
a->datas[a->last-1-i]=temp;
}
}

main()
{ int i;
SEQUENLIST a={{100,90,80,70,60,50,40},7};
fun (&a);
for (i=0;i<a.last;i++)
printf("%d\n",a.datas[i]);
getch();
}


----------------解决方案--------------------------------------------------------

nuciewth斑竹,谢谢!我明白了。

这个还有其他方法吗?老师说,至少有三种。 难道是用while作循环?


----------------解决方案--------------------------------------------------------
以下是引用jxnuwy04在2006-9-20 18:04:20的发言:
看看这个行不?
#include"stdio.h"
typedef struct
{ int datas;
int last;
} seqlist;
void fun(seqlist a[],int n)
{
int i,j;
int temp;
i=0;j=n-1;
while(i<j)
{
temp=a[i].datas;
a[i].datas=a[j].datas;
a[j].datas=temp;
i++;j--;
}
}
main()
{ int i;
seqlist a[7];
printf("please input a array:\n");
for(i=0;i<7;i++)
scanf("%d",&a[i].datas);
fun(a,7);
printf("\n");
for (i=0;i<7;i++)
printf("%3d",a[i].datas); 不明白,或许还没讲到吧
getch();
}

你的我现在还不太明白,有待学习


----------------解决方案--------------------------------------------------------
受不了

----------------解决方案--------------------------------------------------------
以下是引用北海舰队在2006-9-20 19:11:19的发言:
受不了


----------------解决方案--------------------------------------------------------

以下是引用jxnuwy04在2006-9-20 18:04:20的发言:
看看这个行不?
#include"stdio.h"
typedef struct
{ int datas;
int last;
} seqlist;
void fun(seqlist a[],int n)
{
int i,j;
int temp;
i=0;j=n-1;
while(i<j)
{
temp=a[i].datas;
a[i].datas=a[j].datas;
a[j].datas=temp;
i++;j--;
}
}
main()
{ int i;
seqlist a[7];
printf("please input a array:\n");
for(i=0;i<7;i++)
scanf("%d",&a[i].datas);
fun(a,7);
printf("\n");
for (i=0;i<7;i++)
printf("%3d",a[i].datas);
getch();
}

刚刚看了一下书,知道了,是结构体数组
----------------解决方案--------------------------------------------------------
此帖给我带来的精神冲击是无法用语言来描述的!
----------------解决方案--------------------------------------------------------

请问下各位: nuciewth版主写的里面的SEQUENLIST a={{100,90,80,70,60,50,40},7};是什么意思?,为什么SEQUENLIST后面有个a?还有最后还有一个getch()起什么作用?刚学线性表,谢谢!

[此贴子已经被作者于2006-10-4 12:37:52编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案