用C语言把一个数组中的值按逆序重新存放?

输入几个数字不定,那几个数字不定。用C++的软件... 输入几个数字不定,那几个数字不定。用C++的软件 展开
 我来答
未来需努力点缀
2012-11-13 · TA获得超过4679个赞
知道大有可为答主
回答量:850
采纳率:50%
帮助的人:533万
展开全部
楼主你好
代码如下:
#include<stdio.h>
#define MAX 100

int main()
{
int a[MAX],n=0,i,j;
printf("请输入任意个数(用空格间隔每一个数 回车结束输入):\n");
do{
scanf("%d",a+n);
n++;
}while(getchar()!='\n');

j=n-1,i=0;
while(i<=j)//采用二分法逆序储存
{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
i++;
j--;
}

for(j=0;j<n;j++)
printf("%d\n",a[j]);
}

希望能帮助你哈
raych2006
2012-11-14 · 超过35用户采纳过TA的回答
知道答主
回答量:104
采纳率:0%
帮助的人:68万
展开全部
可以用下面的方法实现,我的运行环境是vs2008,测试正常。
#include"stdafx.h" //不是vs环境的可以去除
#include<stdio.h>
#include<stdlib.h>
void*nizhi(int *newarry,int a)
{ int mid=0;
/*newarry=(int*)malloc(a*sizeof(int));
if(newarry==NULL)
{
printf("分配空间失败!");
exit(1);
}*/
printf("请输入数组的元素,数字之间以空格分隔.\n");
for(int i=0;i<a;i++)
scanf("%d",&newarry[i]);
printf("你新建立的数组是:\n");
for(int i=0;i<a;i++)
printf("%d\t",newarry[i]);
for(int j=a-1,i=0;i<=j;i++,j--)
{
mid=newarry[i];
newarry[i]=newarry[j];
newarry[j]=mid;
}
printf("\n逆序后的数组为:\n");
for(int i=0;i<a;i++)
printf("%d\t",newarry[i]);
return newarry;
}
int _tmain(int argc, _TCHAR* argv[])//不是vs运行环境的话,自己修改成你使用的环境定义方式
{
int *arry,*p,n;
xunhuan: printf("请输入要建立的数组长度:");
scanf("%d",&n);
p=&n;
arry=(int*)malloc(n*sizeof(int));
if(arry==NULL)
{
printf("分配空间失败!");
return 0;
}
nizhi(arry,*p);
printf("\n循环执行:\n");
goto xunhuan;
return 0;
}
该程序可以循环执行,而且参数传递的是地址值,因此,你可以再次基础对nizhi函数中进行数组元素的增加、减少都是可以的,而且返回和最终存储都是修改后的数组,这也是使用指针的好处。你试试吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
saddamwilson
2012-11-15
知道答主
回答量:41
采纳率:0%
帮助的人:18万
展开全部
好做
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式