为了账号安全,请及时绑定邮箱和手机立即绑定

为什么a,b使用指针交换值编译通过,但出现异常值?(什么先输出大先输出小就别管了,懒得改)

为什么a,b使用指针交换值编译通过,但出现异常值?(什么先输出大先输出小就别管了,懒得改)

张幼安 2017-08-07 11:00:51
#include <stdio.h>int main(){//整数按从小到大排列,不破坏原数值void swap(int *p1,int *p2); //申明swap函数int a,b;                    //定义初始变量int *pointer_1,*pointer_2;  //定义两个指针变量printf("please enter a and b:\n");scanf("%d,%d",&a,&b);       //将输入的两个常数赋值给初试变量a ,bpointer_1 = &a;pointer_2 = &b;if (a>b)swap(pointer_1,pointer_2);printf("min = %d,max = %d\n",b,a);printf("max = %d,min = %d",*pointer_1,*pointer_2);return 0;}void swap(int *p1,int *p2){ int p; p = *p1; *p1 =*p2; *p2 = p;}
查看完整描述

1 回答

?
吴邪Cc

TA贡献1条经验 获得超0个赞

serf

查看完整回答
反对 回复 2017-08-07
?
氵5

TA贡献1条经验 获得超0个赞

确定按照scanf的格式输入了吗?你可以在scanf后面printf看看输入成功没
查看完整回答
反对 回复 2017-08-07
?
精慕门1091730

TA贡献9条经验 获得超7个赞

我看可能是你没在main函数前声明一下函数,swap函数找不到入口

查看完整回答
反对 回复 2017-08-07
?
张幼安

TA贡献3条经验 获得超1个赞

那个,上述表述不清,不好意思哈。因为输入是能实现的。原意是想问,就是说输入的时候,不按格式输入,会出现异常值,操作系统内部是溢出还是?

查看完整回答
反对 回复 2017-08-07
?
慕前端4312548

TA贡献1条经验 获得超0个赞

scanf("%d,%d",&a,&b); 输入a、b值时,之间的逗号不要忘记。

查看完整回答
反对 回复 2017-08-07
?
wDan_9527

TA贡献13条经验 获得超15个赞

swap()函数无返回值,交换只在函数swap()内部起作用,而在主函数中并未交换值

应该把swap()该为int型,让函数swap()有返回值

查看完整回答
1 反对 回复 2017-08-07
  • 1 回答
  • 0 关注
  • 5289 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信