C语言:题目:将n个数按输入时顺序的逆序排列,用函数实现(用指针)。 我这个函数为什么有问题啊

#include<stdio.h>#include<string.h>voidf(inta[],intn){int*p=a,i,b[20];for(i=0;i<n;i++... #include<stdio.h>#include<string.h>void f(int a[],int n){int *p=a,i,b[20];for(i=0;i<n;i++){b[i]=*(p+(n-1));n--;}printf("\nafter rank:\n");for(i=0;i<n;i++)printf("%d",b[i]);}int main(){int a[20];int i=0,n;printf("intput how many numbers you want:");scanf("%d",&n);printf("\n");printf("input the numbers:\n");for(i=0;i<n;i++)scanf("%d",&a[i]);f(a,n);} 展开
 我来答
White_MouseYBZ
2018-12-24 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6655万
展开全部
  1. 把b[i]=*p+n-1;改成b[i]=*(p+n-1);。

  2. 把printf("%d",b[i]);改成printf("%d ",b[i]);,并在其后加一句printf("\n");。

重教桃李笑开2
2018-12-24 · TA获得超过421个赞
知道小有建树答主
回答量:492
采纳率:65%
帮助的人:225万
展开全部
你的n变了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fastfs
2018-12-24 · TA获得超过1423个赞
知道大有可为答主
回答量:2659
采纳率:62%
帮助的人:805万
展开全部
for(i = 0; i < n; i++)
{
b[i] = *(p + n - 1 -i)

}
试试这个
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2018-12-24 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include<stdio.h>
#include<string.h>
void f(int a[],int n)
{ int *p=a,i,b[20];
  for(i=0; i<n; i++)
  { b[i]=*(p+(n-1)-i);
  }
  printf("\nafter rank:\n");
  for(i=0; i<n; i++)
    printf("%d ",b[i]);
}
int main()
{ int a[20];
  int i=0,n;
  printf("intput how many numbers you want:");
  scanf("%d",&n);
  printf("\n");
  printf("input the numbers:\n");
  for(i=0; i<n; i++)
    scanf("%d",&a[i]);
  f(a,n);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
马吉平ok
2018-12-24 · 超过22用户采纳过TA的回答
知道答主
回答量:50
采纳率:100%
帮助的人:23.7万
展开全部

循环一次n会减一,i会加一,所以实际的循环不是n次.

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式