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;

}

扩展资料:   

选择排序

主要思想就是,基本上默认数组中第一个元素为最大(最小)值,之后将这个元素和后面的每个元素都进行比较,以由大到小排序为例,当第一个值遇到比其大的,就进行交换。这样第一轮过后,第一位就是最大的。

接着进行第二轮,由第二个数开始逐个比较,遇到比第二个数大的进行交换,这样第二轮之后第二个数就是第二大的了,以此类推,不断进行选择,最后完成排序。

void selectSort(int numbers[], int length) {

  for (int i = 0; i < length; i++) {

    for (int j = i + 1; j < length; j++) {

      if (numbers[i] < numbers[j]) {

        int temp = numbers[i];

        numbers[i] = numbers[j];

        numbers[j] = temp;

      }

    }

  }

}

 int main(int argc, const char * argv[]) {

  int myArray[] = {42, 7, 1, -3, 88};

  int length = sizeof(myArray) / sizeof(myArray[0]);

  selectSort(myArray, length);

  for (int i = 0; i < length; i++) {

    printf("%i ", myArray[i]);

  }

  return 0;

}

当第一个数来比较的时候,i = 0,那么j应该等于i + 1,因为第一个数要和第二个数开始比,并且比较length - 1次;当i = 1时,j = 2,并且比较length - 2次,以此类推;上面写的是由大到小排序。

温馨提示:答案为网友推荐,仅供参考
相似回答