首页 > 试题广场 >

将n个数按输入时顺序的逆序排列,用函数实现。要求用指针方法处

[问答题]

n个数按输入时顺序的逆序排列,用函数实现。要求用指针方法处理。

推荐

#include<stdio.h>

int main()

{void sort(char *p,int m);

int i,n;

char *p,num[20];

printf("input n:");

scanf("%d",&n);

printf("please input these numbers:\n”);

for(i=0;i<n;i++)

scarf("%d",&num[i]);

p=&num[0];

sort(p,n);

printf("Now,the sequence is:\n”);

for(i=0;i<n;i++)

print("%d",num[i]);

printf("\n”);

return 0;

}


void sort(char *p,int m)              //将n个数逆序排列函数

{int i;

char temp,*p1,*p2;

for(i=0;i<m/2;i++)

{p1=p+i;

p2=p+(m-1-i);

temp=*p1;

*p1=*p2;

*p2=temp;

}

}


发表于 2018-03-25 10:32:49 回复(0)
#include <stdio.h>
#include <stdlib.h>
void reverse(int * origin, int num){
 for(int i = 0; i < num / 2; i ++){
  int trans = 0;
  trans = *(origin + i);
  *(origin + i) = *(origin + num - i - 1);
  *(origin + num - i - 1) = trans;
 }
}
int main(){
 int * all = malloc(sizeof(int) * 100);
 int cnt = 0;
 for(int i = 0;i < 10;i ++){
  scanf("%d", all + i);
  cnt ++;
 }
 * (all + cnt) = 0;
 reverse(all, cnt);
 for(int i = 0; i < cnt; i ++){
  printf("%d ", * (all + i));
 }
 printf("\n");
}
发表于 2020-01-03 10:37:49 回复(0)