请教问题~~~关于数组的一道题
要求:①程序运行时先显示Please input numbers:,再从键盘上读入一组整数(只考虑int型),数与数之间只使用空格或回车作分隔。数可正可负,最多10000个,但若读入的数为-222时,则表示输入
结束且-222不算在该组数内。
②对这一组数按从小到大的顺序进行排序。
③将排序后的这一组数输出到屏幕上,输出格式为每行6个数,数与数之间使用逗号(,)分隔,两个
逗号之间的宽度(不算逗号)为6且使用左对齐格式。注意,行尾没有逗号。
#include<stdio.h>
#include<stdlib.h>
#define PWIDTH 6
void order(int x[]);
void print(int x[]);
int n;
int main(void)
{
int *p;
int i=0;
p=(int*)malloc(10000*sizeof(int));
printf("请输入整数:");
do{
scanf("%d",&p[i]);
i++;
}while(p[i-1]!=-222);
n=i-1;
order(p);
system("PAUSE");
return 0;
}
void order(int x[])//插入排序法
{
int i,j;
for(i=2;i<=n;i++)
if(x[i]<x[i-1])
{
x[0]=x[i];j=i-1;
do{
x[j+1]=x[j];
j--;
}while(x[0]<x[j]);
x[j+1]=x[0];
}
print(x);
}
void print(int x[])
{
int k,count=0;
for(k=0;k<=0;k++)
{
printf("%d,",x[k]);
if(++count>=PWIDTH)
{
putchar('\n');
count=0;
}
}
}
请问哪里有问题呢?数组和指针学的好晕的说