1. 程式人生 > 其它 >C_一維陣列和陣列倒置

C_一維陣列和陣列倒置

C

1. 定義字元陣列 :

char arr [] = {'a','b'}; //陣列推算結果兩個

char brr[] = {"ab"}; //陣列推算三個 'a' 'b' '/0'

字串操作。字元個數 strlen() 引入#include<string.h>

字串結尾標記'\0'

char arr[] = "hello"; strlen(arr); --5 
char brr = {'h','e'}; strlen(brr); --無法確定中間是否有'\0' 'e'向後知道遇到‘\0'停止  等價與sizeof(brr)/sizeof(arr[0])
char brr = {'h','e','\0'} ; strlen(brr) --2


char num;
scanf("%c",&num");
int i = 0;
while (num != '\n')
{
  arr[i++] =num;
  scanf("%c",&num);
}
scanf("%c" ,&numl);
i = 0;
while(num!= '\n')
{
  brr[i++] = num;
  scanf("%c",&num);
}

逆序陣列元素

eg1
額外定義陣列
# include <stdio.h>
int main(void)
{
    int a[5] = {1, 2, 3, 4, 5};
    int b[5];  //用來存放倒置後的資料
    int i, j;
    for (i=0, j=4; i<5, j>=0; ++i, --j)
    {
        b[i] = a[j];
        printf("%d\n", b[i]);
    }
    return 0;
}

eg2
###不額外定義陣列
# include <stdio.h>
int main(void)
{
    int a[23] = {1,5,66,8,55,9,1,32,5,65,4,8,5,15,64,156,1564,15,1,8,9,7,215};
    int i = 0;  //迴圈變數1, i的值為陣列第一個元素的下標
    int j = 22;  //迴圈變數2, j的值為陣列最後一個元素的下標
    int buf;  //互換時的中間儲存變數
    for (; i<j; ++i, --j)  /*因為i和j已經初始化過了, 所以表示式1可以省略, 但表示式1後面的分號不能省。*/
    {
        buf = a[i];
        a[i] = a[j];
        a[j] = buf;
    }
    for (i=0; i<23; ++i)
    {
        printf("%d\x20", a[i]);  //\x20表示空格
    }
    printf("\n");
    return 0;
}


eg3
int arr[] = {1,2,3,4,5};
int len = sizeof(arr)/sizeof(arr[0]);
for(int i = 0;i <len/2;i++)
{
	inmt temp = arr[i];
	arr[i] = arr[len-1];
	arr[len -1 - i ]= temp;
}

for( int i = 0; i<len ;i++)
{
printf("%4d",arr[i]); //向右對齊
}


陣列列印%8.2f     .前正好表示向右對其。  .之後的數字表示取幾位小數
天下之大,又何止南北呢?