当前位置: 代码迷 >> C语言 >> 请问,这样做对吗?
  详细解决方案

请问,这样做对吗?

热度:342   发布时间:2006-09-05 18:48:32.0
请问,这样做对吗?

今天刚学的指针,有道题目,是利用指针进行两个数字的交换。以前没学指针的时候也能进行转换。现在不知道,这样做,是符合用指针进行交换的题目意思吗?需要什么改进的吗?

代码如下:

#include<stdio.h>
void main()
{
int num1,num2,temp;
int *prt;

printf("请输入两个用于比较的数字:\n");
printf("\n数字一:\t");
scanf("%d",&num1);
printf("\n数字二:\t");
scanf("%d",&num2);
printf("\n交换前的顺序是,数字一:%d,数字二:%d\n",num1,num2);

prt=&num1;
temp=*prt;
num1=num2;
num2=temp;
printf("\n交换后的顺序是,数字一:%d,数字二:%d\n",num1,num2);
}

搜索更多相关的解决方案: include  color  

----------------解决方案--------------------------------------------------------
自己感觉不象是在用指针呢!!
----------------解决方案--------------------------------------------------------

这个是用指针进行转换,但实际上数字好象并没有真正的转换过来。但是哪个更合题目呢?

#include<stdio.h>
void main()
{
int num1,num2;
int *prt1,*prt2,*temp;

printf("请输入两个用于比较的数字:\n");
printf("\n数字一:\t");
scanf("%d",&num1);
printf("\n数字二:\t");
scanf("%d",&num2);

prt1=&num1;
prt2=&num2;
printf("\n交换前的顺序是,数字一:%d,数字二:%d\n",*prt1,*prt2);
temp=prt1;
prt1=prt2;
prt2=temp;
printf("\n交换后的顺序是,数字一:%d,数字二:%d\n",*prt1,*prt2);
}


----------------解决方案--------------------------------------------------------

呵呵,刚学指针的时候,我也是晕!我感觉指针最好的用处就是在数组上!数组的地方可是要用到指针的!所以一定要学好指针!


----------------解决方案--------------------------------------------------------

最好设计个函数保存起来,以后编程会经常用。

void Swap(int *pt1,int *pt2){
int temp;
temp=*pt1;
*pt1=*pt2;
*pt2=temp;
return ;
}


----------------解决方案--------------------------------------------------------
恩,不过现在指针在我的脑海里还是迷迷糊糊的。还要多做习题的。
----------------解决方案--------------------------------------------------------
交换指针指向的内容,而不是指针本身(只是一个地址),它不可以改变指向的内容.
----------------解决方案--------------------------------------------------------
我觉得要再定义一个指针变量!这样才有意义!要不然就好像没有用到指针的功能!
----------------解决方案--------------------------------------------------------
你的程序实际上就是把地址给交换了!注意*p只是一个数字而已!而p则是一个地址!
----------------解决方案--------------------------------------------------------

笨,用指针时把数组一换不就行了


----------------解决方案--------------------------------------------------------
  相关解决方案