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