[关闭]
@sensitive-cs 2016-10-19T08:14:02.000000Z 字数 365 阅读 666

A - Presents

分析:

给出n个位置,每个位置上的数字是送给此同学礼物的同学的编号,输出n个数字,每个数字代表此编号的同学送给礼物的人,此人的编号。

思路:

用一个数组a[n+1]保存n个位置,另一个数组b[n+1]用来保存结果,则b[a[i]]=i,然后将数组输出。(其实就是一道逻辑题,举举栗子就能懂的。)

代码:

  1. #include <stdio.h>
  2. int a[110],b[110];
  3. int main(void)
  4. {
  5. int n,i;
  6. scanf("%d",&n);
  7. for (i = 1;i <= n;i++)
  8. scanf("%d",&a[i]);
  9. for (i = 1;i <= n;i++)
  10. b[a[i]] = i;
  11. for (i = 1;i <= n;i++)
  12. {
  13. if (i == 1)
  14. printf("%d",b[i]);
  15. else
  16. printf(" %d",b[i]);
  17. }
  18. return 0;
  19. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注