求大神解惑:谭浩强指针章课后21习题。
#include<stdio.h>void main()
{
void sort(int **p,int n);
int i,a,**p,n,*p1;
printf("请输入需要对几个数进行排序:\n");
scanf("%d\n",&n);
for(i = 0;i < n;i++)
{
p1 = &a;
}
printf("请输入%d个整数:\n",n);
for(i = 0;i < n;i++)
{
scanf("%d",p1);
}
p = p1;
sort(p,n);
for(i = 0;i < n;i++)
{
printf("%4d",*p1);
}
}
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); })才会打印它前面的那一句(printf("请输入%d个整数:\n",n);)之后无需输入任何数了,这和书上的运行结果不一样啊,但代码一模一样{:9_241:}
你确定你和书上一样吗? scanf(“%d”,&n);你看你在你的代码里面写了\n,能不错吗?本来大家都说谭浩强的书很烂,你这是招黑啊
Krant5 发表于 2016-8-20 20:43
你确定你和书上一样吗? scanf(“%d”,&n);你看你在你的代码里面写了\n,能不错吗?本来大家都说谭浩强的 ...
{:9_232:}{:9_232:}没想到多加了个\n引发严重后果,谢谢大神指点{:9_232:}
页:
[1]