计科院1.最大公约数和最小公倍数错误示范#includestdio.hint Max(int m,int n){int x,y,c;x m,yn;while(m!0){c n%m;n m;m c;}return x*y/n,n;#C语言中return不能返回多个值x*y/n,n其实是逗号运算符真正返回的是n}int main(){int b,cMax(6,9);#这里int b,c不是逗号运算符这相当于int b;int c Max(6,9),b只是被定义了但没有被初始化printf(%d,%d,b,c);return 0;}2.结构体数组排序冒泡#includestdio.htypedef struct {int num;int age;float height;}student;void sort(student Students[],int n){for(int i 0;in;i){for(int j 0;jn-i-1;j){if(Students[j].numStudents[j1].num){student s1Students[j];Students[j] Students[j1];Students[j1] s1;}if(Students[j].numStudents[j1].num){if(Students[j].ageStudents[j1].age){student s1Students[j];Students[j] Students[j1];Students[j1] s1;}if(Students[j].ageStudents[j1].age){if(Students[j].heightStudents[j1].height){student s1Students[j];Students[j] Students[j1];Students[j1] s1;}}}}}}int main(){student stus[] {{2, 20, 175.5},{1, 19, 180.0},{2, 18, 170.0},{2, 18, 178.0},{1, 20, 172.5}};int n sizeof(stus) / sizeof(stus[0]);// 排序前printf(排序前\n);for (int i 0; i n; i) {printf(num%d, age%d, height%.1f\n, stus[i].num, stus[i].age, stus[i].height);}// 调用排序函数sort(stus, n);// 排序后printf(\n排序后\n);for (int i 0; i n; i) {printf(num%d, age%d, height%.1f\n, stus[i].num, stus[i].age, stus[i].height);}return 0;}3.字符数组中如果没有\0,那么用strlen函数strlen找不到\0,可能会输出内存中的垃圾值char str[]{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,\0};for(int i 0;istrlen(str);i) printf(%c,,str[i]);输出a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,如果把字符数组最后的\0去掉就可能会输出垃圾值如