練習6-1數組
/* 求兩個整數中的最小值 */ #include <stdio.h> /*--- 返回三個整數中的最小值 ---*/ int min2(int a, int b) { int min = a; if (b < min) min = b; return min; } int main(void) { int a, b, c; puts("請輸入兩個整數。"); printf("整數a:"); scanf("%d", &a); printf("整數b:"); scanf("%d", &b); printf("最小值是%d。\n", min2(a, b)); return 0; }
練習6-2函數
/* 求三個整數中的最小值 */ #include <stdio.h> /*--- 返回三個整數中的最小值 ---*/ int min3(int a, int b, int c) { int min = a; if (b < min) min = b; if (c < min) min = c; return min; } int main(void) { int a, b, c; puts("請輸入三個整數。"); printf("整數a:"); scanf("%d", &a); printf("整數b:"); scanf("%d", &b); printf("整數c:"); scanf("%d", &c); printf("最小值是%d。\n", min3(a, b, c)); return 0; }
練習6-3spa
#include <stdio.h> int cub(int x) { return x * x * x; //求一個數的立方 } int main(void) { int x; printf("請輸入一個數:"); scanf("%d", &x); printf("它的立方是%d",cub(x)); return 0; }
練習6-4code
#include <stdio.h> int sqr(int x) { return x * x ; //求一個數的平方 } int main(void) { int x; printf("請輸入一個數:"); scanf("%d", &x); printf("它的四次冪是%d", sqr(sqr(x))); return 0; }
練習6-5blog
#include <stdio.h> int sumup(int n) { int sum = 0; while (n-->0) { sum += n; } return sum; } int main(void) { int x; printf("請輸入一個數:"); scanf("%d", &x); printf("從1到%d之間全部整數的和是%d",x, sumup(x)); return 0; }
練習6-6io
#include <stdio.h> void alert(int n) { while (n-- > 0) { putchar('\a'); } } int main() { int x; printf("請輸入要發出響鈴的次數:"); scanf("%d", &x); alert (x); }
練習6-7class
#include <stdio.h> void hello(void) { puts("你好。"); } int main() { hello(); }
練習6-8static
/* 計算英語最低分 */ #include <stdio.h> #define NUMBER 5 /* 學生人數 */ /*--- 返回元素個數爲n的數組v中的最小值 ---*/ int min_of(const int v[], int n) { int i; int min = v[0]; for (i = 1; i < n; i++) if (v[i] < min) min = v[i]; return min; } int main(void) { int i; int eng[NUMBER]; int min_e; printf("請輸入%d名學生的分數。\n", NUMBER); for (i = 0; i < NUMBER; i++) { printf("[%d]英語:", i + 1); scanf("%d", &eng[i]); } min_e = min_of(eng, NUMBER); /* 英語的最低分 */ printf("英語的最低分=%d\n", min_e); return 0; }
練習6-9英語
/* 對數組的所有元素進行倒序排列 */ #include <stdio.h> #define number 7 void rev_intary(int v[], int n) { int i; for (i = 0; i < n/ 2 - 1; i++) { /* 對數組元素進行倒序排列 */ int temp = v[i]; v[i] = v[n - 1 - i]; v[n- 1 - i] = temp; } } int main() { int i; int x[number]; for (i = 0; i < number; i++) { /* 輸入元素的值 */ printf("x[%d] : ", i); scanf("%d", &x[i]); } rev_intary(x, number); puts("倒序排列了。"); for (i = 0; i < number; i++) /* 顯示元素的值 */ printf("x[%d] = %d\n", i, x[i]); return 0; }
練習6-10di
/* 對數組的所有元素進行倒序排列 */ #include <stdio.h> #define number 7 void intary_rcpy(int v1[], const int v2[], int n) { int i; for (i = 0; i < n; i++) { v1[i] = v2[n - i - 1]; } } int main() { int i; int x[number]; int y[number]; for (i = 0; i < number; i++) { /* 輸入元素的值 */ printf("x[%d] : ", i); scanf("%d", &x[i]); } intary_rcpy(y, x, number); puts("倒序排列了。"); for (i = 0; i < number; i++) /* 顯示元素的值 */ printf("y[%d] = %d\n", i, y[i]); return 0; }
練習6-11
#include <stdio.h> #define number 5 int search_idx(const int v[], int idx[], int key, int n) { int i; int x = 0; for (i = 0; i < n; i++) { if (v[i] == key) x++; idx[x] = v[i]; } return x; } int main() { int v[number]; int y[number + 1]; int i; int key; printf("要查找的值是:"); scanf("%d", &key); for (i = 0; i < number; i++) { printf("v[%d]=", i); scanf("%d", &v[i]); } int x = search_idx(v, y, key, number); printf("有%d個相同的元素", x); }
練習6-12
#include<stdio.h> void mat_mul(const int a[4][3], const int b[3][4], int c[3][3]) { int i, j, k; for (i = 0; i < 3; i++) { //計算矩陣c的值 for (j = 0; j < 3; j++) { c[i][j] = 0; for (k = 0; k < 3; k++) { c[i][j] += a[i][k] * b[k][j]; } } } } int main() { int a[4][3]; int b[3][4]; int i, j, k, x, y, c[3][3]; printf("輸入4*3 個數 以空格隔開:\n"); for (i = 0; i < 4; i++) for (k = 0; k < 3; k++) scanf("%d", &a[i][k]); printf("輸入3*4 個數 以空格隔開:\n"); for (i = 0; i < 3; i++) for (k = 0; k < 4; k++) scanf("%d", &b[i][k]); mat_mul(a, b, c); for (x = 0; x < 3; x++) { for (y = 0; y < 3; y++) printf("%d\t", c[x][y]); printf("\n"); } return 0; }
練習6-13
/* 求4名學生在兩次考試中3課程的總分並顯示(函數版) */ #include <stdio.h> /*--- 將4行3列矩陣a和b的和存儲在c中 ---*/ void mat_add(const int a[4][3], const int b[4][3], int c[2][4][3]) { int x, y, z; for (x = 0; x < 2; x++) for (y = 0; y < 4; y++) for (z = 0; z < 3; z++) { c[x][y][z] = a[y][z] + b[y][z]; } } /*--- 顯示4行3列矩陣m ---*/ void mat_print(const int m[4][3]) { int i, j; for (i = 0; i < 4; i++) { for (j = 0; j < 3; j++) printf("%4d", m[i][j]); putchar('\n'); } } int main(void) { int tensu1[4][3] = { {91, 63, 78}, {67, 72, 46}, {89, 34, 53}, {32, 54, 34} }; int tensu2[4][3] = { {97, 67, 82}, {73, 43, 46}, {97, 56, 21}, {85, 46, 35} }; int sum[2][4][3]; /* 總分 */ mat_add(tensu1, tensu2, sum); /* 求兩次考試中成績的總和 */ puts("第一次考試的分數"); mat_print(tensu1); /* 顯示第一次考試的分數 */ puts("第二次考試的分數"); mat_print(tensu2); /* 顯示第二次考試的分數 */ puts("總分"); mat_print(sum); /* 顯示總分 */ return 0; }
練習6-14
#include <stdio.h> #define number 4 int main() { int i; static double x[number]; for (i = 0; i < number; i++) { printf("v[%d]=%.1f", i, x[i]); putchar('\n'); } }
練習6-15
#include <stdio.h> void put_count() { static i = 1; printf("put-count:第%d次", i++); putchar('\n'); } int main() { int i; for (i = 0; i < 5; i++) { put_count(); } }