永发信息网

c语言问题试设计一个算法,将A[0..n-1]中所有奇数移到偶数之前。我写的代码。老是报错,求高手解答。

答案:3  悬赏:60  手机版
解决时间 2021-11-11 01:25
  • 提问者网友:心如荒岛囚我终老
  • 2021-11-10 08:17
c语言问题试设计一个算法,将A[0..n-1]中所有奇数移到偶数之前。我写的代码。老是报错,求高手解答。
最佳答案
  • 五星知识达人网友:woshuo
  • 2021-11-10 08:49
#include 
#include 
#include 

#define LIST_INIT_SIZE  100
#define LISTINCREMENT 10
#define OK 0
#define OVERFLOW -1

typedef int ElemType;
typedef struct node {
ElemType *elem;
int listsize;
}*SqList,Node;

SqList InitList() {
SqList head = (Node *)malloc(sizeof(Node));
head->elem = (ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));
if(!head->elem) exit(OVERFLOW);
head->listsize = LIST_INIT_SIZE;
for(int i = 0;i < head->listsize;i++) head->elem[i] = rand()%100 + 1;
return head;
}

void Handle(SqList head) {
int t,i = 0,j = head->listsize - 1;
while(i < j) {
while(head->elem[i]%2 == 1) ++i;
while(head->elem[j]%2 == 0) --j;
t = head->elem[i];
head->elem[i] = head->elem[j];
head->elem[j] = t;
}
}

void DisList(SqList head) {
int i;
for(i = 0; i < head->listsize; ++i) {
if(i && i % 10 == 0) printf("
");
printf("%3d ",head->elem[i]);
}
printf("
");
}

int main() {
SqList head = InitList();
srand(time(NULL));
printf("整理前:
");
DisList(head);
Handle(head);
printf("
整理后:
");
DisList(head);
free(head->elem);
free(head);
return 0;
}
全部回答
  • 1楼网友:千夜
  • 2021-11-10 10:01
for(k=100;k<51;k--)这个条件没法成立啊 --> for(k=99;k>=51;k--)追问还是不对啊,老是报这俩错。
1.cpp(9) : error C2143: syntax error : missing ';' before ''
1.cpp(9) : fatal error C1004: unexpected end of file found
  • 2楼网友:廢物販賣機
  • 2021-11-10 09:53
没调过,但大部分帮你改过来了,应该没大错误了,你稍微看看应该能搞定了!话说,你写的代码真的很难读,得注意。还有尽量不要传递引用,改用指针。and申请了内存用完要释放!!!
#include
#include
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int ElemType
#define OK 0
#define OVERFLOW 0

typedef struct
{
ElemType * elem;
int listsize;
}SqlList;

int InitList(SqlList &L)
{

L.listsize=LIST_INIT_SIZE;

for(int=0;i {
L.elem[i]=i;
}
return OK;
}
int PaiXu(SqlList &L)
{
int i,k,temp;
for(i=0;i {
if(L.elem[i]%2==0)
{ for(k=L.listsize-1;k>L.listsize/2-1;k--)
{
if(L.elem[k]%2==1)
{
temp=L.elem[i];
L.elem[i]=L.elem[k];
L.elem[k]=temp;
}
}
}
}
return Ok;
}

void DisList(SqlList &L)
{
int i=0;
while(L.elem[i])
{
printf("%n",L.elem[i]);
i++;
}
}

void main()
{
SqlList L;
L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem)
exit(OVERFLOW);
InitList(L);
PaiXu(L);
DisList(L);
if(L.elem!=NULL)
free(L.elem);

}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯