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语言,将一个数组中的值按逆序重新存放的主要内容,如果未能解决你的问题,请参考以下文章

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

将一个数组中的值按逆序重新存放。例如8,6,5,4,1要求改为1,4,5,6,8.

将一个数组中的值逆序存放

将一个整型数组中的值逆序重新存放。用java编写

编写一个C语言程序:将一个数组中的值按逆序重新存放

将一个数组中的值按逆序重新存放:建立Map()函数实现N个整数按相反顺序存放,函数的形参是数组