程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> [C語言]使用數組,c語言使用數組

[C語言]使用數組,c語言使用數組

編輯:關於C語言

[C語言]使用數組,c語言使用數組


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

//  main.c 例
//  Created by weichen on 15/1/9.
//  Copyright (c) 2015年 weichen. All rights reserved.
#include <stdio.h> int main() {
// 求輸入的平均數 int x = 0; //輸入的數 double num = 0; //總和(這個定義為double, 因為計算結果可能出現浮點數) int count = 0; //個數 double per; //平均數(結果也定義double) printf("請輸入一些數:"); scanf("%d", &x); //大於0時執行累計;輸入小於等於0的值 回車確定 來終止循環,並執行後面的代碼 while(x > 0) { num += x; count++; scanf("%d", &x); } if(count > 0) { per = num / count; printf("%f \n", per); } return 0; }

 

//  main.c 例
//  Created by weichen on 15/1/14.
//  Copyright (c) 2015年 weichen. All rights reserved.
#include <stdio.h> int main() { //輸入一個數,並輸出平均值和大於平均值的數 //要點:需要存放輸入的這些數 int x = 0; int n = 0; double total = 0; double per = 0; int number[100]; //1. 定義數組 printf("請輸入一些數:"); scanf("%d", &x); while(x != 0) { number[n] = x; //2. 數組元素賦值 total += x; n++; } if(n > 0) { per = total/n; printf("平均數為:%f\n", per); printf("大於平均數的數為:"); for(int i = 0; i <= n; i++) { if(number[n] > per) //3. 使用數組元素 { printf("%d\t", number[i]); //4. 遍歷數組 } } } return 0; }

注:Xcode裡編譯後輸入數字回車,number[n]=x 行報錯 Thread1:EXC_BAD_ACCESS(code=2,address=0x7fff5fc00000),有人知道原因嗎?

 

// main.c 例
// Created by weichen on 15/1/19
// Copyright (c) 2015年 weichen. All rights reserved.
#include <stdio.h> int main() {
//輸入0-9范圍內的數字,求輸入每個輸入的數字的次數
const int number = 9;//1. 數組大小 int x; int count[number]; //2. 定義數組 int i; for(i=0; i<=number; i++) { count[i] = 0; //3. 初始化數組 } printf("請輸入:"); scanf("%d", &x); while(x != -1) { if(x>=0 && x<=9) { count[x]++; //4. 數組參與運算 } scanf("%d", &x); } for(i=0; i <= number; i++) { printf("%d:%d\n", i, count[i]); } return 0; }

 

//  main.c 一維數組
//  Created by weichen on 15/1/28.
//  Copyright (c) 2015年 weichen. All rights reserved.
#include <stdio.h> int main() { /* 一. 數組的集成初始化    int a[] = {1, 2, 6, 7, 9};    for ( int i = 0; i < 5; i++)    {    printf("%d\t", a[i]);    }   */
/* 1. 聲明一個長度12的數組,第一個元素賦值為1,其余為0    int a[12] = {1};    for ( int i = 0; i < 12; i++)    {    printf("%d\t", a[i]);    } */ /* 2. 不使用循環,初始化數組   int a[12] = {0}; */
/* 二. 集成初始化時的定位    int a[12] = {[1]=2, 3, [4]=9};    用[x]在初始化數據時給出定位    沒有定位的數據跟在前一個後面    其它位置的值補0    也可以不給出數組的大小,讓編譯器運算    適合初始化稀疏的數組    {    for(int i = 0; i < 12; i++) {    printf("%d\t", a[i]); //0 2 3 0 9 0 ....    }
     } */
   /* 三. 數組賦值 */ int a[] = {1, 3}; int length = sizeof(a)/sizeof(a[0]); int b[length]; //1. 數組變量本身不能被賦值,如:int b[] = a;錯誤 //2. 要把一個數組的值交給另一個數組,必須使用遍歷,如下: for(int i = 0; i < length; i++) { b[i] = a[i]; }
{ for(int i = 0; i < length; i++) { printf("%d\t", a[i]); //0 2 3 0 9 0 .... } }
//遍歷數組作用: //3. 賦值、初始化、判斷值是否存在,計數 //4. 離開循環後,i不能再作為下標訪問數組元素 return 0; }

 

/**
 * 思考題:查找某值是否存在數組中
 * @weiChen
 */

#include <stdio.h>

int main()
{
    int a[] = {1, 3, 4, 8, 0, 34};
    
    int key;
    
    int length = sizeof(a)/sizeof(a[0]);
    
    printf("請輸入一個數:");
    
    scanf("%d", &key);
    
    int location = search(key, a, length);
    
    if(location != -1)
    {
        printf("key:%d存在於數組a[]中。\n", key);
    }
    else
    {
        printf("數組a[]中不存在key:%d。\n", key);
    }
    
    return 0;
}

/**
 * 函數:找出key在數組中的位置
 * @param key 位置
 * @param a 數組
 * @param length 數組長度
 * @return 存在則返回數組的位置,否則返回-1
 * 
 * int search(int key, int a[]; int length);
 */

int search(int key, int a[], int length)
{
    for(int i = 0; i < length; i++)
    {
        if(a[i] == key)
        {
            return i;
            break;
        }
    }
    
    return -1;
}

 

//  main.c 多維數組
//  Created by weichen on 15/1/30.
//  Copyright (c) 2015年 weichen. All rights reserved.
#include <stdio.h> int main(int argc, const char * argv[]) { //二維數組,三行五列矩陣 int a[3][5]; for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { a[i][j] = i * j; } } //二維數組的初始化 int b[][5] = { {1, 2, 3, 4, 5}, {3, 4, 5, 6, 8}, }; //1.列數是必須給出的,行數可以由編譯器來數。 //2.每一行一個{},逗號分隔 //3.最後的逗號可以存在,有古老的傳統 //4.如果省略,表示補零 //5.也可以用定位(C99 ONLY) //int c[][3] = {{0}, {1}, {2}}; //三行三列,每列自動補零 //printf("%d", c[1][2]); int d[][3] = {1, 2, 4, 5, 6, 7, 8, 9, 3,};//初始化為3列,自動分為三行 int i, j, k = 2; for(i = 0; i < 3; i++) { printf("%d", d[k][i]);//循環輸出d[2][i] }    return 0; }

 

Link: http://www.cnblogs.com/farwish/p/4212336.html

@黑眼詩人 <www.chenwei.ws>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved