|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#define N 10
typedef struct list
{
int a[N];
int length;
}info;
void VOID(info*p);
void SCANF(info*p);
void SUM(info *p, info *n);
void change(info *p);
void swap(info *p, int m);
int main()
{
info A, B, C;
VOID(&A);
VOID(&B);
VOID(&C);
SCANF(&A);
SCANF(&B);
C = SUM(&A, &B);//合并两个顺序表
void swap(C,5);//将顺序表改变顺序后
return 0;
};
void VOID(info*p)// 将顺序表清空
{
p->length = 0;
}
void SCANF(info*p)//向顺序表内输入数据;
{
char ch;
int x;
//首先进行判满操作
if (p->length>N)
printf("表已经满了,无法输入数据");
else
{
/* 进行数据的输入 */
while (ch == 'y' || ch == 'Y')
{
scanf("%c", &ch);
printf("是否还要添加元素(y|n):");
scanf("%d", &x);
p->a[p->length++] = x;
} while (ch == 'y' || ch == 'Y');
}
void SUM(info *p, info *n)//合并两个顺序表
{
int i, j;
info C;
printf("A和B的合集为:")
for (i = 0; i<p->length; i++)
{
for (j = 0; j<n->length; j++)
{
if (p->a[i] - n->a[j] == 0)
{
C.a[i] = p->a[i];
C.length++;
printf("C.a[i]");
}
}
}
void change(info *p)//将顺序表中的元素逆置
{
int i, k;
for (i = 0; i<(p->length) / 2; i++)
{
k = p->a[i];
p->a[i] = p->a[p->length - 1 - i];
p->a[p->length - 1 - i] = k;
}
for (i = 0; i < p->length; i++)
{
printf("%d", p->a[i]);
}
}
void swap(info *p, int m)//将顺序表改变顺序后
{
int i, j, n;
for (i = 0; i<p->length; i++)
{
if (p->a[i]<p->[m] && i>m)
{
n = p->a[i];
for (j = 0; j<p->length; j++)
{
p->a[j + 1] = p->a[j];
p->a[0] = n;
}
}
}
}
提示一堆错误,还不会改,求救求救,
怎么才能改正??
}
问题实在太多了,改了之后就已经不记得都修改过哪里了。
- #include<stdio.h>
- #define N 10
- typedef struct list
- {
- int a[N];
- int length;
- }info;
- void VOID(info*p);
- void SCANF(info*p);
- void SUM(info *p, info *n);
- void change(info *p);
- void swap(info *p, int m);
- int main()
- {
- info A, B, C;
- VOID(&A);
- VOID(&B);
- VOID(&C);
- SCANF(&A);
- SCANF(&B);
- SUM(&A, &B);//合并两个顺序表
- swap(&A,2);//将顺序表改变顺序后
- return 0;
- };
- void VOID(info*p)// 将顺序表清空
- {
- p->length = 0;
- }
- void SCANF(info*p)//向顺序表内输入数据;
- {
- char ch;
- int x;
- //首先进行判满操作
- if (p->length>N)
- printf("表已经满了,无法输入数据");
- else
- {
- /* 进行数据的输入 */
- do
- {
- scanf("%d", &x);
- p->a[p->length++] = x;
- getchar();
- printf("是否还要添加元素(y|n):");
- scanf("%c", &ch);
- } while (ch == 'y' || ch == 'Y');
- }
- }
- void SUM(info *p, info *n)//合并两个顺序表
- {
- int i, j;
- info C;
- printf("A和B的合集为:");
- for (i = 0; i<p->length; i++)
- {
- for (j = 0; j<n->length; j++)
- {
- if (p->a[i] - n->a[j] == 0)
- {
- C.a[i] = p->a[i];
- C.length++;
- printf("%d ",C.a[i]);
- }
- }
- }
- printf("\n");
- }
- void change(info *p)//将顺序表中的元素逆置
- {
- int i, k;
- for (i = 0; i<(p->length) / 2; i++)
- {
- k = p->a[i];
- p->a[i] = p->a[p->length - 1 - i];
- p->a[p->length - 1 - i] = k;
- }
-
- for (i = 0; i < p->length; i++)
- {
- printf("%d", p->a[i]);
- }
- }
- void swap(info *p, int m)//将顺序表改变顺序后
- {
- int i, j, n;
- for (i = 0; i<p->length; i++)
- {
- if (p->a[i]<p->a[m] && i>m)
- {
- n = p->a[i];
- for (j = i; j>0; j--)
- {
- p->a[j] = p->a[j-1];
-
- }p->a[0] = n;
- }
- }
- for (i = 0; i < p->length; i++)
- {
- printf("%d ", p->a[i]);
- }
- }
复制代码
|
|