第二次作业

 

#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的交换。

 

posted @ 2017-03-22 14:22  陈怡婷  阅读(129)  评论(1编辑  收藏  举报