1. 程式人生 > >c語言 陣列元素逆序

c語言 陣列元素逆序

/*
name :陣列的逆序
 由於同一陣列中的元素地址連續---建議c語言中對陣列的操作,儘量用指標運算元組元素(詳見方法2)---減少開銷 
*/ 


#include<stdio.h>
int main()
{
    int arr[]={1,3,545,23};
int i=0,j=0;
int n=0,temp=0;

n=sizeof(arr)/sizeof(int);
//列印原來陣列
printf("  原來的陣列為:") ; 
for(i=0;i<=n-1;i++)
{
printf("%4d",arr[i]);
}
printf("\n");

 
for(i=0,j=n-1;i<j;i++,j=n-1-i)//(i=0,j=n-1-i;i<j;i++)這樣寫不行---初始化表示式在迴圈中只執行一次 
  {
  temp=arr[i];
  arr[i]=arr[j];
  arr[j]=temp;
  }
 
printf("逆序後的陣列為:");
for(i=0;i<=n-1;i++)
{
printf("%4d",arr[i]);
}
printf("\n");
return 0;

 } 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

//方法2


 
#include<stdio.h>
int main()
{
    int arr[]={1,3,8,545,23};
int* subi=NULL;//NULL要大寫 
int* supi=NULL;
int temp=0;
int i=0;
int n=0;

n=sizeof(arr)/sizeof(int); 
printf("%p\n",arr);    //測試語句 
printf("%p\n",arr+1); //測試語句,arr+1-arr==sizeof(int)---這裡的1 是 邏輯上的1 
for(subi=arr,supi=arr+n-1;subi<supi;subi++,supi--)
  {
  temp=*subi;//交換時還是 值交換 ---但此處使用指標的*運算子取值,指標變數所佔記憶體 < 普通變數 
  *subi=*supi;
  *supi=temp;
  }

for(i=0;i<=n-1;i++)
  {
  printf("%4d",arr[i]);
  }
printf("\n");
return 0;
 } 

相關推薦

c語言 陣列元素

/* name :陣列的逆序  由於同一陣列中的元素地址連續---建議c語言中對陣列的操作,儘量用指標運算元組元素(詳見方法2)---減少開銷  */  #include<stdio.h> int main() {     int arr[]={1,3,545,

C語言進行陣列元素

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<windows.h> void fun(int *a

C語言陣列元素的查詢

對無序陣列的查詢 所謂無序陣列,就是陣列元素的排列沒有規律。無序陣列元素查詢的思路也很簡單,就是用迴圈遍歷陣列中的每個元素,把要查詢的值挨個比較一遍。請看下面的程式碼: 1 #include <stdio.h> 2 int main(){ 3 int nums[10] =

c語言對字串反轉去除空格

strstr_while模型 看這篇https://blog.csdn.net/viafcccy/article/details/84886885 兩頭堵模型 將一個這種形式的“        zxcv     

關於C語言整數的輸出

int invert(int i) { int j=0; while(i) { j = j*10; j = j+i%10; i = i/10; } return j; } 註釋我也不知道怎麼寫。。大家自己理解一下

C語言)順序輸出整數的每一位並列印整數位數

問題描述:輸入一個整數,順序逆序輸出輸出整數的每一位,並輸出整數的位數。 實現:本程式碼用的都是最基本的C語言知識,適合初學者 #include<stdio.h> int main() { int count = 0; int a,i; int temp; print

[Java]陣列元素Reverse的三種方式

題目 程式碼實現 說明 int[] originArray; //原始陣列 int[] reverseArray;//反轉後的陣列 int length = 0; //原始陣列

C語言陣列元素的迴圈移位

int main() {     int num[5],num1[5];int i, j,k=1;int t,n;    printf("請輸入5個數:");for(i=0;i<5;i++){scanf("%d",&num[i]);    //將數讀入陣列num}         printf

C語言陣列元素地址作為函式引數

今天首先來做一個題,值得借鑑。 #include<stdio.h> void fun(int *p){ printf("%d",p[5]);//列印第六個元素,但是地址傳入的第四個元素, getchar(); } void

Codeforces Round #510 (Div. 2) A 模擬 B列舉 C D離散化+樹狀陣列對)

A Code: #include <bits/stdc++.h> #define LL long long #define INF 0x3f3f3f3f using namespace s

C語言陣列,將元素中的數字從大到小排列

#include <stdio.h> void main() { int scores[] = {543, 323, 32, 554, 11, 3, 112}; int i; int j; int k; for(i=0;i<7;i++) {

C語言——陣列指標和通過指標引用陣列元素的方法總結

1.陣列指標:即指向陣列的指標 那麼, 如何宣告一個數組指標呢? int (* p)[10]; /*括號是必須寫的,不然就是指標陣列;10是陣列的大小*/ 拓展:有指標型別元素的陣列稱為指標陣列。 2.通過指標引用陣列元素的基本方法 (1)小標法:

9.28機試 定義兩個陣列,首先把兩個數組合併成一個新陣列,然後把新陣列中的所有元素排列

public class Demo7 { public static void main(String[] args) { int[]array1 = new int[]{10,20,30};

資料結構---棧(C語言陣列實現)

https://blog.csdn.net/morixinguan/article/details/51374184 資料結構---棧(C語言陣列實現)   棧的全名稱為堆疊,棧其實就是與佇列相反的過程,佇列是先進先出,而棧便是先進後出了,如下圖:  

資料結構---佇列(C語言陣列實現)

https://blog.csdn.net/morixinguan/article/details/51374296 資料結構---佇列(C語言陣列實現)   佇列是先進先出的過程。簡單地畫一幅畫來描述一下佇列: 一個簡單的、由陣列實現的佇列,可以由以下幾種最基本的操

[zoj4046][樹狀陣列(強化版)]

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4046 題意:有一個含有n個元素的數列p,每個元素均不同且為1~n中的一個,求出將數列變為迴圈遞增序列至少需要左右相鄰的數交換多少次 題目分析:先看簡化版的題目:如果只有1 2 3

離散化及樹狀陣列

用樹狀陣列求逆序對的時候注意:要統計b[i]-1的字首和,因為可能有相同值的元素 不去重離散化: sort(a+1, a+n+1, cmp); for(int i=1; i<=n; i++) { if(i == 1 || a[i].val != a[i-1].val) { to

c語言 陣列中字串的旋轉(左旋)(右旋)

     在陣列中定義一個字串,該字串由“ abcdef ” 組成,所謂左旋即是讓左邊的第一個字元旋轉到右邊去,左旋一個字元即是產生“ bcdefa ”這樣的字串,右旋與之相反。      為了控制左(右)旋的字元數,需要製作一個可以改

c++ 判斷陣列元素是否有負數(any_of)

  #include <iostream> // std::cout #include <algorithm> // std::any_of #include <array> // std::array using namesp

c++ 判斷陣列元素是否都是奇數(all_of)

  #include <iostream> // std::cout #include <algorithm> // std::all_of #include <array> // std::array using namesp