第四次随笔作业
预习作业
作业要求:
https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2523
PTA作业:
7-1 找出不是两个数组共有的元素 (20 分)
给定两个整型数组,本题要求找出不是两者共有的元素。
代码:
1 #include<stdio.h> 2 int num3[20], j = 0;//定义数组记录符合的数 3 void zhaobutong(int num1[], int n1, int num2[], int n2) 4 { 5 int i, flag, i1; 6 for(i = 0, flag = 0; i < n1; i++)//循环第一个数组的每位数 7 { 8 for(i1 = 0; i1 < n2; i1++)//循环第二个数组的每位数 9 { 10 if(num1[i] == num2[i1])//比较第一二个数组的每位数 11 { 12 flag = 1; 13 break; 14 } 15 } 16 if(flag == 0) 17 { 18 for(i1 = 0; i1 < j; i1++) 19 { 20 if(num3[i1] == num1[i])//比较是否已经记录了这个数 21 { 22 flag = 1;l 23 } 24 } 25 } 26 if(flag == 0)//如果符合以上条件存入数组三 27 { 28 num3[j] = num1[i]; 29 j++; 30 } 31 flag = 0; 32 } 33 } 34 int main() 35 { 36 int num1[20], num2[20], i, i1 = 0; 37 int n1, n2; 38 scanf("%d", &n1);//输入第一个数组长度 39 for(i = 0; i < n1; i++)//输入第一个数组的数 40 { 41 scanf("%d", &num1[i]); 42 } 43 scanf("%d", &n2);//输入第二个数组长度 44 for(i = 0; i < n2; i++)//输入第二个数组的数 45 { 46 scanf("%d", &num2[i]); 47 } 48 zhaobutong(&num1, n1, &num2, n2);//比较第一个数组与第二个数组中不相同的数 49 zhaobutong(&num2, n2, &num1, n1);//比较第二个数组与第一个数组中不相同的数 50 for(i = 0; i < j; i++)//输出数组三的数 51 { 52 if(i == j - 1) 53 { 54 printf("%d", num3[i]); 55 } 56 else 57 { 58 printf("%d ", num3[i]); 59 } 60 } 61 }
流程图:
调试过程:
______________________________________________________________________________________________________________________________
7-3 冒泡法排序 (20 分)
将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。
本题要求对任意给定的K(<N),输出扫描完第K遍后的中间结果数列。
代码:
1 #include<stdio.h> 2 void exchange(int *num1, int *num2)//函数交换所要交换的内容 3 { 4 int exchange; 5 exchange = *num1; 6 *num1 = *num2; 7 *num2 = exchange; 8 } 9 int main() 10 { 11 static int num[100]; 12 int k, n, i, j; 13 scanf("%d %d", &n, &k);//输入所输数组长度与冒泡次数 14 for(i = 0; i < n; i++)//输入数组内容 15 { 16 scanf("%d", &num[i]); 17 } 18 for(i = 0; i < k; i++)//循环多少次 19 { 20 for(j = 0;j < n - i - 1 && n != 1; j++)//每次冒泡循环次数 21 { 22 if(num[j] > num[j + 1])//比较前后两数大小 23 { 24 exchange(&num[j], &num[j + 1]);//符合的交换其值 25 } 26 } 27 } 28 for(i = 0; i < n; i++) 29 { 30 if(i == n - 1) 31 { 32 printf("%d", num[i]); 33 } 34 else 35 { 36 printf("%d ", num[i]); 37 } 38 } 39 40 }
流程图:
调试过程:
二、总结和学习进度条
这几周对指针有更深的学习,发现数组就是个特殊的指针常量,还要继续熟悉c语言基础
互评:
https://www.cnblogs.com/1a2B3c4D/p/10160490.html
https://www.cnblogs.com/asdwadsxc/p/10170543.html
https://www.cnblogs.com/error203/p/10160025.html