-----------------------------------------------------------------------------
// 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>