指针 将n个数按输入时顺序的逆序排列,用函数实现

 我来答
iiiiiiiipl
2019-05-23 · TA获得超过9921个赞
知道答主
回答量:68
采纳率:66%
帮助的人:3.7万
展开全部

#include<stdio.h>

void sort(int *p,int m)

{

int i;

int temp,*p1,*p2;

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

{

p1=p+i;

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

temp=*p1;

*p1=*p2;

*p2=temp;

}

}

int main()

{

void sort(int *p,int m);

int i,n;

int *p;

int num[5];

printf("input n: 5\n");

scanf("%d",&n);

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

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

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

p=&num[0];

sort(p,n);

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

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

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

return 0;

}

扩展资料:

数组使用规则:

1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。

3.如不给可初始化的数组赋初值,则全部元素均为0值。

4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。

参考资料:
百度百科-数组

问明6E
高粉答主

2019-05-23 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.4万
展开全部

#include&lt;stdio.h&gt;

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&lt;n;i++)

scanf("%d",&num&lt;i&gt;);

p=&num[0];

sort(p,n);

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

for(i=0;i&lt;n;i++)

printf("%d",num&lt;i&gt;);

return 0;

}

void sort(char*p,int m)

{

int i;

char temp,*p1,*p2;

for(i=0;i&lt;m/2;i++)

{

p1=p+i;

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

temp=*p1;

*p1=*p2;

*p2=temp;

}

}

扩展资料:

printf用法

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

int a=1234;

printf("a=%d\n",a);

输出结果为a=1234。

//以下程序用于获得输入值i,j并将其输出(i,j之间以逗号隔开)

#include&lt;stdio.h&gt;

int main()

{

int i,j;

scanf("%d%d",&i,&j);

printf("i=%d;j=%d",i,j);

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
145飞雪090
2012-04-06 · TA获得超过621个赞
知道小有建树答主
回答量:282
采纳率:100%
帮助的人:153万
展开全部
已通过测试,望采纳。
#include <stdio.h>
void reverse(int a[],int n)
{ int *p;
for(p=a+n-1;p>=a;p--)
printf("%4d",*p);
printf("\n");
}
main()
{ int a[20],n;
int i;
printf("Input the length of array:");
scanf("%d",&n);
printf("Input the number of array:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
reverse(a,n);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hazhashua
2012-04-07 · 超过16用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:46.2万
展开全部
//主函数中
void sortfun(char *p);//实现逆序函数的声明!
char *p=null;
cin>>p;
sortfun(p)//实现逆序的函数!
{
int temp;//交换的临时存储空间!
int length=0;
int count=1;//控制for循环!
while(*p!='\0')
++length;
for(count=1;count<=length/2;count++)
{
temp=*p;
*p=*(p+length-count)
*(p+count-1)=temp;
}
}
大概这样就可以 你调试 试试!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7eff2e0
2012-04-06 · TA获得超过1043个赞
知道小有建树答主
回答量:787
采纳率:80%
帮助的人:532万
展开全部
假设你输入的数已经在数组org中
//函数输入为原数组org,结果数组result和原数组org的长度len
void reverse(int* org, int* result, int len)
{
int i;
for(i=0; i<len; i++)
result[i] = org[len-i-1];
}

如果要求结果就放在原数组中,则:
void reverse(int* org, int len)
{
int i,j,k;
k = len/2 ;
for(i=0; i<k; i++)
{
j = org[i];
org[i] = org[len-i-1];
org[len-i-1] = j;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式