经典编程900例(c语言)(第七篇)

    科技2022-07-20  85

    例75:访问数组元素

    #include <stdio.h> int main(int argc, char const *argv[]) { int scores[5] = {80, 70, 90, 85, 80}; printf("Array Values\n"); // 数组下标从0开始 printf("scores[0] %d\n", scores[0]); // scores[0] 80 printf("scores[1] %d\n", scores[1]); // scores[1] 70 printf("scores[2] %d\n", scores[2]); // scores[2] 90 printf("scores[3] %d\n", scores[3]); // scores[3] 85 printf("scores[4] %d\n", scores[4]); // scores[4] 80 return 0; }

    例76:函数打印二维数组元素

    #include <stdio.h> /** * 控制台打印二维数组 * @Author dust_fall * @param array 二维数组 * @param rows 二维数组的行数 */ void show_2d_array(int array[][10], int rows) { int i, j; // 外层循环控制行 for (i = 0; i < rows; i++) // 内层循环控制列 for (j = 0; j < 10; j++) printf("array[%d][%d] = %d\n", i, j, array[i][j]); } int main(int argc, char const *argv[]) { int a[1][10] = {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}; int b[2][10] = {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, {11, 12, 13, 14, 15, 16, 17, 18, 19, 20}}; int c[3][10] = {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, {11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, {21, 22, 23, 24, 25, 26, 27, 28, 29, 30}}; show_2d_array(a, 1); show_2d_array(b, 2); show_2d_array(c, 3); return 0; }

    例77:计算数组的元素个数

    #include <stdio.h> int main(int argc, char const *argv[]) { int int_values[] = {51, 23, 2, 44, 45}; float float_values[] = {21.1, 13.3, 22.2, 34.4, 15.5}; printf("Number of elements in int_values %d\n",sizeof(int_values) / sizeof(int_values[0])); //Number of elements in int_values 5 printf("Number of elements in float_values %d\n",sizeof(float_values) / sizeof(float_values[0])); // Number of elements in float_values 5 return 0; }

    例78:访问二维数组元素

    #include <stdio.h> int main(int argc, char const *argv[]) { int row, column; float table[3][5] = {{1.0, 2.0, 3.0, 4.0, 5.0}, {6.0, 7.0, 8.0, 9.0, 10.0}, {11.0, 12.0, 13.0, 14.0, 15.0}}; for (row = 0; row < 3; row++) for (column = 0; column < 5; column++) printf("table[%d][%d] = %f\n", row, column, table[row][column]); return 0; }

    例79:访问三维数组元素

    #include <stdio.h> int main(int argc, char const *argv[]) { int row, column, table; float values[2][3][5] = { {{1.0, 2.0, 3.0, 4.0, 5.0}, {6.0, 7.0, 8.0, 9.0, 10.0}, {11.0, 12.0, 13.0, 14.0, 15.0}}, {{16.0, 17.0, 18.0, 19.0, 20.0}, {21.0, 22.0, 23.0, 24.0, 25.0}, {26.0, 27.0, 28.0, 29.0, 30.0}} }; for (row = 0; row < 2; row++) for (column = 0; column < 3; column++) for (table = 0; table < 5; table++) printf("values[%d][%d][%d] = %f\n", row, column, table, values[row][column][table]); return 0; }

    例80:访问一维数组元素

    #include <stdio.h> int main(int argc, char const *argv[]) { int scores[5] = {80, 70, 90, 85, 80}; int i; printf("Array Values\n"); for (i = 0; i < 5; i++) printf("scores[%d] %d\n", i, scores[i]); return 0; }

    例81:计算数组所占字节数

    #include <stdio.h> int main(int argc, char const *argv[]) { int box[3][3]; float year_sales[52][5]; char pages[40][60][20]; printf("Bytes to hold int box[3][3] %d bytes\n", sizeof(box)); printf("Bytes to hold float year_sales[52][5] %d bytes\n", sizeof(year_sales)); printf("Bytes to hold char pages[40][60][20] %ld bytes\n", sizeof(pages)); return 0; }

    例82:使用函数交换变量值

    #include <stdio.h> /** * 交换两个整型变量的值 * @Author dust_fall * @param a 变量1 * @param b 变量2 */ void swap_values(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; } int main(int argc, char const *argv[]) { int one = 1, two = 2; swap_values(&one, &two); printf("one contains %d two contains %d\n", one, two); // one contains 2 two contains 1 return 0; }

    例83:使用函数计算数组元素之和(想想这段代码对吗)

    #include <stdio.h> /** * 计算数组元素之和 * @Author dust_fall * @param array 要计算的数组 * @param elements 数组元素个数 * @return 返回元素之和 */ long sum_array(int array[], int elements) { long sum = 0; int i; for (i = 0; i < elements; i++) sum += array[i]; return(sum); } int main(int argc, char const *argv[]) { int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int b[2][10] = {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, {11, 12, 13, 14, 15, 16, 17, 18, 19, 20}}; int c[3][10] = {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, {11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, {21, 22, 23, 24, 25, 26, 27, 28, 29, 30}}; printf("Sum of first array elements %d\n", sum_array(a, 10)); printf("Sum of second array elements %d\n", sum_array(b, 20)); printf("Sum of third array elements %d\n", sum_array(c, 30)); return 0; }

    例84:声明一个大的数组

    int main(int argc, char const *argv[]) { char string[66000L]; // 66,000 bytes int values[33000L]; // 33,000 * 2 = 66,000 bytes float numbers[17000]; // 17,000 * 4 = 68,000 bytes return 0; }

    例85:字符串数组使用

    #include <stdio.h> int main(int argc, char const *argv[]) { // 字符串 == 结尾为'\0'的字符数组 // 声明有七个元素char*数组存放字符串的首地址 char *weekdays[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; int i; for (i = 0; i < 7; i++) printf("weekdays[%d] contains %s\n", i, weekdays[i]); return 0; }

    例86:使用二级指针访问字符串数组(这段程序有什么问题)

    #include <stdio.h> int main(int argc, char const *argv[]) { char *workdays[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "" }; char **work_day; work_day = workdays; while (*work_day) printf("%s\n", *work_day++); return 0; }
    Processed: 0.010, SQL: 8