第二次作业
Posted 闫禹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二次作业相关的知识,希望对你有一定的参考价值。
#include<stdio.h> #include<stdlib.h> int main() { int swap(int *m1,int *m2); int a,b; int *pointer_1,*pointer_2; scanf("%d,%d",&a,&b); pointer_1=&a;pointer_2=&b; if(a<b) swap(pointer_1,pointer_2); printf("\\n%d,%d\\n",*pointer_1,*pointer_2); system("pause"); } int swap(int *m1,int *m2) { int temp; temp=*m1; *m1=*m2; *m2=temp; }
结果如下:
4 36
36,4
请按任意键继续. . .
(2)对于 void swap(int *p,int *q) {int *m; *m=*p; *p=*q; *q=*m;};
这个主要是形参和实参没有搞明白,p和q的地址在swap里面代表的是指针的值,仅仅是把指针指向了另外一个地方,并不会修改指针指向的内容, 应改为:
void swap(int *p,int *q)
{
int m;
m=*p;
*p=*q;
*q=m
};
(3) 对于 void swap(int *p,int *q) {int m; m=p; p=q; q=m;};
函数中交换的是指针而不是指针的内容;指针是一时性的,不产生永久效果,只有让指针指向的内容发生交换才可达到目的。改如下:
void swap(int *p,int *q)
{
int m;
m=*p;
*p=*q;
*q=m;
};
(4)comp 函数求最大值:
#include<stdio.h> int main() { void comp(int *x,int *y) int a,b,max,*p,*q; scanf("%d,%d",&a,&b); p=&a;q=&b; max=comp(p,q); printf("最大的数=%d\\n",max); } void comp(int *x,int *y) { int t; if(*x>*y) t=*x; else t=*y; } 运行结果如下: 12,51 最大的数=51 -------------------------------- Process exited after 5.398 seconds with return value 0 请按任意键继续. . .
以上是关于第二次作业的主要内容,如果未能解决你的问题,请参考以下文章