C语言运行错误

来源:百度知道 编辑:UC知道 时间:2024/04/30 14:59:39
#include <stdio.h>
#include <stdlib.h>
int main()
{int num,*a,i,j=0,w,h,v=1;

scanf("%d",&num);
a=malloc(num*sizeof(int));
scanf("%d",&a[0]);
for(i=1;i<num;i++)
{scanf("%d",&w);
for(i=1;i<num;i++)
{if(w==a[i])j++;
break;}
if(h==i) {a[v]=w;v++;}
}
num=num-j;
printf("%d\n",num);
for(i=1;i<num;i++)
{for(j=i;j>1;j--)
{if(a[j-1]>a[j])
{w=a[i];a[i]=a[j];a[i]=w;}
}
}
printf("%d",a[0]);
for(i=1;i<num;i++)
printf(" %d",a[i]);
}
运行后是乱码.怎么回事啊?

#include <stdio.h>
#include <stdlib.h>
int main()
{int num,*a,i,j=0,w,h,v=1;

scanf("%d",&num);
a=(int*)malloc(num*sizeof(int)); //这里修改后就可以了
scanf("%d",&a[0]);
for(i=1;i<num;i++)
{scanf("%d",&w);
for(i=1;i<num;i++)
{if(w==a[i])j++;
break;}
if(h==i) {a[v]=w;v++;}
}
num=num-j;
printf("%d\n",num);
for(i=1;i<num;i++)
{for(j=i;j>1;j--)
{if(a[j-1]>a[j])
{w=a[i];a[i]=a[j];a[i]=w;}
}
}
printf("%d",a[0]);
for(i=1;i<num;i++)
printf(" %d",a[i]);
}

你的程序需要完成什么功能?不知道还有没有逻辑上的错误。
请补充提问。

代码贴的不好 看的累

最好再注释一下

那就有人看了