马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
void main()
{
void sort(int **p,int n);
int i,a[20],**p,n,*p1[20];
printf("请输入需要对几个数进行排序:\n");
scanf("%d\n",&n);
for(i = 0;i < n;i++)
{
p1[i] = &a[i];
}
printf("请输入%d个整数:\n",n);
for(i = 0;i < n;i++)
{
scanf("%d",p1[i]);
}
p = p1;
sort(p,n);
for(i = 0;i < n;i++)
{
printf("%4d",*p1[i]);
}
}
void sort(int **p,int n)
{
int i,j,*temp;
for(i = 0;i < n - 1;i++)
for(j = i + 1;j < n;j++)
if(**(p + i) > **(p + j))
{
temp = *(p + i);
*(p + i) = *(p + j);
*(p + j) = temp;
}
}
我想问的是:为什么输完第一个scanf(scanf("%d\n",&n);)之后,还需要继续输入完第二个循环输入(for(i = 0;i < n;i++){scanf("%d",p1[i]); })才会打印它前面的那一句(printf("请输入%d个整数:\n",n);)之后无需输入任何数了,这和书上的运行结果不一样啊,但代码一模一样
|