【C语言】学习笔记 第8章 数组 编程题 左手的ㄟ右手 2024-03-22 09:45 41阅读 0赞 ### 【C语言】学习笔记 ### #### 文章目录 #### * * 【C语言】学习笔记 * * 第8章 数组 * * 编程题 #### 第8章 数组 #### ![在这里插入图片描述][af470f35b610481b8a5e86ea981cd0fb.png_pic_center] 如果程序操纵着大量的数据,那它一定是用较少的方法办到的。到这里之前,我们所见的变量都只是标量(scalar):标量具有保存单一数据项的能力。 C 语言也支持聚合(aggregate)变量,这类变量可以存储**成组**的数值。 在 C 语言中一共有两种 聚合类型:**数组(array)和结构(structure)**。 ##### 编程题 ##### 【1】修改 8.1 节的程序 repdigit.c,使其可以显示出哪些数字有重复(如果有的话): Enter a number: 939577 Repeated digit(s): 7 9 #include <stdio.h> #include <stdbool.h> int main(void) { int digit_seen[10] = { 0 }; int digit; long n; printf("Enter a number: "); scanf("%ld", &n); while (n > 0) { digit = n % 10; digit_seen[digit]++; n /= 10; } printf("Repeated digit[s]: "); for (int i = 0; i < 10; i++) { if (digit_seen[i] > 1) { printf("%d ", i); } } return 0; } ![在这里插入图片描述][ddbc59f389494f5b8cb1444a9c0e9f3b.png_pic_center] 【2】修改 8.1 节的程序 repdigit.c,使其打印出一份列表,显示出每个数字在数中出现的次数: Enter a number: 41271092 Digit: 0 1 2 3 4 5 6 7 8 9 Occurrences: 1 2 2 0 1 0 0 1 0 1 #include <stdio.h> #include <stdbool.h> int main(void) { int digit_seen[10] = { 0 }; int digit; long n; printf("Enter a number: "); scanf("%ld", &n); while (n > 0) { digit = n % 10; digit_seen[digit]++; n /= 10; } printf("Digit:\t\t"); for (int i = 0; i < 10; i++) { printf("%d\t", i); } printf("\nOccurrences:\t"); for (int i = 0; i < 10; i++) { printf("%d\t", digit_seen[i]); } return 0; } ![在这里插入图片描述][7189ac8151234b8d9ddaf8c2f774c4b9.png_pic_center] 【3】修改 8.1节的程序 repdigit.c,使得用户可以输入多个数进行重复数字的判断。当用户输入的数小于或 等于 0 时,程序终止。 #include <stdio.h> #include <stdbool.h> int main(void) { bool digit_seen[10]; int digit; long n; printf("Enter a number: "); scanf("%ld", &n); while (n > 0) { for (int i = 0; i < 10; i++) { digit_seen[i] = false; } while (n > 0) { digit = n % 10; if (digit_seen[digit]) { break; } digit_seen[digit] = true; n /= 10; } if (n > 0) { printf("Repeated digit\n"); } else { printf("No repeated digit\n"); } printf("Enter a number: "); scanf("%ld", &n); } return 0; } ![在这里插入图片描述][e7aa9d897e9e432492b96db1a66aeddb.png_pic_center] 【4】修改 8.1 节的程序 reverse.c,利用表达式`(int)(sizeof(a) / sizeof(a[0]))`(或者具有相同值的宏) 来计算数组的长度。 #include <stdio.h> #define N 10 int main(void) { int a[N], i; int length = (int)(sizeof(a) / sizeof(a[0])); printf("Enter %d numbers: ", length); for (i = 0; i < length; i++) scanf("%d", &a[i]); printf("In reverse order:"); for (i = length - 1; i >= 0; i--) printf(" %d", a[i]); printf("\n"); return 0; } ![在这里插入图片描述][90f1e4a7d8e74b1e837d77e12d00905d.png_pic_center] 【5】修改 8.1 节的程序 interest.c,使得修改后的程序可以每月整合一次利息,而不是每年整合一次利息。 不要改变程序的输出格式,余额仍按每年一次的时间间隔显示。 #include <stdio.h> #define NUM_RATES ((int) (sizeof(value) / sizeof(value[0]))) #define INITIAL_BALANCE 100.00 int main(void) { int i, low_rate, num_years, year, month; double value[5]; printf("Enter interest rate: "); scanf("%d", &low_rate); printf("Enter number of years: "); scanf("%d", &num_years); printf("\nYears"); for (i = 0; i < NUM_RATES; i++) { printf("%6d%%", low_rate + i); value[i] = INITIAL_BALANCE; } printf("\n"); for (year = 1; year <= num_years; year++) { printf("%3d ", year); for (i = 0; i < NUM_RATES; i++) { for (int j = 0; j < 12; j++) { value[i] += (low_rate + i) / 100.0 / 12 * value[i]; } printf("%7.2f", value[i]); } printf("\n"); } return 0; } ![在这里插入图片描述][1c27866e6ffc4806899a036c7cbebb82.png_pic_center] 【6】有一个名叫 B1FF 的人,是典型的网络新手,他有一种独特的编写消息的方式。下面是一条常见的 B1FF 公告: H3Y DUD3, C 15 R1LLY C00L!!!!!!!!!! 编写一个“B1FF 过滤器”,它可以读取用户输入的消息并把此消息翻译成 B1FF 的表达风格: Enter message: Hey dude, C is rilly cool In B1FF-speak: H3Y DUD3, C 15 R1LLY C00L!!!!!!!!!! 程序需要把消息转换成大写字母,用数字代替特定的字母(A→4、B→8、E→3、I→1、O→0、S→ 5),然后添加 10 个左右的感叹号。提示:把原始消息存储在一个字符数组中,然后从数组头开始逐 个翻译并显示字符。 #include <stdio.h> #include <ctype.h> #define LENGTH 100 int main(void) { char message[LENGTH]; char c; int i = 0; printf("Enter message: "); while ((c = getchar()) != '\n') { message[i++] = c; } for (int j = 0; j < i; j++) { message[j] = toupper(message[j]); if (message[j] == 'A') message[j] = '4'; else if (message[j] == 'B') message[j] = '8'; else if (message[j] == 'E') message[j] = '3'; else if (message[j] == 'I') message[j] = '1'; else if (message[j] == 'O') message[j] = '0'; else if (message[j] == 'S') message[j] = '5'; } printf("In B1FF-speak: "); for (int j = 0; j < i; j++) putchar(message[j]); printf("!!!!!!!!!!"); return 0; } ![在这里插入图片描述][70bcede238254638bc47d6ad1bfe4774.png_pic_center] 【7】编写程序读取一个 5×5 的整数数组,然后显示出每行的和与每列的和。 Enter row 1: 8 3 9 0 10 Enter row 2: 3 5 17 1 1 Enter row 3: 2 8 6 23 1 Enter row 4: 15 7 3 2 9 Enter row 5: 6 14 2 6 0 Row totals: 30 27 40 36 28 Column totals: 34 37 37 32 21 #include <stdio.h> int main(void) { int a[5][5]; int rowsum, columnsum; for (int i = 0; i < 5; i++) { printf("Enter row %d: ", i + 1); for (int j = 0; j < 5; j++) { scanf("%d", &a[i][j]); } getchar(); // 清除回车符 } printf("Row totals: "); for (int i = 0; i < 5; i++) { rowsum = 0; for (int j = 0; j < 5; j++) { rowsum += a[i][j]; } printf("%3d", rowsum); } printf("\nColumn totals: "); for (int i = 0; i < 5; i++) { columnsum = 0; for (int j = 0; j < 5; j++) { columnsum += a[j][i]; } printf("%3d", columnsum); } return 0; } ![在这里插入图片描述][6e12ff27756e4c3099dbf5d20233e822.png_pic_center] 【8】修改编程题 7,使其提示用户输入每个学生 5 门测验的成绩,一共有 5 个学生。然后计算每个学生的 总分和平均分,以及每门测验的平均分、高分和低分。 #include <stdio.h> int main(void) { int scores[5][5]; float stu_sum; float cour_sum, cour_max, cour_min; for (int i = 0; i < 5; i++) { printf("Enter Student %d's scores: ", i + 1); for (int j = 0; j < 5; j++) { scanf("%d", &scores[i][j]); } getchar(); } printf("Student: \tNo.1\t\tNo.2\t\tNo.3\t\tNo.4\t\tNo.5\n"); printf("Sum#Average:\t"); for (int i = 0;i < 5; i++) { stu_sum = 0; for (int j = 0; j < 5;j++) { stu_sum += scores[i][j]; } printf("%.1f#%.1f\t", stu_sum, stu_sum / 5); } printf("\nCourse: \tNo.1\t\tNo.2\t\tNo.3\t\tNo.4\t\tNo.5\n"); printf("Avg#Max#Min:\t"); for (int i = 0;i < 5; i++) { cour_sum = cour_max = cour_min = scores[0][i]; for (int j = 0; j < 5; j++) { cour_sum += scores[j][i]; if (cour_max < scores[j][i]) cour_max = scores[j][i]; if (cour_min > scores[j][i]) cour_min = scores[j][i]; } printf("%.1f#%.1f#%.1f\t", cour_sum / 5, cour_max, cour_min); } return 0; } ![在这里插入图片描述][33bebea67c03439aa0b910e30f75aa29.png_pic_center] 【9】编写程序,生成一种贯穿 10×10 字符数组(初始时全为字符’.')的“随机步法”。程序必须**随机**地 从一个元素 “走到”另一个元素,每次都向上、向下、向左或向右移动一个元素位置。已访问过的 元素按访问顺序用字母 A~Z 进行标记。下面是一个输出示例: ![在这里插入图片描述][91b6a22c964a40bebecd0cc9d3f9f535.png_pic_center] 提示:利用 srand 函数和 rand 函数(见程序 deal.c)产生随机数,然后查看此数除以 4 的余数。余 数一共有 4 种可能的值(0、1、2 和 3),指示下一次移动的 4 种可能方向。在执行移动操作之前, 需要检查两个条件:一是不能走到数组外面,二是不能走到已有字母标记的位置。只要有一个条件 不满足,就得尝试换一个方向移动。如果 4 个方向都堵住了,程序就必须终止了。下面是提前结束 的一个示例: ![在这里插入图片描述][d743f0a454894ac48acc2a34884c78e6.png_pic_center] 因为 Y 移动的 4 个方向都堵住了,所以没有地方可以放置下一步的 Z 了。 #include <stdio.h> #include <time.h> int main(void) { char map[10][10]; char visited = 'A'; int currentX, currentY; int direct[4] = { 0,0,0,0 }; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { map[i][j] = '.'; } } srand((unsigned)time(NULL)); int x; currentX = currentY = 0; map[currentX][currentY] = visited++; while (1) { int sum = direct[0] + direct[1] + direct[2] + direct[3]; if (visited > 'Z' || sum == 4) { break; } x = rand() % 4; if (x == 0) { if (currentY == 0 || map[currentX][currentY - 1] != '.') { direct[0] = 1; continue; } else { map[currentX][--currentY] = visited++; direct[0] = direct[1] = direct[2] = direct[3] = 0; } } else if (x == 1) { if (currentX == 9 || map[currentX + 1][currentY] != '.') { direct[1] = 1; continue; } else { map[++currentX][currentY] = visited++; direct[0] = direct[1] = direct[2] = direct[3] = 0; } } else if (x == 2) { if (currentY == 9 || map[currentX][currentY + 1] != '.') { direct[2] = 1; continue; } else { map[currentX][++currentY] = visited++; direct[0] = direct[1] = direct[2] = direct[3] = 0; } } else if (x == 3) { if (currentX == 0 || map[currentX - 1][currentY] != '.') { direct[3] = 1; continue; } else { map[--currentX][currentY] = visited++; direct[0] = direct[1] = direct[2] = direct[3] = 0; } } } printf("\n"); for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { printf(" %c", map[i][j]); } printf("\n"); } return 0; } ![在这里插入图片描述][0f29e7536a314525af2f6ec010350fa1.png_pic_center] ![在这里插入图片描述][a087291a956e4b0696c203a2b00e1d48.png_pic_center] 【10】修改第 5 章的编程题 8,用一个数组存储航班起飞时间,另一个数组存储航班抵达时间。(时间用整 数表示,表示从午夜开始的分钟数。)程序用一个循环搜索起飞时间数组,以找到与用户输入的时间 最接近的起飞时间。 #include <stdio.h> int main(void) { int hour, minute; int times; int i; int departure[8] = { 480,583,679,767,840,945,1140,1305 }; int arrive[8] = { 616,712,811,900,968,1075,1280,1438 }; printf("Enter a 24-hour time: "); scanf("%d:%d", &hour, &minute); times = hour * 60 + minute; if (times > departure[0]) { for (i = 0; i < 7; i++) { if (times > departure[i] && times < departure[i + 1]) { if (times - departure[i] > departure[i + 1] - times) { i++; break; } else { break; } } } } else { if (480 - times < times + 1440 - departure[7]) { i = 0; } } printf("Closet departure time is %d:%d, ", departure[i] / 60, departure[i] % 60); printf("arrving at %d:%d", arrive[i] / 60, arrive[i] % 60); return 0; } ![在这里插入图片描述][70e3f944c1ee46c4ae238368b177c96b.png_pic_center] 【11】修改第 7 章的编程题 4,给输出加上标签: Enter phone number: 1-800-COL-LECT In numeric form: 1-800-265-5328 在显示电话号码之前,程序需要将其(以原始格式或数值格式)存储在一个字符数组中。可以假定电话号码的 长度不超过 15 个字符。 #include<stdio.h> int main(void) { char ch; char pnumber[15] = { '\0' }; printf("Enter phone number: "); int i = 0; while ((ch = getchar()) != '\n') { if (ch >= 'A' && ch <= 'C') ch = '2'; else if (ch >= 'D' && ch <= 'F') ch = '3'; else if (ch >= 'G' && ch <= 'I') ch = '4'; else if (ch >= 'J' && ch <= 'L') ch = '5'; else if (ch >= 'M' && ch <= 'O') ch = '6'; else if (ch >= 'P' && ch <= 'S') ch = '7'; else if (ch >= 'T' && ch <= 'V') ch = '8'; else if (ch >= 'W' && ch <= 'Z') ch = '9'; pnumber[i++] = ch; } printf("In numerich form: "); for (int i = 0; i < 15; i++) { if (pnumber[i] != '\0') { putchar(pnumber[i]); } } return 0; } ![在这里插入图片描述][3d089b747b3145868d755e7e05d2466f.png_pic_center] 【12】修改第 7 章的编程题 5,用数组存储字母的面值。数组有 26 个元素,对应字母表中的 26 个字母。例 如,数组元素 0 存储 1(因为字母 A 的面值为 1),数组元素 1 存储 3(因为字母 B 的面值为 3),等 等。每读取输入单词中的一个字母,程序都会利用该数组确定字符的拼字值。使用数组初始化器来 建立该数组。 #include <stdio.h> #include <ctype.h> int main(void) { int convert[26] = { 1,3,3,2,1,4,2,4,1,8,5,1,3,1,1,3,10,1,1,1,1,4,4,8,4,10 }; char ch; int sum = 0; printf("Enter a word: "); while ((ch = getchar()) != '\n') { ch = toupper(ch); sum += convert[ch - 'A']; } printf("Scrabble value: %d", sum); return 0; } ![在这里插入图片描述][f5e9b06d82914a2c8fc04a7ea68929b0.png_pic_center] 【13】修改第 7 章的编程题 11,给输出加上标签: Enter a first and last name: Lloyd Fosdick You enered the name: Fosdick, L. 在显示姓(不是名)之前,程序需要将其存储在一个字符数组中。可以假定姓的长度不超过 20 个字符。 #include<stdio.h> int main(void) { char ch; char fname[15] = { '\0' }; int i = 0; printf("Enter a first and last name: "); while ((ch = getchar()) != '\n') { if (ch != ' ') { fname[i++] = ch; } else { break; } } printf("You entered the name: "); while ((ch = getchar()) != '\n') { putchar(ch); } printf(", %c.", fname[0]); return 0; } ![在这里插入图片描述][404396c6091c4d1ba699933cdec838c7.png_pic_center] 【14】编写程序颠倒句子中单词的顺序: Enter a sentence: you can cage a swallow can't you? Reversal of sentence: you can't swallow a cage can you? 提示:用循环逐个读取字符,然后将它们存储在一个一维字符数组中。当遇到句号、问号或者感叹 号(称为“终止字符”)时,终止循环并把终止字符存储在一个 char 类型变量中。然后再用一个循 环反向搜索数组,找到最后一个单词的起始位置。显示最后一个单词,然后反向搜索倒数第二个单 词。重复这一过程,直至到达数组的起始位置。最后显示出终止字符。 #include <stdio.h> int main(void) { char sentence[100]; char ch; int i, pos = 0; sentence[0] = ' '; printf("Enter a sentence: "); ch = getchar(); while (ch != '.' && ch != '!' && ch != '?') { sentence[++pos] = ch; ch = getchar(); } printf("Reversal of sentence: "); while (pos > 0) { i = pos; while (pos >= 0 && sentence[pos--] != ' '); for (int k = pos + 1; k <= i; k++) { printf("%c", sentence[k]); } } printf("%c", ch); return 0; } ![在这里插入图片描述][b2425d2727a94ec8848cc6de012d0e43.png_pic_center] 【15】目前已知的最古老的一种加密技术是恺撒加密(得名于 Julius Caesar)。该方法把一条消息中的每个字 母用字母表中固定距离之后的那个字母来替代。(如果越过了字母 Z,则会绕回到字母表的起始位 置。例如,如果每个字母都用字母表中两个位置之后的字母代替,那么Y就被替换为A,Z就被替换 为 B。)编写程序用恺撒加密方法对消息进行加密。用户输入待加密的消息和移位计数(字母移动的 位置数目): Enter message to be encrypted: Go ahead, make my day. Enter shift amount (1-25): 3 Encrypted message: Jr dkhdg, pdnh pb gdb. 注意,当用户输入 26 与移位计数的差值时,程序可以对消息进行解密: Enter message to be encrypted: Jr dkhdg, pdnh pb gdb. Enter shift amount (1-25): 23 Encrypted message: Go ahead, make my day. 可以假定消息的长度不超过 80 个字符。不是字母的那些字符不要改动。此外,加密时不要改变字母 的大小写。提示:为了解决前面提到的绕回问题,可以用表达式`((ch - 'A') + n) % 26 + 'A'`计 算大写字母的密码,其中 ch 存储字母,n 存储移位计数。(小写字母也需要一个类似的表达式。) #include <stdio.h> int main(void) { char message[80]; char ch; int n; int length = 0; printf("Enter message to be encrypted: "); while ((ch = getchar()) != '\n') message[length++] = ch; printf("Enter shift amount (1-25): "); scanf("%d", &n); for (int i = 0; i < length; i++) { if (message[i] >= 'a' && message[i] <= 'z') { message[i] = ((message[i] - 'a') + n) % 26 + 'a'; } else if (message[i] >= 'A' && message[i] <= 'Z') { message[i] = ((message[i] - 'A') + n) % 26 + 'A'; } } printf("Encrypted message: %s", message); return 0; } ![在这里插入图片描述][0805ddc7ea664c0c95d21b8499c76421.png_pic_center] 【16】编程测试两个单词是否为变位词(相同字母的重新排列): Enter first word: smartest Enter second word: mattress The words are anagrams. Enter first word: dumbest Enter second word: stumble The words are not anagrams. 用一个循环逐个字符地读取第一个单词,用一个 26 元的整数数组记录每个字母的出现次数。(例 如,读取单词 smartest 之后,数组包含的值为 10001000000010000122000000,表明 smartest 包 含一个 a、一个 e、一个 m、一个 r、两个 s 和两个 t。)用另一个循环读取第二个单词,这次每读取 一个字母就把相应数组元素的值减 1。两个循环都应该忽略不是字母的那些字符,并且不区分大小 写。第二个单词读取完毕后,再用一个循环来检查数组元素是否为全 0。如果是全 0,那么这两个单 词就是变位词。提示:可以使用`<ctype.h>`中的函数,如 isalpha 和 tolower。 #include <stdio.h> #include <ctype.h> int main(void) { int words[26] = { 0 }; char ch; printf("Enter first word: "); while ((ch = getchar()) != '\n' && isalpha(ch)) words[toupper(ch) - 'A'] ++; printf("Enter second word: "); while ((ch = getchar()) != '\n' && isalpha(ch)) words[toupper(ch) - 'A'] --; for (int i = 0; i < 26; i++) { if (words[i] != 0) { printf("The words are not anagrams."); return 0; } } printf("The words are anagrams."); return 0; } ![在这里插入图片描述][99725d93f7f54efaa91b3a75db05cb41.png_pic_center] ![在这里插入图片描述][49c5dd2ff4404af7969261efb5119cab.png_pic_center] 【17】编写程序打印 n×n 的幻方(1, 2, …, n 2 n^2 n2的方阵排列,且每行、每列和每条对角线上的和都相等)。由 用户指定 n 的值 This program creates a magic square of a specified size. The size must be an odd number between 1 and 99. Enter size of magic square: 5 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 把幻方存储在一个二维数组中。起始时把数 1 放在第 0 行的中间,剩下的数 2, 3, …, n 2 n^2 n2依次向上移动 一行并向右移动一列。当可能越过数组边界时需要“绕回”到数组的另一端。例如,如果需要把下 一个数放到第-1 行,我们就将其存储到第 n-1 行(最后一行);如果需要把下一个数放到第 n 列, 我们就将其存储到第 0 列。如果某个特定的数组元素已被占用,那就把该数存储在前一个数的正下 方。如果你的编译器支持变长数组,则声明数组有 n 行 n 列,否则声明数组有 99 行 99 列。 #include <stdio.h> int main(void) { int n; printf("This program creates a magic square of a specified size.\n"); printf("The size must be an odd number between 1 and 99.\n"); printf("Enter size of magic square: "); scanf("%d", &n); int magic[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { magic[i][j] = 0; } } int x = 0, y = n / 2; for (int k = 1;k <= n * n; k++) { if (magic[x][y] != 0) { x = (x + 2 + n) % n; y = (--y + n) % n; magic[x][y] = k; } else { magic[x][y] = k; } x = (--x + n) % n; y = (++y + n) % n; } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%d\t", magic[i][j]); } printf("\n"); } return 0; } ![在这里插入图片描述][4cb6808b54c14ae8a34481fe607956d5.png_pic_center] [af470f35b610481b8a5e86ea981cd0fb.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/d20e50d794ef4fd0bebfff55d56a24b1.png [ddbc59f389494f5b8cb1444a9c0e9f3b.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/9e5acb6e67c84d6585028de8662ba0f2.png [7189ac8151234b8d9ddaf8c2f774c4b9.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/f378d6c409c24a999c8e21e11c9871cb.png [e7aa9d897e9e432492b96db1a66aeddb.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/ff1547fc04b54d3db0e8039a7c48c5af.png [90f1e4a7d8e74b1e837d77e12d00905d.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/2a0a076762384bd4916a4515255e7b23.png [1c27866e6ffc4806899a036c7cbebb82.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/16c68db72d524dd0bb283847cbcb4707.png [70bcede238254638bc47d6ad1bfe4774.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/f1c9b617faf248eaa23229014ad7c01b.png [6e12ff27756e4c3099dbf5d20233e822.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/05445b8e6eaf465fa66102200ca879ba.png [33bebea67c03439aa0b910e30f75aa29.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/06d32fe648c748f9a8355d4551e67a4d.png [91b6a22c964a40bebecd0cc9d3f9f535.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/84abc0a0052c45bba396a3c38c8a4327.png [d743f0a454894ac48acc2a34884c78e6.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/c604897fc9d44430967305bb0de5255a.png [0f29e7536a314525af2f6ec010350fa1.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/44f3f24e87084032b2295900a7a30350.png [a087291a956e4b0696c203a2b00e1d48.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/017163402a25419db62e205133910b1f.png [70e3f944c1ee46c4ae238368b177c96b.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/029385656c5c481087fde9006c48f2a1.png [3d089b747b3145868d755e7e05d2466f.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/4f4e38ad6c2e42c79c71e7f74fbfb2b6.png [f5e9b06d82914a2c8fc04a7ea68929b0.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/86d8257a07954e92bab62f31d6d5f2e3.png [404396c6091c4d1ba699933cdec838c7.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/ed6fbdbc4f1549e7a8588cc0e9eaf5d0.png [b2425d2727a94ec8848cc6de012d0e43.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/411f5f7194ad4a54add31ef1d19c796f.png [0805ddc7ea664c0c95d21b8499c76421.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/74eb7873dbd64bf2b1696b36474e60f2.png [99725d93f7f54efaa91b3a75db05cb41.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/1ad92264524f420b8d93aa00759c8de3.png [49c5dd2ff4404af7969261efb5119cab.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/c3221f5d45e940909ff05a3c4a888fc2.png [4cb6808b54c14ae8a34481fe607956d5.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/c984e383d341403ea2caf57b001ff066.png
相关 【C语言】学习笔记 第4章 表达式 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第4章 表达式 编程题 第4章 表达式 ![在 浅浅的花香味﹌/ 2024年03月23日 16:56/ 0 赞/ 56 阅读
相关 【C语言】学习笔记 第2章 C语言基本概念 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第2章 C语言基本概念 编程题 第2章 C语言基本 红太狼/ 2024年03月23日 16:18/ 0 赞/ 33 阅读
相关 【C语言】学习笔记 第12章 指针和数组 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第12章 指针和数组 编程题 第12章 指针和数组 ゝ一纸荒年。/ 2024年03月22日 10:55/ 0 赞/ 35 阅读
相关 【C语言】学习笔记 第10章 程序结构 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第10章 程序结构 编程题 第10章 程序结构 Myth丶恋晨/ 2024年03月22日 10:46/ 0 赞/ 44 阅读
相关 【C语言】学习笔记 第8章 数组 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第8章 数组 编程题 第8章 数组 ![在这里 左手的ㄟ右手/ 2024年03月22日 09:45/ 0 赞/ 42 阅读
相关 【C语言】学习笔记 第8章 数组 8.2 多维数组 【C语言】学习笔记 文章目录 【C语言】学习笔记 第8章 数组 8.2 多维数组 喜欢ヅ旅行/ 2024年03月22日 09:45/ 0 赞/ 42 阅读
相关 【C语言】学习笔记 第8章 数组 8.1 一维数组 【C语言】学习笔记 文章目录 【C语言】学习笔记 第8章 数组 8.1 一维数组 妖狐艹你老母/ 2024年03月22日 09:45/ 0 赞/ 38 阅读
相关 【C语言】学习笔记 第7章 基本类型 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第7章 基本类型 编程题 第7章 基本类型 ! Bertha 。/ 2024年03月22日 09:15/ 0 赞/ 42 阅读
相关 【C语言】学习笔记 第6章 循环 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第6章 循环 编程题 第6章 循环 ![在这里 左手的ㄟ右手/ 2024年03月22日 08:44/ 0 赞/ 53 阅读
相关 【C语言】学习笔记 第5章 选择语句 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第5章 选择语句 编程题 第5章 选择语句 ! 布满荆棘的人生/ 2024年03月22日 08:43/ 0 赞/ 38 阅读
还没有评论,来说两句吧...