C语言,将一个数组中的值按逆序重新存放
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言,将一个数组中的值按逆序重新存放相关的知识,希望对你有一定的参考价值。
#include "stdio.h"void Swap(int *a, int *b) /*交换a、b两个数*/
int tmp = *a;
*a = *b;
*b = tmp;
void Turn(int a[], int left, int right) /*对数组a从left到right区域实现逆置(翻转)*/
int i, j;
for(i = left, j = right; i < j; i++, j--)
Swap(&a[i], &a[j]);
void main( )
int n, i, a[100];
scanf("%d", &n); /*输入数组中数据元素的个数*/
for(i = 0; i < n; i++) /*输入数组中各个数据元素*/
scanf("%d", &a[i]);
Turn(a, 0, n - 1); /*翻转*/
for(i = 0; i < n; i++) /*输出翻转结果*/
printf("%d\t", a[i]);
追问
程序没使用,不知能否执行
参考技术A 1、取得当前数组a的长度。2、建立一个相同类型、相同长度的动态数组b。
3、顺序读当前数组a,把读到的数据逆序地写到数组b中。
4、将数据b中的内容复制到数据a中。
使用动态数组,适合于任何长度的数组。malloc函数。 参考技术B #include<stdio.h>
int main(void)
int a[10] = 0;
int b[10] = 0;
int i = 0;
printf("请输入数组a,10个元素:\n");
for(i = 0 ; i <10;i++)
scanf("%d",&a[i]);
for(i = 0 ; i <10;i++)
b[9-i] = a[i];
printf("逆序后的数组为:\n");
for(i = 0 ; i <10; i++)
printf("%5d",b[i]);
printf("\n");
return 0;
将一个数组中的值按逆序重新存放
#include <stdio.h>
int main()
{
int i,a[100],number,mid,temp1,temp2;
printf("How many numbers do you want to enter? \\n");
scanf("%d",&number);//确定数组长度
printf("Please input array:\\n");
for(i=0;i<number;i++)
scanf("%d",&a[i]);
printf("your array is:\\n");
for(i=0;i<number;i++)
printf("%5d",a[i]);
printf("\\n");
if(number%2==1)//输入奇数位序列
{
mid=(number-1)/2;
for(i=0;i<=mid;i++)
{
temp1=a[mid-i];
a[mid-i]=a[mid+i];
a[mid+i]=temp1;
}
}
else//输入偶数位序列
{
for(i=0;i<=number/2-1;i++)
{
temp2=a[i];
a[i]=a[number-(i+1)];
a[number-(i+1)]=temp2;
}
}
printf("逆序排序后的数组为:\\n");
for(i=0;i<number;i++)
printf("%5d",a[i]);
return 0;
}
以上是关于C语言,将一个数组中的值按逆序重新存放的主要内容,如果未能解决你的问题,请参考以下文章