第二次作业
#include<stdio.h> #include<stdlib.h> int main( ) {int swap(int *pl,int *p2); int a,b; scanf ("%d,%d",&a,&b); int *p1,*p2; p1=&a; p2=&b; swap(p1,p2); printf("\n%d,%d\n",*p1,*p2); system("pause"); } int swap (int *p1,int*p2) {int p; p=*p1; *p1=*p2; *p2=p; }
34,67
67,34
请按任意键继续. . .
过程比较艰辛,我也出现了运行结果有38还有34的结果,也弄不明白,就问了别人还看书。最后整明白了。
有一个让我很认真学习的机会,打入了好多次最后终于整出来了,心情特别好。还有就是还要注意标点的问题。
像是括号有时候就有前面的没有后面的,逗号分号啥的。抓住细节也是很重要的。
#include<stdio.h> int main() { int comp(int *p,int *q); int a;int b; int *p1;int *p2; scanf("%d,%d",&a,&b); printf("%d\n",comp(&a,&b)); } int comp(int *p,int *q) { if(*p>*q) return *p;else return *q; }
34,56
56
--------------------------------
Process exited after 8.29 seconds with return value 0
请按任意键继续. . .
void swap(int *p,int *q){int *m;*m=*p;*p=*q;*q=*m;}为何无法实现交换?
m是不可预见的,m所指向的单元也是不可预见的。
void swap(int *p,int *q){int *m;m=p;p=q;q=m;}为何无法实现交换?
交换的是地址,不是值。两个数并没有交换。
总结:不能熟练地运用还需要多加联系和理解。很多方面都还需要学习和熟练运用。有些问题不能及时的发现。