首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于数据结构中线性表用c语言实现解决办法

2013-10-02 
关于数据结构中线性表用c语言实现这是一个有关线性表的摸索,为什么输出的结果中有一个数组总有一位数输出

关于数据结构中线性表用c语言实现
这是一个有关线性表的摸索,为什么输出的结果中有一个数组总有一位数输出的是乱码
#include <stdio.h>
#include <stdlib.h>


struct arrary
{
int count;
int *arra;
}a,b;


int main()
{
int minnum=0,maxnum=0,i=0,j=0,difference=false;
int *c;
printf("请输入线性表a的总长度\n");
scanf("%d",&a.count);
a.arra=(int *)malloc(a.count);
printf("请输入线性表a的元素\n");
for(i=0;i<a.count;i++)
scanf("%d",&a.arra[i]);
printf("请输入线性表b的总长度\n");
scanf("%d",&b.count);
    b.arra=(int *)malloc(b.count);
printf("请输入线性表b的元素\n");
for(i=0;i<b.count;i++)
scanf("%d",&b.arra[i]);
c=(int *)malloc(a.count);
printf("a.count=%d b.count=%d\n",a.count,b.count);
//printf("b2=%d\n",b.arra[2]);
    for(i=0;i<a.count;i++)
{
c[i]=false;
}
for(i=0;i<a.count;i++)
{
printf("a[%d]=%d ",i,a.arra[i]);
}
printf("\n");
for(i=0;i<b.count;i++)
{
printf("b[%d]=%d ",i,b.arra[i]);
}
printf("\n");
for(i=0;i<a.count;i++)
{
for(j=0;j<b.count;j++)
{
printf("***37***\n");
printf("i=%d  j=%d\n",i,j);
if(a.arra[i]==b.arra[j])
{
difference=true;
printf("***40***\n");
break;

}
}
if(!difference)
{
c[i]=a.arra[i];
//printf("the same number is %d\n ",a.arra[i]);
}
}
for(i=0;i<a.count;i++)
{
    if(c[i])
printf("%d ",c[i]);
}
printf("\n");
return 0;
}

输出结果是
关于数据结构中线性表用c语言实现解决办法
同时b数组不能输入5这个数 数据结构 线性表 c语言 乱码
[解决办法]
a.arra=(int *)malloc(a.count);
改成


a.arra=(int *)malloc((sizeof(int)) * (a.count));

另外中间可能有回车符在缓冲区里,可以吃掉先,然后再输入有效数据

热点排行