【急急急】C语言代码有问题,求大神帮忙改错!!!改过来改过去老不对= =

题目:设计算法实现删除表中多余的重复元素,如:对于顺序表(1,2,3,1,3,4,3,5),删除第四个元素1及第五、第七个元素3。
=======================我的代码========================
#define max_len 50
#include <stdio.h>
#include "malloc.h"
typedef struct{
int data[max_len];
int last;
}Sequenlist;
Sequenlist *Dele_Same(Sequenlist *A){
int i,j,k;
for(i=0;i<A.last;i++)
{
for(j=i+1;j<A.last;j++)
{
if(A.data[i]!=A.data[j])
continue;
}
for(k=j;k<A.last;k++)
A.data[k]=A.data[k+1];
j--;
A.last--;
}
if(A.data[i]==A.data[A.last-1])
A.last--;
return (A);
}
void main()
{
Sequenlist *A;
int i;
int real_len;
int count;
printf("Please input te number of this list:");
scanf("%d",&count);
A.last=count;
A.data=(Sequenlist*)malloc(sizeof(Sequenlist)*count);
printf("Please input data:\n");
for(i=0;i<count;i++)
scanf("%d",&A.data[i]);
Dele_Same(A);
}
===================编译时的报错===================
error C2228: left of '.last' must have class/struct/union type

error C2228: left of '.data' must have class/struct/union type

================================================
由于周四要交所以很纠结…真心着急…表示俺能力有限实在搞不定了,求大神,我该怎么改?还有改过了以后能完成功能么?完不成功能我又该怎么修改呢???

#define max_len 50
#include <stdio.h>
#include "malloc.h"
typedef struct{
int data[max_len];
int last;
}Sequenlist;

Sequenlist *Dele_Same(Sequenlist *A){
int i,j,k;
for(i=0;i<A->last;i++)//指针访问,使用->
{
for(j=i+1;j<A->last;j++)
{
if(A->data[i]!=A->data[j])
continue;
}
for(k=j;k<A->last;k++)
A->data[k]=A->data[k+1];
j--;
A->last--;
}
if(A->data[i]==A->data[A->last-1])
A->last--;
return (A);
}
void main()
{
Sequenlist *A=(Sequenlist*)malloc(sizeof(Sequenlist));//申请内存空间,结构体在堆区,主要为了防止函数调用时,数据存在栈区会出现被修改。
int i;
int real_len;
int count;
printf("Please input te number of this list:");
scanf("%d",&count);
A->last=count;
// A->data=(Sequenlist*)malloc(sizeof(Sequenlist)*count);//?没看懂
printf("Please input data:\n");
for(i=0;i<count;i++)
scanf("%d",&A->data[i]);
Dele_Same(A);
free(A);//因为在堆区,程序不会帮你回收,所以手动释放申请的内存、
}
算法部分 没看应该不难 自己看着办吧
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-20
你好,楼主,Sequenlist *A中的A是指向结构体的指针,如果你要访问结构体成员应该用“->” 而不是“.” 所以需要修改的是把A.last改成A->last 再把A.data改成A->data 如果编译还是有错再找我,我每天都在线
第2个回答  2013-03-20
Sequenlist *A表明A是指针。
C,C++语言结构体或者类的指针访问成员,需要用【->】而不是【.】
第3个回答  2013-03-20
简单基础问题 回去看书去
相似回答