讲一个数组中的值逆序重新存放。

#include<stdio.h>
int main()
{
int i,n=5,m=1,j,t;
int a[5];
int b[5];
printf ("Input 5 number:\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf ("\n");
for (j=0;j<4;j++)
for (i=0;i<4-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf ("the sorted numbers:\n");
printf("\n");
for(i=0;i<5;i++)
printf("%d\t",a[i]);
printf("\n");
for(i=1;1<=5;i++)
{
b[m]=a[i];
m=m+1;
}
printf("the new numbers:\n");
for (m=1;m<=5;m++)
printf("%5d",b[m]);
printf("\n");
return 0;
}
因为初学所以写的很幼稚,我就是不明白怎么变换顺序尤其是吧b[m]=a[i]估计问题在这儿,谢谢您。。。

第1个回答  推荐于2016-09-05
#include<stdio.h>
int main()
{
int inv(int *x,int n);
int a[10]={8,6,5,4,1,15,-3,9,10,-2};
int *p;
printf("原先数组为:\n");
for(p=a;p<a+10;p++)
printf("%3d",*p);
printf("\n");
p=a;//经过一个for的循环后,p已不指向最先的&a[0]了,指向&a[10],而&[10](出界)值不明,为此让它继续指向&a[0]
inv(p,10);//调用反序函数,共5个元素
printf("反序数组为:\n");
for(;p<a+10;p++)
printf("%3d",*p);
printf("\n");
}int inv(int *x,int n)//反序函数
{
int *i,*j,m=(n-1)/2,*p,temp;
i=x;j=x+n-1;p=x+m;
for(;i<=p;i++,j--)//i和j的指针同步相向移动,实现数组元素的对换
{
temp=*i;
*i=*j;
*j=temp;
}
return(0);
}本回答被提问者采纳
第2个回答  2014-06-14
#include"stdio.h"
main()
{
int a[10],i,temp;/*定义数组的长度为10,你也可以换成其他的,当然,这个换了下面的也要换*/
for(i=0;i<10;i++)
scanf(%d),&a[i];
putchar('\n');
for(i=0;i<10/2;i++)
{temp=a[i];
a[i]=a[10-i-1];/*第一个和最后一个交换,第二个和倒数第二个交换,......一直到10/2的时候,也就是数组的一半的时候*/
a[10-i-1]=temp;
}
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}

祝你好运!!!觉得好的话分数给我!!!

将一个数组中的值按逆序重新存放.例如,原来的顺序为8,6,5,4,1.要求...
{ int a[20]={1,0},i,n,j;printf("请输入数组元素的个数:");scanf("%d",&n);printf("请输入数组元素:\\n");for(i=0;i<n;i++)scanf("%d",&a);for(i=0;i<n\/2;i++)a=a[n-1-i];printf("逆序存放后的数组:\\n");for(i=0;i<n;i++)printf("%d",a);return 0;...

c语言编程:将一个数组中的值按逆序重新存放,例如,原来顺序为8,6,5...
1、首先以一个数组变量和一个数组长度变量。2、接下来假设有一个数组交换的函数和一个输出的函数。3、接下来我们开始编写逆序交换。4、此时,我们开始swap交换函数。5、然后我们定义函数声明。6、然后再编写输出函数就可以了,全部代码如图。

将一个数组的值按逆序重新存放,例如,原来顺序为:8,6,5,4,1。要求改为...
int a[5]={8,6,5,4,1},i,n=5,temp;for(i=0;i<n\/2;i++){ temp=a[i];a[i]=a[n-i-1];a[n-i-1]=temp;} for(i=0;i<n;i++){ printf("逆序后:\\n");printf("%d\\t",a[i]);} return 0;}

如何将一个数组的值按逆序重新存放于原数组中,并输出。例如:原来顺序为...
简单,对折交换。比如数组a为下面的序列,数组长度为n=10:1,2,3,4,5,6,7,8,9,10 写一个循环,i从0开始折半遍历到(n\/2-1),此处为10\/2-1=4,也就是i {0,4},然后交换a[i]和a[n-i-1].过程如下,其中↹表示交换:i=0,a[0] ↹ a[9]i=1,a[1] &...

C语言编写程序,将一个一维数组的值按逆序重新存放。
include<stdio.h> int main(){ int a[5]={8,6,5,4,1},i,n=5,temp;for(i=0;i<n\/2;i++){ temp=a[i];a[i]=a[n-i-1];a[n-i-1]=temp;} for(i=0;i<n;i++){ printf("%d\\t",a[i]);} system("pause");return 0;} ...

用C语言:将一个数组中的值按逆序重新存放
int a[5], i, temp; \/*定义数组及变量为基本整型*\/ printf("please input array a:\\n");for (i = 0; i < 5; i++) \/*逐个输入数组元素*\/ scanf("%d", &a[i]);printf("array a:\\n");for (i = 0; i < 5; i++) \/*将数组中的元素逐个输出*\/ printf("%d "...

. 把一个数组中的值按逆序重新存放.如:原来顺序为8,6,5,4,1,要求改...
include <stdio.h>#define MAX 3int main(void){ int a[MAX],i,j,t; for(i=0;i<MAX;i++) scanf("%d",&a[i]); for(j=MAX-1,i=0;i<j;i++,j--){ t=a[i]; a[i]=a[j]; a[j]=t; } for(i=0;i<MAX;printf("%d\\t",a[i++])...

编写程序将一个数组中的数按逆序重新存放并输出(程序中数组的元素个数...
\/\/ a[i]存放在临时存储单元 temp=a[i];\/\/ 将i的对称的数据存到a[i]a[i]=a[n-1-i];\/\/ 将原a[i]中的数据(即temp),存放到i的对称点a[n-1-i]a[n-1-i]=temp;} \/\/ 重新输出数组 for(int i=0;i<n;i++){ printf("%d\\t",a[i]);} } 直接计数 计算一个排列的逆序...

运用C程序将一个整型数组中的值按逆序重新存放。例如9、8、6、5、4...
include<stdio.h> int main(){int i,j,t,a[10]={1,2,3,4,5,6,7,8,9,10};for(i=0,j=9;i<j;){t=a[i]; a[i++]=a[j]; a[j--]=t;} printf("逆置后:\\n");for(i=0;i<10;i++)printf("%d ",a[i]);return 0;} ...

java编程 将一个数组中的值按逆序重新存放。如原来的顺序为4,1,3,5...
public class HelloWorld {public static void main(String[] args) {int [] a = new int [] {4,1,3,5,9,2,1};int t;for(int i = 0; i < a.length \/ 2; i ++) { t = a[i]; a[i] = a[a.length - 1 - i]; a[a.length - 1 - i] = t;}for(int ...

相似回答