第二次作业
#include<stdio.h> int main( ) {int swap(int *p1,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; }
7,9
9,7
请按任意键继续. . .
总结:在运行结果时没有注意输入法的格式导致运行出错误结果
2.
#include<stdio.h> int main() { int comp(int *p1,int *p2); int a;int b; int *p1;int *p2; scanf("%d,%d",&a,&b); printf("%d\n",comp(&a,&b)); } int comp(int *p1,int *p2) { if(*p1>*p2) return *p1;else return *p2; }
23,78
78
--------------------------------
Process exited after 5.326 seconds with return value 0
请按任意键继续. . .
void swap(int *p,int *q){int *m;*m=*p;*p=*q;*q=*m;}为何无法实现交换?
*m是变量,但m中无确定的值,所以m所指向的单元是不可预见的,所以对*m的赋值有可能给一个存储着重要数据的存储单元赋值,这样就会破坏系统的正常工作状况,应将*p的值赋给一个整形变量,用整形变量实现*p与*q的交换。